Versions Compared

Key

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

...

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.

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.

backendsores.errorcount.duration

x

x

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

*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.

...

x

...

x

...

Kafka klient id anvendt til MinLog registrering.

...

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.vendor

...

x

...

x

...

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

...

treatment.relation.serviceprovider.version

...

x

...

x

...

Indsættes som ’ServiceProvider/Version’ 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.external.reference.id

...

x

...

x

...

Indsættes som ’ExternalReferenceId’ 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).

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

httpclient.pooling.totalconnections



Konfiguration af client pool til kald af Sores service

Default er 200

httpclient.pooling.maxconnections.pr.route



Konfiguration af client pool til kald af Sores service

Default er 20

httpclient.pooling.connection.timeout



Konfiguration af connection og connection request timeout (angives millisekunder) til kald af Sores service

Default er 1000

httpclient.pooling.socket.timeout



Konfiguration af socket timeout (angivet i 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.bootstrap.serversxxKafka bootstrap servers der anvendes til MinLog registrering.
minlog.producer.client.id

x

x

Kafka klient id anvendt til MinLog registrering.

minlog.producer.key.serializerxxKafka key serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer"
minlog.producer.value.serializerxxKafka value serializer. Skal være "org.apache.kafka.common.serialization.StringSerializer"
minlog.topicxxKafka topic til MinLog registrering.
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.maxTotalConnectionsxxKonfiguration af client pool til kald af PersonInformation service
personinformation.defaultMaxConnectionsPerRoutexxKonfiguration af client pool til kald af PersonInformation service
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.vendor

x

x

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

treatment.relation.serviceprovider.version

x

x

Indsættes som ’ServiceProvider/Version’ 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.external.reference.id

x

x

Indsættes som ’ExternalReferenceId’ 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.vendor=vendor
treatment.relation.serviceprovider.version=version
treatment.relation.lookup.timeinterval.start.offset=-1
treatment.relation.lookup.timeinterval.end.offset=1
treatment.relation.timelimit.offset=90
treatment.relation.queryable.cvr=19343634
treatment.relation.external.reference.id=
treatment.relation.acceptable.relations.hospital=A,B,C
treatment.relation.followup.relations.hospital=All
treatment.relation.acceptable.relations.doctor=C,D,E
treatment.relation.followup.relations.doctor=All
treatment.relation.acceptable.relations.organization=A,B,C
treatment.relation.followup.relations.organization=All
consent.check

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.vendor=vendor
treatment.relation.serviceprovider.version=version
treatment.relation.lookup.timeinterval.start.offset=-1
treatment.relation.lookup.timeinterval.end.offset=1
treatment.relation.timelimit.offset=90
treatment.relation.queryable.cvr=19343634
treatment.relation.external.reference.id=
treatment.relation.acceptable.relations.hospital=A,B,C
treatment.relation.followup.relations.hospital=All
treatment.relation.acceptable.relations.doctor=C,D,E
treatment.relation.followup.relations.doctor=All
treatment.relation.acceptable.relations.organization=A,B,C
treatment.relation.followup.relations.organization=All
consent.check.sor.assigning.authorities.oid=1.2.208.176.1.1,1.2.208.176.1
consent.check.shak.assigning.authorities.oid=
consent.check.ynumber.assigning.authorities.oid=
registering.allowed.sor.assigning.authorities.oid=1.2.208.176.1.1,1.2.208.176.1
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.bootstrap.servers=kafka:9092
minlog.producer.client.id=DdsMinLog2-producer
minlog.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer
minlog.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer
minlog.topic=MINLOG_TOPIC
dds.minlog.on.idcard.level3.enabled=true
personinformation.maxTotalConnections=200
personinformation.defaultMaxConnectionsPerRoute=20
personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1
sts.keystore.expiry.warning.duration=P7D
sores.url=http://test1.ekstern-test.nspop.dk:8080/sores/v3
sores.cache.duration=PT24H


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.vendor=vendor
treatment.relation.serviceprovider.version=version
treatment.relation.lookup.timeinterval.start.offset=-1
treatment.relation.lookup.timeinterval.end.offset=1
treatment.relation.timelimit.offset=90
treatment.relation.queryable.cvr=19343634
treatment.relation.external.reference.id=
treatment.relation.acceptable.relations.hospital=A,B,C
treatment.relation.followup.relations.hospital=All
treatment.relation.acceptable.relations.doctor=C,D,E
treatment.relation.followup.relations.doctor=All
treatment.relation.acceptable.relations.organization=A,B,C
treatment.relation.followup.relations.organization=All
 
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.bootstrap.servers=kafka:9092
minlog.producer.client.id=DdsMinLog2-producer
minlog.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer
minlog.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer
minlog.topic=MINLOG_TOPIC
 
dds.minlog.on.idcard.level3.enabled=true
 
personinformation.maxTotalConnections=200
personinformation.defaultMaxConnectionsPerRoute=20
personinformation.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1
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

...

  • Returnerer status HTTP 200, hvis DDS'en kan modtage forespørgsler, og 500 hvis den ikke er i stand til det.
  • Returnere Returnerer tekst i json format
  • Eksempel på status check er adgang til database og gyldig certifkat for kald til backends
  • Eksempel på relevant driftinformation information, der returneres er f.eks. servicens version og tidspunkt for certifikat udløb

...

  • Returnerer HTTP 500, hvis der er aktive alarmer og ellers HTTP 200.
  • Returnerer tekst i text/plan format. 
  • Der returneres kun tekst, hvis der en alarm. Hver alarm adskilles med lfskrives på sin egen linie.
  • En klassisk alarm holder øje med kald til ekstern service i et givet y tidsrum og melder fejl, hvis antal fejl overstiger x antalbliver for højt.


Eksempel på status tekst, når alt er godt.

200 ok

{ {"Servicens certifikat udløber den 2025-11-28T10:30:24":"OK"}, {"Database DocumentSourcesDataSource":"OK"}, {"Database AuthDataSource":"OK"}, {"Version":"2.7.4"} }


Eksempel på alarm tekst, når der har været for mange kald til person information uden svar:

...

I den følgende tabel gives et overblik over de forskellige status og alarm check. Efterfølgende er enkelte af de forskellige check udbybet uddybet for relevant.

En Healthindicator kan være enten status- eller alarmindicator. Eller både og.  Hvis tabellens celler er tomme for status eller alarm, betyder dette at den ikke er implementeret for den pågældende healthindicator.

...

  • HealthIndicator: navn på healthIndicator. Dette er også navnet på klassen i sourcekoden
  • Udførsel: det tjek der udføres ved health chekketchecket
  • Status 200: Den tekst status og/eller alarm returnerer ved kald når tjekket går godt
  • Status 500: Den tekst status og/eller alarm returnerer ved kald når tjekket fejler
  • Konfiguration (property) er den opsætning, der kan påvirke healthindicatoren. Typisk properties (default værdi står efter ":") og i enkelte tilfælde database opsætning.


HealthindicatorUdførsel/resultatStatusIndicator tekstAlarmIndicator tekstKonfiguration (property)
DatasourceHealthIndicator for WhitelistDataSource

Udførsel

Kalder datasource med den konfigurerede sql streng

Kalder datasource med den konfigurerede sql strengwhitelist.statement

Status 200

{"Database WhitelistDataSource":"OK"}


Status 500

{"Database WhitelistDataSource":"Ikke tilgængelig"}

Der er ingen forbindelse til databasen med  navnetWhitelistDataSource.
DatasourceHealthIndicator for documentSourcesDS

Udførsel

Kalder datasource med den konfigurerede sql streng

Kalder datasource med den konfigurerede sql strengdocumentsourcesds.statement

Status 200

{"Database DocumentSourcesDataSource":"OK"}

<empty>

Status 500

{"Database DocumentSourcesDataSource":"Ikke tilgængelig"}

Der er ingen forbindelse til databasen med navnet DocumentSourcesDataSource.
DatasourceHealthIndicator for authDataSource

Udførsel

Kalder datasource med den konfigurerede  sql streng

Kalder datasource med den konfigurerede sql strengauthds.statement

Status 200

{"Database AuthDataSource":"OK"}

<empty>

Status 500

{"Database AuthDataSource":"Ikke tilgængelig"}

Der er ingen forbindelse til databasen med navnet AuthDataSource.
ConsentVerificationHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

verification.errorcount.duration:PT10M

verification.error.tolerance:0


Status 200<empty>

Status 500

Samtykke servicen har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.

TreatmentRelationHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

treatment.relation.errorcount.duration:PT10M

treatment.relation.error.tolerance:0

Status 200<empty>

Status 500

Behandlerrelation servicen har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.

PersonInformationHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

personinformation.errorcount.duration:PT10M

personinformation.error.tolerance:0

Status 200<empty>

Status 500

Person Information servicen har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.

MinlogQueryMessagesHealthIndicatorUdførsel
Tjekker alle minlog tekster (activity) ikke er længere end 75 karakterer

minlog.query.default

minlog.query.consentoverride

minlog.query.childcustodyholder

minlog.query.proxyholder

minlog.query.citizen

Samt data i tabellerne minlog_text og minlog_usertype_text (se også her)

Status 200<empty>

Status 500
Der er fejl i MinlogQueryMessages fordi de konfigurerede tekster er for lange. Se log fil for detaljer.
MinLogHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

minlog.errorcount.duration:PT10M

minlog.error.tolerance:0

Status 200<empty>

Status 500

MinLog servicen har fejlet flere gange end tilladt i en given periode.

MinLog servicen har fejlet <antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.

VersionHealthIndicator

VersionHealthIndicator

UdførselHenter versionen i pom.properties

Status 200{"Version":"<version>"}
Status 500na - svarer altid 200
StsHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

sts.errorcount.duration:PT10M

sts.error.tolerance:0

Status 200<empty>

Status 500

STS servicen har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.

CertificateHealthIndicatorUdførselTjekker om expiry date er indtruffet på det keystore angivet i property filenTjekker om expiry date indtræffer inden for given periode på det keystore angivet i property filen

sts.keystore

sts.keystore.expiry.warning.duration

Status 200{"Servicens certifikat udløber den 2025-11-28T10:30:24.":"OK"}<empty>
Status 500

{"Servicens certifikat udløber den 2024-11-28T10:30:24.":"Udløbet"}

eller 

{"Servicens certifikat kunne ikke findes eller har ingen udløbsdato.":"Ikke tilgængelig"}

Servicens certifikat er ved at udløbe. Det udløber den  2025-11-28T10:30:24.

eller

Servicens certifikat er udløbet. Det udløb den  2025-11-28T10:30:24.

eller

Servicens certifikat kunne ikke findes eller har ingen udløbsdato.

BackendRegistryHealthIndicatorUdførsel


Tjekker antal fejl inden for en given periode ikke overstiger maks for den enkelte registry der er konfigureret. 

backend.errorcount.duration:PT10M

database tabellen documentregistry.documentregistryfailurethreshold

default failurethreshold er 5

Status 200<empty>

Status 500
Backend med navnet

Registry (id=1) med endpoint <backend> har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <failurethreshold> gange i en given periode.

BackendRepositoryHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks for den enkelte repository der er konfigureret. 

backend.errorcount.duration:PT10M

database tabellen documentsource.failurethreshold

default failurethreshold er 5

Status 200<empty>

Status 500
Backend

Repository med

navnet

endpoint <backend> og SoapVersion <verson> har fejlet

flere gange end tilladt

<antal> gange. Den må ikke fejle mere end <failurethreshold> gange i en given periode

DatasourceHealthIndicator - konfiguration af databasemonitorering

Databasemonitoreringen laver en simpel query mod databasen. Denne query er justbar og kan ændres i servicenes property filer.

DDSRegistry.properties:

.

SoresHealthIndicatorUdførsel
Tjekker antal fejl inden for en given periode ikke overstiger maks

sores.errorcount.duration:PT10M

sores.error.tolerance=0

Status 200

Status 500

Sores servicen har fejlet <antal> gange. Den må ikke fejle mere end <tolerance> gange i en given periode.




DatasourceHealthIndicator - konfiguration af databasemonitorering

Databasemonitorerings healthindicatorerne laver en simpel query mod databasen. Denne query er justerbar og kan ændres i servicenes property filer.


DDSRegistry.properties:

documentsourcesds.statement=SELECT *documentsourcesds.statement=SELECT * FROM documentsources.documentregistry LIMIT 1;
authds.statement=SELECT * FROM stamdata.autreg LIMIT 1 LIMIT 1;
whitelist.statement=SELECT 1 FROM dual;


DDSRepository.properties:

documentsourcesds.statement=SELECT * FROM documentsources. documentsource LIMIT 1;
authds.statement=SELECT * FROM stamdata.autreg LIMIT 1 LIMIT 1;
whitelist.statement=SELECT 1 FROM dual;


HealthIndicatorer, der overvåger

...

fejlkald over tid

En række af healthindatoerne healthindacatoerne har mulighed for konfiguration af tolerance og duration:


*.error.tolerance=0

*.errorcount.duration=PT10M


tolerance Tolerance angiver, hvad grænsen for fejl er. Overstiger antal fejl det angivne, kommer der en alarm ved kald af alarm endpointet.

duration Duration angiver, hvor lang en periode, der skal kigges i efter antallet af fejl.

...

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:

Code Block
collapse

...

true
{
   "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":"

...

                     {
                        "key": "citizen-relation-origin",
                        "type": "RPI",
                        "value": "powerOfAttorneyPrivileges"
                     },
                     {
                        "key":"queryTypecode",
                        "type":"NPI",
                        "value":"('39289-4^^2.16.840.1.113883.6.1')"
                     },
                     {
                        "key":"queryFormatcode",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryEventCode",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeFrom",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStopTimeFrom",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStopTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryAvailabilityStatus",
                        "type":"NPI",
                        "value":"('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')"
                     },

                     {
                        "key":"queryDocumententryType",
                        "type":"NPI",
                        "value":"('ondemand'), ('stable')"
                     },

                     {
                        "key":"queryReferenceIdList",
                        "type":"NPI",
                        "value":"('ref1_5619531150207761919.7052203964123326052.1537974544002^^^&2.16.840.1.113883.6.1&ISO^ddstest'), ('ref1_5619531150207761919.7052203964123326052.1537974544003^^^&2.16.840.1.113883.6.1&ISO^ddstest')"
                     },

...

0611809735"
                     },
                     {
                        "key":"queryTypecode",
                        "type":"NPI",
                        "value":"('39289-4^^2.16.840.1.113883.6.1')"
                     },
                     {
                        "key":"queryFormatcode",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryEventCode",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeFrom",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStartTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStopTimeFrom",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryStopTimeTo",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"queryAvailabilityStatus",
                        "type":"NPI",
                        "value":"('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')"
                     },
                     {
                        "key":"queryDocumententryType",
                        "type":"NPI",
                        "value":"('ondemand'), ('stable')"
                     },
                     {
                        "key":"queryReferenceIdList",
                        "type":"NPI",
                        "value":"EMPTY"
                     },
                     {
                        "key":"document_entry.0.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.0.documentid",
                        "type":"NPI",
                        "value":"0207761919.678401000016005.10001"
                     },
                     {
                        "key":"document_entry.0.

...

typecode",
                        "type":"

...

NPI",
                        "value":"

...

39289-4"
                     },
                     {
                        "key":"document_entry.

...

1.

...

repositoryid",
                        "type":"

...

NPI",
                        "value":"

...

1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.1.

...

documentid",
                        "type":"

...

NPI",
                        "value":"

...

5619531150207761919.6052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.1.

...

typecode",
                        "type":"

...

NPI",
                        "value":"

...

39289-4"
                     },
                     {
                        "key":"document_entry.

...

2.

...

repositoryid",
                        "type":"

...

NPI",
                        "value":"

...

1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.

...

2.

...

documentid",
                        "type":"

...

NPI",
                        "value":"

...

DDS Repository

De forskellige ITI-43 operationer logger patient-id, bruger-id, på-vegne-af-id 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.

Eksempel:

{
   "time": "2018-09-27T19:28:53.476Z",
   "category": "dk.sds.nsp.audit.log.dds",
   "audit": {
      "timestamp": "2018-09-27T21:28:52.996+02:00",
      "components": [
         {
            "component": "DDS",
            "contexts": [
               {
                  "context": "documentRepositoryRetrieveDocumentSet",
                  "information": [
                     {
                        "key": "patient-cpr",
                        "type": "SPI",
                        "value": "2110979420"
                     },
                     {
                        "key": "bruger-cpr",
                        "type": "SPI",
                        "value": "0101584160"
                     },
                     {
                        "key": "on-behalf-of-cpr",
                        "type": "SPI",
                        "value": "0101584160"
                     },

...

5619531150207761919.7052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.2.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.3.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.3.documentid",
                        "type":"NPI",
                        "value":"0207761919.6052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.3.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.4.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.4.documentid",
                        "type":"NPI",
                        "value":"0207761919.7052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.4.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.5.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.5.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.1537974544013"
                     },
                     {
                        "key":"document_entry.5.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.6.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.6.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.1537974544113"
                     },
                     {
                        "key":"document_entry.6.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.7.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.7.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.1537974544123"
                     },
                     {
                        "key":"document_entry.7.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.8.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.8.documentid",
                        "type":"NPI",
                        "value":"0207761919.7152203964123326052.1537974544213"
                     },
                     {
                        "key":"document_entry.8.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.9.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.

...

1125"
                     },
                     {
                        "key":

...

"document_entry.

...

9.

...

documentid",
                        "type":"NPI",
                        "value":

...

"

...

0207761919.

...

7152203964123326052.1537974544223"
                     },
                     {
                        "key":"document_entry.9.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"document_entry.10.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.10.documentid",
                        "type":"NPI",
                        "value":"5619531150207761919.6052203964123326052.1537974544003"
                     },
                     {
                        "key":"document_entry.10.typecode",
                        "type":"NPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"hsuid-header",
                        "type":"SPI",
                        "value":{
                           "assertion":{
                              "issuer":"Aftale",
                              "attributeStatement":{
                                 "attribute":[
                                    {
                                       "attributeValue":"0207761919",
                                       "name":"NSI_CITIZEN_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"nsi:HealthcareProfessional",
                                       "name":"NSI_USERTYPE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"0611809735",
                                       "name":"NSI_ACTING_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"33257872",
                                       "name":"NSI_ORG_USING_ID",
                                       "nameFormat":"NSI_SORCODE"
                                    },
                                    {
                                       "attributeValue":"system owner",
                                       "name":"NSI_SYSTEM_OWNER_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"test aftaler",
                                       "name":"NSI_SYSTEM_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"1.0",
                                       "name":"NSI_SYSTEM_VERSION",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"MyOrganisation",
                                       "name":"NSI_ORG_RESPONSIBLE_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"false",
                                       "name":"NSI_CONSENT_OVERRIDE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"0611809735",
                                       "name":"NSI_RESPONSIBLE_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"6QF17",
                                       "name":"NSI_RESPONSIBLE_USER_AUTHORIZATION_CODE",
                                       "nameFormat":null
                                    }
                                 ],
                                 "id":"HSUIDdata"
                              },
                              "issueInstant":1757506112543,
                              "version":2,
                              "id":"HSUID"
                           }
                        }
                     }
                  ]
               }
            ]
         },
         {
            "component":"MinLog2",
            "contexts":[
               {
                  "context":"addRegistrations",
                  "information":[
                     {
                        "key":"added",
                        "type":"SPI",
                        "values":[
                           "0207761919"
                        ]
                     },
                     {
                        "key":"failed",
                        "type":"SPI",
                        "values":[
                           
                        ]
                     }
                  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":80,
      "httpHeaders":{
         "Content-Type":"text/xml;charset=UTF-8",
         "SOAPAction":"urn:ihe:iti:2007:RegistryStoredQuery"
      },
      "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":"VhwRkWa9ZDJ2atk5igEBsA==",
         "sosi:IDCardType":"user",
         "sosi:IDCardVersion":"1.0.1"
      },
      "method":"POST",
      "path":"/ddsregistry",
      "query":"",
      "port":9090,
      "protocol":"http",
      "reqSize":9424,
      "resSize":57274,
      "soapHeaders":{
         "FlowID":"e4d2aa20-fcaf-44f5-be93-7e29d7acd3d7",
         "Issuer":"TEST1-NSP-STS",
         "MessageID":"AAABmTOHDKgwkxxDbSVdo1NPU0k=",
         "NameID":"urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0"
      },
      "threadId":"default task-113",
      "time":"2025-09-10T14:08:32.686+02:00",
      "stats":{
         "handlerDuration":10,
         "RequestContentDuration":0,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":6,
         "SecurityProtocolResponseDuration":1,
         "bufferAllocated":false,
         "usedBuffers":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":28
      },
      "reqUUID":"1c00db04-3a73-4434-8e0e-9c26eb66930e"
   }
}

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.

Se eksempel nedenfor:

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",
                        "value":"0207761919"
                     },
                     {
                        "key":"bruger-cpr",
                        "type":"SPI",
                        "value":"0611809735"
                     },
                     {
                        "key":"document_entry.0.homecommunityid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.0.repositoryid",
                        "type":"NPI",
                        "value":"1.3.6.1.4.1.21367.2010.1.2.1125"
                     },
                     {
                        "key":"document_entry.0.documentid",
                        "type":"NPI",
                        "value":"5619531150207761919.6052203964123326052.1537974544003"
                     },
                     {
                        "key":"hsuid-header",
                        "type":"SPI",
                        "value":{
                           "assertion":{
                              "issuer":"Aftale",
                              "attributeStatement":{
                                 "attribute":[
                                    {
                                       "attributeValue":"0207761919",
                                       "name":"NSI_CITIZEN_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"nsi:HealthcareProfessional",
                                       "name":"NSI_USERTYPE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"0611809735",
                                       "name":"NSI_ACTING_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"33257872",
                                       "name":"NSI_ORG_USING_ID",
                                       "nameFormat":"NSI_SORCODE"
                                    },
                                    {
                                       "attributeValue":"system owner",
                                       "name":"NSI_SYSTEM_OWNER_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"test aftaler",
                                       "name":"NSI_SYSTEM_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"1.0",
                                       "name":"NSI_SYSTEM_VERSION",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"MyOrganisation",
                                       "name":"NSI_ORG_RESPONSIBLE_NAME",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"false",
                                       "name":"NSI_CONSENT_OVERRIDE",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"0611809735",
                                       "name":"NSI_RESPONSIBLE_USER_CIVIL_REGISTRATION_NUMBER",
                                       "nameFormat":null
                                    },
                                    {
                                       "attributeValue":"6QF17",
                                       "name":"NSI_RESPONSIBLE_USER_AUTHORIZATION_CODE",
                                       "nameFormat":null
                                    }
                                 ],
                                 "id":"HSUIDdata"
                              },
                              "issueInstant":1757506112831,
                              "version":2,
                              "id":"HSUID"
                           }
                        }
                     }
                  ]
               }
            ]
         },
         {
            "component":"MinLog2",
            "contexts":[
               {
                  "context":"addRegistrations",
                  "information":[
                     {
                        "key":"added",
                        "type":"SPI",
                        "values":[
                           "0207761919"
                        ]
                     },
                     {
                        "key":"failed",
                        "type":"SPI",
                        "values":[
                           
                        ]
                     }
                  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":73,
      "httpHeaders":{
         "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"
      },
      "method":"POST",
      "path":"/ddsrepository",
      "query":"",
      "port":9091,
      "protocol":"http",
      "reqSize":8747,
      "resSize":12670,
      "soapHeaders":{
         "FlowID":"e7be2b98-212b-44a3-a2cd-8c9fc91cd103",
         "Issuer":"TEST1-NSP-STS",
         "MessageID":"AAABmTOHDamrJmpBR/TEJlNPU0k=",
         "NameID":"urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0"
      },
      "threadId":"default task-65",
      "time":"2025-09-10T14:08:32.94+02:00",
      "stats":{
         "handlerDuration":10,
         "RequestContentDuration":0,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":7,
         "SecurityProtocolResponseDuration":1,
         "bufferAllocated":false,
         "usedBuffers":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":18
      },
      "reqUUID":"41dd9a97-0998-4cdb-91b7-e08be4a1d5bf"
   }
}


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.

...