Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
      Endpoint for UpdateDocumentSet:
      • 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.unlockdelayAntal 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.keystoreKeystore, der indeholder DDS Registrys funktionscertifikat
sts.keystore.passwordPassword til sts.keystore
sts.endpointEndpointet, hvor DDS Registry skal trække sit SOSI IDkort på baggrund af sts.keystore
idcard.subject.id.typeSubjecttype for IDKortet
idcard.subject.idSubjectid for IDKortet
idcard.subject.nameSubjectnavn for IDKortet
idcard.levelSikkerhedsniveau for IDkortet
idcard.system.nameSystemnavn 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.privilegesDet 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.ydernummerValideringsniveau for ydernummer-validering. Eksempel: WARNING, OFF. Default: WARNING
oid.assignment.ydernummerOID 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.serversKafka bootstrap servers der anvendes til MinLog registrering.
minlog.producer.client.id

Kafka klient id anvendt til MinLog registrering.


minlog.producer.key.serializerKafka key serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer"
minlog.producer.value.serializerKafka value serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer"
minlog.topicKafka topic til MinLog registrering.
dds.minlog.on.idcard.level3.enabledAngiver, om DDS skal minlogge, når der kaldes med SOSI Idkort niveau 3Skal sættes: true, false
personinformation.maxTotalConnectionsKonfiguration af client pool til kald af CPRExists service
personinformation.defaultMaxConnectionsPerRouteKonfiguration af client pool til kald af CPRExists service
personinformation.urlPeger 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
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.

...

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 transactionTabel 4 Værdier for documentregistryititransaction, der anfører hvilken ITI transaction, den givne indgang kan anvendes med.

...

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

SLASLA-logpunkter for udgående kald fra DDS Registry:

urn:ihe:iti:2010:UpdateDocumentSet

Kaldte service

LogPoint

TargetSOAPOperation

Behandlings-relations-service

DocumentRegistry_RegistryStoredQuery.TreatmentRelation

http://nsi.dk/fmki20110601#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

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
      }
   }
}

...