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 |
---|---|
DDS | Dokumentdelingsservice |
NSI | National Sundheds-IT |
NSP | Den 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:
Property | Beskrivelse |
---|---|
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:
Filterets code ikke er tomt, og
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)