Page History
Komponenter
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
Konfiguration
Servicekonfiguration
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
Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen
Se yderligere opsætning i installationsvejledningen.
Overvågning
DROS 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 203, 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
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.
203 Non-authoritative Information
203 Non-authoritative Information
---------------------------------------
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 203.
Auditlogning
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. |
Nedenfor ses eksempler fra auditloggen ved kald af de forskellige snitflader.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"time":"2021-05-03T21:04:01.676Z",
"category":"dk.sds.nsp.audit.log.dros/registerondemanddocumententry",
"audit":{
"timestamp":"2021-05-03T23:03:59.454+02:00",
"components":[
{
"component":"DROS/RegisterOnDemandDocumentEntry",
"contexts":[
{
"context":"urn:uuid:5544575c-8cc6-45de-9db5-3059131670a2",
"information":[
{
"key":"DocumentId",
"type":"RPI",
"value":"7943305690136181220.5733255671233166403.1620075838248"
},
{
"key":"DocumentType",
"type":"RPI",
"value":"39289-4"
},
{
"key":"CitizenId",
"type":"RPI",
"value":"010101010101"
},
{
"key":"FormatCode",
"type":"RPI",
"value":"urn:ad:dk:medcom:appointment"
},
{
"key":"SubmissionSetId",
"type":"RPI",
"value":"4755022980679903663.6588331163711420386.1620075838319"
}
]
}
]
}
]
},
"access":{
"code":200,
"duration":1216,
"httpHeaders":{
"Content-Type":"application/soap+xml; charset=UTF-8"
},
"httpHost":"localhost",
"idCardAttributes":{
"medcom:CareProviderID":"46837428",
"medcom:CareProviderName":"Statens Serum Institut",
"medcom:ITSystemName":"Test",
"sosi:AuthenticationLevel":"3",
"sosi:IDCardID":"m/a4UIUpkKPnk/My7ueRsw==",
"sosi:IDCardType":"system",
"sosi:IDCardVersion":"1.0.1"
},
"method":"POST",
"path":"/dros/iti61",
"query":"",
"port":8060,
"protocol":"http",
"reqSize":14130,
"resSize":460,
"soapHeaders":{
"Issuer":"TEST2-NSP-STS",
"MessageID":"AAABeTQLfBBVLIDLtfEB2VNPU0k=",
"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
"w3Action":"urn:ihe:iti:2010:RegisterOnDemandDocumentEntry",
"w3MessageID":"urn:uuid:9ebc494f-a276-462a-b6e9-3ee6c69a1bc7",
"w3To":"http://localhost:8060/dros/iti61"
},
"threadId":"default task-1",
"time":"2021-05-03T23:03:59.443+02:00",
"stats":{
"handlerDuration":965,
"RequestContentDuration":70,
"ResponseContentDuration":0,
"SecurityProtocolRequestDuration":587,
"SecurityProtocolResponseDuration":0,
"bufferAllocated":true,
"usedBuffers":2,
"activeBuffersInPool":2,
"idleBuffersInPool":0
}
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"time":"2021-05-03T21:04:04.485Z",
"category":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
"audit":{
"timestamp":"2021-05-03T23:04:02.429+02:00",
"components":[
{
"component":"DROS/ProvideAndRegisterDocumentSetB",
"contexts":[
{
"context":"urn:uuid:db9d8684-e06c-4c65-af58-0137e6646733",
"information":[
{
"key":"DocumentId",
"type":"RPI",
"value":"6687982596253355541.8162358355401787246.1620075842168"
},
{
"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":"5335953767189358702.7648709839978447749.1620075842178"
}
]
}
]
}
]
},
"access":{
"code":200,
"duration":1878,
"httpHeaders":{
"Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:06457de8-0189-4a1e-ba98-66da58d79ce7\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
},
"httpHost":"localhost",
"idCardAttributes":{
"medcom:CareProviderID":"46837428",
"medcom:CareProviderName":"Statens Serum Institut",
"medcom:ITSystemName":"Test",
"sosi:AuthenticationLevel":"3",
"sosi:IDCardID":"P0OgWK2GAfYY6IhdSoPMRg==",
"sosi:IDCardType":"system",
"sosi:IDCardVersion":"1.0.1"
},
"method":"POST",
"path":"/dros/iti41",
"query":"",
"port":8060,
"protocol":"http",
"reqSize":24833,
"resSize":699,
"soapHeaders":{
"Issuer":"TEST2-NSP-STS",
"MessageID":"AAABeTQLioY3nvNwrBEcjVNPU0k=",
"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
"w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
"w3MessageID":"urn:uuid:cd7f3bdb-647b-4766-864a-0070a8168e73",
"w3To":"http://localhost:8060/dros/iti41"
},
"threadId":"default task-3",
"time":"2021-05-03T23:04:02.429+02:00",
"stats":{
"handlerDuration":174,
"RequestContentDuration":17,
"ResponseContentDuration":0,
"SecurityProtocolRequestDuration":140,
"SecurityProtocolResponseDuration":0,
"bufferAllocated":false,
"usedBuffers":4,
"activeBuffersInPool":4,
"idleBuffersInPool":3
}
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"time":"2021-05-03T21:04:09.776Z",
"category":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
"audit":{
"timestamp":"2021-05-03T23:04:08.786+02:00",
"components":[
{
"component":"DROS/ProvideAndRegisterDocumentSetB",
"contexts":[
{
"context":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62",
"information":[
{
"key":"DocumentId",
"type":"RPI",
"value":"7371703074493874590.8623536501958069031.1620075848759"
},
{
"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":"6073800182764791022.8734924007446367108.1620075848770"
},
{
"key":"AssociationSourceId",
"type":"RPI",
"value":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62"
},
{
"key":"AssociationTargetId",
"type":"RPI",
"value":"urn:uuid:90a33869-727b-4af7-9a6a-ef030107e341"
},
{
"key":"AssociationType",
"type":"RPI",
"value":"urn:ihe:iti:2007:AssociationType:RPLC"
}
]
}
]
}
]
},
"access":{
"code":200,
"duration":912,
"httpHeaders":{
"Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:5f90d79b-d113-4884-a9ce-1c4434a79f39\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
},
"httpHost":"localhost",
"idCardAttributes":{
"medcom:CareProviderID":"46837428",
"medcom:CareProviderName":"Statens Serum Institut",
"medcom:ITSystemName":"Test",
"sosi:AuthenticationLevel":"3",
"sosi:IDCardID":"rvUKALhPjCol2nJTJqDt+A==",
"sosi:IDCardType":"system",
"sosi:IDCardVersion":"1.0.1"
},
"method":"POST",
"path":"/dros/iti41",
"query":"",
"port":8060,
"protocol":"http",
"reqSize":25071,
"resSize":699,
"soapHeaders":{
"Issuer":"TEST2-NSP-STS",
"MessageID":"AAABeTQLpEik3TDY2H298VNPU0k=",
"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
"w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
"w3MessageID":"urn:uuid:f44dfe0a-c002-4a72-8e89-80b3df6b2370",
"w3To":"http://localhost:8060/dros/iti41"
},
"threadId":"default task-8",
"time":"2021-05-03T23:04:08.786+02:00",
"stats":{
"handlerDuration":73,
"RequestContentDuration":6,
"ResponseContentDuration":0,
"SecurityProtocolRequestDuration":51,
"SecurityProtocolResponseDuration":0,
"bufferAllocated":false,
"usedBuffers":4,
"activeBuffersInPool":4,
"idleBuffersInPool":4
}
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"time":"2021-05-03T21:04:07.307Z",
"category":"dk.sds.nsp.audit.log.dros/registerdocumentsetb",
"audit":{
"timestamp":"2021-05-03T23:04:07.03+02:00",
"components":[
{
"component":"DROS/RegisterDocumentSetB",
"contexts":[
{
"context":"urn:uuid:ac0ce91a-320d-4370-839f-25598dd0bfab",
"information":[
{
"key":"DocumentId",
"type":"RPI",
"value":"9139873772290913932.1273906388098236954.1620075847000"
},
{
"key":"DocumentType",
"type":"RPI",
"value":"39289-4"
},
{
"key":"CitizenId",
"type":"RPI",
"value":"010101010101"
},
{
"key":"FormatCode",
"type":"RPI",
"value":"urn:ad:dk:medcom:appointment"
},
{
"key":"SubmissionSetId",
"type":"RPI",
"value":"8587115512321077717.2026797048612801310.1620075847001"
}
]
}
]
}
]
},
"access":{
"code":200,
"duration":250,
"httpHeaders":{
"Content-Type":"application/soap+xml; charset=UTF-8"
},
"httpHost":"localhost",
"method":"POST",
"path":"/dros/iti42noDgws",
"query":"",
"port":8060,
"protocol":"http",
"reqSize":8696,
"resSize":919,
"soapHeaders":{
"w3Action":"urn:ihe:iti:2007:RegisterDocumentSet-b",
"w3MessageID":"urn:uuid:c270fc64-56f2-4b6b-b65b-4caf7623d19a",
"w3To":"http://localhost:8060/dros/iti42noDgws"
},
"threadId":"default task-6",
"time":"2021-05-03T23:04:07.03+02:00",
"stats":{
"handlerDuration":22,
"RequestContentDuration":1,
"ResponseContentDuration":0,
"SecurityProtocolRequestDuration":0,
"SecurityProtocolResponseDuration":0,
"bufferAllocated":false,
"usedBuffers":2,
"activeBuffersInPool":2,
"idleBuffersInPool":6
}
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"time":"2021-05-03T21:54:21.875Z",
"category":"dk.sds.nsp.audit.log.dros/updatedocumentset",
"audit":{
"timestamp":"2021-05-03T23:54:21.673+02:00",
"components":[
{
"component":"DROS/UpdateDocumentSet",
"contexts":[
{
"context":"8bee75d3-9e1e-4646-b440-ffb6e13f8099",
"information":[
{
"key":"AssociationSourceId",
"type":"RPI",
"value":"8bee75d3-9e1e-4646-b440-ffb6e13f8099"
},
{
"key":"AssociationTargetId",
"type":"RPI",
"value":"urn:uuid:bf963b2e-7fd0-4b25-9c1b-b9762af656f7"
},
{
"key":"AssociationType",
"type":"RPI",
"value":"urn:ihe:iti:2010:AssociationType:UpdateAvailabilityStatus"
},
{
"key":"AssociationStatus",
"type":"RPI",
"value":"Deprecated"
}
]
}
]
}
]
},
"access":{
"code":200,
"duration":166,
"httpHeaders":{
"Content-Type":"application/soap+xml; charset=UTF-8"
},
"httpHost":"localhost",
"idCardAttributes":{
"medcom:CareProviderID":"46837428",
"medcom:CareProviderName":"Statens Serum Institut",
"medcom:ITSystemName":"Test",
"sosi:AuthenticationLevel":"3",
"sosi:IDCardID":"sTLZT4F425EnY6GleFiNcA==",
"sosi:IDCardType":"system",
"sosi:IDCardVersion":"1.0.1"
},
"method":"POST",
"path":"/dros/iti57",
"query":"",
"port":8060,
"protocol":"http",
"reqSize":9253,
"resSize":460,
"soapHeaders":{
"Issuer":"TEST2-NSP-STS",
"MessageID":"AAABeTQ5nWIfoju4xRpdM1NPU0k=",
"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
"w3Action":"urn:ihe:iti:2010:UpdateDocumentSet",
"w3MessageID":"urn:uuid:e81108e0-603e-4662-8320-689c1e64a2f9",
"w3To":"http://localhost:8060/dros/iti57"
},
"threadId":"default task-12",
"time":"2021-05-03T23:54:21.673+02:00",
"stats":{
"handlerDuration":33,
"RequestContentDuration":1,
"ResponseContentDuration":0,
"SecurityProtocolRequestDuration":27,
"SecurityProtocolResponseDuration":0,
"bufferAllocated":false,
"usedBuffers":2,
"activeBuffersInPool":2,
"idleBuffersInPool":6
}
}
} |