Versions Compared

Key

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

Table of Contents


Komponenter

Dette dokument dækker følgende komponenter på NSP:

  • Dokumentregistrerings- og oprettelsesservice

  • Type: Webservice

  • Filnavn: dros.war

  • Url: <serverurl>/dros

  • Servicecheckurl: <serverurl>/drsdros/status

  • Versionurl: <serverurl>/dros/health returnerer en json struktur med denne

  • DKS config: <serverurl>/dros/<iti-snitflade>/dks se detaljer nedenfor


Konfiguration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filen dros.properties,  der placeres i følgende WildFly modul:

/pack/wildfly8/modules/sds/dros/configuration/main/

Moduldefinitionen er at finde i sourcekoden til dros under:

/dros-war/etc/modules/sds/dros/configuration/main/module.xml

I filen skal følgende properties være definerede:

Property

Beskrivelse

dros.url.prefix

URL prefix der indsættes i wsdl'er og bruges af dks-servlet.

dros.app.nameAnvendes af dks-servlet til at udfylde name elementet sammen med et suffix for ITI endpointet.
Eksempel: hvis dros.app.name er "DROSAFTALER" bliver det "<name>DROSAFTALERITI41</name>" ved iti-41.
dros.serviceidentifier

Anvendes af dks-servlet. Inkluderes i action som en serviceIdentifier attribut.

Eksempel: hvis dros.serviceidentifier er "aftaler" bliver det "<action name="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b" serviceIdentifier="aftaler">" ved iti-41.

iti41.service.endpoint

Endpoint på ITI41-backend.
iti41.service.security.require.person

Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false)

Default: false

iti41.service.xds.validationlevel

Angiver hvordan requestet valideres inden der kaldes videre til det bagvedliggende registry. Skal have en af værdierne OFF, WARNING, LOG og REJECT. Se dokumentet 'Design og Arkitektur' for en beskrivelse af disse værdier.

iti42.service.endpointEndpoint på ITI42-backend.
iti42.service.security.require.person

Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false)

Default: false

iti42.service.xds.validationlevelAngiver hvordan requestet valideres inden der kaldes videre til det bagvedliggende registry. Skal have en af værdierne OFF, WARNING, LOG og REJECT. Se dokumentet 'Design og Arkitektur' for en beskrivelse af disse værdier.

iti57.service.endpoint

Endpoint på ITI57-backend.
iti57.service.security.require.person

Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false)

Default: false

iti57.service.xds.validationlevelAngiver hvordan requestet valideres inden der kaldes videre til det bagvedliggende registry. Skal have en af værdierne OFF, WARNING, LOG og REJECT. Se dokumentet 'Design og Arkitektur' for en beskrivelse af disse værdier.
iti61.service.endpointEndpoint på ITI61-backend.
iti61.service.security.require.person

Angiver, om der skal anvendes personlige sikkerhedsbillet i.e UserIdCard eller det er nok med SystemIdCard (true/false)

Default: false

iti61.service.xds.validationlevelAngiver hvordan requestet valideres inden der kaldes videre til det bagvedliggende registry. Skal have en af værdierne OFF, WARNING, LOG og REJECT. Se dokumentet 'Design og Arkitektur' for en beskrivelse af disse værdier.

dros.backend.failure.threshold

Tærskel for, hvor mange gang i træk et kald til en backend må fejle, før denne backend betragtes som 'død' af status-siden.

cprexists.validationlevel

Valideringsniveau for CPR validering

Eksempel: WARNING, REJECT, OFF

dros.backend.failure.interval.minutesAngiver antal minutter hvorefter fejlkald 'forældes'. Dermed er det kun fejlkald, der er nyere end dette, der medregnes, når det vurderes om backenden fejler. 


personinformationcprexists.url

URL for CPR exist PersonInformation service

Eksempel: http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-cprexists

cprexists.maxTotalConnections

Konfiguration af client pool til kald af CPRExists service

Default: 200

cprexists.defaultMaxConnectionsPerRoute

Konfiguration af client pool til kald af CPRExists service

Default: 20

log4j konfiguration

Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen

Se yderligere opsætning i installationsvejledningen.

Overvågning

DROS udstiller en overvågningsside, som findes i listen af komponenter i afsnit 2.

...

DROS-overvågningssiden returnerer enten:

  • HTTP 200, hvis servicen i øjeblikket kører fint.
  • HTTP 203, hvis der er opstået en fejl der kræver indgriben.

...

Det overvåges for hver backend, om kaldene til backenden går galt. Det kan konfigureres, hvor mange kald i træk der må gå galt, før en backend betragtes som 'død'.

Eksempler på status-sider

200 OK

200 OK
---------------------------------------
STATUS
ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "0/50 fejl"
ITI61 backend : "0/50 fejl"
CprExistsServiceClient : "0/50 fejl"

Det fremgår for hver backend, om kaldene til den går godt eller ej.

203 Non-authoritative Information

...

personinformation/v1

personinformation.error.tolerance

Angiver hvor mange fejl, der må forekomme ved kald til personInformation

Default: 0

personinformation.error.interval.minutes

Angiver det tidsinterval det angivne antal fejl skal ligge indenfor ved kald til personInformation

Default: 10

sores.url

URL for Sores service

Eksempel: http://test1.ekstern-test.nspop.dk:8080/sores/v3

sores.cache.duration

Angiver en duration, hvor længe et Sores opslag skal gemmes i Sores cachen, inden man henter en ny værdi ved næste opslag på et givet Sor nummer

Eksempel: PT24H gemmer et Sores opslag 24 timer

sores.error.tolerance

Angiver hvor mange fejl, der må forekomme ved kald til Sores

Default: 0

sores.error.interval.minutes

Angiver det tidsinterval det angivne antal fejl skal ligge indenfor ved kald til Sores

Default: 10

httpclient.pooling.totalconnections

Konfiguration af client pool til kald af personInformation og Sores

Default: 200

httpclient.pooling.maxconnections.pr.route

Konfiguration af client pool til kald af PersonInformation og Sores

Default: 20

handled.type.codes

Angiver en liste af, hvilke type codes DROS håndterer. Er listen tom (property findes, men ingen værdi efter =) accepteres alle type codes.

Eksempel på liste: 39289-4,39290-2,53576-5,52460-3,81215-6,28615-3

Default: tom liste

 

For alle nedenstående properties, som starter med validation. og slutter på .codes gælder følgende:

Disse properties anvendes til at konfigurerer XDS validerings biblioteket med.

En kode består af 3 elementer: value, system og displayname. Disse adskilles med $. Hver sæt af koder adskilles med #. 

Der er muligt at angive wildcards og det kan man gøre på to niveauer:

  • Indenfor et sæt kan man angive "null" hvis man tillader alle værdier for et specifikt element
    F.eks. fra class codes nedenfor: validation.class.codes=null$1.2.208.184.100.9$null#. Her er der kun krav til "system" værdien.
  • Hvis en kode tillader alle værdier, kan det angives med værdien "*", ved at lade listen være tom  eller ved slet ikke at angive propertien i property filen.
    F.eks. fra format codes nedenfor: validation.format.codes=*. Her kan alle format codes anvendes.
validation.class.codes

Angiv tilladte class koder

Eksempel: null$1.2.208.184.100.9$null#
Alle class koder fra systemet 1.2.208.184.100.9 er tilladste.

validation.confidentiality.codes

Angiv tilladte confidentiality codes. Typisk kun N

Eksempel: N$2.16.840.1.113883.5.25$null#
ConfidentialityCode N fra systemet 2.16.840.1.113883.5.25 tilladt.

validation.organisation.codes

Angiv tilladte organisations koder. Her angives typisk kun skema.

Eksempel:  null$1.2.208.176.1.4$null#null$1.2.208.176.1.1$null#
Organisationskoder fra system 1.2.208.176.1.4 (Yder) eller 1.2.208.176.1.1 (SOR) er tilladte

validation.patientid.codes

Angiv tilladte patientid. Her angives typisk kun skema.

Eksempel: null$1.2.208.176.1.2$null#
Patientider fra systemet 1.2.208.176.1.2 (CPR) er tilladte.

validation.format.codes

Angive tilladte format koder

Eksempel: *
Alle format koder er tilladte

validation.healthcarefacilitytype.codes

Angive tilladte healthcarefacilitytype koder

Eksempel: *
Alle healthcarefacilitytype koder er tilladate

validation.practicesetting.codes

Angiv tilladte practicesetting koder

Eksempel: *
Alle practicesetting koder er tilladte

validation.event.codes

Angiv tilladte event koder

Eksempel:

null$1.2.208.176.2.4$null#\
1$urn:ad:dk:medcom:noah:action-categories$Audiogram#\
15$urn:ad:dk:medcom:noah:action-categories$Impedance (left ear)#\
16$urn:ad:dk:medcom:noah:action-categories$Impedance (right ear)#\
129$urn:ad:dk:medcom:noah:action-categories$Hearing Instrument Selection (left ear)#\
130$urn:ad:dk:medcom:noah:action-categories$Hearing Instrument Selection (right ear)#

Alle event koder fra systemet 1.2.208.176.2.4 er tilladte og de 5 Noah koder i høremappenn.

validation.type.codes

Angiv tilladte type koder. Valideringsbiblioteket anvender denne til at tjekke om typecode i metadata (i documententry og cda dokument hvis parset) er en gyldig værdi

Eksempel: 39289-4$2.16.840.1.113883.6.1$null#28615-3$2.16.840.1.113883.6.1$Audiology Study#
Type koden 39289-4 og 28615-3 fra systemet 2.16.840.1.113883.6.1 tilladte.

validation.cda.type.codes

Angiv de type koder, som er af typen CDA.
Dette har betydning for validering af et ITI-41 kald. Hvis et dokuments har en af disse type koder angivet i metadata vil det tilhørenende dokument blive parset som CDA og valideret tilsvarende.

Eksempel: 39289-4$2.16.840.1.113883.6.1$null#

validation.personinformation.enabled

Angiver om DocumentEntryPatientIdExistsValidator skal kalde PatientInformation for at validere at Cpr nummer findes.

Default: true

validation.sores.enabled

Angiver om DocumentEntryAuthorInstitutionSorEnricher skal kalde Sores for at validere at Sor koder findes.

Default: true

validation.sourcepatientinfo.required

Skal SourcePatientInfo være udfyldt.

Default: true

validation.homecommunityid.required

Skal HomeCommunityId være udfyldt.

Default: true

validation.mimetype

Angive tilladte MimeType:

Eksempel: text/xml#

validation.homecommunityid

Angiv tilladte HomeCommunityId.

Eksempel: 1.2.208.176.8.1#

validation.map.event.codes.to.format.codes

Ifm. validering af Noah dokumenter, så er det kun format koder, som er koblet sammen med det aktuelle event kode, som er tilladte.

Denne property er kun nødvendig ifm. validering af Høremappe dokumenter.

Listen er opbygget parvis, så en event kode kobles sammen med en format kode.

Eksempel:

1$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nauf-v500:full$1.2.208.184.100.10$Noah Audiogram format 500#\
1$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nauf-v502:full$1.2.208.184.100.10$Noah Audiogram format 502#\
15$urn:ad:dk:medcom:noah:action-categories$nul$urn:ad:dk:medcom:nimf-v500:full$1.2.208.184.100.10$Noah Impedance format 500#\
15$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nadf-v501:full$1.2.208.184.100.10$Noah Admittance format 501#\
16$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nimf-v500:full$1.2.208.184.100.10$Noah Impedance format 500#\
16$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nadf-v501:full$1.2.208.184.100.10$Noah Admittance format 501#\
129$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nhisf-v500:full$1.2.208.184.100.10$Noah Hearing Instrument Selection format 500#\
130$urn:ad:dk:medcom:noah:action-categories$null$urn:ad:dk:medcom:nhisf-v500:full$1.2.208.184.100.10$Noah Hearing Instrument Selection format 500#

Event kode 1 tillader format Audiogram format 500 og Audiogram format 502, Event kode 15 og 16 tillader format Impedance format 500 og Admittance format 501 og Event kode 129 og 130 tillader format Hearing Instrument Selection format 500.

validation.servicestarttime.notbefore

ServiceStart må ikke være før dato

Denne property er kun nødvendig ifm. validering af Høremappe dokumenter.

Eksempel:
2023-10-01

validation.audio.enabled

Denne værdi skal være sat til true, hvis DROS skal validere Høremappe dokumenter.

validation.cda.enabled

Denne værdi skal være sat til true, hvis DROS skal validere CDA dokumenter.

log4j konfiguration

Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen

Se yderligere opsætning i installationsvejledningen.

DKS snitflader

DROS har en DKS snitflade per iti kald:

  • <serverurl>/dros/iti41/dks 
  • <serverurl>/dros/iti42/dks
  • <serverurl>/dros/iti42noDgws/dks
  • <serverurl>/dros/iti57/dks
  • <serverurl>/dros/iti61/dks

Det er muligt at sende en query parameter med, hvis man ønsker DKS svaret med serviceIdentifier. Eksempelvis for iti-41/dks:  <serviceurl>/dros/iti41/dks?withserviceidentifier=true

Gør men dette indgår serviceIdentifier som en attribut i action element, se forskellen i følgende 2 eksempler for iti-41:

Code Block
titleUden serviceIdenfier
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://nspop.dk/2014/04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nspop.dk/2014/04 dks.xsd">
  <dksVersion>1</dksVersion>
  <timestamp>2025-04-01T13:34:35+0200</timestamp>
  <name>DROSAFTALERITI41</name>
  <endpoint>http://localhost:8060/dros_aftaler/iti41</endpoint>
  <operations>
    <action name="DocumentRepository_ProvideAndRegisterDocumentSet">
      <model>synchronous_timeout</model>
      <timeoutMillis>120000</timeoutMillis>
      <idCardLevel>VOCES</idCardLevel>
    </action>
  </operations>
</root>
Code Block
titleMed serviceIdentifier
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://nspop.dk/2014/04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nspop.dk/2014/04 dks.xsd">
  <dksVersion>1</dksVersion>
  <timestamp>2025-04-01T13:34:15+0200</timestamp>
  <name>DROSAFTALERITI41</name>
  <endpoint>http://localhost:8060/dros_aftaler/iti41</endpoint>
  <operations>
    <action name="DocumentRepository_ProvideAndRegisterDocumentSet" serviceIdentifier="aftaler">
      <model>synchronous_timeout</model>
      <timeoutMillis>120000</timeoutMillis>
      <idCardLevel>VOCES</idCardLevel>
    </action>
  </operations>
</root>


Overvågning

DROS udstiller en overvågningsside, som findes i listen af komponenter i afsnit 2.

Fortolkning af HTML overvågningsside

DROS-overvågningssiden returnerer enten:

  • HTTP 200, hvis servicen i øjeblikket kører fint.
  • HTTP 203, hvis der er opstået en fejl der kræver indgriben.
  • HTTP 500, hvis der er opstået en fejl der kræver indgriben.

Overvågningstyper

Det overvåges for hver backend, om kaldene til backenden går galt. Det kan konfigureres, hvor mange kald i træk der må gå galt, før en backend betragtes som 'død'.

Eksempler på status-sider

200 OK

200 OK
---------------------------------------
STATUS
ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "0/50 fejl"
ITI61 backend : "0/50 fejl"
CprExistsServiceClient : "0/50 fejl"
Whitelisting Database : "ok"

Det fremgår for hver backend, om kaldene til den går godt eller ej.

203 Non-authoritative Information

203 Non-authoritative Information
---------------------------------------
STATUS

ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "0/50 fejl"
ITI61 backend : "0/50 fejl"
PersonInformationClient : "0/0 fejl"
SoresClient : "0/0 fejl"
Whitelisting Database : "ok"

Hvis kaldene til personInformation eller Sores backend ikke kan udføres, så returneres statuskode 203 (indenfor failure threshold (tolerance og minutter), som kan sættes op som en konfigurationsparameter, se ovenfor).

500 Internal Server Error

500 Internal Server Error
---------------------------------------
STATUS

ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "55/50 fejl"
ITI61 backend : "0/50 fejl"
PersonInformationClient : "0/50 fejl"
SoresClient : "0/0 fejl"
Whitelisting Database : "ok"

Hvis kaldene til een af ITI backends ikke kan udføres, så returneres statuskode 500 (indenfor failure threshold, som kan sættes op som en konfigurationsparameter).

Det samme gælder, hvis der ikke kan oprettes forbindelse til databasen (ingen failure threshold).

Auditlogning

Hvert servicekald medfører en ny indgang i auditloggen, som er udfyldt som følger:

 * Component: DROS/<operation>, hvor <operation> er navnet på den operation der kaldes, f.eks. ProvideAndRegisterDocumentSetB.

 * Context: Udfyldes med DocumentId. Hvis requestet indeholder flere dokumenter, oprettes en context for hvert dokument.

For hver context skrives følgende informationer

FeltTypeIndhold
DocumentIdRegularPersonalInformationDokumentId'et.
DocumentTypeRegularPersonalInformationDokumentets TypeCode
CitizenIdRegularPersonalInformationPatientId, som dokumentet omhandler.
FormatCodeRegularPersonalInformationFormatCode
SubmissionSetRegularPersonalInformationUniqueId fra SubmissionSet i request.
AssociationSourceIdRegularPersonalInformationSourceId fra association, hvis dokumentet er enten source eller target på association.
AssociationTargetIdRegularPersonalInformationTargetId fra association, hvis dokumentet er enten source eller target på association.
AssociationTypeRegularPersonalInformationAssociationType fra association, hvis dokumentet er enten source eller target på association. Den fulde URI logges.
AuthorInstitutionAssigningAuthorityRegularPersonalInformationAssigningAuthority fra authorInstitution for dokumentet.
AuthorInstitutionIdRegularPersonalInformationId fra authorInstitution for dokumentet

Nedenfor ses eksempler fra auditloggen ved kald af de forskellige snitflader.

Code Block
languagejs
titleAuditLog for Register OnDemand DocumentEntry (ITI-61))
linenumberstrue
collapsetrue
{
   "time":"2021-05-03T21:04:01.676Z",
   "category":"dk.sds.nsp.audit.log.dros/registerondemanddocumententry",
   "audit":{
      "timestamp":"2021-05-03T23:03:59.454+02:00",
      "components":[
         {
            "component":"DROS/RegisterOnDemandDocumentEntry",
            "contexts":[
               {
                  "context":"urn:uuid:5544575c-8cc6-45de-9db5-3059131670a2",
                  "information":[
                     {
                        "key":"DocumentId",
                        "type":"RPI",
                        "value":"7943305690136181220.5733255671233166403.1620075838248"
                     },
                     {
                        "key":"DocumentType",
                        "type":"RPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"CitizenId",
                        "type":"RPI",
                        "value":"010101010101"
                     },
                     {
                        "key":"FormatCode",
                        "type":"RPI",
                        "value":"urn:ad:dk:medcom:appointment"
                     },
                     {
                        "key":"SubmissionSetId",
                        "type":"RPI",
                        "value":"4755022980679903663.6588331163711420386.1620075838319"
                     },
      		         {
                        "key":"AuthorInstitutionAssigningAuthority",
                        "type":"RPI",
                        "value":"1.2.208.176.1.1"
                     },
                     {
                        "key":"AuthorInstitutionId",
                        "type":"RPI",
                        "value":"123456789"
                     }                          
				  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":1216,
      "httpHeaders":{
         "Content-Type":"application/soap+xml; charset=UTF-8"
      },
      "httpHost":"localhost",
      "idCardAttributes":{
         "medcom:CareProviderID":"46837428",
         "medcom:CareProviderName":"Statens Serum Institut",
         "medcom:ITSystemName":"Test",
         "sosi:AuthenticationLevel":"3",
         "sosi:IDCardID":"m/a4UIUpkKPnk/My7ueRsw==",
         "sosi:IDCardType":"system",
         "sosi:IDCardVersion":"1.0.1"
      },
      "method":"POST",
      "path":"/dros/iti61",
      "query":"",
      "port":8060,
      "protocol":"http",
      "reqSize":14130,
      "resSize":460,
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         "MessageID":"AAABeTQLfBBVLIDLtfEB2VNPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
         "w3Action":"urn:ihe:iti:2010:RegisterOnDemandDocumentEntry",
         "w3MessageID":"urn:uuid:9ebc494f-a276-462a-b6e9-3ee6c69a1bc7",
         "w3To":"http://localhost:8060/dros/iti61"
      },
      "threadId":"default task-1",
      "time":"2021-05-03T23:03:59.443+02:00",
      "stats":{
         "handlerDuration":965,
         "RequestContentDuration":70,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":587,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":true,
         "usedBuffers":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":0
      }
   }
}
Code Block
languagejs
titleAuditLog for ProvideAndRegisterDocumentSet (ITI-41)
collapsetrue
{
   "time":"2021-05-03T21:04:04.485Z",
   "category":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
   "audit":{
      "timestamp":"2021-05-03T23:04:02.429+02:00",
      "components":[
         {
            "component":"DROS/ProvideAndRegisterDocumentSetB",
            "contexts":[
               {
                  "context":"urn:uuid:db9d8684-e06c-4c65-af58-0137e6646733",
                  "information":[
                     {
                        "key":"DocumentId",
                        "type":"RPI",
                        "value":"6687982596253355541.8162358355401787246.1620075842168"
                     },
                     {
                        "key":"DocumentType",
                        "type":"RPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"CitizenId",
                        "type":"RPI",
                        "value":"ABCDE"
                     },
                     {
                        "key":"FormatCode",
                        "type":"RPI",
                        "value":"urn:ad:dk:medcom:appointment"
                     },
                     {
                        "key":"SubmissionSetId",
                        "type":"RPI",
                        "value":"5335953767189358702.7648709839978447749.1620075842178"
                     },
                     {
                        "key":"AuthorInstitutionAssigningAuthority",
                        "type":"RPI",
                        "value":"1.2.208.176.1.1"
                     },
                     {
                        "key":"AuthorInstitutionId",
                        "type":"RPI",
                        "value":"12345679999"
                     }                   
				  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":1878,
      "httpHeaders":{
         "Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:06457de8-0189-4a1e-ba98-66da58d79ce7\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
      },
      "httpHost":"localhost",
      "idCardAttributes":{
         "medcom:CareProviderID":"46837428",
         "medcom:CareProviderName":"Statens Serum Institut",
         "medcom:ITSystemName":"Test",
         "sosi:AuthenticationLevel":"3",
         "sosi:IDCardID":"P0OgWK2GAfYY6IhdSoPMRg==",
         "sosi:IDCardType":"system",
         "sosi:IDCardVersion":"1.0.1"
      },
      "method":"POST",
      "path":"/dros/iti41",
      "query":"",
      "port":8060,
      "protocol":"http",
      "reqSize":24833,
      "resSize":699,
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         "MessageID":"AAABeTQLioY3nvNwrBEcjVNPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
         "w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
         "w3MessageID":"urn:uuid:cd7f3bdb-647b-4766-864a-0070a8168e73",
         "w3To":"http://localhost:8060/dros/iti41"
      },
      "threadId":"default task-3",
      "time":"2021-05-03T23:04:02.429+02:00",
      "stats":{
         "handlerDuration":174,
         "RequestContentDuration":17,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":140,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":false,
         "usedBuffers":4,
         "activeBuffersInPool":4,
         "idleBuffersInPool":3
      }
   }
}
Code Block
languagejs
titleAuditLog for ProvideAndRegisterDocumentSet (ITI-41) med opdatering til eksisterende
collapsetrue
{
   "time":"2021-05-03T21:04:09.776Z",
   "category":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
   "audit":{
      "timestamp":"2021-05-03T23:04:08.786+02:00",
      "components":[
         {
            "component":"DROS/ProvideAndRegisterDocumentSetB",
            "contexts":[
               {
                  "context":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62",
                  "information":[
                     {
                        "key":"DocumentId",
                        "type":"RPI",
                        "value":"7371703074493874590.8623536501958069031.1620075848759"
                     },
                     {
                        "key":"DocumentType",
                        "type":"RPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"CitizenId",
                        "type":"RPI",
                        "value":"ABCDE"
                     },
                     {
                        "key":"FormatCode",
                        "type":"RPI",
                        "value":"urn:ad:dk:medcom:appointment"
                     },
                     {
                        "key":"SubmissionSetId",
                        "type":"RPI",
                        "value":"6073800182764791022.8734924007446367108.1620075848770"
                     },
                     {
                        "key":"AssociationSourceId",
                        "type":"RPI",
                        "value":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62"
                     },
                     {
                        "key":"AssociationTargetId",
                        "type":"RPI",
                        "value":"urn:uuid:90a33869-727b-4af7-9a6a-ef030107e341"
                     },
                     {
                        "key":"AssociationType",
                        "type":"RPI",
                        "value":"urn:ihe:iti:2007:AssociationType:RPLC"
                     },
                     {
                        "key":"AuthorInstitutionAssigningAuthority",
                        "type":"RPI",
                        "value":"1.2.208.176.1.1"
                     },
                     {
                        "key":"AuthorInstitutionId",
                        "type":"RPI",
                        "value":"12345679999"
                     }                   
				  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":912,
      "httpHeaders":{
         "Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:5f90d79b-d113-4884-a9ce-1c4434a79f39\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
      },
      "httpHost":"localhost",
      "idCardAttributes":{
         "medcom:CareProviderID":"46837428",
         "medcom:CareProviderName":"Statens Serum Institut",
         "medcom:ITSystemName":"Test",
         "sosi:AuthenticationLevel":"3",
         "sosi:IDCardID":"rvUKALhPjCol2nJTJqDt+A==",
         "sosi:IDCardType":"system",
         "sosi:IDCardVersion":"1.0.1"
      },
      "method":"POST",
      "path":"/dros/iti41",
      "query":"",
      "port":8060,
      "protocol":"http",
      "reqSize":25071,
      "resSize":699,
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         "MessageID":"AAABeTQLpEik3TDY2H298VNPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
         "w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
         "w3MessageID":"urn:uuid:f44dfe0a-c002-4a72-8e89-80b3df6b2370",
         "w3To":"http://localhost:8060/dros/iti41"
      },
      "threadId":"default task-8",
      "time":"2021-05-03T23:04:08.786+02:00",
      "stats":{
         "handlerDuration":73,
         "RequestContentDuration":6,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":51,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":false,
         "usedBuffers":4,
         "activeBuffersInPool":4,
         "idleBuffersInPool":4
      }
   }
}
Code Block
languagejs
titleAuditLog for RegisterDocumentSet (ITI-42)
collapsetrue
{
   "time":"2021-05-03T21:04:07.307Z",
   "category":"dk.sds.nsp.audit.log.dros/registerdocumentsetb",
   "audit":{
      "timestamp":"2021-05-03T23:04:07.03+02:00",
      "components":[
         {
            "component":"DROS/RegisterDocumentSetB",
            "contexts":[
               {
                  "context":"urn:uuid:ac0ce91a-320d-4370-839f-25598dd0bfab",
                  "information":[
                     
ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "0/50 fejl"
ITI61 backend : "0/50 fejl"
CprExistsServiceClient : "55/50 fejl"

Hvis kaldene til cprexists backend ikke kan udføres, så returneres statuskode 203 (indenfor failure threshold, som kan sættes op som en konfigurationsparameter).

500 Internal Server Error

...

ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "55/50 fejl"
ITI61 backend : "0/50 fejl"
CprExistsServiceClient : "0/50 fejl"

Hvis kaldene til een af ITI backends ikke kan udføres, så returneres statuskode 500 (indenfor failure threshold, som kan sættes op som en konfigurationsparameter).

Auditlogning

Hvert servicekald medfører en ny indgang i auditloggen, som er udfyldt som følger:

 * Component: DROS/<operation>, hvor <operation> er navnet på den operation der kaldes, f.eks. ProvideAndRegisterDocumentSetB.

 * Context: Udfyldes med DocumentId. Hvis requestet indeholder flere dokumenter, oprettes en context for hvert dokument.

For hver context skrives følgende informationer

...

Nedenfor ses eksempler fra auditloggen ved kald af de forskellige snitflader.

Code Block
languagejs
titleAuditLog for Register OnDemand DocumentEntry (ITI-61))
linenumberstrue
collapsetrue
{
   "time":"2021-05-03T21:04:01.676Z",
   "category":"dk.sds.nsp.audit.log.dros/registerondemanddocumententry",
   "audit":{
      "timestamp":"2021-05-03T23:03:59.454+02:00",
      "components":[
         {
            "component            "key":"DROS/RegisterOnDemandDocumentEntryDocumentId",
            "contexts":[
            "type":"RPI",
      {
                  "contextvalue":"urn:uuid:5544575c-8cc6-45de-9db5-3059131670a2",
9139873772290913932.1273906388098236954.1620075847000"
                   "information":[  },
                     {
                        "key":"DocumentIdDocumentType",
                        "type":"RPI",
                        "value":"7943305690136181220.5733255671233166403.162007583824839289-4"
                     },
                     {
                        "key":"DocumentTypeCitizenId",
                        "type":"RPI",
                        "value":"39289-4010101010101"
                     },
                     {
                        "key":"CitizenIdFormatCode",
                        "type":"RPI",
                        "value":"010101010101""value":"urn:ad:dk:medcom:appointment"
                     },
                     {
                        "key":"FormatCodeSubmissionSetId",
                        "type":"RPI",
                        "value":"urn:ad:dk:medcom:appointment8587115512321077717.2026797048612801310.1620075847001"
                     },
      		                   {
                        "key":"SubmissionSetIdAuthorInstitutionAssigningAuthority",
                        "type":"RPI",
                        "value":"4755022980679903663.6588331163711420386.16200758383191.2.208.176.1.1"
                     },
                    ] {
               }
         "key":"AuthorInstitutionId",
   ]
         }
      ]
   },
   "accesstype":{"RPI",
      "code":200,                  "value":"123456789"
      "duration":1216,
          "httpHeaders":{
     } 
   "Content-Type":"application/soap+xml; charset=UTF-8"
        },
      "httpHost":"localhost",  ]
      "idCardAttributes":{
         "medcom:CareProviderID":"46837428",}
         "medcom:CareProviderName":"Statens Serum Institut",   ]
         "medcom:ITSystemName":"Test",}
      ]
   "sosi:AuthenticationLevel":"3"},
   "access":{
      "sosi:IDCardIDcode":"m/a4UIUpkKPnk/My7ueRsw=="200,
      "duration":250,
   "sosi:IDCardType   "httpHeaders":"system",{
         "sosi:IDCardVersionContent-Type":"1.0.1"application/soap+xml; charset=UTF-8"
      },
      } "httpHost":"localhost",
      "method":"POST",
      "path":"/dros/iti61iti42noDgws",
      "query":"",
      "port":8060,
      "protocol":"http",
      "reqSize":141308696,
      "resSize":460919,
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         "MessageID":"AAABeTQLfBBVLIDLtfEB2VNPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",":{
         "w3Action":"urn:ihe:iti:20102007:RegisterOnDemandDocumentEntryRegisterDocumentSet-b",
         "w3MessageID":"urn:uuid:9ebc494fc270fc64-a27656f2-462a4b6b-b6e9b65b-3ee6c69a1bc74caf7623d19a",
         "w3To":"http://localhost:8060/dros/iti61iti42noDgws"
      },
      "threadId":"default task-16",
      "time":"2021-05-03T23:0304:5907.44303+02:00",
      "stats":{
         "handlerDuration":96522,
         "RequestContentDuration":701,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":5870,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":truefalse,
         "usedBuffers":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":06
      }
   }
}
Code Block
languagejs
titleAuditLog for ProvideAndRegisterDocumentSet Metadata Update (ITI-4157)
collapsetrue
{
   "time":"2021-05-03T21:04:04.485Z",
54:21.875Z",
   "category":"dk.sds.nsp.audit.log.dros/updatedocumentset",
   "audit":{
      "timestamp":"2021-05-03T23:54:21.673+02:00",
      "components":[
         {
            "categorycomponent":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetbDROS/UpdateDocumentSet",
            "auditcontexts":[
               {
      "timestamp            "context":"2021-05-03T23:04:02.429+02:008bee75d3-9e1e-4646-b440-ffb6e13f8099",
      "components            "information":[
                     {
             "component           "key":"DROS/ProvideAndRegisterDocumentSetBAssociationSourceId",
               "contexts":[
         "type":"RPI",
      {
                  "contextvalue":"urn:uuid:db9d8684-e06c-4c65-af58-0137e6646733",
8bee75d3-9e1e-4646-b440-ffb6e13f8099"
                   "information":[  },
                     {
                        "key":"DocumentIdAssociationTargetId",
                        "type":"RPI",
                        "value":"6687982596253355541.8162358355401787246.1620075842168urn:uuid:bf963b2e-7fd0-4b25-9c1b-b9762af656f7"
                     },
                     {
                        "key":"DocumentTypeAssociationType",
                        "type":"RPI",
                        "value":"39289-4urn:ihe:iti:2010:AssociationType:UpdateAvailabilityStatus"
                     },
                     {
                        "key":"CitizenIdAssociationStatus",
                        "type":"RPI",
                        "value":"ABCDEDeprecated"
                     },
                  ]
   {
            }
            "key":"FormatCode",]
         }
      ]
   },
   "access":{
      "typecode":"RPI"200,
      "duration":166,
      "httpHeaders":{
         "Content-Type":"application/soap+xml; charset=UTF-8"
      },
       "valuehttpHost":"urn:ad:dk:medcom:appointment"localhost",
      "idCardAttributes":{
         "medcom:CareProviderID":"46837428",
      },
   "medcom:CareProviderName":"Statens Serum Institut",
         "medcom:ITSystemName":"Test",
       {
  "sosi:AuthenticationLevel":"3",
         "sosi:IDCardID":"sTLZT4F425EnY6GleFiNcA==",
             "key"sosi:IDCardType":"SubmissionSetIdsystem",
         "sosi:IDCardVersion":"1.0.1"
      },
         "typemethod":"RPIPOST",
      "path":"/dros/iti57",
      "query":"",
      "port":8060,
        "valueprotocol":"5335953767189358702.7648709839978447749.1620075842178http",
      "reqSize":9253,
      "resSize":460,
         }"soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         ]"MessageID":"AAABeTQ5nWIfoju4xRpdM1NPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - }
Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA,  ]O=TRUST2408, C=DK},CertSerial={1495058165}",
         }"w3Action":"urn:ihe:iti:2010:UpdateDocumentSet",
      ]
   }"w3MessageID":"urn:uuid:e81108e0-603e-4662-8320-689c1e64a2f9",
   "access":{
      "w3To"code:":200,http://localhost:8060/dros/iti57"
      "duration":1878},
      "httpHeadersthreadId":{
   "default task-12",
      "Content-Typetime":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:06457de8-0189-4a1e-ba98-66da58d79ce7\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
      },
2021-05-03T23:54:21.673+02:00",
      "stats":{
          "httpHosthandlerDuration":"localhost"33,
         "idCardAttributesRequestContentDuration":{1,
         "medcom:CareProviderIDResponseContentDuration":"46837428"0,
         "medcom:CareProviderNameSecurityProtocolRequestDuration":"Statens Serum Institut"27,
         "medcom:ITSystemNameSecurityProtocolResponseDuration":"Test"0,
         "sosi:AuthenticationLevelbufferAllocated":"3"false,
         "sosi:IDCardIDusedBuffers":"P0OgWK2GAfYY6IhdSoPMRg=="2,
         "sosi:IDCardTypeactiveBuffersInPool":"system"2,
         "sosi:IDCardVersionidleBuffersInPool":"1.0.1"6
      },
      "method":"POST",
      "path":"/dros/iti41",
      "query":"",
      "port":8060,
      "protocol":"http",
      "reqSize":24833,
      "resSize":699,
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS",
         "MessageID":"AAABeTQLioY3nvNwrBEcjVNPU0k=",
         "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
         "w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
         "w3MessageID
   }
}


Ved CPR validering af ugyldige (ifølge PersonInformation service) CPR numre vil dette give anledning til en linje i auditloggen. Logninger af denne type ser således ud:

Code Block
languagejs
titleAuditLog for CprExist warning
collapsetrue
{
	"time":"2021-08-19T08:46:13.461Z",
	"category":"dk.sds.nsp.audit.log.dros",
	"audit":{
		"timestamp":"2021-08-19T10:46:13.081+02:00",
		"components":[
			{
				"component":"DROS",
				"contexts":[{
					"context":"iti-41",
					"information":[{
						"key":"dk.nsp.dk.nsp.person.exists.false",
						"type":"SPI","value":"ABCDE"
					}]
				}]
			},
			{
				"component":"DROS/ProvideAndRegisterDocumentSetB",
				"contexts":[{
					"context":"urn:uuid:cd7f3bdb5e2abecf-647ba1aa-47664059-864abc67-0070a8168e73789492ef5e49",
         "w3To":"http://localhost:8060/dros/iti41"
      },
      "threadId":"default task-3",
      "time":"2021-05-03T23:04:02.429+02:00",
      "stats":{
         "handlerDuration":174,
         "RequestContentDuration":17,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":140,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":false,
         "usedBuffers":4,
         "activeBuffersInPool":4,
         "idleBuffersInPool":3
      }
   }
}					"information":[{
						"key":"DocumentId",
						"type":"RPI",
						"value":"5776847426915191537.1243631302011472830.1629362773007"
					},
					{
						"key":"DocumentType",
						"type":"RPI",
						"value":"39289-4"
					},
					{
						"key":"CitizenId",
						"type":"RPI",
						"value":"ABCDE"
					},
					{
						"key":"FormatCode",
						"type":"RPI",
						"value":"urn:ad:dk:medcom:appointment"
					},
					{
						"key":"SubmissionSetId",
						"type":"RPI",
						"value":"6382716294106427493.5756439411433255780.1629362773009"
					}]
				}]
			}
		]
	},
	"access":{
		"code":200,
		"duration":350,
		"httpHeaders":{
			"Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:40d856a8-1a44-4ab2-a26a-947c1c6ec09d\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
		},
		"httpHost":"localhost",
		"idCardAttributes":{
			"medcom:CareProviderID":"46837428",
			"medcom:CareProviderName":"Statens Serum Institut",
			"medcom:ITSystemName":"Test",
			"sosi:AuthenticationLevel":"3",
			"sosi:IDCardID":"aXDKFJ7P6UQQDfAsWEen8Q==",
			"sosi:IDCardType":"system",
			"sosi:IDCardVersion":"1.0.1"
		},
		"method":"POST",
		"path":"/dros/iti41",
		"query":"",
		"port":8060,
		"protocol":"http",
		"reqSize":24881,
		"resSize":1420,
		"soapHeaders":{
			"Issuer":"TEST2-NSP-STS",
			"MessageID":"AAABe12W3BTo9p7lAx0WMVNPU0k=",
			"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
			"w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
			"w3MessageID":"urn:uuid:ee979460-f7e5-4432-8604-c345eba582f9",
			"w3To":"http://localhost:8060/dros/iti41"
		},
		"threadId":"default task-18",
		"time":"2021-08-19T10:46:13.08+02:00",
		"stats":{
			"handlerDuration":28,
			"RequestContentDuration":2,
			"ResponseContentDuration":0,
			"SecurityProtocolRequestDuration":22,
			"SecurityProtocolResponseDuration":0,
			"bufferAllocated":false,
			"usedBuffers":4,
			"activeBuffersInPool":4,
			"idleBuffersInPool":4
		}
	}
}




Hvis XDS validering kører i WARNING-mode, så vil eventuelle valideringsfejl blive skrevet til auditloggen. Dette ser ud som vist nedenfor:

Code Block
titleAuditlog for XDS valideringsfejl
collapsetrue
{
  "time": "2021-10-04T11:30:18.219Z",
  "category": "dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
  "audit": {
    "timestamp": "2021-10-04T13:30:17.615+02:00",
    "components": [
      {
        "component": "DROS/ProvideAndRegisterDocumentSetB",
        "contexts": [
Code Block
languagejs
titleAuditLog for ProvideAndRegisterDocumentSet (ITI-41) med opdatering til eksisterende
collapsetrue
{
   "time":"2021-05-03T21:04:09.776Z",
   "category":"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
   "audit":{
      "timestamp":"2021-05-03T23:04:08.786+02:00",
      "components":[
         {
            "component":"DROS/ProvideAndRegisterDocumentSetB",
            "contexts":[
               {
                  "context":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62",
                  "information":[
                     {
                        "key":"DocumentId",
                        "type":"RPI",
                        "value":"7371703074493874590.8623536501958069031.1620075848759"
                     },
                     {
                        "key":"DocumentType",
                        "type":"RPI",
                        "value":"39289-4"
                     },
                     {
                        "key":"CitizenId",
                        "type":"RPI",
                        "value":"ABCDE"
                     },
                     {
                        "key":"FormatCode",
                        "type":"RPI",
                        "value":"urn:ad:dk:medcom:appointment"
                     },
                     {
                        "key":"SubmissionSetId",
                        "type":"RPI",
                        "value":"6073800182764791022.8734924007446367108.1620075848770"
                     },
                     {
                        "key":"AssociationSourceId",
                        "type":"RPI",
                        "value":"urn:uuid:7e8274fc-bee7-46e8-995d-8a1ec518ce62"
                     },
                     {
                        "key":"AssociationTargetId",
                        "type":"RPI",
                        "value":"urn:uuid:90a33869-727b-4af7-9a6a-ef030107e341"
                     },
                     {
                        "key":"AssociationType",
                        "type":"RPI",
            {
            "valuecontext":"urn:ihe:iti:2007:AssociationType:RPLC" "5313439413729618055.1497722748872510081.1633347017540",
            "information": [
            }  {
                "key": "Warning",
 ]
               }"type": "RPI",
            ]
    "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service stop time i }
det leverede CDA dokument matcher ikke ]
service stop time },
i   "access":{document entry,severity=WARNING,location=,customErrorCode=]"
      "code":200,
        "duration":912},
      "httpHeaders":{
         "Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:5f90d79b-d113-4884-a9ce-1c4434a79f39\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
{
           },
      "httpHostkey": "localhostWarning",
      "idCardAttributes":{
          "medcom:CareProviderIDtype": "46837428RPI",
            "medcom:CareProviderName    "value":"Statens Serum Institut",
         "medcom:ITSystemName":"Test",
   "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Confidentiality code i det leverede CDA dokument matcher ikke code i document entry,severity=WARNING,location=,customErrorCode=]"
      "sosi:AuthenticationLevel":"3",
         "sosi:IDCardID":"rvUKALhPjCol2nJTJqDt+A=="},
         "sosi:IDCardType":"system",
     {
    "sosi:IDCardVersion":"1.0.1"
      },
      "methodkey": "POSTWarning",
          "path":"/dros/iti41",
      "querytype": "RPI",
        "port":8060,
        "protocolvalue":"http",
      "reqSize":25071,
      "resSize":699, "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient id i det leverede CDA dokument matcher ikke souce patient id i document entry,severity=WARNING,location=,customErrorCode=]"
      "soapHeaders":{
         "Issuer":"TEST2-NSP-STS"},
         "MessageID":"AAABeTQLpEik3TDY2H298VNPU0k=",
     {
    "NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}"key": "Warning",
         "w3Action       "type":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b "RPI",
          "w3MessageID      "value":"urn:uuid:f44dfe0a-c002-4a72-8e89-80b3df6b2370",
         "w3To":"http://localhost:8060/dros/iti41"
 "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author institution i det leverede CDA dokument matcher ikke author institution i document entry,severity=WARNING,location=,customErrorCode=]"
       },
      "threadId":"default task-8" },
      "time":"2021-05-03T23:04:08.786+02:00",
        "stats":{
         "handlerDuration":73       "key": "Warning",
         "RequestContentDuration":6,
       "type":  "ResponseContentDurationRPI":0,
         "SecurityProtocolRequestDuration":51,
         "SecurityProtocolResponseDurationvalue":0,
         "bufferAllocated":false, "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Title i det leverede CDA dokument matcher ikke title i document entry,severity=WARNING,location=,customErrorCode=]"
         "usedBuffers":4     },
         "activeBuffersInPool":4,
     {
    "idleBuffersInPool":4
      }
   }
}
Code Block
languagejs
titleAuditLog for RegisterDocumentSet (ITI-42)
collapsetrue
{
    "timekey":"2021-05-03T21:04:07.307Z "Warning",
    "category":"dk.sds.nsp.audit.log.dros/registerdocumentsetb",
      "audit":{
      "timestamptype":"2021-05-03T23:04:07.03+02:00 "RPI",
      "components":[
          "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient birth {
i det leverede CDA dokument matcher ikke source patient birth i  "component":"DROS/RegisterDocumentSetB",document entry,severity=WARNING,location=,customErrorCode=]"
            "contexts":[  },
               {
                  "contextkey":"urn:uuid:ac0ce91a-320d-4370-839f-25598dd0bfab "Warning",
                "type":  "informationRPI":[,
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Creationtime i det leverede CDA dokument {
matcher ikke creationtime i document entry,severity=WARNING,location=,customErrorCode=]"
              },
     "key":"DocumentId",
         {
                "typekey": "RPIWarning",
                        "value"type": "9139873772290913932.1273906388098236954.1620075847000RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author.Person skal være angivet  },i documententry,severity=WARNING,location=,customErrorCode=]"
              },
       {
       {
                 "key": "DocumentTypeWarning",
                        "type": "RPI",
                        "value":"39289-4"
              "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author person i det leverede CDA dokument matcher ikke author institution i document entry,severity=WARNING,location=,customErrorCode=]"
        },
      },
               {
                        "key": "CitizenIdWarning",
                        "type": "RPI",
                        "value":"010101010101"
      "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient info skal være angivet i documententry,severity=WARNING,location=,customErrorCode=]"
                },
                     {
                        "key": "FormatCodeWarning",
                        "type": "RPI",
                        "value":"urn:ad:dk:medcom:appointment"
                     }, "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient name i det leverede CDA dokument matcher ikke source patient name i document entry,severity=WARNING,location=,customErrorCode=]"
               },
      {
        {
                "key":"SubmissionSetId",
                        "type":"RPI"Warning",
                        "valuetype": "8587115512321077717.2026797048612801310.1620075847001RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Cda dokumentet har  }ikke lovlig type,severity=WARNING,location=,customErrorCode=]"
              },
    ]
          {
     }
            ]"key": "Warning",
         }
      ]
   }"type": "RPI",
    "access":{
      "code":200,
      "durationvalue":250,
      "httpHeaders":{
         "Content-Type":"application/soap+xml; charset=UTF-8 "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Patient id i det leverede CDA dokument matcher ikke patient id i document entry,severity=WARNING,location=,customErrorCode=]"
      },
        "httpHost":"localhost"},
      "method":"POST",
      "path":"/dros/iti42noDgws",
  {
    "query":"",
      "port":8060,
      "protocolkey": "httpWarning",
      "reqSize":8696,
          "resSizetype":919 "RPI",
      "soapHeaders":{
          "w3Actionvalue":"urn:ihe:iti:2007:RegisterDocumentSet-b",
         "w3MessageID":"urn:uuid:c270fc64-56f2-4b6b-b65b-4caf7623d19a",
         "w3To":"http://localhost:8060/dros/iti42noDgws"
 "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient gender i det leverede CDA dokument matcher ikke source patient gender i document entry,severity=WARNING,location=,customErrorCode=]"
       },
      "threadId":"default task-6" },
      "time":"2021-05-03T23:04:07.03+02:00",
        "stats":{
         "handlerDuration":22,
       "key":  "RequestContentDurationWarning":1,
         "ResponseContentDuration":0,
       "type":  "SecurityProtocolRequestDurationRPI":0,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocatedvalue":false,
         "usedBuffers":2,
         "activeBuffersInPool":2, "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service start time i det leverede CDA dokument matcher ikke service start time i document entry,severity=WARNING,location=,customErrorCode=]"
         "idleBuffersInPool":6
      }
   }
}
Code Block
languagejs
titleAuditLog for Metadata Update (ITI-57)
collapsetrue
{
   "time":"2021-05-03T21:54:21.875Z",
   "category":"dk.sds.nsp.audit.log.dros/updatedocumentset",
   "audit":{
      "timestamp":"2021-05-03T23:54:21.673+02:00",   ]
      "components":[
    },
          {
            "componentcontext":"DROS/UpdateDocumentSet "urn:uuid:93bb1cc7-476b-4366-af17-43633f8f2bf0",
            "contextsinformation": [
               {
                  "contextkey":"8bee75d3-9e1e-4646-b440-ffb6e13f8099 "DocumentId",
                "type":  "informationRPI":[,
                "value": "7800884301075271792.1023198734635613041.1633347017534"
    {
          },
              "key":"AssociationSourceId",{
                        "type"key": "RPIDocumentType",
                        "value"type":"8bee75d3-9e1e-4646-b440-ffb6e13f8099" "RPI",
                     },"value": "39289-4"
               },
      {
        {
                "key": "AssociationTargetIdCitizenId",
                        "type": "RPI",
                        "value":"urn:uuid:bf963b2e-7fd0-4b25-9c1b-b9762af656f7"
      "ABCDE"
                },
                     {
                        "key": "AssociationTypeFormatCode",
                        "type": "RPI",
                        "value": "urn:ihead:itidk:2010medcom:AssociationType:UpdateAvailabilityStatusappointment"
                     },
                     {
                        "key": "AssociationStatusSubmissionSetId",
                        "type": "RPI",
                        "value": "Deprecated"
      5313439413729618055.1497722748872510081.1633347017540"
               }
                  ]
               }
            ]
         }
      ]
   },
   "access": {
      "code": 200,
      "duration":166 540,
      "httpHeaders": {
         "Content-Type": "multipart/related; type=\"application/soapxop+xml\"; charset=UTF-8"
  boundary=\"uuid:3ff99470-8c37-48ba-8535-cce4abaa2887\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
    },
      "httpHost": "localhost",
      "idCardAttributes": {
         "medcom:CareProviderID": "46837428",
         "medcom:CareProviderName": "Statens Serum Institut",
         "medcom:ITSystemName": "Test",
         "sosi:AuthenticationLevel": "3",
         "sosi:IDCardID": "sTLZT4F425EnY6GleFiNcABjFmqZNR54bD3jiE3DQxqw==",
         "sosi:IDCardType": "system",
         "sosi:IDCardVersion": "1.0.1"
      },
      "method": "POST",
      "path": "/dros/iti57iti41",
      "query": "",
      "port": 8060,
      "protocol": "http",
      "reqSize":9253 24882,
      "resSize":460 4747,
      "soapHeaders": {
         "Issuer": "TEST2-NSP-STS",
         "MessageID": "AAABeTQ5nWIfoju4xRpdM1NPU0kAAABfEsRm0iHG2PDxIHz51NPU0k=",
         "NameID": "SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXIIXXXIV CA, O=TRUST2408, C=DK},CertSerial={14950581651604144225}",
         "w3Action": "urn:ihe:iti:20102007:UpdateDocumentSetProvideAndRegisterDocumentSet-b",
         "w3MessageID": "urn:uuid:e81108e014c27e86-603efd30-46624c0e-83209bf0-689c1e64a2f90a1ab6e85192",
         "w3To": "http://localhost:8060/dros/iti57iti41"
      },
      "threadId": "default task-12",
      "time": "2021-0510-03T2304T13:5430:2117.673615+02:00",
    "stats": {
 "stats":{
        "handlerDuration": 55,
      "RequestContentDuration": 3,
      "ResponseContentDuration": 0,
      "handlerDurationSecurityProtocolRequestDuration":33 37,
      "SecurityProtocolResponseDuration": 0,
      "RequestContentDurationbufferAllocated":1 false,
         "ResponseContentDurationusedBuffers":0 4,
         "SecurityProtocolRequestDurationactiveBuffersInPool":27 4,
         "SecurityProtocolResponseDurationidleBuffersInPool":0, 4
    }
  }
}

Valideringsfejlene logges under contexten '5313439413729618055.1497722748872510081.1633347017540', som er entryuuid på requestets SubmissionSet. Dette er valgt, fordi valideringslibrary'et pt. ikke giver mulighed for relatere de individuelle dokumenter til deres valideringsfejl.

Logning når fejl

Hvis servicesvaret indeholder fejl, logges de på følgende måde. Hvis et RequestId mangler, genereres et nyt RequestId.

Følgende er et eksempel på et ITI-42 kald med, fejl. 

Code Block
titleAuditlog for Registry Error
collapsetrue
{
  "time": "bufferAllocated":false2022-12-13T07:28:59.135Z",
         "usedBuffers"category":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":6
      }
   }
}

Hvis CPR validering kører i WARNING mode, så vil ugyldige (ifølge CPRExits service) CPR numre give anledning til en linje i auditloggen. Logninger af denne type ser således ud:

Code Block
languagejs
titleAuditLog for CprExist warning
collapsetrue
{
	"time":"2021-08-19T08:46:13.461Z",
	"category":"dk.sds.nsp.audit.log.dros",
	"audit":{
		"timestamp":"2021-08-19T10:46:13.081+02:00",
		"components":[
			{
				"component":"DROS",
				"contexts":[{
					"context":"iti-41",
					"information":[{
						"key":"dk.nsp.cpr.exists.false",
						"type":"SPI","value":"ABCDE"
					}]
				}]
			},
			{
				"component":"DROS/ProvideAndRegisterDocumentSetB",
				"contexts":[{
					"context":"urn:uuid:5e2abecf-a1aa-4059-bc67-789492ef5e49",
					"information":[{
						"key":"DocumentId",
						"type":"RPI",
						"value":"5776847426915191537.1243631302011472830.1629362773007"
					},
					{
						"key":"DocumentType",
						"type":"RPI",
						"value":"39289-4"
					},
					{
						"key":"CitizenId",
						"type":"RPI",
						"value":"ABCDE"
					},
					{
						"key":"FormatCode",
						"type":"RPI",
						"value":"urn:ad:dk:medcom:appointment"
					},
					{
						"key":"SubmissionSetId",
						"type":"RPI",
						"value":"6382716294106427493.5756439411433255780.1629362773009"
					}]
				}]
			}
		]
	},
	"access":{
		"code":200,
		"duration":350,
		"httpHeaders":{
			"Content-Type":"multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:40d856a8-1a44-4ab2-a26a-947c1c6ec09d\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
		},
		"httpHost":"localhost",
		"idCardAttributes":{
			"medcom:CareProviderID":"46837428",
			"medcom:CareProviderName":"Statens Serum Institut",
			"medcom:ITSystemName":"Test",
			"sosi:AuthenticationLevel":"3",
			"sosi:IDCardID":"aXDKFJ7P6UQQDfAsWEen8Q==",
			"sosi:IDCardType":"system",
			"sosi:IDCardVersion":"1.0.1"
		},
		"method":"POST",
		"path":"/dros/iti41",
		"query":"",
		"port":8060,
		"protocol":"http",
		"reqSize":24881,
		"resSize":1420,
		"soapHeaders":{
			"Issuer":"TEST2-NSP-STS",
			"MessageID":"AAABe12W3BTo9p7lAx0WMVNPU0k=",
			"NameID":"SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXII CA, O=TRUST2408, C=DK},CertSerial={1495058165}",
			"w3Action":"urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
			"w3MessageID":"urn:uuid:ee979460-f7e5-4432-8604-c345eba582f9",
			"w3To":"http://localhost:8060/dros/iti41"
		},
		"threadId":"default task-18",
		"time":"2021-08-19T10:46:13.08+02:00",
		"stats":{
			"handlerDuration":28,
			"RequestContentDuration":2,
			"ResponseContentDuration":0,
			"SecurityProtocolRequestDuration":22,
			"SecurityProtocolResponseDuration":0,
			"bufferAllocated":false,
			"usedBuffers":4,
			"activeBuffersInPool":4,
			"idleBuffersInPool":4
		}
	}
}



Hvis XDS validering kører i WARNING-mode, så vil eventuelle valideringsfejl blive skrevet til auditloggen. Dette ser ud som vist nedenfor:

Code Block
{
  "time": "2021-10-04T11:30:18.219Z",
  "category": "dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
  "audit": {
    "timestamp": "2021-10-04T13:30:17.615+02:00",
    "components": [
      {
        "component": "DROS/ProvideAndRegisterDocumentSetB"dk.sds.nsp.audit.log.dros/provideandregisterdocumentsetb",
  "audit": {
    "timestamp": "2022-12-13T08:28:58.815+01:00",
    "components": [
      {
        "component": "DROS/ProvideAndRegisterDocumentSetB",
        "contexts": [
          {
            "context": "8808456705936797445.7367161746361332136.1670916538706",
            "information": [
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient id i det leverede CDA dokument matcher ikke souce patient id i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Patient id i det leverede CDA dokument matcher ikke patient id i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service stop time i det leverede CDA dokument matcher ikke service stop time i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author institution i det leverede CDA dokument matcher ikke author institution i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Cda dokumentet har ikke lovlig type,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Creationtime i det leverede CDA dokument matcher ikke creationtime i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Title i det leverede CDA dokument matcher ikke title i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Confidentiality code i det leverede CDA dokument matcher ikke code i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Coded value i det leverede CDA dokument matcher ikke type code i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Source patient birth i det leverede CDA dokument matcher ikke source patient birth i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service start time i det leverede CDA dokument matcher ikke service start time i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author person i det leverede CDA dokument matcher ikke author institution i document entry,severity=WARNING,location=,customErrorCode=]"
              },
              {
                "key": "Warning",
        "contexts": [
       "type": "RPI",
  {
              "contextvalue": "5313439413729618055.1497722748872510081.1633347017540",ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Author.Person skal være angivet i documententry,severity=WARNING,location=,customErrorCode=]"
            "information": [  },
              {
                "key": "WarningStatusCode",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service stop time i det leverede CDA dokument matcher ikke service stop time i document entry,severity=WARNING,location=,customErrorCode=]urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=ConfidentialitySource patient codeid i det leverede CDA dokument matcher ikke codesouce patient id i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Source patientPatient id i det leverede CDA dokument matcher ikke souce patient id i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=AuthorService stop institutiontime i det leverede CDA dokument matcher ikke service authorstop institutiontime i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERRORRegistryError[value=<null>,codeContext=TitleAuthor institution i det leverede CDA dokument matcher ikke titleauthor institution i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=SourceCda patientdokumentet birth i det leverede CDA dokument matcher har ikke source patient birth i document entry,severity=WARNING,location=,customErrorCode=lovlig type,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Creationtime i det leverede CDA dokument matcher ikke creationtime i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Author.Person skal være angivet i documententry,severity=WARNING,location=,customErrorCode=Title i det leverede CDA dokument matcher ikke title i document entry,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=AuthorConfidentiality personcode i det leverede CDA dokument matcher ikke author institutioncode i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Source patient info skal være angivet i documententry,severity=WARNING,location=,customErrorCode=Coded value i det leverede CDA dokument matcher ikke type code i document entry,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Source patient namebirth i det leverede CDA dokument matcher ikke source patient namebirth i document entry,errorCode=XDSRegistryMetadataError,severity=WARNINGurn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=,customErrorCode=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Cda dokumentet har ikke lovlig type,severity=WARNING,location=,customErrorCode=Service start time i det leverede CDA dokument matcher ikke service start time i document entry,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=PatientAuthor idperson i det leverede CDA dokument matcher ikke patientauthor idinstitution i document entry,severity=WARNING,location=,customErrorCode,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              },
              {
                "key": "WarningResponseError",
                "type": "RPI",
                "value": "ErrorInfoRegistryError[errorCode=REGISTRY_METADATA_ERRORvalue=<null>,codeContext=Source patient gender i det leverede CDA dokument matcher ikke source patient gender i document entry,severity=WARNING,location=,customErrorCode=]"Author.Person skal være angivet i documententry,errorCode=XDSRegistryMetadataError,severity=urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Warning,location=]"
              }
            ]
          },
          {
            "context": "urn:uuid:dfae887b-d846-4f2d-88b0-fd11a603e03e",
              },"information": [
              {
                "key": "WarningDocumentId",
                "type": "RPI",
                "value": "ErrorInfo[errorCode=REGISTRY_METADATA_ERROR,codeContext=Service start time i det leverede CDA dokument matcher ikke service start time i document entry,severity=WARNING,location=,customErrorCode=]"5345652789622024422.1649135652318592037.1670916538701"
              },
              }{
            ]    "key": "DocumentType",
          },
      "type": "RPI",
   {
             "contextvalue": "urn:uuid:93bb1cc7-476b-4366-af17-43633f8f2bf0",39289-4"
            "information": [  },
              {
                "key": "DocumentIdCitizenId",
                "type": "RPI",
                "value": "7800884301075271792.1023198734635613041.1633347017534ABCDE"
              },
              {
                "key": "DocumentTypeFormatCode",
                "type": "RPI",
                "value": "39289-4urn:ad:dk:medcom:appointmentsummary:full"
              },
              {
                "key": "CitizenIdSubmissionSetId",
                "type": "RPI",
                "value": "ABCDE8808456705936797445.7367161746361332136.1670916538706"
              },
              {
                "key": "FormatCodeAuthorInstitutionAssigningAuthority",
                "type": "RPI",
                "value": "urn:ad:dk:medcom:appointment1.2.208.176.1.1"
              },
              {
                "key": "SubmissionSetIdAuthorInstitutionId",
                "type": "RPI",
                "value": "5313439413729618055.1497722748872510081.163334701754012345679999"
              }
            ]
          }
        ]
      }
    ]
  },
  "access": {
    "code": 200,
    "duration": 540289,
    "httpHeaders": {
      "Content-Type": "multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:3ff99470c16b15ce-8c37c994-48ba4ac7-85358ed0-cce4abaa2887d949fa6099d5\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"application/soap+xml\""
    },
    "httpHost": "localhost",
    "idCardAttributes": {
      "medcom:CareProviderID": "46837428",
      "medcom:CareProviderName": "Statens Serum Institut",
      "medcom:ITSystemName": "Test",
      "sosi:AuthenticationLevel": "3",
      "sosi:IDCardID": "BjFmqZNR54bD3jiE3DQxqw91WKulz0p7X1tHDPo1MqAA==",
      "sosi:IDCardType": "system",
      "sosi:IDCardVersion": "1.0.1"
    },
    "method": "POST",
    "path": "/dros/iti41",
    "query": "",
    "port": 8060,
    "protocol": "http",
    "reqSize": 2488225133,
    "resSize": 47474268,
    "soapHeaders": {
      "Issuer": "TEST2-NSP-STS",
      "MessageID": "AAABfEsRm0iHG2PDxIHz51NPU0kAAABhQpjAVUdbZI6x+gtGFNPU0k=",
      "NameID": "SubjectDN={SERIALNUMBER=CVR:46837428-UID:27910135 + CN=Statens Serum Institut - Test VOCES, O=Statens Serum Institut // CVR:46837428, C=DK},IssuerDN={CN=TRUST2408 Systemtest XXXIV CA, O=TRUST2408, C=DK},CertSerial={1604144225}",
      "w3Action": "urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b",
      "w3MessageID": "urn:uuid:14c27e86d8bf3c51-fd30b16a-4c0e42af-9bf0b4ef-0a1ab6e85192023dbc52051f",
      "w3To": "http://localhost:8060/dros/iti41"
    },
    "threadId": "default task-129",
    "time": "20212022-1012-04T1313T08:3028:1758.615+02:00"815+01:00",
    "stats": {
      "handlerDuration": 28,
      "RequestContentDuration": 2,
      "ResponseContentDuration": 0,
      "SecurityProtocolRequestDuration": 22,
      "statsSecurityProtocolResponseDuration": {0,
      "handlerDurationbufferAllocated": 55false,
      "RequestContentDurationusedBuffers": 34,
      "ResponseContentDurationactiveBuffersInPool": 04,
      "SecurityProtocolRequestDurationidleBuffersInPool": 37,4
      "SecurityProtocolResponseDuration": 0,
      "bufferAllocated": false,
      "usedBuffers": 4,
      "activeBuffersInPool": 4,
      "idleBuffersInPool": 4
    }
  }
}}
  }
}

Whitelisting af anvendere

De enkelte anvendere skal whitelistes til at bruge DROS. Der findes en tabel whitelist til dette formål. 

Det er heri muligt at angive enten et CVR nummer eller oces3 UUID. Sidstnævnte whitelister et specifikt certifikat.

Organisationens CVR nummer whitelistes ved følgende SQL:

INSERT INTO whitelist (whitelistkey, whitelisttype, note) VALUES ('46837428', 'cvr', 'Oprettet fra supportsag ASCP00155779');

Certifikatets UUID id whitelistes ved følgende SQL:

INSERT INTO whitelist (whitelistkey, whitelisttype, note) VALUES ('UI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6', 'cert', 'Oprettet fra supportsag ASCP00155779');

Note feltet kan f.eks. anvendes til at referere en supportsag eller lignende for sporingshensyn. Det er ikke obligatorisk som de øvrige felterValideringsfejlene logges under contexten '5313439413729618055.1497722748872510081.1633347017540', som er entryuuid på requestets SubmissionSet. Dette er valgt, fordi valideringslibrary'et pt. ikke giver mulighed for relatere de individuelle dokumenter til deres valideringsfejl.