Page History
...
- DDSRegistry
- Type: Webservice
- Filnavn: ddsregistry.war
- Servicecheckurl: <serverurl>/ddsregistry/servicecheck
- Statusurl: <serverurl>/ddsregistry/status
- Versionurl: <serverurl>/ddsregistry/version
- Endpoint for RegistryStoredQuery, RegisterDocumentSetB og RegisterOnDemandDocumentEntry:
- Url: <serverurl>/ddsregistry
- DKS-konfiguration: <serverurl>/ddsregistry/dccconfig/dks
- Url: <serverurl>/ddsregistry/metadataupdate
- DKS-konfiguration: <serverurl>/ddsregistry/metadataupdate/dccconfig/dks
DDS Registry komponenten anvender desuden ConsentVerification-servicen, MinLog Registration-servicen, Behandlingsrelationsservicen, STS’en samt HealthShare Document Registry servicen.
...
DDS Registry afhænger af tilstedeværelsen af en række andre services, og ved fejl i disse vil DDS Registry fejle tilsvarende. Disse services er:
- HealthShare Document RegistryNationale registry NXRG samt andre bagvedliggende registry services (som konfigureret i databasen)
- STS
- Samtykkeverifikationsservice
...
Property | Beskrivelse |
---|---|
idcard.version | Servicen afviser kald, hvor ID-kort i Security-header ikke har versionsnummer opgivet som værdien af denne property. Angives til 1.0.1. |
sts.test.mode | Angiver med værdien true at servicen benytter test-STS. Værdien skal være ’false’ i drift, hvorved den rigtige SOSI-STS anvendes. |
log.config.file | Angiver placering af log4j properties. |
registry.invoker.use.fastinfoset | Angiver med værdien true, at servicen skal tilbyde anvendelse af Fast Infoset ved kommunikation med XDS Registries. Ved værdien false foregår kommunikationen med vanlig XML. |
client.consentverification.properties | Angiver placering af properties til kald af Samtykkeverifikationsservicen. |
client.minlogregistration.properties | Angiver placering af properties til kald af MinLog Registreringsservicen. |
client.documentregistry.properties | Angiver placering af properties til kald af HS Document Registrydet nationale registry (NXRG) samt andre bagvedliggende registry services. |
client.treatment.relation.properties | Angiver placering af properties til kald af behandlingsrelationsservicen. |
treatment.relation.service.invoke | Angiver med værdien true, at behandlingsrelationsservicen skal kaldes. Værdien false bevirker, at behandlingsrelationsservicen ikke kaldes. |
minlog.query.default | Teksten der sendes til MinLog registreringsservicen, når en sundhedsperson laver opslag. |
minlog.query.consentoverride | Teksten der sendes til MinLog registreringsservicen, når en sundhedsperson laver opslag med tilsidesættelse af samtykketjek (værdispring). |
servicestatuscheck.consentverification.failurethreshold | Antal kald til samtykkeverifikationsservicen der må fejle før der meldes 500 på statussnitfladen |
servicestatuscheck.treatmentrelation.failurethreshold | Antal kald til BRS der må fejle før der meldes 500 på statussnitfladen |
servicestatuscheck.minlog.failurethreshold | Antal kald til MinLog der må fejle før der meldes 500 på statussnitfladen |
servicestatuscheck.database.failurethreshold | Antal kald til lokal database der må fejle før der meldes 500 på statussnitfladen |
servicestatuscheck.unlockdelay | Antal sekunder fra statussnitfladen melder 500 til at antal fejl kald nulstilles. |
ap.assigning.authorities.filename | Angiver fil med liste af AP, der indgår i komplekseforløb pilotprojektet. |
ap.patient.consent.filename | Angiver fil med liste af patienter, der har givet samtykke til AP. |
sts.keystore | Keystore, der indeholder DDS Registrys funktionscertifikat |
sts.keystore.password | Password til sts.keystore |
sts.endpoint | Endpointet, hvor DDS Registry skal trække sit SOSI IDkort på baggrund af sts.keystore |
idcard.subject.id.type | Subjecttype for IDKortet |
idcard.subject.id | Subjectid for IDKortet |
idcard.subject.name | Subjectnavn for IDKortet |
idcard.level | Sikkerhedsniveau for IDkortet |
idcard.system.name | Systemnavn i IDkortet |
whitelisted.level3.cvrs | Liste (kommasepareret) af whitelistede CVR numre og certifikater som DDS'en tillader kald med niveau 3 Idkort fra (se afsnit nedenfor vedr. whitelisting for detaljer vedr. format) |
dds.citizen.powerofattorney.privileges | Det fuldmagtsprivilegie, der tillader at en borger tilgår en anden borgers data via DDS |
Bemærk at overstregede properties ikke længere indlæses af DDS Registry, men er hardcodet som følge af ændring i DGWS håndtering. Værdierne skal stadig være tilgængelige i properties filen.
validation.response.ydernummer | Valideringsniveau for ydernummer-validering. Eksempel: WARNING, OFF. Default: WARNING |
oid.assignment.ydernummer | OID for ydernummer. Default: 1.2.208.176.1.4 |
Bemærk at overstregede properties ikke længere indlæses af DDS Registry, men er hardcodet som følge af ændring i DGWS håndtering. Værdierne skal stadig være tilgængelige i properties filen.
I den/de properties-filerI den/de properties-filer, der udpeges af de forskellige ”client.*.properties” properties skal flg. properties defineres:
Property | Beskrivelse | Værdier |
---|---|---|
verification.wsdl.location | Angiver service endpoint for Samtykkeverifikationsservicen | |
registration.log.organisation_name | Angiver standard organisationsnavnet, der bliver sendt til MinLog Registreringsservicen. | |
treatment.relation.wsdl.location | Angiver service endpoint for behandlingsrelationsservicen | |
treatment.relation.service.timeout | Timeout givet i millisekunder anvendt ved kald til behandlingsrelationsservicen | |
verification.invoker.timeout | Timeout givet i millisekunder anvendt ved kald til samtykke verifikationsservicen. | |
minlog.producer.bootstrap.servers | Kafka bootstrap servers der anvendes til MinLog registrering. | |
minlog.producer.client.id | Kafka klient id anvendt til MinLog registrering. | |
minlog.producer.key.serializer | Kafka key serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer" | |
minlog.producer.value.serializer | Kafka value serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer" | |
minlog.topic | Kafka topic til MinLog registrering. | |
dds.minlog.on.idcard.level3.enabled | Angiver, om DDS skal minlogge, når der kaldes med SOSI Idkort niveau 3 | Skal sættes: true, false |
personinformation.maxTotalConnections | Konfiguration af client pool til kald af CPRExists service | |
personinformation.defaultMaxConnectionsPerRoute | Konfiguration af client pool til kald af CPRExists service | |
personinformation.url | Peger på endpointet for PersonInformationServicen. |
Udover ovenstående skal følgende angives i den properties fil, der er udpeget i propertien ”client.treatment.relation.properties”. Udover ovenstående skal følgende angives i den properties fil, der er udpeget i propertien ”client.treatment.relation.properties”. Disse forholder sig til værdier i SOAP requesten til behandlingsrelationsservicen og de følgende beskrivelser refererer til elementer i denne.
...
Code Block |
---|
idcard.version = 1.0.1 sts.test.mode = true log.config.file=ddsregistry.log4j.properties client.consentverification.properties = DDSRegistry.properties client.minlogregistration.properties = DDSRegistry.properties client.documentregistry.properties = DDSRegistry.properties client.treatment.relation.properties = DDSRegistry.properties treatment.relation.service.invoke=true treatment.relation.service.invoke=true treatment.relation.service.timeout=3000 treatment.relation.wsdl.location = http://localhost:9090/ddsservices-brs-stub/BRSFacadeService/BRSFacadeStub?wsdl verification.wsdl.location=http://localhost:9090/consent-verification/service?wsdl verification.invoker.timeout=30000 treatment.relation.serviceprovider.vendor=vendor treatment.relation.serviceprovider.version=version treatment.relation.lookup.timeinterval.start.offset=-1 treatment.relation.lookup.timeinterval.end.offset=1 treatment.relation.timelimit.offset=90 treatment.relation.queryable.cvr=19343634 treatment.relation.external.reference.id= treatment.relation.acceptable.relations.hospital=A,B,C treatment.relation.followup.relations.hospital=All treatment.relation.acceptable.relations.doctor=C,D,E treatment.relation.followup.relations.doctor=All treatment.relation.acceptable.relations.organization=A,B,C treatment.relation.followup.relations.organization=All consent.check.sor.assigning.authorities.oid=1.2.208.176.1.1,1.2.208.176.1 consent.check.shak.assigning.authorities.oid= consent.check.ynumber.assigning.authorities.oid= registering.allowed.sor.assigning.authorities.oid=1.2.208.176.1.1,1.2.208.176.1 registering.allowed.shak.assigning.authorities.oid= registering.allowed.ynumber.assigning.authorities.oid= servicestatuscheck.consentverification.failurethreshold = 1 servicestatuscheck.treatmentrelation.failurethreshold = 1 servicestatuscheck.minlog.failurethreshold = 1 servicestatuscheck.database.failurethreshold = 1 ap.assigning.authorities.filename=/pack/wildfly8/modules/nsi/ddsregistry/config/main/ap_authorities.txt ap.patient.consent.filename=/pack/wildfly8/modules/nsi/ddsregistry/config/main/ap_patients.txt idcard.subject.id.type=medcom:cvrnumber idcard.subject.id=46837428 idcard.subject.name=NETS DANID A/S - TU VOCES gyldig idcard.level=3 idcard.system.name=Dokumentdelingsservicen sts.endpoint=http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService sts.keystore=Statens_Serum_Institut_VOCES.jks sts.keystore.password=Test1234 minlog.producer.bootstrap.servers=kafka:9092 minlog.producer.client.id=DdsMinLog2-producer minlog.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer minlog.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer minlog.topic=MINLOG_TOPIC |
Konfiguration af indeks
De dokumentindeks, hvortil DDSRegistry videresender opslag og registrering af dokumenter, er konfigureret i tabellen documentregistry i databasen documentsources.
dds.minlog.on.idcard.level3.enabled=true
personinformation.maxTotalConnections=200
personinformation.defaultMaxConnectionsPerRoute=20
personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1 |
Konfiguration af indeks
De dokumentindeks, hvortil DDSRegistry videresender opslag og registrering af dokumenter, er konfigureret i tabellen documentregistry i databasen documentsources.
Kolonne | Type | Beskrivelse |
---|---|---|
documentregistryid | int | unikt |
Kolonne | Type | Beskrivelse |
documentregistryid | int | unikt id for rækken |
documentregistryserviceurl | streng | Adressen for indeksets webservice-endpoint givet som URI. |
documentregistryfriendlyname | streng | Et relativt brugervenligt navn for indekset, der indgår i fejlbeskeden, når indekset ikke svarer rettidigt eller ikke kan tilgås. |
documentregistryservicenamespace | streng | Namespace anvendt af indeksets webservice-endpoint. Standard-værdien er urn:ihe:iti:xds-b:2007. |
documentregistrylocal | boolsk værdi | Hvorvidt indekset er lokalt eller ej. Dokumentdelingsservicen skal have præcis et lokalt indeks, der benyttes ved registrering af dokumenter. Værdien 1 anfører lokalt indeks, 0 ellers. |
documentregistrytimeoutvalue | int | Timeout givet i millisekunder anvendt ved Dokumentdelingsservicens opslag mod indekset, dvs. timeout for kald af indeksets webservice. |
documentregistryactive | boolsk værdi | Hvorvidt indekset anvendes eller ej. Værdien 1 anfører, at indekset anvendes, 0 ellers. |
documentregistryservicename | streng | Navnet på service-gruppen for indeksets webservice. Standard-værdien er DocumentRegistry_Service. |
documentregistryfailurethreshold | int | Grænseværdi for hvor mange kald til indekset der må fejle før monitoreringssnitfladen melder fejl. |
documentregistrysoapversion | streng | Hvorvidt der skal anvendes headere af type HSUID, DGWS (Security og Medcom) og Medcom fra DGWS. |
documentregistryititransaction | streng | Beskrivelse af hvilken ITI transaction, der kan anvendes på dokumentindekset. Understøtter en dokumentindeks flere ITI transactions skal der laves en indgang per ITI transaction. Se Tabel 4 for lovlige værdier, hvoraf der skal anføres en enkelt. |
...
Værdi | Beskrivelse |
---|---|
ITI-18 | Benyttes til opslag på metadata via Registry Stored Query ITI-18 transaktionen. |
ITI-42 | Benyttes til registrering af metadata for dokument(er) med fast (Stable) indhold via Register Document Set-b ITI-42 transaktionen. |
ITI-57 | Benyttes til opdatering af registrerede metadata via Update Document Set ITI-57 transaktionen. |
ITI-61 | Benyttes til registrering af metadata for dokument(er) med dynamisk (On-demand) indhold via Register On-Demand Document Entry ITI-61 transaktionen. |
Tabel 4 Værdier for documentregistryititransaction, der anfører hvilken ITI transaction, den givne indgang kan anvendes med.
Tabel 4 Værdier for documentregistryititransaction, der anfører hvilken ITI transaction, den givne indgang kan anvendes med.
Følgende er et eksempel Følgende er et eksempel på konfigurering af et lokalt, aktivt indeks:
Kolonne | Værdi |
---|---|
documentregistryid | 1 |
documentregistryserviceurl | http://sv-proj-093:57774/csp/public/hsbus/HS.IHE.XDSb.Registry.Services.cls |
documentregistryfriendlyname | DDS |
documentregistryservicenamespace | urn:ihe:iti:xds-b:2007 |
documentregistrylocal | 1 (true) |
documentregistrytimeoutvalue | 300000 |
documentregistryactive | 1 (true) |
documentregistryservicename | DocumentRegistry_Service |
documentregistryfailurethreshold | 5 |
documentregistrysoapversion | 1.2_MEDCOM_NO_HSUID |
documentregistryititransaction | ITI-4218 |
Tabel 5 Eksempel på konfiguration af indeks
...
Code Block |
---|
INSERT INTO documentsource.documentregistry (documentregistryserviceurl, documentregistryfriendlyname, documentregistryservicenamespace, documentregistrylocal, documentregistryservicename, documentregistryfailurethreshold, documentregistryititransaction) VALUES (' http://sv-proj-093:57774/csp/public/hsbus/HS.IHE.XDSb.Registry.Services.cls', 'DDS', 'urn:ihe:iti:xds-b:2007', true, '300000', true, 'DocumentRegistry_Service', 5, '1.2_MEDCOM_NO_HSUID', 'ITI-4218'); |
log4j konfiguration
Log4j konfiguration findes i (hvis ovenstående format anvendes) compose/configuration/ddsregistry/ddsregistry.log4j.properties filen.
...
Til Monitorering af forbindelser til BRS, MinLog, SamtykkeVerifikationsservice, PersonInformation, registries og egen database findes en servlet i DDSRegistry. Denne service opsamler data på hvor mange kald til de forskellige andre services der er fejlet, og melder fejl hvis det overstiger de threshold-værdier der er defineret i property-filen.
Efter konfiguration og deploy af DDSRegistry, kan den testes med:
...
- DocumentRegistry_RegistryStoredQuery
- DocumentRegistry_RegisterDocumentSet-b
- DocumentRegistry_RegisterOnDemandDocumentEntry
- DocumentRegistry_UpdateDocumentSet
SLA-logpunkter for udgående kald fra DDS Registry:
Kaldte service | LogPoint | TargetSOAPOperation |
---|---|---|
Behandlings-relations-service | DocumentRegistry_RegistryStoredQuery.TreatmentRelation | |
MinLog | DocumentRegistry_RegistryStoredQuery.Minlog.LogDataAdd | LogDataAdd |
Samtykke | DocumentRegistry_RegistryStoredQuery.ConsentForUserCheck | urn:dk:nsi:consentservices:verification:service:1#ConsentForUserCheck |
Samtykke | DocumentRegistry_RegistryStoredQuery.ConsentForDataCheck | urn:dk:nsi:consentservices:verification:service:1#ConsentForDataCheck |
XDS Registry | DocumentRegistry_RegistryStoredQuery | urn:ihe:iti:2007:RegistryStoredQuery |
DocumentRegistry_RegisterDocumentSet-b | urn:ihe:iti:2007:RegisterDocumentSet-b | |
DocumentRegistry_RegisterOnDemandDocumentEntry | urn:ihe:iti:2010:RegisterOnDemandDocumentEntry | |
DocumentRegistry_UpdateDocumentSet | urn:ihe:iti:2010:UpdateDocumentSet
For SLA-logning af udgående kald til XDS Registry:
...
Code Block |
---|
{ "time": "2018-09-27T19:55:44.68Z", "category": "dk.sds.nsp.audit.log.dds", "audit": { "timestamp": "2018-09-27T21:55:42.745+02:00", "components": [ { "component": "DDS", "contexts": [ { "context": "documentRegistryAdhocQuery", "information": [ { "key": "patient-cpr", "type": "RPI", "value": "2110979420" }, { "key": "bruger-cpr", "type": "RPI", "value": "0101584160" }, { "key": "on-behalf-of-cpr", "type": "RPI", "value": "0101584160" }, { "key": "queryTypecodecitizen-relation", "type": "NPIRPI", "valuesvalue": ["guardian" }, "('53576-5^^2.16.840.1.113883.6.1')", "('39289-4^^2.16.840.1.113883.6.1')""key": "queryTypecode", ]"type": "NPI", }, "values": [ { "key": "document_entry.0.homecommunityid('53576-5^^2.16.840.1.113883.6.1')", "type": "SPI", "('39289-4^^2.16.840.1.113883.6.1')" "value": "" ] }, { "key": "document_entry.0.repositoryidhomecommunityid", "type": "SPI", "value": "1.3.6.1.4.1.21367.2010.1.2.1125" }, { "key": "document_entry.0.documentidrepositoryid", "type": "SPI", "value": "8352061236760766124.2930903161888816635.15380463324051.3.6.1.4.1.21367.2010.1.2.1125" }, { "key": "document_entry.0.typecodedocumentid", "type": "SPI", "value": "53576-58352061236760766124.2930903161888816635.1538046332405" }, { "key": "document_entry.10.homecommunityidtypecode", "type": "SPI", "value": "53576-5" }, { "key": "document_entry.1.repositoryid", "type": "SPI", "value": "1.3.6.1.4.1.21367.2010.1.2.1125" }, { "key": "document_entry.1.documentid", "type": "SPI", "value": "4869530052539485342.5952203964580776052.1537974946937" }, { "key": "document_entry.1.typecode", "type": "SPI", "value": "53576-5" } ] } ] } ] }, "access": { "code": 200, "duration": 1826, "httpHeaders": { "Content-Type": "application/soap+xml; charset=UTF-8" }, "httpHost": "localhost", "idCardAttributes": { "medcom:CareProviderID": "30808460", "medcom:CareProviderName": "NETS DANID A/S", "medcom:ITSystemName": "TRUST2408 Systemtest XIX CA", "sosi:AuthenticationLevel": "3", "sosi:IDCardID": "RBW1ZXSm/btA4HnXsGvhpg==", "sosi:IDCardType": "system", "sosi:IDCardVersion": "1.0.1" }, "method": "POST", "path": "/ddsregistry/service", "query": "", "port": 9090, "protocol": "http", "reqSize": 8754, "resSize": 16910, "soapHeaders": { "Issuer": "TEST1-NSP-STS", "MessageID": "AAABZhyZvtFydsMAFNBBgFNPU0k=", "NameID": "SubjectDN={SERIALNUMBER=CVR:30808460-UID:25351738 + CN=NETS DANID A/S - TU VOCES gyldig, O=NETS DANID A/S // CVR:30808460, C=DK},IssuerDN={CN=TRUST2408 Systemtest XIX CA, O=TRUST2408, C=DK},CertSerial={1478025777}", "w3Action": "urn:ihe:iti:2007:RegistryStoredQuery", "w3MessageID": "urn:uuid:9660068c-accb-425e-a350-2dd9cbfcf408", "w3To": "http://localhost:9090/ddsregistry/service" }, "threadId": "default task-1", "time": "2018-09-27T21:55:42.739+02:00", "stats": { "handlerDuration": 90, "bufferAllocated": true, "usedBuffers": 2, "activeBuffersInPool": 2, "idleBuffersInPool": 0 } } } |
ITI-42, ITI-61, ITI-57: foretag auditlogning for hver DocumentEntry (DE) i request DE.uniqueId, DE.repositoryUniqueId, DE.homeCommunityId, DE.typeCode. Se eksempel for ITI-42 nedenfor:
Code Block |
---|
{ "time": "2018-09-27T19:35:31.637Z", "category": "dk.sds.nsp.audit.log.dds", "audit": { "timestamp": "2018-09-27T21:35:00.127+02:00", "components": [ { "component": "DDS", homecommunityid", "contexts": [ "type": "SPI", { "contextvalue": "documentRegistryRegisterDocumentSetB", "information": [ }, { "key": "document_entry.01.repositoryid", "type": "SPI", "value": "1.3.6.1.4.1.21367.2010.1.2.1125" }, { "key": "document_entry.01.documentid", "type": "SPI", "value": "84066976538820523014869530052539485342.91825221816098953185952203964580776052.15379762505091537974946937" }, { "key": "document_entry.01.typecode", "type": "SPI", "value": "7446553576-65" } ] } ] } ] }, "access": { "code": 200, "duration": 315041826, "httpHeaders": { "Content-Type": "textapplication/soap+xml; charset=UTF-8" }, "httpHost": "localhost", "idCardAttributes": { "medcom:CareProviderID": "30808460", "medcom:CareProviderName": "NETS DANID A/S", "medcom:ITSystemName": "TRUST2408 Systemtest XIX CA", "sosi:AuthenticationLevel": "3", "sosi:IDCardID": "0YlQSQCxdxK41NLE23AsZARBW1ZXSm/btA4HnXsGvhpg==", "sosi:IDCardType": "system", "sosi:IDCardVersion": "1.0.1" }, "method": "POST", "path": "/ddsregistry/service", "query": "", "port": 9090, "protocol": "http", "reqSize": 207968754, "resSize": 241916910, "soapHeaders": { "Issuer": "TEST1-NSP-STS", "MessageID": "AAABZhrz9QPpy4eB02Sp+lNPU0kAAABZhyZvtFydsMAFNBBgFNPU0k=", "NameID": "SubjectDN={SERIALNUMBER=CVR:30808460-UID:25351738 + CN=NETS DANID A/S - TU VOCES gyldig, O=NETS DANID A/S // CVR:30808460, C=DK},IssuerDN={CN=TRUST2408 Systemtest XIX CA, O=TRUST2408, C=DK},CertSerial={1478025777}", "w3Action": "urn:ihe:iti:2007:RegisterDocumentSet-bRegistryStoredQuery", "w3MessageID": "urn:uuid:6dae669b9660068c-0757accb-4fe9425e-ac45a350-e0f3009c96432dd9cbfcf408", "w3To": "http://localhost:9090/ddsregistry/service" }, "threadId": "default task-71", "time": "2018-09-27T21:3555:0042.127739+02:00", "stats": { "handlerDuration": 490, "bufferAllocated": true, "usedBuffers": 32, "activeBuffersInPool": 32, "idleBuffersInPool": 0 } } } |
...