Versions Compared

Key

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

...

  • DDS Registry
    • Type: Webservice
    • Filnavn: ddsregistry.war
    • Servicecheckurl: <serverurl>/ddsregistry/servicecheck
    • Statusurl: <serverurl>/ddsregistry/status
    • VersionurlAlarmurl: <serverurl>/ddsregistry/versionalarm
    • Endpoint for RegistryStoredQuery:
      • Url: <serverurl>/ddsregistry
      • DKS-konfiguration DGWS: <serverurl>/ddsregistry/dksconfig
      • DKS-konfiguration IDWS: <serverurl>/ddsregistry/idws/dksconfig

...

  • DDS Repository

    • Type: Webservice

    • Filnavn: ddsrepository.war

    • Url: <serverurl>/ddsrepository

    • Servicecheckurl: <serverurl>/ddsrepository/servicecheck

    • Statusurl: <serverurl>/ddsrepository/status

    • VersionurlAlarmurl: <serverurl>/ddsrepository/versionalarm


    • DKS-konfiguration DGWS: <serverurl>/ddsrepository/dksconfig
    • DKS-konfiguration IDWS: <serverurl>/ddsrepository/idws/dksconfig

...

nsp-role-mapping.properties

DDS Registry og Repository anvender denne property fil til at mappe hvilken rolle (role), der kommer ned i minlog registreringen.

Property filen vedligeholdes her: https://git.nspop.dk/projects/TOOL/repos/nsp-role-mapping/browse/nsp-role-mapping.properties


...

Property

Reg

Rep

Beskrivelse

idcard.version

x

x

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

x

x

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

x

x

Angiver placering af log4j properties.KIT

client.consentverification.properties

x

x

Angiver placering af properties til kald af Samtykkeverifikationsservicen.

client.minlogregistration.properties

x

x

Angiver placering af properties til kald af MinLog Registreringsservicen.

client.treatment.relation.properties

x

x

Angiver placering af properties til kald af behandlingsrelationsservicen.

treatment.relation.service.invoke

x

x

Angiver med værdien true, at behandlingsrelationsservicen skal kaldes. Værdien false bevirker, at behandlingsrelationsservicen ikke kaldes.

sts.keystore

x

x

Keystore, der indeholder DDS Registrys/Repository funktionscertifikat

sts.keystore.password

x

x

Password til sts.keystore

sts.endpoint

x

x

Endpointet, hvor DDS Registry/Repository skal trække sit SOSI IDkort på baggrund af sts.keystore

idcard.subject.id.type

x

x

Subjecttype for IDKortet

idcard.subject.id

x

x

Subjectid for IDKortet

idcard.subject.name

x

x

Subjectnavn for IDKortet

idcard.level

x

x

Sikkerhedsniveau for IDkortet

idcard.system.name

x

x

Systemnavn i IDkortet

whitelisted.level3.cvrs

x

x

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)

whitelisted.document.metadata.active

x


Angiver om whitelisting vha. metadata ser aktiveret. Se beskrivelse i senere afsnit.

Default værdi er true

whitelisted.document.metadata.refresh.duration

x


Angiver hvor ofte whitelisting vha. metadata konfiguration skal indlæses fra databasen.

Default værdi er PT60M

documenttype.configuration.refresh.duration

x


Angiver hvor ofte documenttype konfiguration skal indlæses fra databasen.

Default værdi er PT60M

feature.configuration.refresh.duration

x


Angiver hvor ofte feature konfiguration skal indlæses fra databasen.

Default værdi er PT60M

dds.citizen.powerofattorney.privileges

x

x

Det fuldmagtsprivilegie, der tillader at en borger tilgår en anden borgers data via DDS

childCustody.age.limit

x

x

Angiver aldersgrænse for hvornår en borger ikke længere kan claime forældremyndighed på et barn

Default værdi er 15

client.documentregistry.properties

x


Angiver placering af properties til kald af det nationale registry (NXRG) samt andre bagvedliggende registry services.

registry.invoker.use.fastinfoset

x


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. 

minlog.query.default

x

x

Teksten der sendes til MinLog registreringsservicen, når en sundhedsperson laver opslag/dataudtræk.*1

minlog.query.consentoverride

x

x

Teksten der sendes til MinLog registreringsservicen, når en sundhedsperson laver opslag/dataudtræk med tilsidesættelse af samtykketjek (værdispring).*1

minlog.query.childcustodyholder

x

x

Teksten der sendes til MinLog registreringsservicen, når en borger laver opslag/dataudtræk på vegne af en anden borger, hvor vedkommende er forældremyndighedsindehaver. *1

minlog.query.proxyholder

x

x

Teksten der sendes til MinLog registreringsservicen, når en borger laver opslag/dataudtræk på vegne af en anden borger, hvor vedkommende er fuldmagtshaver. *1

minlog.query.citizen

x

x

Teksten der sendes til MinLog registreringsservicen, når en borger laver opslag/dataudtræk *1

ap.assigning.authorities.filename

x


Angiver fil med liste af AP, der indgår i komplekseforløb pilotprojektet.

ap.patient.consent.filename

x


Angiver fil med liste af patienter, der har givet samtykke til AP.

validation.response.ydernummer

x


Valideringsniveau for ydernummer-validering. Eksempel: WARNING, OFF. Default: WARNING

oid.assignment.ydernummer

x


OID for ydernummer. Default: 1.2.208.176.1.4

client.documentrepository.properties


x

Angiver placering af properties til kald af dokumentkilder, hvor snitfladen til indhentning af dokument benytter Den Gode Webservice.

repository.retrieve.documents.processing.timeout


x

Antal millisekunder, der afventes svar fra kaldt XDS Repository med henblik på at samle svar fra eventuelt flere kaldte XDS Repositories til videre processering. Dette er ikke en timeout på kaldet til XDS Repository, der i stedet er konfigureret i documentsource-tabellen i databasen jf. afsnit 4.1.5.

retrieved.documents.processing.timeout


x

Antal millisekunder, der afventes færdiggørelse af efterprocessering af svar med henblik på at samle efterprocesserede svar i det samlede svar. Dette er ikke en timeout, der bevirker udelukkelse af svar.

dds.minlog.on.idcard.level3.enabled


x

Angiver, om DDS skal minlogge, når der kaldes med SOSI Idkort niveau 3
Skal sættes (true/false)

dcc.endpoint.registry

x


Angiver ddc endpoint til SDK for registry DGWS

dcc.endpoint.registry.idws

x


Angiver ddc endpoint til SDK for registry IDWS

dcc.endpoint.repository


x

Angiver ddc endpoint til SDK for repository DGWS

dcc.endpoint.repository.idws


x

Angiver ddc endpoint til SDK for repository IDWS

treatment.relation.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra BRS servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

treatment.relation.error.tolerance

x

x

Antal fejl der tolereres fra BRS servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

verification.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra Samtykke servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

verification.error.tolerance

x

x

Antal fejl der tolereres fra Samtykke servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

minlog.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra Minlog servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

minlog.error.tolerance

x

x

Antal fejl der tolereres fra Minlog servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

sts.keystore.expiry.warning.duration

x

x

Specificering af hvor lang tid i forvejen, der skal gives en alarm i forbindelse med udløb af certifikatet, DDS anvender (ifm. /alarm endpointet). Eksempelvis P7D (7 dage)

sts.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra STS servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

sts.error.tolerance

x

x

Antal fejl der tolereres fra STS servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

sts.connect.timeout.millis

x

x

Connect- og connection-request-timeout (millisekunder) til kald af STSDefault er 1000

sts.read.timeout.millis

x

x

Read-/socket-timeout (millisekunder) til kald af STS

Default er 5000

sts.max.total.connections

x

x

Konfiguration af client pool (max antal forbindelser i alt) til kald af STSDefault er 200

sts.default.max.connections.per.route

x

x

Konfiguration af client pool (max antal forbindelser pr. route) til kald af STSDefault er 20

personinformation.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra PersonInformation servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

personinformation.error.tolerance

x

x

Antal fejl der tolereres fra PersonInformation servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

sores.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra Sores servicen (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

sores.error.tolerance

x

x

Antal fejl der tolereres fra Sores servicen før /alarm endpointet angiver servicen som ikke tilgængelig. Default er 0, dvs overstiger antal 0 kommer der en alarm.

backend.errorcount.duration

x

x

Specificering af hvor lang tid tilbage der skal tælles fejl fra backends (registry og repository) (ifm. /alarm endpointet). Angives som duration i ISO-8601 formattet. Default PT10M (10 minutter)

documentsourcesds.statement

x

x

Den SQL som /alarm og /status endpointene anvender for at tjekke adgang til documentsources databasen

authds.statement

x

x

Den SQL som /alarm og /status endpointene anvender for at tjekke adgang til stamdata databasen

whitelist.statement

x

x

Den SQL som /alarm og /status endpointene anvender for at tjekke adgang til whitelist databasen

sores.url

x

x

Peger på endpointet for Sores Servicen.

sores.cache.duration

x

x

Angiver en duration, hvor længe et Sores opslag skal gemmes i Sores cachen, inden man lavet et nyt opslag på et givet Sor nummer.

Et fejlopslag (dvs SOR koden findes ikke) caches ikke.

Eksempel: PT24H gemmer et Sores opslag 24 timer

sor.organization.validation.enabled

x

x

Angiver om SOR koden i hsuid headeren skal valideres mod Sores. 

Default er er false.

sores.max.total.connections

x

x

Konfiguration af client pool (max antal forbindelser i alt) til kald af Sores service

Default er 200

sores.default.max.connections.per.route

x

x

Konfiguration af client pool (max antal forbindelser pr. route) til kald af Sores service

Default er 20

sores.connect.timeout.millis

x

x

Connect- og connection-request-timeout (millisekunder) til kald af Sores service

Default er 1000

sores.read.timeout.millis

x

x

Read-/socket-timeout (millisekunder) til kald af Sores service

Default er 1000

*1: ved iti-18 kaldes anvendes disse tekster som default. Der kan være mere specifikke tekster der er konfigureret i database tabellerne minlog_text og minlog_usertype_text.

I den/de properties-filer, der udpeges af de forskellige ”client.*.properties” properties skal flg. properties defineres:

...

Property

...

Reg

...

Rep

...

Beskrivelse

...

verification.wsdl.location

...

x

...

x

...

Angiver service endpoint for Samtykkeverifikationsservicen

...

registration.log.organisation_name

...

x

...

x

...

Angiver standard organisationsnavnet, der bliver sendt til MinLog Registreringsservicen.

...

treatment.relation.wsdl.location

...

x

...

x

...

Angiver service endpoint for behandlingsrelationsservicen

...

treatment.relation.service.timeout

...

x

...

x

...

Timeout givet i millisekunder anvendt ved kald til behandlingsrelationsservicen 

...

verification.invoker.timeout

...

x

...

x

...

Timeout givet i millisekunder anvendt ved kald til samtykke verifikationsservicen.

...

minlog.producer.proxy.url

...

x

...

x

...

Url til Kafka-proxy til MinLog registrering

...

minlog.producer.proxy.maxTotalConnections

...

x

...

x

...

Konfiguration af client pool til kald af Kafka-proxy

...

minlog.producer.proxy.defaultMaxConnectionsPerRoute

...

x

...

x

...

Konfiguration af client pool til kald af Kafka-proxy

...

minlog.producer.proxy.connectionTimeoutMs

...

x

...

x

...

Konfiguration af client pool til kald af Kafka-proxy

...

minlog.producer.proxy.socketTimeoutMs

...

x

...

x

...

Konfiguration af client pool til kald af Kafka-proxy

...

x

...

Angiver, om DDS skal minlogge, når der kaldes med SOSI Idkort niveau 3

Skal sættes: true, false

...

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.

...

Property

...

Reg

...

Rep

...

Beskrivelse

...

treatment.relation.serviceprovider.name

...

x

...

x

...

Indsættes som ’ServiceProvider/name’ i behandlingsrelationsservicens treatmentRelationRequestBody

...

treatment.relation.lookup.timeinterval.start.offset

...

x

...

x

...

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/start’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før DDS-kaldtidspunktet.

...

treatment.relation.lookup.timeinterval.end.offset

...

x

...

x

...

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/end’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før DDS-kaldtidspunktet.

...

treatment.relation.timelimit.offset

...

x

...

x

...

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’TimeLimit’ i behandlingsrelationsservicens treatmentRelationRequestBody.

...

treatment.relation.queryable.cvr

...

x

...

x

...

Indsættes som ’QueryableCvr’ i behandlingsrelationsservicens treatmentRelationRequestBody

...

treatment.relation.acceptable.relations.hospital

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som hospital (ved SHAK-kode).

...

treatment.relation.followup.relations.hospital

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som hospital (ved SHAK-kode).

...

treatment.relation.acceptable.relations.doctor

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som yder (ved ydernummer).

...

treatment.relation.followup.relations.doctor

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som yder (ved ydernummer).

...

treatment.relation.acceptable.relations.organization

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som SOR (ved SOR-kode).

...

treatment.relation.followup.relations.organization

...

x

...

x

...

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som SOR (ved SOR-kode).

Registry properties


I metadata er identifikation af sundhedsorganisationer givet ved et id og anførelse af hvilken assigning authority, der har udstedt det id. I DDSRegistry.properties skal der ved properties givet i Tabel 1 være anført, hvilke object identifiers (OID), der anvendes for assigning authority for sundhedsorganisationers id.

...

 Property

...

Beskrivelse

...

consent.check.sor.assigning.authorities.oid

...

consent.check.shak.assigning.authorities.oid

...

consent.check.ynumber.assigning.authorities.oid

...

registering.allowed.sor.assigning.authorities.oid

...

registering.allowed.shak.assigning.authorities.oid

...

registering.allowed.ynumber.assigning.authorities.oid

Tabel 1 OID for assigning authorities for sundhedsorganisationer

OID-værdier for assigning authorities givet i mønsteret properties consent.check.* (fx consent.check.sor.assigning.authorities.oid) er de, der anvendes ved samtykkekontrol ved opslag på eksisterende metadata. Disse lister af OID-værdier vil vokse over tid og afspejle også evt. historiske assigning authorities.

OID-værdier for assigning authorities givet i mønsteret properties registering.allowed.* (fx registering.allowed.sor.assigning.authorities.oid) er de, der tillades ved dokumentkilders registrering af dokumentmetadata. Disse lister af OID-værdier bør kun afspejle de assigning authorities, der er i anvendelse på registreringstidspunktet.

Eksempel på ”DDSRegistry.properties” fil (bemærk at alle ”client.*.properties” udpeger filen selv, og at klient properties derfor er defineret i samme fil):

...

minlog.producer.proxy.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/minlog2-kafka-proxy/2026/02/11/registrations
minlog.producer.proxy.maxTotalConnections=200
minlog.producer.proxy.defaultMaxConnectionsPerRoute=20
minlog.producer.proxy.connectionTimeoutMs=2000
minlog.producer.proxy.socketTimeoutMs=5000

dds.minlog.on.idcard.level3.enabled=true

personinformation.max.total.connections=200 
personinformation.default.max.connections.per.route=20
personinformation.connect.timeout.millis=1000
personinformation.read.timeout.millis=5000
personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1

request.xds.validationlevel

x

x

Konfiguration af IHE validering for indkomne request. Konfiguration skal foretages, der er ingen default værdi.

Gyldige værdier er:

OFF: der foretages ingen validering

LOG: der udføres validering. En eventuel fejl logges til audit log

WARNING: der udføres validering. En eventuel fejl logges til audit log og sendes retur i svaret til kalder som en advarsel. Forespørgslen udføres som normalt.

REJECT: der udføres validering. En eventuel fejl logges til audit log og sendes retur i svaret til kalder som en fejl. Forespørgslen afbrydes med det samme.

response.xds.validationlevel

x

x

Konfiguration af IHE validering for udgående response. Konfiguration skal foretages, der er ingen default værdi.

Gyldige værdier er:

OFF: der foretages ingen validering

LOG: der udføres validering. En eventuel fejl logges til audit log

WARNING: der udføres validering. En eventuel fejl logges til audit log og sendes retur i svaret til kalder som en advarsel. Forespørgslen returneres som normalt.

REJECT: der udføres validering. En eventuel fejl logges til audit log og sendes retur i svaret til kalder som en fejl. Forespørgslen returnerer ikke det normalt fundne svar men alene valideringsfejlen. Hvis der under den normale udførsel af forespørgsel - inden validering finder sted - opstår en fejl som giver anledning til en soap fault, vil denne bliver returneret istedet.

*1: ved iti-18 kaldes anvendes disse tekster som default. Der kan være mere specifikke tekster der er konfigureret i database tabellerne minlog_text og minlog_usertype_text.


I den/de properties-filer, der udpeges af de forskellige ”client.*.properties” properties skal flg. properties defineres:

Property

Reg

Rep

Beskrivelse

verification.wsdl.location

x

x

Angiver service endpoint for Samtykkeverifikationsservicen

registration.log.organisation_name

x

x

Angiver standard organisationsnavnet, der bliver sendt til MinLog Registreringsservicen.

treatment.relation.wsdl.location

x

x

Angiver service endpoint for behandlingsrelationsservicen

treatment.relation.service.timeout

x

x

Timeout givet i millisekunder anvendt ved kald til behandlingsrelationsservicen 

verification.invoker.timeout

x

x

Timeout givet i millisekunder anvendt ved kald til samtykke verifikationsservicen.

minlog.producer.proxy.url

x

x

Url til Kafka-proxy til MinLog registrering

minlog.producer.proxy.maxTotalConnections

x

x

Konfiguration af client pool til kald af Kafka-proxy

minlog.producer.proxy.defaultMaxConnectionsPerRoute

x

x

Konfiguration af client pool til kald af Kafka-proxy

minlog.producer.proxy.connectionTimeoutMs

x

x

Konfiguration af client pool til kald af Kafka-proxy

minlog.producer.proxy.socketTimeoutMs

x

x

Konfiguration af client pool til kald af Kafka-proxy

dds.minlog.on.idcard.level3.enabled

x


Angiver, om DDS skal minlogge, når der kaldes med SOSI Idkort niveau 3

Skal sættes: true, false

personinformation.max.total.connectionsxxKonfiguration af client pool (max antal forbindelser i alt) til kald af PersonInformation service. Default 200
personinformation.default.max.connections.per.routexxKonfiguration af client pool (max antal forbindelser pr. route) til kald af PersonInformation service. Default 20
personinformation.connect.timeout.millisxxConnect- og connection-request-timeout (millisekunder) til kald af PersonInformation service. Default 1000
personinformation.read.timeout.millisxxRead-/socket-timeout (millisekunder) til kald af PersonInformation service. Default 5000
personinformation.urlxxPeger på endpointet for PersonInformationServicen.


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.

Property

Reg

Rep

Beskrivelse

treatment.relation.serviceprovider.name

x

x

Indsættes som ’ServiceProvider/name’ i behandlingsrelationsservicens treatmentRelationRequestBody

treatment.relation.lookup.timeinterval.start.offset

x

x

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/start’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før DDS-kaldtidspunktet.

treatment.relation.lookup.timeinterval.end.offset

x

x

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’RelationLookupTimeInterval/end’ i behandlingsrelationsservicens treatmentRelationRequestBody.

Negativt fortegn angiver antal dage før DDS-kaldtidspunktet.

treatment.relation.timelimit.offset

x

x

Angiver antallet af dage fra DDS-kaldtidspunktet, der skal indsættes som tidsstemplet ’TimeLimit’ i behandlingsrelationsservicens treatmentRelationRequestBody.

treatment.relation.queryable.cvr

x

x

Indsættes som ’QueryableCvr’ i behandlingsrelationsservicens treatmentRelationRequestBody

treatment.relation.acceptable.relations.hospital

x

x

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som hospital (ved SHAK-kode).

treatment.relation.followup.relations.hospital

x

x

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som hospital (ved SHAK-kode).

treatment.relation.acceptable.relations.doctor

x

x

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som yder (ved ydernummer).

treatment.relation.followup.relations.doctor

x

x

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som yder (ved ydernummer).

treatment.relation.acceptable.relations.organization

x

x

Kommasepareret liste af kategorier, der indsættes som ’AcceptableRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som SOR (ved SOR-kode).

treatment.relation.followup.relations.organization

x

x

Kommasepareret liste af kategorier, der indsættes som ’FollowupRelations/Relation’ i behandlingsrelationsservicens treatmentRelationRequestBody, når sundhedspersonens organisation er opført som SOR (ved SOR-kode).


Registry properties


I metadata er identifikation af sundhedsorganisationer givet ved et id og anførelse af hvilken assigning authority, der har udstedt det id. I DDSRegistry.properties skal der ved properties givet i Tabel 1 være anført, hvilke object identifiers (OID), der anvendes for assigning authority for sundhedsorganisationers id.

 Property

Beskrivelse

consent.check.sor.assigning.authorities.oid


consent.check.shak.assigning.authorities.oid


consent.check.ynumber.assigning.authorities.oid


registering.allowed.sor.assigning.authorities.oid


registering.allowed.shak.assigning.authorities.oid


registering.allowed.ynumber.assigning.authorities.oid


Tabel 1 OID for assigning authorities for sundhedsorganisationer

OID-værdier for assigning authorities givet i mønsteret properties consent.check.* (fx consent.check.sor.assigning.authorities.oid) er de, der anvendes ved samtykkekontrol ved opslag på eksisterende metadata. Disse lister af OID-værdier vil vokse over tid og afspejle også evt. historiske assigning authorities.

OID-værdier for assigning authorities givet i mønsteret properties registering.allowed.* (fx registering.allowed.sor.assigning.authorities.oid) er de, der tillades ved dokumentkilders registrering af dokumentmetadata. Disse lister af OID-værdier bør kun afspejle de assigning authorities, der er i anvendelse på registreringstidspunktet.


Eksempel på ”DDSRegistry.properties” fil (bemærk at alle ”client.*.properties” udpeger filen selv, og at klient properties derfor er defineret i samme fil):

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.name=NSP Dokumentdelingsservicen
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.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=

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.proxy.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/minlog2-kafka-proxy/2026/02/11/registrations
minlog.producer.proxy.maxTotalConnections=200
minlog.producer.proxy.defaultMaxConnectionsPerRoute=20
minlog.producer.proxy.connectionTimeoutMs=2000
minlog.producer.proxy.socketTimeoutMs=5000

dds.minlog.on.idcard.level3.enabled=true

personinformation.max.total.connections=200 
personinformation.default.max.connections.per.route=20
personinformation.connect.timeout.millis=1000
personinformation.read.timeout.millis=5000
personinformation.url=

...

Eksempel på ”DDSRepository.properties” fil (bemærk at alle ”client.*.properties” udpeger filen selv, og at klient properties derfor er defineret i samme fil):

idcard.version = 1.0.1
sts.test.mode = true
 
repository.service.name = Dokumentdelingsservicen
log.config.file=ddsrepository.log4j.properties
 
client.documentrepository.properties = DDSRepository.properties
client.consentverification.properties = DDSRepository.properties
client.minlog
.properties = DDSRepository.properties
client.treatment.relation.properties = DDSRepository.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.name=NSP Dokumentdelingsservicen
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.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
 
documentsourcesds.statement=SELECT * FROM documentsources.documentsource LIMIT 1;
authds.statement=SELECT * FROM stamdata.autreg LIMIT 1;
whitelist.statement=SELECT 1 FROM dual;
 
repository.retrieve.documents.processing.timeout = 200
retrieved.documents.processing.timeout = 200
 
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/SecurityTokenServicestamdata-personinformation/v1


sts.keystore
= Statens_Serum_Institut_VOCES.jks
sts.keystore.password = Test1234minlog.producer.proxy.expiry.warning.duration=P7D
sores.url=http://test1
-cnsp.ekstern-test.nspop.dk:8080/minlog2-kafka-proxy/2026/02/11/registrations
minlog.producer.proxy.maxTotalConnections=200
minlog.producer.proxy.defaultMaxConnectionsPerRoute=20
minlog.producer.proxy.connectionTimeoutMs=2000
minlog.producer.proxy.socketTimeoutMs=5000
 
dds.minlog.on.idcard.level3.enabled=true
 
personinformation.max.total.connections=200 
personinformation.default.max.connections.per.route=20
personinformation.connect.timeout.millis=1000
personinformation.read.timeout.millis=5000

personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1
sts.keystore.expiry.warning.duration=P7D
sores.url=http://test1.ekstern-test.nspop.dk:8080/sores/v3
sores.cache.duration=PT24H

Konfiguration af indeks for DDS registry

ReposiDe dokumentindeks, hvortil DDSRegistry videresender opslag og registrering af dokumenter, er konfigureret i tabellen documentregistry i databasen documentsources.

...

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.

sores/v3
sores.cache.duration=PT24H

request.xds.validationlevel=OFF
response.xds.validationlevel=OFF


Eksempel på ”DDSRepository.properties” fil (bemærk at alle ”client.*.properties” udpeger filen selv, og at klient properties derfor er defineret i samme fil):

idcard.version = 1.0.1
sts.test.mode = true
 
repository.service.name = Dokumentdelingsservicen
log.config.file=ddsrepository.log4j.properties
 
client.documentrepository.properties = DDSRepository.properties
client.consentverification.properties = DDSRepository.properties
client.minlog
.properties = DDSRepository.properties
client.treatment.relation.properties = DDSRepository.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.name=NSP Dokumentdelingsservicen
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.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
 
documentsourcesds.statement=SELECT * FROM documentsources.documentsource LIMIT 1;
authds.statement=SELECT * FROM stamdata.autreg LIMIT 1;
whitelist.statement=SELECT 1 FROM dual;
 
repository.retrieve.documents.processing.timeout = 200
retrieved.documents.processing.timeout = 200
 
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.proxy.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/minlog2-kafka-proxy/2026/02/11/registrations
minlog.producer.proxy.maxTotalConnections=200
minlog.producer.proxy.defaultMaxConnectionsPerRoute=20
minlog.producer.proxy.connectionTimeoutMs=2000
minlog.producer.proxy.socketTimeoutMs=5000
 
dds.minlog.on.idcard.level3.enabled=true
 
personinformation.max.total.connections=200 
personinformation.default.max.connections.per.route=20
personinformation.connect.timeout.millis=1000
personinformation.read.timeout.millis=5000

personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1
sts.keystore.expiry.warning.duration=P7D
sores.url=http://test1.ekstern-test.nspop.dk:8080/sores/v3
sores.cache.duration=PT24H

request.xds.validationlevel=OFF
response.xds.validationlevel=OFF

Konfiguration af indeks for DDS registry

ReposiDe dokumentindeks, hvortil DDSRegistry videresender opslag og registrering af dokumenter, er konfigureret i tabellen documentregistry i databasen documentsources.

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

Tabel 2 Tabellen documentregistry i documentsources-databasen

 

...

Værdi

...

Benytter HSUID udgående

...

Benytter DGWS udgående

...

Note

...

1.2

...

...

÷

...

1.2_NO_HSUID

...

÷

...

÷

...

1.2_DGWS

...

...

...

1.2_DGWS_NO_HSUID

...

÷

...

...

1.2_MEDCOM_NO_HSUID

...

÷

...

(✓)

Kun Medcom-header

...

Tabel 3 Værdier for documentregistrysoapversion, der anfører hvilke headere, der anvendes ved udgående kald fra DDS Registry mod XDS-komponenter.

 

...

Værdi

...

Beskrivelse

...

ITI-18

...

Benyttes til opslag på metadata via Registry Stored Query ITI-18 transaktionen.

Tabel 4 Værdier for documentregistryititransaction, der anfører hvilken ITI transaction, den givne indgang kan anvendes med.

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

Tabel 5 Eksempel på konfiguration af indeks

For at tilføje et indeks til konfigurationen, udføres et SQL-statement i stil med:

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-18');

Når en post slettes fra documentregistry, slettes de relaterede poster i documenttype_configuration og feature_configuration automatisk.

log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes):

  • For DDS registry: compose/configuration/ddsregistry/ddsregistry.log4j.properties filen.
  • For DDS repository:  compose/configuration/ddsrepository/ddsrepository.log4j.properties filen

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

SLA-logning på DDS Registry og Repository udføres vha SLALoggingInterceptor. Konfiguration af SLA-log findes i filen:

  • For DDS registry: compose/configuration/ddsregistry/nspslalog-ddsregistry.properties.
  • For DDS repository: compose/configuration/ddsrepository/nspslalog-ddsrepository.properties.

Whitelist konfiguration

Der foretages whitelisting på to niveauer. Først er der den whitelisting, der skal til for at anvende DDS Registry og Repository. Derudover findes en whitelisting, der afgør, hvorvidt en anvender må kalde DDS med et niveua 3 Idkort. De to whitelisting-mekanismer beskrives i det følgende.

Whitelisting til anvendelse af DDS Registry og Repository

For at tilføje et CVR-nummer til white-list databasen, bruges følgende SQL insert:

For DDS registry:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.ddsregistry', '', 'some-cvr-number-here' );

For DDS repository:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.ddsrepository', '', 'some-cvr-number-here' );

Da DDS Registry og Repository sender Id-kortet videre til samtykkeservice, behandlingsrelationsservice og minlog-registrationservice skal whitelisten også opdateres med følgende værdier:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.auth.brs.cvr.list', '', 'some-cvr-number-here' );
INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.consent.verification', '', 'some-cvr-number-here' );
INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.minlog.registration', '', 'some-cvr-number-here' );

Whitelisting til kald med niveau 3 Idkort

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.

Tabel 2 Tabellen documentregistry i documentsources-databasen

 

Værdi

Benytter HSUID udgående

Benytter DGWS udgående

Note

1.2

÷


1.2_NO_HSUID

÷

÷


1.2_DGWS


1.2_DGWS_NO_HSUID

÷


1.2_MEDCOM_NO_HSUID

÷

(✓)

Kun Medcom-header


1.2_NO_ADDR÷Kalder uden addressing headers.

Tabel 3 Værdier for documentregistrysoapversion, der anfører hvilke headere, der anvendes ved udgående kald fra DDS Registry mod XDS-komponenter.

 

Værdi

Beskrivelse

ITI-18

Benyttes til opslag på metadata via Registry Stored Query ITI-18 transaktionen.







Tabel 4 Værdier for documentregistryititransaction, der anfører hvilken ITI transaction, den givne indgang kan anvendes med.


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

Tabel 5 Eksempel på konfiguration af indeks


For at tilføje et indeks til konfigurationen, udføres et SQL-statement i stil med:

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-18');

Når en post slettes fra documentregistry, slettes de relaterede poster i documenttype_configuration og feature_configuration automatisk.

log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes):

  • For DDS registry: compose/configuration/ddsregistry/ddsregistry.log4j.properties filen.
  • For DDS repository:  compose/configuration/ddsrepository/ddsrepository.log4j.properties filen

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

SLA-logning på DDS Registry og Repository udføres vha SLALoggingInterceptor. Konfiguration af SLA-log findes i filen:

  • For DDS registry: compose/configuration/ddsregistry/nspslalog-ddsregistry.properties.
  • For DDS repository: compose/configuration/ddsrepository/nspslalog-ddsrepository.properties.

Whitelist konfiguration

Der foretages whitelisting på to niveauer. Først er der den whitelisting, der skal til Alle anvendere skal whitelistes som beskrevet ovenfor for at anvende DDS Registry og Repository. Derudover findes en ekstra whitelisting mekanisme, som gør det muligt for visse anvendere at kalde DDS Registry og Repository med et niveau 3 Idkort. Dette kræver en særlig whitelisting og kan sættes op ved at tilføje oplysninger om anvenderen i konfigurationsparameteren 'whitelisted.level3.cvrs'. På trods af navnet kan whitelisting til niveau 3 sættes op på to niveauer: CVR nummer eller et specifikt certifikat.

Værdien er en kommasepereret liste som vist i følgende eksempel:

...

, der afgør, hvorvidt en anvender må kalde DDS med et niveua 3 Idkort. De to whitelisting-mekanismer beskrives i det følgende.

Whitelisting til anvendelse af DDS Registry og Repository

For at tilføje et CVR-nummer til white-list databasen, bruges følgende SQL insert:

For DDS registry:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.ddsregistry', '', 'some-cvr-number-here' );

For DDS repository:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.ddsrepository', '', 'some-cvr-number-here' );


Da DDS Registry og Repository sender Id-kortet videre til samtykkeservice, behandlingsrelationsservice og minlog-registrationservice skal whitelisten også opdateres med følgende værdier:

INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.auth.brs.cvr.list', '', 'some-cvr-number-here' );
INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.consent.verification', '', 'some-cvr-number-here' );
INSERT INTO whitelist.whitelist_config ( service_key, service_type, cvr ) VALUES ( 'dk.nsi.minlog.registration', '', 'some-cvr-number-here' );

Whitelisting til kald med niveau 3 Idkort

Alle anvendere skal whitelistes som beskrevet ovenfor for at anvende DDS Registry og Repository. Derudover findes en ekstra whitelisting mekanisme, som gør det muligt for visse anvendere at kalde DDS Registry og Repository med et niveau 3 Idkort. Dette kræver en særlig whitelisting og kan sættes op ved at tilføje oplysninger om anvenderen i konfigurationsparameteren 'whitelisted.level3.cvrs'. På trods af navnet kan whitelisting til niveau 3 sættes op på to niveauer: CVR nummer eller et specifikt certifikat.

Værdien er en kommasepereret liste som vist i følgende eksempel:


Opsætning af niveau 3 whitelisting

whitelisted.level3.cvrs=31908574,CVR:46837428,CERT:CVR:33257872-FID:28250866

Eksemplet viser de tre formater, der kan anvendes:

  • Værdi uden type: I eksempelt ovenfor fortolkes værdien '31908574' som et CVR nummer. Dette sikrer bagudkompatibilietet med tidligere opsætninger
  • Værdier med typen CVR: I eksemplet ovenfor fortolkes 'CVR:46837428' som et CVR nummer med værdien 46837428
  • Værdier med typen CERT: I eksemplet ovenfor fortolkes 'CERT:CVR:33257872-FID:28250866' som whitelisting af certificatet med Subject Serial Number CVR:33257872-FID:28250866.

I forhold til anvenderne, så tjekkes det, om der er en whitelisting af anvenderens CVR nummer og hvis dette ikke er tilfældet, så tjekkes, om det specifikke certifikat, der anvendes er whitelistet. Alle andre forsøg på adgang med niveau 3 Idkort afvises.

Dokumenttype konfiguration af registry

For at konfigurere hvilke dokumenttyper, der er relevante for et givet registry, skal dette konfigureres manuelt af driften i documenttype_configuration databasen:

INSERT INTO documentsources.documenttype_configuration (documentregistryid

whitelisted.level3.cvrs=31908574,CVR:46837428,CERT:CVR:33257872-FID:28250866

Eksemplet viser de tre formater, der kan anvendes:

  • Værdi uden type: I eksempelt ovenfor fortolkes værdien '31908574' som et CVR nummer. Dette sikrer bagudkompatibilietet med tidligere opsætninger
  • Værdier med typen CVR: I eksemplet ovenfor fortolkes 'CVR:46837428' som et CVR nummer med værdien 46837428
  • Værdier med typen CERT: I eksemplet ovenfor fortolkes 'CERT:CVR:33257872-FID:28250866' som whitelisting af certificatet med Subject Serial Number CVR:33257872-FID:28250866.

I forhold til anvenderne, så tjekkes det, om der er en whitelisting af anvenderens CVR nummer og hvis dette ikke er tilfældet, så tjekkes, om det specifikke certifikat, der anvendes er whitelistet. Alle andre forsøg på adgang med niveau 3 Idkort afvises.

Dokumenttype konfiguration af registry

For at konfigurere hvilke dokumenttyper, der er relevante for et givet registry, skal dette konfigureres manuelt af driften i documenttype_configuration databasen:

INSERT INTO documentsources.documenttype_configuration (documentregistryid, typecode_codename, typecode_schemename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "39289-4", "2.16.840.1.113883.6.1");

Hvis ikke man har angivet en unik documentregistryfriendlyname værdi i documentregistry, må man manuelt finde det givne documentregistryid man ønsker at konfigurere en dokumenttype for.

Hvis et givet documentregistry ikke har en opsætning i documenttype_configuration tabellen, er alle dokumenttyper tilladte.

Konfigurationen indlæses automatisk peridisk, som angivet i property documenttype.configuration.refresh.duration.

Når en post slettes fra documentregistry, slettes de relaterede poster i documenttype_configuration automatisk.

Feature konfiguration af registry

For at konfigurere hvilke feature, der er relevante for et givet registry, skal dette konfigureres manuelt af driften i feature_configuration databasen:

INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "GET_DOCUMENTS_QRY");
INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "FIND_DOCUMENTS_QRY");
INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "FIND_DOCUMENTS_BY_REFERENCE_QRY");

Hvis ikke man har angivet en unik documentregistryfriendlyname værdi i documentregistry, må man manuelt finde det givne documentregistryid man ønsker at konfigurere en feature for.

Pt er ovenstående 3 features mulige. De anvendes, når der laves en ITI-18 søgning (Registry Stored Query). Hvis det indkomne request ikke matcher opsætningen for et givet registry, søges der ikke ned i dette registry. Dvs. at har et registry ingen opsætning af query types, bliver det aldrig kaldt.

Konfigurationen indlæses automatisk peridisk, som angivet i property feature.configuration.refresh.duration.

Når en post slettes fra documentregistry, slettes de relaterede poster i feature_configuration automatisk.

Metadata konfiguration af dokument filtrering

For at konfigurere, hvordan dokumenternes metadata skal filtreres for den sundhedsfaglige, skal det konfigureres manuelt af driften i en række whitelist tabeller i databasen:

insert into whitelist.whitelist_config_documentmetadata (cvr, system_name) values ('12345602', 'Service Consumer Test');

insert into whitelist.whitelist_config_documentmetadata_typecode (whitelist_id

, typecode_codename, typecode_schemename)

 
values

VALUES ((select

id

documentregistryid from

whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), '39289-4', '

documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "39289-4", "2.16.840.1.113883.6.1

');

insert into whitelist.whitelist_config_documentmetadata_eventcode (whitelist_id, eventcode_name, eventcode_schemename)
values ( (select id from whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), 'eventCode1', '1.2.208.176.2.1');

insert into whitelist.whitelist_config_documentmetadata_practicesettingcode (whitelist_id, practicesettingcode_codename, practicesettingcode_schemename)
values ( (select id from whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), '408443003', '2.16.840.1.113883.6.96'); 

Ovenstående er eksempler på sql. Udskift værdierne med relevante værdier for at aktuelle miljø.

Som minimum skal der åbnes op for typecode i whitelist_config_documentmetadata_typecode tabellen. Derudover kan dokumenter returnering indsnævres ved yderligere at angive eventcode og practicesettingcode. Er der for et cvr/system angivet bare een værdi for eventcode, skal dokumentes metadata indeholde denne kode. Tilsvarerende for practicesettingcode. Ellers filtreres metadata fra, og anvenderen får en fejl i svaret.

Der filtreres kun, hvis funktionaliteten er aktiveret. Den kan slåes fra med property whitelisted.document.metadata.active.

Konfigurationen indlæses automatisk  peridisk, som angivet i property whitelisted.document.metadata.refresh.duration.

Actor Query Parameter validering konfiguration

Nogle actors har ikke love til at lave søgninger (ITI-18) på alle værdier i query parametrene. Dette konfigureret i manuelt af driften i en tabel i databasen.

");

Hvis ikke man har angivet en unik documentregistryfriendlyname værdi i documentregistry, må man manuelt finde det givne documentregistryid man ønsker at konfigurere en dokumenttype for.

Hvis et givet documentregistry ikke har en opsætning i documenttype_configuration tabellen, er alle dokumenttyper tilladte.

Konfigurationen indlæses automatisk peridisk, som angivet i property documenttype.configuration.refresh.duration.

Når en post slettes fra documentregistry, slettes de relaterede poster i documenttype_configuration automatisk.

Feature konfiguration af registry

For at konfigurere hvilke feature, der er relevante for et givet registry, skal dette konfigureres manuelt af driften i feature_configuration databasen:

INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "GET_DOCUMENTS_QRY");
INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "FIND_DOCUMENTS_QRY");
INSERT INTO documentsources.feature_configuration (documentregistryid, featurename) VALUES ((select documentregistryid from documentsources.documentregistry where documentregistryfriendlyname = "DDS"),  "FIND_DOCUMENTS_BY_REFERENCE_QRY");

Hvis ikke man har angivet en unik documentregistryfriendlyname værdi i documentregistry, må man manuelt finde det givne documentregistryid man ønsker at konfigurere en feature for.

Pt er ovenstående 3 features mulige. De anvendes, når der laves en ITI-18 søgning (Registry Stored Query). Hvis det indkomne request ikke matcher opsætningen for et givet registry, søges der ikke ned i dette registry. Dvs. at har et registry ingen opsætning af query types, bliver det aldrig kaldt.

Konfigurationen indlæses automatisk peridisk, som angivet i property feature.configuration.refresh.duration.

Når en post slettes fra documentregistry, slettes de relaterede poster i feature_configuration automatisk.

Metadata konfiguration af dokument filtrering

For at konfigurere, hvordan dokumenternes metadata skal filtreres for den sundhedsfaglige, skal det konfigureres manuelt af driften i en række whitelist tabeller i databasen:

insert into whitelist.whitelist_config_documentmetadata (cvr, system_name) values ('12345602', 'Service Consumer Test');


insert into whitelist.whitelist_config_documentmetadata_typecode (whitelist_id, typecode_codename, typecode_schemename) 
values ( (select id from whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), '39289-4', '

INSERT INTO documentsources.actor_query_parameter_configuration (actor_query_type, typecode_codename, typecode_schemename, formatcode_codename, formatcode_schemename, privilege)

VALUES ("CitizenUserOnBehalfAsProxyHolder","39289-4", "

2.16.840.1.113883.6.1

", "urn:ad:dk:medcom:apd-v2.0.1:full", "1.2.208.184.100.10", "urn:dk:nspop:sts:dds:read");

');

insert into whitelist.whitelist_config_documentmetadata_eventcode (whitelist_id, eventcode_name, eventcode_schemename)
values ( (select id from whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), 'eventCode1', '1.2.208.176.2.1');

insert into whitelist.whitelist_config_documentmetadata_practicesettingcode (whitelist_id, practicesettingcode_codename, practicesettingcode_schemename)
values ( (select id from whitelist.whitelist_config_documentmetadata where cvr = '12345602' and system_name = 'Service Consumer Test'), '408443003', '

INSERT INTO documentsources.actor_query_parameter_configuration (actor_query_type, typecode_codename, typecode_schemename, formatcode_codename, formatcode_schemename, privilege)

VALUES ("CitizenUserOnBehalfAsChildCustodyHolder","39289-4", "

2.16.840.1.113883.6.

1", null, null, null

96'); 



Ovenstående er eksempler på sql. Udskift værdierne med relevante værdier for at aktuelle miljø og anvendere.

For nuværende drejer det sig om følgende brugertyper og de skal konfigureres på følgende måde:

Som minimum skal der åbnes op for typecode i whitelist_config_documentmetadata_typecode tabellen. Derudover kan dokumenter returnering indsnævres ved yderligere at angive eventcode og practicesettingcode. Er der for et cvr/system angivet bare een værdi for eventcode, skal dokumentes metadata indeholde denne kode. Tilsvarerende for practicesettingcode. Ellers filtreres metadata fra, og anvenderen får en fejl i svaret.

Der filtreres kun, hvis funktionaliteten er aktiveret. Den kan slåes fra med property whitelisted.document.metadata.active.

Konfigurationen indlæses automatisk  peridisk, som angivet i property whitelisted.document.metadata.refresh.duration.

Actor Query Parameter validering konfiguration

Nogle actors har ikke love til at lave søgninger (ITI-18) på alle værdier i query parametrene. Dette konfigureret i manuelt af driften i en tabel i databasen.



INSERT INTO documentsources.actor_query_parameter_configuration (actor_query_type, typecode_codename, typecode_schemename, formatcode_codename, formatcode_schemename, privilege)

VALUES ("CitizenUserOnBehalfAsProxyHolder","39289-4", "2.16.840.1.113883.6.1", "urn:ad:dk:medcom:apd-v2.0.1:full", "1.2.208.184.100.10", "urn:dk:nspop:sts:dds:read");

INSERT INTO documentsources.actor_query_parameter_configuration (actor_query_type, typecode_codename, typecode_schemename, formatcode_codename, formatcode_schemename, privilege)

VALUES ("CitizenUserOnBehalfAsChildCustodyHolder","39289-4", "2.16.840.1.113883.6.1", null, null, null);


Ovenstående er eksempler på sql. Udskift værdierne med relevante værdier for at aktuelle miljø og anvendere.

For nuværende drejer det sig om følgende brugertyper og de skal konfigureres på følgende måde:

  • Borger med fuldmagt vha. fuldmagtsstrenge og konfiguration for åbning at tilladelse til fremsøgning indsættes i databasen med
    • actor_query_type: skal være CitizenUserOnBehalfAsProxyHolder
    • typecode_codename og typecode_schemename: typecode som reglen gælder for, begge felter skal udfyldes.
    • formatcode_codename og formatcode_
  • Borger med fuldmagt vha. fuldmagtsstrenge og konfiguration for åbning at tilladelse til fremsøgning indsættes i databasen med
    • actor_query_type: skal være CitizenUserOnBehalfAsProxyHolder
    • typecode_codename og typecode_schemename: typecode som reglen gælder for, begge felter skal udfyldes.
    • formatcode_codename og formatcode_schemename: hvis der er krav til formatcode udfyldes begge felter. Blanke felter betyder alle format codes tillades
    • privilege: angiv det fuldmagtsprivilege som borgeren skal have får at måtte fremsøge på typecode og formatcode angivet.
  • Borger med forældremyndighed og konfiguration for åbning at tilladelse til fremsøgning indsættes i databasen med
    • actor_query_type: skal være CitizenUserOnBehalfAsChildCustodyHolder
    • typecode_codename og typecode_schemename: typecode som reglen gælder for, begge felter skal udfyldes.
    • formatcode_codename og formatcode_schemename: hvis der er krav til formatcode udfyldes begge felter. Blanke felter betyder alle format codes tillades
    • privilege: angives ikke for forældremyndighed

Minlog Tekst konfiguration ved søgning (iti-18)

    • angiv det fuldmagtsprivilege som borgeren skal have får at måtte fremsøge på typecode og formatcode angivet.
  • Borger med forældremyndighed og konfiguration for åbning at tilladelse til fremsøgning indsættes i databasen med
    • actor_query_type: skal være CitizenUserOnBehalfAsChildCustodyHolder
    • typecode_codename og typecode_schemename: typecode som reglen gælder for, begge felter skal udfyldes.
    • formatcode_codename og formatcode_schemename: hvis der er krav til formatcode udfyldes begge felter. Blanke felter betyder alle format codes tillades
    • privilege: angives ikke for forældremyndighed


Minlog Tekst konfiguration ved søgning (iti-18)

Hvis man ønsker at anvende Hvis man ønsker at anvende en mere detaljeret opsætning af tekster, der sendes til minlog, gøres det ved at manuelt at indsætte records i tabellerne minlog_text og minlog_usertype_text. Findes der ikke matchende data heri anvendes de default værdier, der er sat op i servicens property fil.

...

ITI-18 søgninger logger patient-id, bruger-id, på-vegne-af-id samt hsuid-header og for hver DocumentEntry (DE) i returneret svar (der kan være frafiltreret metadata pga. samtykker): DE.uniqueId, DE.repositoryUniqueId, DE.homeCommunityId, DE.typeCode.

Se eksempel nedenfor:

DE.uniqueId, DE.repositoryUniqueId, DE.homeCommunityId, DE.typeCode.

Se eksempel nedenfor:

Code Block
collapsetrue
{
   "time":"2025-09-10T12:08:32.78Z",
   "category":"dk.sds.nsp.audit.log",
   "audit":{
      "timestamp":"2025-09-10T14:08:32.686+02:00",
      "components":[
         {
            "component":"DDS",
            "contexts":[
               {
                  "context":"documentRegistryAdhocQuery",
                  "information":[
                     {
                        "key":"patient-cpr",
                        "type":"SPI",
                        "value":"0207761919"
                     },
                     {
                        "key":"bruger-cpr",
                        "type":"SPI",
                        "value":"0611809735"
                     },
            
Code Block
collapsetrue
{
   "time":"2025-09-10T12:08:32.78Z",
   "category":"dk.sds.nsp.audit.log",
   "audit":{
      "timestamp":"2025-09-10T14:08:32.686+02:00",
      "components":[
         {
            "component            "key":"DDSqueryTypecode",
            "contexts":[
            "type":"NPI",
      {
                  "contextvalue":"documentRegistryAdhocQuery",
('39289-4^^2.16.840.1.113883.6.1')"
                   "information":[  },
                     {
                        "key":"patient-cprqueryFormatcode",
                        "type":"SPINPI",
                        "value":"0207761919EMPTY"
                     },
                     {
                        "key":"bruger-cprqueryEventCode",
                        "type":"SPINPI",
                        "value":"0611809735EMPTY"
                     },
                     {
                        "key":"queryTypecodequeryStartTimeFrom",
                        "type":"NPI",
                        "value":"('39289-4^^2.16.840.1.113883.6.1')EMPTY"
                     },
                     {
                        "key":"queryFormatcodequeryStartTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryEventCodequeryStopTimeFrom",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeFromqueryStopTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeToqueryAvailabilityStatus",
                        "type":"NPI",
                        "value":"EMPTY"  "value":"('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')"
                     },
                     {
                        "key":"queryStopTimeFromqueryDocumententryType",
                        "type":"NPI",
                        "value":"EMPTY('ondemand'), ('stable')"
                     },
                     {
                        "key":"queryStopTimeToqueryReferenceIdList",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryAvailabilityStatusdocument_entry.0.repositoryid",
                        "type":"NPI",
                        "value":"('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"queryDocumententryTypedocument_entry.0.documentid",
                        "type":"NPI",
                        "value":"('ondemand'), ('stable')0207761919.678401000016005.10001"
                     },
                     {
                        "key":"queryReferenceIdListdocument_entry.0.typecode",
                        "type":"NPI",
                        "value":"EMPTY39289-4"
                     },
                     {
                        "key":"document_entry.01.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.01.documentid",
                        "type":"NPI",
                        "value":"02077619195619531150207761919.6784010000160056052203964123326052.100011537974544003"
                     },
                     {
                        "key":"document_entry.01.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.12.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.12.documentid",
                        "type":"NPI",
                        "value":"5619531150207761919.60522039641233260527052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.12.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.23.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.23.documentid",
                        "type":"NPI",
                        "value":"56195311502077619190207761919.70522039641233260526052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.23.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.34.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.34.documentid",
                        "type":"NPI",
                        "value":"0207761919.60522039641233260527052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.34.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.45.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.45.documentid",
                        "type":"NPI",
                        "value":"0207761919.70522039641233260527152203964123326052.15379745440031537974544013"
                     },
                     {
                        "key":"document_entry.45.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.56.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.56.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.15379745440131537974544113"
                     },
                     {
                        "key":"document_entry.56.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.67.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.67.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.15379745441131537974544123"
                     },
                     {
                        "key":"document_entry.67.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.78.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.78.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.15379745441231537974544213"
                     },
                     {
                        "key":"document_entry.78.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.89.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.89.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.15379745442131537974544223"
                     },
                     {
                        "key":"document_entry.89.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.910.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.910.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.1537974544223"
                     },
                     {
                        "key":"document_entry.9.typecode",
                        "type":"NPI",
                        "value":"39289-45619531150207761919.6052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.10.repositoryidtypecode",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.112539289-4"
                     },
                     {
                        "key":"document_entry.10.documentidhsuid-header",
                        "type":"NPISPI",
                        "value":"5619531150207761919.6052203964123326052.1537974544003"{
                     },
               "assertion":{
      {
                        "keyissuer":"document_entry.10.typecodeAftale",
                        "type":"NPI",
      "attributeStatement":{
                  "value":"39289-4"
               "attribute":[
      },
                     {
         {
               "key":"hsuid-header",
                        "typeattributeValue":"SPI0207761919",
                        "value":{
                           "assertion":{
                name":"NSI_CITIZEN_CIVIL_REGISTRATION_NUMBER",
              "issuer":"Aftale",
                              "attributeStatementnameFormat":{null
                                 "attribute":[   },
                                    {
                                       "attributeValue":"0207761919nsi:HealthcareProfessional",
                                       "name":"NSI_CITIZEN_CIVIL_REGISTRATION_NUMBERUSERTYPE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"nsi:HealthcareProfessional0611809735",
                                       "name":"NSI_USERTYPE_ACTING_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"061180973533257872",
                                       "name":"NSI_ACTINGORG_USER_CIVIL_REGISTRATION_NUMBERUSING_ID",
                                       "nameFormat":null"NSI_SORCODE"
                                    },
                                    {
                                       "attributeValue":"33257872system owner",
                                       "name":"NSI_ORGSYSTEM_USINGOWNER_IDNAME",
                                       "nameFormat":"NSI_SORCODE"null
                                    },
                                    {
                                       "attributeValue":"systemtest owneraftaler",
                                       "name":"NSI_SYSTEM_OWNER_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"test aftaler1.0",
                                       "name":"NSI_SYSTEM_NAMEVERSION",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"1.0MyOrganisation",
                                       "name":"NSI_SYSTEMORG_RESPONSIBLE_VERSIONNAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"MyOrganisationfalse",
                                       "name":"NSI_ORGCONSENT_RESPONSIBLE_NAMEOVERRIDE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"false0611809735",
                                       "name":"NSI_CONSENT_OVERRIDERESPONSIBLE_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"06118097356QF17",
                                       "name":"NSI_RESPONSIBLE_USER_CIVILAUTHORIZATION_REGISTRATION_NUMBER",
CODE",
                                       "nameFormat":null
                                 "nameFormat":null
   }
                                 }],
                                 "id":"HSUIDdata"
   {
                           },
            "attributeValue":"6QF17",
                  "issueInstant":1757506112543,
                     "name":"NSI_RESPONSIBLE_USER_AUTHORIZATION_CODE",
         "version":2,
                              "nameFormatid":null"HSUID"
                           }
          }
              }
                   ],  }
                  ]
               "id":"HSUIDdata"}
            ]
         },
         },{
            "component":"MinLog2",
                  "issueInstant"contexts":1757506112543,[
               {
                  "versioncontext":2"addRegistrations",
                  "information":[
                  "id":"HSUID"
   {
                        }"key":"added",
                        }"type":"SPI",
                     }
   "values":[
               ]
            "0207761919"
   }
            ]
         },]
         {
            "component":"MinLog2"},
            "contexts":[
         {
      {
                  "contextkey":"addRegistrationsfailed",
                  "information":[
      "type":"SPI",
               {
         "values":[
               "key":"added",
            
            "type":"SPI",
            ]
            "values":[
         }
                  "0207761919"]
               }
         ]
   ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":80,
      "httpHeaders":{
                        "keyContent-Type":"failedtext/xml;charset=UTF-8",
         "SOAPAction":"urn:ihe:iti:2007:RegistryStoredQuery"
        },
       "typehttpHost":"SPIlocalhost",
      "idCardAttributes":{
         "medcom:CareProviderID":"33257872",
         "valuesmedcom:CareProviderName":["Sundhedsdatastyrelsen",
         "medcom:ITSystemName":"Service Consumer Test",
                "medcom:UserAuthorizationCode":"6QF17",
         "medcom:UserRole":"7170",
               ]"sosi:AuthenticationLevel":"4",
         "sosi:IDCardID":"VhwRkWa9ZDJ2atk5igEBsA==",
            }"sosi:IDCardType":"user",
         "sosi:IDCardVersion":"1.0.1"
         ]},
      "method":"POST",
         }"path":"/ddsregistry",
      "query":"",
      ]"port":9090,
         }"protocol":"http",
      ]"reqSize":9424,
   },
   "accessresSize":{57274,
      "codesoapHeaders":200,{
         "durationFlowID":80"e4d2aa20-fcaf-44f5-be93-7e29d7acd3d7",
         "httpHeadersIssuer":{"TEST1-NSP-STS",
         "Content-TypeMessageID":"text/xml;charset=UTF-8AAABmTOHDKgwkxxDbSVdo1NPU0k=",
         "SOAPActionNameID":"urn:ihe:iti:2007:RegistryStoredQueryuuid:46559bb9-d720-48b7-b9bd-c280915768d0"
      },
      "httpHost":"localhost"threadId":"default task-113",
      "time":"2025-09-10T14:08:32.686+02:00",
      "idCardAttributesstats":{
         "medcom:CareProviderIDhandlerDuration":"33257872"10,
         "medcom:CareProviderNameRequestContentDuration":"Sundhedsdatastyrelsen"0,
         "medcom:ITSystemNameResponseContentDuration":"Service Consumer Test"0,
         "medcom:UserAuthorizationCodeSecurityProtocolRequestDuration":"6QF17"6,
         "medcom:UserRole":"7170"SecurityProtocolResponseDuration":1,
         "sosi:AuthenticationLevelbufferAllocated":"4"false,
         "sosi:IDCardIDusedBuffers":"VhwRkWa9ZDJ2atk5igEBsA=="2,
         "sosi:IDCardTypeactiveBuffersInPool":"user"2,
         "sosi:IDCardVersionidleBuffersInPool":"1.0.1"28
      },
      "methodreqUUID":"POST",
  1c00db04-3a73-4434-8e0e-9c26eb66930e"
   }
}


Hvis request eller response validering er aktiveret og fejl findes vil de fremgå af audit loggen på følgende måde:

Code Block
collapsetrue
  {
    "pathcontext": "/ddsregistryxdsValidation",
      "queryinformation":"", [
      "port":9090,
{
        "protocolkey": "httpvalidationCode",
        "reqSizetype":9424 "NPI",
        "resSizevalue":57274, "XDSRegistryError"
      "soapHeaders":{},
         "FlowID":"e4d2aa20-fcaf-44f5-be93-7e29d7acd3d7",
 {
        "Issuerkey": "TEST1-NSP-STSvalidationMessage",
         "MessageIDtype": "AAABmTOHDKgwkxxDbSVdo1NPU0k=SPI",
         "NameIDvalue": "Unknown query type: urn:uuid:46559bb900000000-d7200000-48b70000-b9bd0000-c280915768d0000000000000"
      },
      "threadId":"default task-113",
{
        "timekey":"2025-09-10T14:08:32.686+02:00 "validationLevel",
        "statstype":{
         "handlerDurationNPI":10,
        "value": "RequestContentDurationREJECT":0,
         "ResponseContentDuration":0},
         "SecurityProtocolRequestDuration":6,{
        "key": "SecurityProtocolResponseDurationvalidationLocation":1,
         "bufferAllocatedtype":false,
         "usedBuffersNPI":2,
         "activeBuffersInPoolvalue":2,
         "idleBuffersInPoolAdhocQueryRequest":28
      },
      "reqUUID":"1c00db04-3a73-4434-8e0e-9c26eb66930e"
   }
}

]
  }

Hvor validationLocation vil indikere om der er tale om fejl i request (AdhocQueryRequest) eller response (AdhocQueryResponse) og validationMessage er selve fejlbeskeden.

DDS Repository

De forskellige ITI-43 operationer logger patient-id, bruger-id, på-vegne-af-id samt hsuid-header og for hvert dokument i returneret svar (der kan være frafiltreret dokument(er) pga. samtykker, der kan være forespurgt dokumenter, der ikke er tilgængelige): requestens uniqueId, repositoryUniqueId, homeCommunityId.

...

Code Block
collapsetrue
{
   "time":"2025-09-10T12:08:33.026Z",
   "category":"dk.sds.nsp.audit.log",
   "audit":{
      "timestamp":"2025-09-10T14:08:32.94+02:00",
      "components":[
         {
            "component":"DDS",
            "contexts":[
               {
                  "context":"documentRepositoryRetrieveDocumentSet",
                  "information":[
                        {
                        "key":"patient-cpr",
                        "type":"SPI",
       {
                  "contextvalue":"documentRepositoryRetrieveDocumentSet0207761919",
                   "information":[  },
                     {
                        "key":"patientbruger-cpr",
                        "type":"SPI",
                        "value":"02077619190611809735"
                     },
                     {
                        "key":"bruger-cprdocument_entry.0.homecommunityid",
                        "type":"SPINPI",
                        "value":"06118097351.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.0.homecommunityidrepositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.0.repositoryiddocumentid",
                        "type":"NPI",
                        "value":"15619531150207761919.3.6.1.4.1.21367.2010.1.2.11256052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.0.documentidhsuid-header",
                        "type":"NPISPI",
                        "value":"5619531150207761919.6052203964123326052.1537974544003"
{
                           "assertion":{
                             } "issuer":"Aftale",
                          {
    "attributeStatement":{
                                 "keyattribute":"hsuid-header",[
                        "type":"SPI",
            {
            "value":{
                           "assertionattributeValue":{
"0207761919",
                                       "issuername":"AftaleNSI_CITIZEN_CIVIL_REGISTRATION_NUMBER",
                                       "attributeStatementnameFormat":{null
                                    "attribute":[},
                                    {
                                       "attributeValue":"0207761919nsi:HealthcareProfessional",
                                       "name":"NSI_CITIZEN_CIVIL_REGISTRATION_NUMBERUSERTYPE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"nsi:HealthcareProfessional0611809735",
                                       "name":"NSI_USERTYPE_ACTING_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"061180973533257872",
                                       "name":"NSI_ACTINGORG_USER_CIVIL_REGISTRATION_NUMBERUSING_ID",
                                       "nameFormat":null"NSI_SORCODE"
                                    },
                                    {
                                       "attributeValue":"33257872system owner",
                                       "name":"NSI_ORGSYSTEM_USINGOWNER_IDNAME",
                                       "nameFormat":"NSI_SORCODE"null
                                    },
                                    {
                                       "attributeValue":"systemtest owneraftaler",
                                       "name":"NSI_SYSTEM_OWNER_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"test aftaler1.0",
                                       "name":"NSI_SYSTEM_NAMEVERSION",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"1.0MyOrganisation",
                                       "name":"NSI_ORG_SYSTEMRESPONSIBLE_VERSIONNAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"MyOrganisationfalse",
                                       "name":"NSI_ORGCONSENT_RESPONSIBLE_NAMEOVERRIDE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"false0611809735",
                                       "name":"NSI_CONSENT_OVERRIDE"NSI_RESPONSIBLE_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"06118097356QF17",
                                       "name":"NSI_RESPONSIBLE_USER_CIVILAUTHORIZATION_REGISTRATION_NUMBERCODE",
                                       "nameFormat":null
                                    },
                                    {],
                                       "attributeValue"id":"6QF17HSUIDdata",
                              },
         "name":"NSI_RESPONSIBLE_USER_AUTHORIZATION_CODE",
                     "issueInstant":1757506112831,
                  "nameFormat":null
            "version":2,
                        }
      "id":"HSUID"
                           ],}
                        }
         "id":"HSUIDdata"
            }
                  },]
               }
               "issueInstant":1757506112831,]
         },
         {
            "versioncomponent":2"MinLog2",
                              "id":"HSUID""contexts":[
               {
            }
      "context":"addRegistrations",
                  }"information":[
                     }{
                  ]
            "key":"added",
   }
            ]
         }"type":"SPI",
         {
               "componentvalues":"MinLog2",[
            "contexts":[
               {"0207761919"
                  "context":"addRegistrations",
      ]
                    "information":[ },
                     {
                        "key":"addedfailed",
                        "type":"SPI",
                        "values":[
                           "0207761919"
                        ]
                     },
                  ]
   {
            }
            "key":"failed",]
         }
      ]
      },
   "typeaccess":"SPI",{
      "code":200,
            "duration":73,
      "valueshttpHeaders":[{
         "Content-Type":"text/xml;charset=UTF-8",
         "SOAPAction":"urn:ihe:iti:2007:RetrieveDocumentSet"
         },
       "httpHost":"localhost",
      "idCardAttributes":{
           ]"medcom:CareProviderID":"33257872",
         "medcom:CareProviderName":"Sundhedsdatastyrelsen",
         "medcom:ITSystemName":"Service Consumer  }Test",
         "medcom:UserAuthorizationCode":"6QF17",
         ]"medcom:UserRole":"7170",
         "sosi:AuthenticationLevel":"4",
      }
   "sosi:IDCardID":"YRKgDAkQUL4n2svL+G9JWA==",
         ]"sosi:IDCardType":"user",
         }"sosi:IDCardVersion":"1.0.1"
      ]},
   },
   "accessmethod":{
      "code":200"POST",
      "durationpath":73"/ddsrepository",
      "httpHeadersquery":{
   "",
      "Content-Typeport":"text/xml;charset=UTF-8"9091,
         "SOAPActionprotocol":"urn:ihe:iti:2007:RetrieveDocumentSet"http",
      }"reqSize":8747,
      "httpHostresSize":"localhost"12670,
      "idCardAttributessoapHeaders":{
         "medcom:CareProviderIDFlowID":"33257872e7be2b98-212b-44a3-a2cd-8c9fc91cd103",
         "medcom:CareProviderNameIssuer":"SundhedsdatastyrelsenTEST1-NSP-STS",
         "medcom:ITSystemNameMessageID":"Service Consumer TestAAABmTOHDamrJmpBR/TEJlNPU0k=",
         "medcomNameID":UserAuthorizationCode":"6QF17",urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0"
      },
   "medcom:UserRole   "threadId":"7170default task-65",
      "time":"2025-09-10T14:08:32.94+02:00",
      "sosi:AuthenticationLevelstats":"4"{
         "handlerDuration":10,
         "sosi:IDCardIDRequestContentDuration":"YRKgDAkQUL4n2svL+G9JWA=="0,
         "sosi:IDCardTypeResponseContentDuration":"user"0,
         "sosi:IDCardVersionSecurityProtocolRequestDuration":"1.0.1"
7,
         }"SecurityProtocolResponseDuration":1,
         "methodbufferAllocated":"POST"false,
         "pathusedBuffers":"/ddsrepository"2,
         "queryactiveBuffersInPool":""2,
         "portidleBuffersInPool":909118
      },
      "protocolreqUUID":"http",
  41dd9a97-0998-4cdb-91b7-e08be4a1d5bf"
   }
}


Hvis request eller response validering er aktiveret og fejl findes vil de fremgå af audit loggen på følgende måde:

Code Block
collapsetrue
  {
    "reqSizecontext":8747 "xdsValidation",
      "resSizeinformation":12670, [
      "soapHeaders":{
         "FlowIDkey":"e7be2b98-212b-44a3-a2cd-8c9fc91cd103 "validationCode",
         "Issuertype": "TEST1-NSP-STSNPI",
         "MessageIDvalue": "AAABmTOHDamrJmpBR/TEJlNPU0k=XDSRepositoryError",
         "NameID":"urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0"
},
      {
  },
      "threadIdkey": "default task-65validationMessage",
        "timetype":"2025-09-10T14:08:32.94+02:00 "SPI",
        "statsvalue":{
 "The repository Unique ID is missing"
   "handlerDuration":10,
   },
      "RequestContentDuration":0,{
        "key": "ResponseContentDurationvalidationLevel":0,
        "type": "SecurityProtocolRequestDurationNPI":7,
        "value": "SecurityProtocolResponseDurationREJECT":1,
      },
      "bufferAllocated":false,{
        "key": "usedBuffersvalidationLocation":2,
        "type": "activeBuffersInPoolNPI":2,
        "value": "idleBuffersInPoolRetrieveDocumentSetRequestType":18
      },
      "reqUUID":"41dd9a97-0998-4cdb-91b7-e08be4a1d5bf"]
   }
}

}

Hvor validationLocation vil indikere om der er tale om fejl i request (RetrieveDocumentSetRequestType) eller response (RetrieveDocumentSetResponseType) og validationMessage er selve fejlbeskeden.

Standard fejlsøgning

  • Ved problemer med indlæsning af servicens konfigurationsfiler (DDSRegistry.properties og DDSRepository.properties) bør man verificere at filen er volume-mappet korrekt. Vær opmærksom på at filen ikke læses hvis den ikke er til stede ved opstart af WildFly serveren.
  • Ved manglende logning hvor der forventes fejlbeskeder bør konfigurationsfilen (DDSRegistry.properties og DDSRepository.properties) checkes, da logindstillingerne sættes herigennem.
  • En service eller et job kan stoppes og startes gennem docker.

...