Page History
Navitabs | ||||
---|---|---|---|---|
| ||||
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 |
---|---|
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:
...
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:
Property | Beskrivelse | ||
---|---|---|---|
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.rootmetadata.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:
Filterets eventCodes code ikke er tomt, og
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.
...