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 |
| SubmissionSet | RegularPersonalInformation | UniqueId fra SubmissionSet i request. |
| AssociationSourceId | RegularPersonalInformation | SourceId fra association, hvis dokumentet er enten source eller target på association. |
| AssociationTargetId | RegularPersonalInformation | TargetId fra association, hvis dokumentet er enten source eller target på association. |
| AssociationType | RegularPersonalInformation | AssociationType fra association, hvis dokumentet er enten source eller target på association. Den fulde URI logges. |
Audit-loggens indhold kan f.eks. se således ud:
{
"time": "2021-05-03T13:21:23.594Z",
"category": "dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
"audit": {
"timestamp": "2021-05-03T15:21:22.805+02:00",
"components": [
{
"component": "DROS/ProvideAndRegisterDocumentSetB",
"contexts": [
{
"context": "8012778957352312333.8195870432491555855.1620048082785",
"information": [
{
"key": "DocumentId",
"type": "RPI",
"value": "8012778957352312333.8195870432491555855.1620048082785"
},
{
"key": "DocumentType",
"type": "RPI",
"value": "39289-4"
},
{
"key": "CitizenId",
"type": "RPI",
"value": "ABCDE"
},
{
"key": "FormatCode",
"type": "RPI",
"value": "urn:ad:dk:medcom:appointment"
},
{
"key": "SubmissionSetId",
"type": "RPI",
"value": "5363467960766715736.2650485503074941811.1620048082795"
},
{
"key": "AssociationSourceId",
"type": "RPI",
"value": "urn:uuid:2b0480b9-51c3-42af-ab2a-104e058efe81"
},
{
"key": "AssociationTargetId",
"type": "RPI",
"value": "urn:uuid:058cd8e6-b086-429a-8e6c-49c68afa99ae"
},
{
"key": "AssociationType",
"type": "RPI",
"value": "urn:ihe:iti:2007:AssociationType:RPLC"
}
]
}
]
}
]
},
"access": {
"code": 200,
"duration": 742,
"httpHeaders": {
"Content-Type": "multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:29cd815d-7bc4-4ec4-88b8-034c4e4884bd\"; 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": "1z7xfwmPZ3UQkJiqFCOOQw==",
"sosi:IDCardType": "user",
"sosi:IDCardVersion": "1.0.1"
},
"method": "POST",
"path": "/dros/iti41",
"query": "",
"port": 8060,
"protocol": "http",
"reqSize": 25899,
"resSize": 699,
"soapHeaders": {
"Issuer": "TEST2-NSP-STS",
"MessageID": "AAABeTJj92/5/G2k0InS/1NPU0k=",
"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:e7df20de-b70e-47a0-a723-869929dfb135",
"w3To": "http://localhost:8060/dros/iti41"
},
"threadId": "default task-10",
"time": "2021-05-03T15:21:22.805+02:00",
"stats": {
"handlerDuration": 40,
"RequestContentDuration": 3,
"ResponseContentDuration": 0,
"SecurityProtocolRequestDuration": 28,
"SecurityProtocolResponseDuration": 0,
"bufferAllocated": false,
"usedBuffers": 4,
"activeBuffersInPool": 4,
"idleBuffersInPool": 4
}
}
}
|