Versions Compared

Key

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

...

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.

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. 


cprexistspersoninformation.validationlevelurl

Valideringsniveau URL for CPR valideringPersonInformation service

Eksempel: WARNING, REJECT, OFF http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-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

sorescprexists.url

URL for CPR exist Sores service

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

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.totalconnectionscprexists.maxTotalConnections

Konfiguration af client pool til kald af CPRExists servicepersonInformation og Sores

Default: 200

cprexists.defaultMaxConnectionsPerRoutehttpclient.pooling.maxconnections.pr.route

Konfiguration af client pool til kald af CPRExists servicePersonInformation 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

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#
Classcode N fra systemet 2.16.840.1.113883.5.25 tilladt.

validation.organisation.codes

Angiv tilladte organizations koder. Her angives typisk kun skema.

Eksempel:  null$1.2.208.176.1.4$null#null$1.2.208.176.1.1$null#
Organizationskoder fra system 1.2.208.176.1.4 eller 1.2.208.176.1.1 er tilladte, som er Yder og SOR

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 er tilladte, som er CPR.

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#
Alle event koder fra systemet 1.2.208.176.2.4 er tilladte

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#
Type koden 39289-4 fra systemet 2.16.840.1.113883.6.1 er tilladt.

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

log4j konfiguration

Log4j konfiguration findes i samme wildfly modul som servicekonfigurationen

...

ITI41 backend : "0/50 fejl"
ITI42 backend : "0/50 fejl"
ITI57 backend : "0/50 fejl"
ITI61 backend : "0/50 fejl"
CprExistsServiceClientPersonInformationClient : "0/0 fejl"
SoresClient : "550/500 fejl"
Whitelisting Database : "ok"

Hvis kaldene til cprexists 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

...

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

...

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":[
         {
            "component":"DROS/UpdateDocumentSet",
            "contexts":[
               {
                  "context":"8bee75d3-9e1e-4646-b440-ffb6e13f8099",
                  "information":[
                     {
                        "key":"AssociationSourceId",
                        "type":"RPI",
                        "value":"8bee75d3-9e1e-4646-b440-ffb6e13f8099"
                     },
                     {
                        "key":"AssociationTargetId",
                        "type":"RPI",
                        "value":"urn:uuid:bf963b2e-7fd0-4b25-9c1b-b9762af656f7"
                     },
                     {
                        "key":"AssociationType",
                        "type":"RPI",
                        "value":"urn:ihe:iti:2010:AssociationType:UpdateAvailabilityStatus"
                     },
                     {
                        "key":"AssociationStatus",
                        "type":"RPI",
                        "value":"Deprecated"
                     }
                  ]
               }
            ]
         }
      ]
   },
   "access":{
      "code":200,
      "duration":166,
      "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":"sTLZT4F425EnY6GleFiNcA==",
         "sosi:IDCardType":"system",
         "sosi:IDCardVersion":"1.0.1"
      },
      "method":"POST",
      "path":"/dros/iti57",
      "query":"",
      "port":8060,
      "protocol":"http",
      "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",
         "w3To":"http://localhost:8060/dros/iti57"
      },
      "threadId":"default task-12",
      "time":"2021-05-03T23:54:21.673+02:00",
      "stats":{
         "handlerDuration":33,
         "RequestContentDuration":1,
         "ResponseContentDuration":0,
         "SecurityProtocolRequestDuration":27,
         "SecurityProtocolResponseDuration":0,
         "bufferAllocated":false,
         "usedBuffers":2,
         "activeBuffersInPool":2,
         "idleBuffersInPool":6
      }
   }
}


Hvis Ved CPR validering kører i WARNING mode, så vil af ugyldige (ifølge CPRExits 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.cprdk.nsp.person.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
		}
	}
}



...