Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootFSK Registry Adapter
includeroottrue


Table of Contents

Introduktion

Formål

Dette dokument er rettet mod systemadministratorer og driftspersoner, som skal kunne håndtere driftsmæssige aspekter af FSK Registry Adapter.

...

Specielle krav til backup er beskrevet i afsnit 7, ligesom procedure ved reetablering af komponenten ud fra backup beskrives.

Læsevejledning

Læseren forventes at have kendskab til National Sundheds-IT’s platform NSP, samt generelt kendskab til WildFly applikationsserver samt Ubuntu Linux operativ system.

Dokumenthistorik

Dette dokument er oprettet i forbindelse med den initielle udviklings af komponenten.

Definitioner og referencer

Definition

Beskrivelse

DDSDokumentdelingsservice
NSINational Sundheds-IT
NSPDen nationale service platform (inden for sundheds-IT)

STS

Security Token Service

XDS

Cross-Enterprise Document Sharing

Komponenten

FSK Registry Adapter komponenten kan beskrives som følger:

  • FSK Registry Adapter

  • Type: Webservice

  • Filnavn: fskregistry.war

  • Url: <serverurl>/fskregistry

  • Helbredsurl: <serverurl>/fskregistry/health

Daglig drift

Dette afsnit beskriver den daglige drift af systemet.

Database

FSK Registry Adapter anvender en database til persistering og afhentning af metadata. Denne database ejes imidlertid af en anden komponten: FSK Repository. Det er FSK Repository komponentens ansvar at beskrive backupprocedurer for databasen.

Relaterede services

FSK Registry Adapter afhænger af:

...

Ved fejl i forbindelse til denne denne vil FSK Registry Adapter returnere svar til anvendere, hvoraf det fremgår, at der er fejl.

Konfiguration

Opsætningen for FSK Registry Adapter sker i propertyfilen fskreg.properties.

Denne indlæses fra WildFly modulet:

Hvis FSK registry startes vha. docker-compose, så bliver konfigurationsfilerne automatisk flyttet til de foldere, som er angivet docker-compose opskriften.

...

Den primære folder, hvor flest konfigurationsfiler, som skal bruges af FSK registry er:


/pack/wildfly8/modules/sds/fskregistry/configuration/main/

Desuden bruges følgende til deploy af datasource konfigurationer:
/pack/wildfly8/standalone/deployments/

Og til konfiguration af AccessHandler bruges:
/pack/wildfly8/modules/system/layers/base/dk/sds/nsp/accesshandler/main/

Konfiguration af FSK Resgitry

Opsætningen for FSK Registry Adapter sker i propertyfilen fskreg.properties.

Et eksempel på sådan konfiguration er:

Code Block
cprexists.validationlevel=WARNING
cprexists.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-cprexists

documentEntry.title=TestTitleFælles stamkort

documentEntry.mimeType=text/xml
documentEntry.languageCode=da-DK

documentEntry.patient.assigningAuthority.root=1.2.208.176.1.2
documentEntry.organisation.assigningAuthority.root=1.2.208.176.1.1

documentEntry.homeCommunityId=1.2.3208.7176.8.1.12
documentEntry.repositoryUniqueId=3.4.6.71.2.208.176.43210.8.10.12

documentEntry.confidentialityCodehealthcareFacilityTypeCode.code=N554041000005106
documentEntry.confidentialityCodehealthcareFacilityTypeCode.schemeName=2.16.840.1.113883.56.2596
documentEntry.confidentialityCodehealthcareFacilityTypeCode.name=Normalsundhedsforvaltning

documentEntry.healthcareFacilityTypeCodeclassCode.code=22232009001
documentEntry.healthcareFacilityTypeCodeclassCode.schemeName=1.2.16.840.1.113883.6.96
documentEntry.healthcareFacilityTypeCode.name=hospital208.184.100.9
documentEntry.classCode.name=Klinisk rapport

documentEntry.author.organisation.id=1126211000016009
documentEntry.author.organisation.name=Fælles Stamkort udstedelse

documentEntry.practiceSettingCode.code=408443003
documentEntry.practiceSettingCode.schemeName=2.16.840.1.113883.6.96
documentEntry.practiceSettingCode.name=almen medicin

documentEntry.classCodeconfidentialityCode.code=001N
documentEntry.classCodeconfidentialityCode.schemeName=12.16.2840.2081.184113883.1005.925
documentEntry.classCodeconfidentialityCode.name=Klinisk rapport

documentEntry.formatCode.codenormal

# formatCodeCode og typeCode par i tabel. Hver par har eget løbenummer
documentEntry.metadata.metadataEntry[0].formatCodeCode=urn:ad:dk:medcom:appointmentsummarypdc-v2.0:full
documentEntry.formatCode.schemeName.metadata.metadataEntry[0].formatCodeScheme=1.2.208.184.100.10
documentEntry.formatCode.namemetadata.metadataEntry[0].formatCodeName=DK Appointment Summary DocumentPDC schema

documentEntry.eventCode.code=39289-4
documentEntry.eventCode.schemeName=2.16.840.1.113883.6.1
documentEntry.eventCode.name=Dato og tidspunkt for møde mellem patient og sundhedsperson

documentEntry.typeCode.code=39289-4
documentEntry.typeCode.schemeName=2.16.840.1.113883.6.1
documentEntry.typeCode.name=Dato og tidspunkt for møde mellem patient og sundhedsperson

documentEntry.author.organisation.id=291000016008
documentEntry.author.organisation.name=Region Test

#documentEntry.patient.assigningAuthority.name=CPR.metadata.metadataEntry[0].typeCodeCode=PDC
documentEntry.metadata.metadataEntry[0].typeCodeScheme=1.2.208.184.100.1
documentEntry.metadata.metadataEntry[0].typeCodeName=Stamkort

documentEntry.metadata.metadataEntry[1].formatCodeCode=urn:ad:dk:medcom:pdc-v3.0:full
documentEntry.metadata.metadataEntry[1].formatCodeScheme=1.2.208.184.100.10
documentEntry.metadata.metadataEntry[1].formatCodeName=DK PDC schema
documentEntry.metadata.metadataEntry[1].typeCodeCode=PDC
documentEntry.metadata.metadataEntry[1].typeCodeScheme=1.2.208.184.100.1
documentEntry.metadata.metadataEntry[1].typeCodeName=Stamkort


Properties beskrives ifølge tabel: 

PropertyBeskrivelse
documentEntry.title
CDA dokumentets titel, som returneret i metadata ved ITI-18 søgning
documentEntry.mimeType
CDA dokumentets mimetype, som returneret i metadata ved ITI-18 søgning
documentEntry.languageCode
CDA dokumentets mimetype, som returneret i metadata ved ITI-18 søgning
cprexists.validationlevel

Valideringsniveau for CPR validering

Eksempel: WARNING, REJECT, OFF

cprexists.url

URL for CPR exist 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

documentEntry.metadata.metadataEntry[*].formatCodeCode, formatCodeSchemeName, formatCodeName


CDA dokumentets format code (code, scheme og name)

documentEntry.patient.assigningAuthority.root
CDA dokumentets patient identifier assigning authority OID

, som returneret i metadata ved ITI-18 søgning

Der returneres et dokument for hver formatCode og TypeCode, der er konfigureret sammen

("*" er et løbenummer startende med 0, se ovenstående eksempel)

documentEntry.

organisation.assigningAuthority.root

metadata.metadataEntry[*].typeCodeCode, typeCodeSchemeName, typeCodeName


CDA dokumentets type code (code, scheme og name)

CDA dokumentets organisations identifier assigning authority OID

, som returneret i metadata ved ITI-18 søgning

documentEntry.homeCommunityId
CDA dokumentets homecommunityid, som returneret i metadata ved ITI-18 søgning

Der returneres et dokument for hver formatCode og TypeCode, der er konfigureret sammen

("*" er et løbenummer startende med 0, se ovenstående eksempel)

documentEntry.title
CDA dokumentets titel
documentEntry.repositoryUniqueId
CDA dokumentets repositoryid, som returneret i metadata ved ITI-18 søgning
documentEntry.confidentialityCode.code, schemaName, namemimeType
CDA dokumentets confidentiality code (code, schema og navn)mimetype, som returneret i metadata ved ITI-18 søgning
documentEntry.healthcareFacilityTypeCode.code, schemaName, namelanguageCode
CDA dokumentets healthcarefacility code (code, schema og navn)mimetype, som returneret i metadata ved ITI-18 søgning
documentEntry.patient.practiceSettingCode.code, schemaName, nameassigningAuthority.root
CDA dokumentets practiceSetting code (code, schema og navn), patient identifier assigning authority OID, som returneret i metadata ved ITI-18 søgning
documentEntry.organisation.classCode.code, schemaName, nameassigningAuthority.root
CDA dokumentets organisations identifier assigning authority OIDCDA dokumentets classCode code (code, schema og navn), som returneret i metadata ved ITI-18 søgning
documentEntry.formatCode.code, schemaName, namehomeCommunityId
CDA dokumentets format code (code, schema og navn), homecommunityid, som returneret i metadata ved ITI-18 søgning
documentEntry.eventCode.code, schemaName, namerepositoryUniqueId
CDA dokumentets eventcode code (code, schema og navn)repositoryid, som returneret i metadata ved ITI-18 søgning
documentEntry.typeCodehealthcareFacilityTypeCode.code, schemaName, name
CDA dokumentets typecode healthcarefacility code (code, schema og navn), som returneret i metadata ved ITI-18 søgning
documentEntry.author.organisation.id
CDA dokumentets author instituion id som returneret i metadata ved ITI-18 søgning
documentEntry.author.organisation.idname
CDA dokumentets author instituion navn som returneret i metadata ved ITI-18 søgning

Som det fremgår af navnene ovenfor anvendes disse properties til at udfylde DocumentEntries ved søgninger mod FSK Registry. DocumentEntry metadata værdierne bør koordineres og opsættes, så de passer med CDA værdierne, der returneres i dokumenterne fra FSK Repository.

Den eneste property, der varierer fra miljø til miljø er angivelsen af repositoryUniqueId - resten er de samme henover miljøer.

Derudover anvendes parametrene til at afgøre, om FSK Registry skal returnere data ved forspørgsler eller ej. 

Hvis der f.eks. medsendes et søgeparameter i søgningen (ITI-18) på eventCode, så skal søgeværdien matche med værdien documentEntry.eventCode.code for, at der returneres en DocumentEntry for den pågældende borger.

Der filtreres på classCodeshealthcarefacility, typeCodes, eventCodes, confidentialityCodes og formatCodes formatCodes og typeCodes modsvarer lignende navne i søge-parametre efter følgende opskrift:

  1. Filterets eventCodes code ikke er tomt, og

  2. Ingen af evt. flere eventCodes koder fra søge-parametre findes i filterets eventCodes-listefilterets 

Tilsvarende logik er gældende de øvrige koder i filteret.

Konfiguration af log4j

Log4j konfiguration findes i følgende fil:

  • log4j.properties

Denne indlæses fra WildFly modulet:

...

Eksempel på konfiguration:

Code Block
log4j.rootCategory=INFO, FILE
log4j.logger.dk.sds=DEBUG

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${jboss.server.log.dir}/fsk-registry.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=100MB${dk.nsp.log.MaxFileSize}
log4j.appender.FILE.MaxBackupIndex=10${dk.nsp.log.MaxBackupIndex}
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d [%-2p] %c - %m%n

Udpegning af SLA-log konfiguration

Følgende fil udpeger hvilken fil, der indeholder konfigurationen af SLA-logning:

  • log4j-nspslalog-fskreg.properties

Denne indlæses fra WildFly modulet:

...

Per default udpeges konfigurationsfilen beskrevet i næste afsnit.

Konfiguration af SLA-log

Per default indlæses konfigurationen af FSK Registry SLA-logning fra følgende fil:

  • nspslalog-fskreg.properties

Denne indlæses fra WildFly modulet:

Auditlog

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
{"time":"2021-08-09T12:34:34.387Z","category":"dk.sds.nsp.audit.log.fskregistry","audit":{"timestamp":"2021-08-09T14:34:34.325+02:00","components":[{"component":"FskRegistry","contexts":[{"context":"iti-18","information":[{"key":"dk.nsp.cpr.exists.false","type":"SPI","value":"9932000000"},{"key":"dk.nsp.cpr.exists.false","type":"SPI","value":"9932000000"}]}]}]},"access":{"code":200,"duration":57,"httpHeaders":{"Content-Type":"application/soap+xml; charset=UTF-8"},"httpHost":"localhost","method":"POST","path":"/fskregistry/iti18","query":"","port":8060,"protocol":"http","reqSize":1569,"resSize":10307,"soapHeaders":{"w3Action":"urn:ihe:iti:2007:RegistryStoredQuery","w3MessageID":"urn:uuid:6b459c84-ddc1-43d2-84e4-e7e427fa9b7a","w3To":"http://localhost:8060/fskregistry/iti18"},"threadId":"default task-6","time":"2021-08-09T14:34:34.325+02:00","stats":{"handlerDuration":3,"RequestContentDuration":1,"ResponseContentDuration":0,"SecurityProtocolRequestDuration":0,"SecurityProtocolResponseDuration":0,"bufferAllocated":false,"usedBuffers":1,"activeBuffersInPool":1,"idleBuffersInPool":1}}}

Code Block
/pack/wildfly8/modules/sds/fskregistry/configuration/


HTTP Status- og versionscheck på FSK Registry Adapter

HTTP Statuscheck er i FSK Registry Adapter lagt sammen med HTTP Versionsnummerinformation Versionsnummerinformation. 

Ved HTTP Statuscheck oplyses også status på forbindelsen til databasen. 

Efter konfiguration og deploy opstart af FSK Registry Adapter kan versionsnummer hentes med (Eksempel er ved opstart vha. docker-compose fra development):

Code Block
curl localhost:90908060/fskregistry/health

hvilket giver output i stil med:

Code Block
Version{ version: "1.2.6-SNAPSHOT", Database: "OK", CprExistsServiceClient : "0.0 fejl"}

Kaldet til HealthServlet giver en statuskode 200 tilbage, hvis både databasen og forbindelsen til CprExistsService er sund.

Hvis forbindelsen til databasen er i stykker, så vil HealthServlet returnere kode 500.

Hvis kaldene (de sidste 50) til CprExists er fejlede, så vil HealthServlet returnere kode 204.

Overvågning

FSK Registry overvåges af Status og versionstjek URL.

Standard fejlsøgning

Fejlsøgning kan ske ved at undersøge de logfiler, der er beskrevet i forudgående afsnit.

Krav til backup

Det anbefales, at aktuelle konfigurationsfiler til FSK Registry holdes under versionskontrol og back-up.

...