Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootSynkroniseringsservice til FællesStamkort (SFSK) - Leverancebeskrivelse
sorttrue


Table of Contents

Komponenter

Dette dokument dækker følgende komponenter på NSP:

  • Dokumentregistrerings- og oprettelsesservice

  • Type: Webservice

  • Filnavn: sfsk.war

  • Url: <serverurl>/sfsk

  • Servicecheckurl: <serverurl>/sfsk/status

  • Versionurl: <serverurl>/sfsk/health returnerer en json struktur med denne

Konfiguration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filen sfsk.properties,  der placeres i følgende WildFly modul:

...

Property

Beskrivelse

SFSK property

sfsk.url.prefix

URL prefix der indsættes i wsdl'er og bruges af dks-servlet.

sfsk.app.name

Anvendes af dks-servlet

iti18.service.endpoint

Endpoint på ITI18-backend.

iti43.service.endpoint

Endpoint på ITI42-backend.

sfsk.backend.failure.threshold

Tærskel for, hvor mange gang i træk et kald til en backend må fejle, før denne backend betragtes som 'død' af status-siden.

sfsk.dgws.keystore.resource

Keystore, der indeholder funktionscertifikat.

sfsk.dgws.keystore.password

Password til sfsk.dgws.keystore.resource.

sfsk.dgws.keystore.alias

Alias til sfsk.dgws.keystore.resource.

sfsk.dgws.sts.request.url

Endpoint til STS token service.

sfsk.dgws.cvr

Cvr som SFSK's DGWS skal benytte sig af.

sfsk.dgws.org

Organisations navn som SFSK's DGWS skal benytte sig af.

sfsk.datasource.jndi

Datasource der skal bruges til forbindelsen til databasen .

sts.endpoint

Endpoint til STS token service. Benyttes af integrationerne.

sfsk.idws.audience

Denne værdi angiver, hvad audience-attributten i SecurityContext ved et IDWS-kald skal være lig med. Standardværdien er https://fmk

SAES property

saes.endpoint

Endpoint til SAES service.

saes.connect.timeout.millis

Maksimale antal millisekunder servicen skal foretage poll inden den timer ud.

saes.read.timeout.millis

Maksimale antal millisekunder Kafka consumeren venter hvis der kommer flere kald ind end der er Followup objekter i pool'en.

saes.sts.keystore

Keystore, der indeholder funktionscertifikat.

saes.sts.keystore.password

Password til sfsk.dgws.keystore.resource.

saes.sts.keystore.alias

Alias til sfsk.dgws.keystore.resource.

saes.idcard.subject.name

Organisations navn som SAES's DGWS skal benytte sig af.

saes.idcard.subject.id

Cvr som SAES's DGWS skal benytte sig af.

saes.idcard.system.name

Anvendes af dks-servlet.

BRS property

brs.endpoint

Endpoint til BRS service.

brs.connect.timeout.millis

Maksimale antal millisekunder servicen skal foretage poll inden den timer ud.

brs.read.timeout.millis

Maksimale antal millisekunder Kafka consumeren venter hvis der kommer flere kald ind end der er Followup objekter i pool'en.

brs.sts.keystore

Keystore, der indeholder funktionscertifikat.

brs.sts.keystore.password

Password til sfsk.dgws.keystore.resource.

brs.sts.keystore.alias

Alias til sfsk.dgws.keystore.resource.

brs.idcard.subject.name

Organisations navn som SAES's DGWS skal benytte sig af.

brs.idcard.subject.id

Cvr som SAES's DGWS skal benytte sig af.

brs.idcard.system.name

Anvendes af dks-servlet.

treatment.relation.serviceprovider.vendor

Indsættes som ’ServiceProvider/Vendor’ i behandlingsrelationsservicens treatmentRelationRequestBody.

treatment.relation.serviceprovider.version

Indsættes som ’ServiceProvider/Version’ i behandlingsrelationsservicens treatmentRelationRequestBody.

treatment.relation.external.reference.id

Indsættes som ’ExternalReferenceId’ i behandlingsrelationsservicens treatmentRelationRequestBody.

treatment.relation.timelimit.offset

Angiver antallet af dage fra SFSK-kaldtidspunktet, der skal indsættes som tidsstemplet ’TimeLimit’ i behandlingsrelationsservicens treatmentRelationRequestBody.

treatment.relation.lookup.timeinterval.start.offset

Angiver antallet af dage fra SFSK-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/start’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før kaldtidspunktet.

treatment.relation.lookup.timeinterval.end.offset

Angiver antallet af dage fra SFSK-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/end’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før kaldtidspunktet.

treatment.relation.acceptable.relations

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation.

treatment.relation.followup.relations

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, Kommasepareret liste af kategorier.

Nationale roller property

dk.nsp.sfsk.nationale.rollerNationale roller for medarbejderopslag

MinLog property

minlog.query.childcustodyholderMinLog activity text forældremyndighedsindehaver
minlog.query.proxyholderMinLog activity text fuldmagtshaver
minlog.query.default

MinLog activity text ingen relation er angivet

minlog.citizen.user.title

Værdi af Role, som sendes til Minlog, hvis brugertypen er Borger.

minlog.healthcareprofessional.unknown.user.title

Værdi af Role, som sendes til Minlog, hvis brugertypen er Sundhedsfaglig og Role ikke kan bestemmes vha. uddannelseskode eller national rolle.

log4j konfiguration

Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen

Se yderligere opsætning i installationsvejledningen.

Log

Auditlog

Her logges forespørgsler til servicen.

...

Code Block
titleauditlog_RetrieveDocumentSet
collapsetrue
{
  "time": "2021-07-01T07:33:11.443Z",
  "category": "dk.sds.nsp.audit.log.sfsk",
  "audit": {
    "timestamp": "2021-07-01T09:33:10.007+02:00",
    "components": [
      {
        "component": "SFSK",
        "contexts": [
          {
            "context": "DocumentRepository_RetrieveDocumentSet",
            "information": [
              {
                "key": "værdispring",
                "type": "RPI",
                "value": "false"
              },
              {
                "key": "document_entry.0.homecommunityid",
                "type": "RPI",
                "value": ""
              },
              {
                "key": "document_entry.0.repositoryid",
                "type": "RPI",
                "value": "1.1.1"
              },
              {
                "key": "document_entry.0.documentid",
                "type": "RPI",
                "value": "1.2.208.176.43210.8.10.12^91a2307e-f948-4c71-aa69-d72c5e41dac9"
              }
            ]
          }
        ]
      }
    ]
  },
  "access": {
    "code": 200,
    "duration": 1017,
    "httpHeaders": {
      "Content-Type": "multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:ce184aa9-46e0-4dd5-b4d4-3906cc232ed3\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
    },
    "httpHost": "localhost",
    "idCardAttributes": {
      "medcom:CareProviderID": "33257872",
      "medcom:CareProviderName": "Sundhedsdatastyrelsen",
      "medcom:ITSystemName": "SFSK",
      "sosi:AuthenticationLevel": "3",
      "sosi:IDCardID": "F5qM/3t3mok2gDB/GAY1Fw==",
      "sosi:IDCardType": "system",
      "sosi:IDCardVersion": "1.0.1"
    },
    "method": "POST",
    "path": "/sfsk/iti43",
    "query": "",
    "port": 8060,
    "protocol": "http",
    "reqSize": 7191,
    "resSize": 7940,
    "soapHeaders": {
      "Issuer": "TEST2-NSP-STS",
      "MessageID": "AAABemD8XsT8P8AKfoFPvVNPU0k=",
      "NameID": "SubjectDN={SERIALNUMBER=CVR:33257872-FID:28250866 + CN=SFSK (funktionscertifikat), O=Sundhedsdatastyrelsen // CVR:33257872, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXXIV CA, O=TRUST2408, C=DK},CertSerial={1604117906}",
      "w3Action": "urn:ihe:iti:2007:RetrieveDocumentSet",
      "w3MessageID": "urn:uuid:ad9bc9e1-dced-4ae9-8065-a6d56631cdff",
      "w3To": "http://localhost:8060/sfsk/iti43"
    },
    "threadId": "default task-1",
    "time": "2021-07-01T09:33:10.007+02:00",
    "stats": {
      "handlerDuration": 390,
      "RequestContentDuration": 161,
      "ResponseContentDuration": 0,
      "SecurityProtocolRequestDuration": 184,
      "SecurityProtocolResponseDuration": 0,
      "bufferAllocated": false,
      "usedBuffers": 1,
      "activeBuffersInPool": 1,
      "idleBuffersInPool": 1
    }
  }
}


Whitelisting af anvendere

De enkelte anvendere skal whitelistes til at bruge SFSK. Der findes en tabel whitelist til dette formål. Det er anvenders certifikat, der whitelistes.

...

Code Block
titleSQL til at indsætte certifkatoplysninger i whitelisttabel
INSERT INTO whitelist (subjectserialnumber, note) VALUES ('CVR:46837428-UID:27910135', 'Oprettet fra supportsag ASCP00155779');


Overvågning

SFSK udstiller en overvågningsside, som findes i listen af komponenter i afsnit 2.

5.1. Fortolkning af HTML overvågningsside

DROS-overvågningssiden returnerer enten:

  • HTTP 200, hvis servicen i øjeblikket kører fint.
  • HTTP 500, hvis der er opstået en fejl der kræver indgriben.

5.2. Overvågningstyper

Det overvåges for hver backend, om kaldene til backenden går galt. Det kan konfigureres, hvor mange kald i træk der må gå galt, før en backend betragtes som 'død'.

Eksempler på status-sider

200 OK

200 OK
---------------------------------------
STATUS

ITI18 backend alive: true
ITI43 backend alive: true

Det fremgår for hver backend, om kaldene til den går godt eller ej.

500 Internal Server Error

500 Internal Server Error
---------------------------------------
STATUS

ITI18 backend alive: true
ITI54 backend alive: false

Hvis kaldene til backend ikke kan udføres, så returneres statuskode 500.

...