Dette dokument dækker følgende komponenter på NSP:
Dokumentregistrerings- og oprettelsesservice
Type: Webservice
Filnavn: dros.war
Url: <serverurl>/dros
Servicecheckurl: <serverurl>/drs/status
Versionurl: <serverurl>/dros/health returnerer en json struktur med denne
Grundlæggende konfiguration foregår ved redigering i filen dros.properties, der placeres i følgende WildFly modul:
/pack/wildfly8/modules/sds/dros/configuration/main/
Moduldefinitionen er at finde i sourcekoden til dros under:
/dros-war/etc/modules/sds/dros/configuration/main/module.xml
I filen skal følgende properties være definerede:
Property | Beskrivelse |
dros.url.prefix | URL prefix der indsættes i wsdl'er og bruges af dks-servlet. |
dros.app.name | Anvendes af dks-servlet |
iti41.service.endpoint | Endpoint på ITI41-backend. |
iti41.service.security.require.person | Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false) Default: false |
iti42.service.endpoint | Endpoint på ITI42-backend. |
iti42.service.security.require.person | Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false) Default: false |
iti57.service.endpoint | Endpoint på ITI57-backend. |
iti57.service.security.require.person | Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false) Default: false |
iti61.service.endpoint | Endpoint på ITI61-backend. |
iti61.service.security.require.person | Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false) Default: false |
dros.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. |
Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen
Se yderligere opsætning i installationsvejledningen.
DROS udstiller en overvågningsside, som findes i listen af komponenter i afsnit 2.
DROS-overvågningssiden returnerer enten:
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'.
200 OK
---------------------------------------
STATUS
ITI41 backend alive: true
ITI42 backend alive: true
ITI57 backend alive: true
ITI61 backend alive: true
Det fremgår for hver backend, om kaldene til den går godt eller ej.
500 Internal Server Error
---------------------------------------
STATUS
ITI41 backend alive: true
ITI42 backend alive: false
ITI57 backend alive: true
ITI61 backend alive: true
Hvis kaldene til backend ikke kan udføres, så returneres statuskode 500.
Hvert servicekald medfører en ny indgang i auditloggen, som er udfyldt som følger:
* Component: DROS/<operation>, hvor <operation> er navnet på den operation der kaldes, f.eks. ProvideAndRegisterDocumentSetB.
* Context: Udfyldes med DocumentId. Hvis requestet indeholder flere dokumenter, oprettes en context for hvert dokument.
For hver context skrives følgende informationer
Felt | Type | Indhold |
---|---|---|
DocumentId | RegularPersonalInformation | DokumentId'et. |
DocumentType | RegularPersonalInformation | Dokumentets TypeCode |
CitizenId | RegularPersonalInformation | PatientId, som dokumentet omhandler. |
FormatCode | RegularPersonalInformation | FormatCode |
Audit-loggens indhold kan f.eks. se således ud:
{ "time": "2021-04-22T09:19:17.849Z", "category": "dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb", "audit": { "timestamp": "2021-04-22T11:19:17.349+02:00", "components": [ { "component": "DROS/ProvideAndRegisterDocumentSetB", "contexts": [ { "context": "4782730166889980929.642387763907611323.1619083157334", "information": [ { "key": "DocumentId", "type": "RPI", "value": "4782730166889980929.642387763907611323.1619083157334" }, { "key": "DocumentType", "type": "RPI", "value": "39289-4" }, { "key": "CitizenId", "type": "RPI", "value": "ABCDE" }, { "key": "FormatCode", "type": "RPI", "value": "urn:ad:dk:medcom:appointment" } ] } ] } ] }, "access": { "code": 200, "duration": 466, "httpHeaders": { "Content-Type": "multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:574b00c3-614c-480e-8e53-fabf30483826\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\"" }, "httpHost": "localhost", "idCardAttributes": { "medcom:CareProviderID": "25450442", "medcom:CareProviderName": "LAKESIDE A/S", "medcom:ITSystemName": "Test", "medcom:UserAuthorizationCode": "CBNH1", "medcom:UserOccupation": "Læge", "medcom:UserRole": "7170", "sosi:AuthenticationLevel": "4", "sosi:IDCardID": "AIeHms5lTO3yjiA6nyYZ/A==", "sosi:IDCardType": "user", "sosi:IDCardVersion": "1.0.1" }, "method": "POST", "path": "/dros/iti41", "query": "", "port": 8060, "protocol": "http", "reqSize": 25897, "resSize": 699, "soapHeaders": { "Issuer": "TEST2-NSP-STS", "MessageID": "AAABePjgX2EQDhOrnwEA8FNPU0k=", "NameID": "SubjectDN={CN=Casper Rasmussen + SERIALNUMBER=CVR:25450442-RID:40252666, O=LAKESIDE A/S // CVR:25450442, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058808}", "w3Action": "urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b", "w3MessageID": "urn:uuid:11c90b96-41c9-464e-99c4-82e0bcac3937", "w3To": "http://localhost:8060/dros/iti41" }, "threadId": "default task-22", "time": "2021-04-22T11:19:17.349+02:00", "stats": { "handlerDuration": 30, "RequestContentDuration": 2, "ResponseContentDuration": 0, "SecurityProtocolRequestDuration": 22, "SecurityProtocolResponseDuration": 0, "bufferAllocated": false, "usedBuffers": 4, "activeBuffersInPool": 4, "idleBuffersInPool": 4 } } } |