Introduktion

Formål

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

Driftsvejledningen indeholder information om komponenten med hensyn til eksterne afhængigheder, standard placering af logfiler og konfigurationsfiler, og evt. krav til genstart af applikationer hvis komponenten ikke er responsiv.

I afsnit 2 er komponenten beskrevet dens forventede placering med hensyn til platform.

Afsnit 4 beskriver aktuelle konfigurationsparametre for komponenten samt eksempler på konfigurationsparameter-filer.

I afsnit 5 beskrives hvorledes FSK Registry Adapter overvåges.

Beskrivelse af standard fejlsøgning og vejledning for start/stop af komponenterne er beskrevet i afsnit 6.

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:

  • FSK Repository komponentens database

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

Konfiguration

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:

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

documentEntry.title=Fæ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.208.176.8.1.12
documentEntry.repositoryUniqueId=1.2.208.176.43210.8.10.12

documentEntry.healthcareFacilityTypeCode.code=554041000005106
documentEntry.healthcareFacilityTypeCode.schemeName=2.16.840.1.113883.6.96
documentEntry.healthcareFacilityTypeCode.name=sundhedsforvaltning

documentEntry.classCode.code=001
documentEntry.classCode.schemeName=1.2.208.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.confidentialityCode.code=N
documentEntry.confidentialityCode.schemeName=2.16.840.1.113883.5.25
documentEntry.confidentialityCode.name=normal

# formatCodeCode og typeCode par i tabel. Hver par har eget løbenummer
documentEntry.metadata.metadataEntry[0].formatCodeCode=urn:ad:dk:medcom:pdc-v2.0:full
documentEntry.metadata.metadataEntry[0].formatCodeScheme=1.2.208.184.100.10
documentEntry.metadata.metadataEntry[0].formatCodeName=DK PDC schema
documentEntry.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
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), 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.metadata.metadataEntry[*].typeCodeCode, typeCodeSchemeName, typeCodeName


CDA dokumentets type code (code, scheme og name), 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, 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
documentEntry.patient.assigningAuthority.root
CDA dokumentets patient identifier assigning authority OID, som returneret i metadata ved ITI-18 søgning
documentEntry.organisation.assigningAuthority.root
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
documentEntry.repositoryUniqueId
CDA dokumentets repositoryid, som returneret i metadata ved ITI-18 søgning
documentEntry.healthcareFacilityTypeCode.code, schemaName, name
CDA dokumentets 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.name
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å healthcarefacility, formatCodes og typeCodes modsvarer lignende navne i søge-parametre efter følgende opskrift:

  1. Filterets code ikke er tomt, og

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

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

Konfiguration af log4j

Log4j konfiguration findes i følgende fil:

  • log4j.properties

Eksempel på konfiguration:

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=${dk.nsp.log.MaxFileSize}
log4j.appender.FILE.MaxBackupIndex=${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

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

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:

{"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}}}


HTTP Status- og versionscheck på FSK Registry Adapter

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

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

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

curl localhost:8060/fskregistry/health

hvilket giver output i stil med:

{ version: "1.2.6-SNAPSHOT", Database: "OK", CprExistsServiceClient : "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.

Backup af databasen sorterer under FSK Repository (andet system)

  • No labels