Overblik

Dette dokument beskriver installation og konfiguration af Graviditetskortregister-servicen (GSR) samt den tilhørende konfiguration af dokumentdelingsservicen (DDS).

GSR-servicen består af én komponent (et war-arkiv), der skal konfigureres og deployes på en Wildfly applikationsserver:

  • gsr: War-arkiv. Servlet-baseret webservice pakket specifikt til Wildfly.

Servicen er baseret på normalt tilgængelige Maven dependencies,


Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion. Referencer til stier er relative med udgangspunkt i projektets rodmappe.

Krav til miljø

Komponenten er tilpasset at kunne indgå i det aktuelt gældende CI-miljø på NSP. Der tages udgangspunkt i NSP's platform Docker image.

Krav til database

Servicen er testet mod MariaDB version 10.1, som bliver brugt på NSP platformen.

Krav til hardware

Der stilles ikke særlige minimumskrav til hardware, men man skal forvente at bruge high-end hardware (både cpu, ram, netkort og diske) for at kunne opfylde de gældende svartidskrav på NSP.

Oprettelse af databaser og tabeller

Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.

Tilgang til database

GSR servicen er baseret på komponenten HAPI FHIR. Data lagres således i en HL/7 FHIR model, kræver en enkelt database til dens komponentens data.

Servicen konfigureres med en datasource. Databasebrugeren, der tilgår servicens egen database, skal være tildelt følgende rettigheder:

  • SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER

Årsagen til at brugeren skal have adgang til afvikling af DDL er, at HAPI FHIR er baseret på JPA, og selv opretter tabeller sine ved første opstart.

Oprettelse af database

Der oprettes en tom database til brug for servicen. Script til dette findes her: 

  • compose/database/db/create_db.sql

Udover de tabeller, der oprettes af HAPI FHIR komponenten skal der oprettes en tabel, der anvendes ifbm. afsendelse af advis. Dette gøres ved at afvikle de migreringsscripts der findes i mappen compose/database/db/migration/gsr mod databasen.

Deployment

Komponenten deployes vha. NSP's platform Docker image og konfigurationsfiler mountes i containeren som angivet i projektets Compose-filer.

Servicen konfigureres ved hjælp af et Wildfly-modul, der indeholder de nødvendige konfigurationsfiler til valg af datasources, brugerdefinerede parametre, logning, mm. Wildfly-modulet er integreret i komponentens Docker image.


Alle konfigurerbare properties bør gennemgås inden idriftsættelse, men standardværdierne er tiltænkt anvendelse i produktion medmindre andet er angivet.

Konfiguration af servicen

Herunder beskrives properties i GSR komponentens konfigurationsfiler.


application.properties

PropertyBeskrivelseDefault-værdi
app.datasource.primary.jndi-nameAngiver navnet på den JNDI datasource der giver adgang databasenjava:jboss/datasources/GM-DS
dk.sds.nsp.audit.DevelopmentAuditProvider.enabledEnable/disable udviklings-auditlogging. Denne skal være false i produktion.true
dcc.endpointAngiver det endpoint, der skal fremgå i DCC konfigurationentest1-cnsp.ekstern-test.nspop.dk:8080/gsr/MaternityCard
dds.repositoryuniqueid

GSRs "RepositoryUniqueId" som konfigureret i DDS. Er miljøafhængig på følgende måde:

TEST1: 1.2.208.176.43210.8.10.13
TEST2: 1.2.208.176.43210.8.20.13
UDDANNELSE: 1.2.208.176.43210.8.30.13
PRODTEST: 1.2.208.176.43210.8.40.13
PROD: 1.2.208.176.8.1.13

1.2.208.176.43210.8.10.13
dds.homecommunityidGSRs "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer.1.2.208.176.43210.8.10
dds.formatCodeCodeIndgår i DDS registry metadataurn:ad:dk:medcom:madc-v1.0:full
dds.formatCodeDisplayNameIndgår i DDS registry metadataDK MADC schema
dds.formatCodeCodeSystemIndgår i DDS registry metadata1.2.208.184.100.10
dds.typeCodeDisplayNameIndgår i DDS registry metadataMADC
dds.typeCodeCodeSystemIndgår i DDS registry metadata1.2.208.184.100.10
dds.typeCodeNodeRepresentationIndgår i DDS registry metadataMADC
dds.urlEndpoint for DDS registryhttp://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistry/services/xds-iti61
dcc.urlEndpoint for DCC, anvendes til CPR-enkeltopslag mv.http://test1-cnsp.ekstern-test.nspop.dk:8080/decoupling
nas.urlEndpoint for NAS, til afsendelse af advishttp://test1.ekstern-test.nspop.dk:8080/notificationbroker/service
sores.urlEndpoint for SOR enkeltopslag service

http://test1.ekstern-test.nspop.dk:8080/sores/

sosi.sts.urlEndpoint for Secure Token Service (STS)http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService
sosi.careprovider.nameFirmanavn fra systemcertifikat, som anvendes til DGWS adgang til DDS registryTRIFORK SERVICES A/S
sosi.careprovider.cvrCVR-nummer fra systemcertifikat, som anvendes til DGWS adgang til DDS registry20921897
sosi.production.federationAngiver om det certifikat, der anvendes til adgang DGWS-adgang til DDS registrym, er et produktionscertifikatfalse

sosi.system.name

Systemnavn fra systemcertifikat, som anvendes til DGWS adgang til DDS registryfmkclient
sosi.keystore.pathNavn på keystore med det systemcertifikat, som anvendes til DGWS adgang til DDS registryFMK-KRS-TEST.jks
sosi.keystore.passwordPassword til keystore med det systemcertifikat, som anvendes til DGWS adgang til DDS registry
sosi.timeoutTimeout for kald til DDS, angivet i millisekunder1000
nas.topic.newPregnancyTopic for advis'er som sendes i uge 20 efter oprettelse af graviditetskort (baseret på terminsdato)http://sundhedsdatastyrelsen.dk/maternitycard/2020/03/01:NewPregnancy
nas.topic.assessmentLevelUpdatedTopic for advis'er som sendes ved opdatering af risikoniveau-felt i graviditetskorthttp://sundhedsdatastyrelsen.dk/maternitycard/2020/03/01:AssessmentLevelUpdated
nas.topic.prematureTerminationTopic for advis'er som sendes ved afslutning af graviditetskort imellem uge 20 og 35.http://sundhedsdatastyrelsen.dk/maternitycard/2020/03/01:PrematureTermination
nas.topic.pregnancyCourseCreatedTopic for advis'er som sendes ved oprettelse af nyt graviditetsforløbhttp://sundhedsdatastyrelsen.dk/maternitycard/2020/03/01:MaternityCardCreated
nas.topic.pregnancyCourseClosedTopic for advis'er som sendes ved lukning af graviditetsforløbhttp://sundhedsdatastyrelsen.dk/maternitycard/2020/03/01:MaternityCardClosed
regionInstitutionOwnersListe af SOR koder for regioner. Der sendes kun advis ved oprettelse af nyt graviditetsforløb, hvis den ansvarlige enhed er på listen. Hvis listen er blank sendes der altid advis.6111000016004,6081000016005,6071000016008,6091000016007,6101000016001
task.advis.retryLimitAntal gange en advis forsøges sendt før den fejler helt3
task.advis.week20advis.beforeAntal dage før dags dato, der indgår i advis uge 20 beregningP1d
task.advis.week20advis.afterAntal dage efter dags dato, der indgår i advis uge 20 beregningP1d
task.deletejob.age.longAlder af kort der slettes af slettejobbet i år, måneder og/eller dageP2Y
task.deletejob.age.shortAlder af kort der slettes af slettejobbet i timer, minutter og/eller sekunder. Lægges til task.deletejob.age.longPT0S
task.deletejob.advisKeepDaysAntal dage, succefuldt afsendte og fejlede records opbevares i Advis-tabellen før de må slettes af slettejobbet.30
endpoint.getmaternitycard.enabledEnable/disable getMaternityCard webservice metode. Enables i test, disables i prodtrue
endpoint.getmaternitycardbypatient.enabledEnable/disable getMaternityCardByPatient webservice metode. Enables i test, disables i prodtrue
sces.loader.maxThreadsAntal tråde der maksimalt kan anvendes til kald af CPR enkeltopslag servicen10
sces.loader.timeoutTimeout i millisekunder for kald til CPR enkeltopslag servicen2000
kafka.producer.bootstrap.serversTil minlog-producer kafka opsætninghost.docker.internal:9092
kafka.producer.client.idTil minlog-producer kafka opsætningMinLog2-producer
kafka.producer.key.serializerTil minlog-producer kafka opsætningorg.apache.kafka.common.serialization.StringSerializer
kafka.producer.value.serializerTil minlog-producer kafka opsætningorg.apache.kafka.common.serialization.StringSerializer
kafka.topicTil minlog-producer kafka opsætningMinLog2-Registration
nsp.kafka.producer.component.nameTil minlog-producer kafka opsætningMinLog2-registration-producer
nsp.kafka.producer.component.abbreviationTil minlog-producer kafka opsætningMinLog2-producer
nsp.kafka.producer.component.versionTil minlog-producer kafka opsætning1.0.0
nsp.kafka.producer.service.nameTil minlog-producer kafka opsætningproduce

log4j-gsr.xml

Konfigurerer logning for servicen.

Standardværdierne angiver nogle brugbare niveauer for anvendelse i produktion. Se Driftsvejledningen for uddybet beskrivelse af logning.

Se den officielle Log4j dokumentation for alternativ konfiguration.

nspslalog-gsr.properties

Konfigurerer SLA logning (NSP-util).

log4j-nspslalog.properties

Definerer log-appender til NSP-utils SLA-log.

Konfiguration af datasources

GSR komponenten kræver adgang til en JNDI datasource. Disse skal opsættes i Wildfly og refereres til i servicens application.properties.

Overblik over komponenter

Der følgende beskriver de forskellige deployables som komponenten indeholder.

Filnavn når deployet

Beskrivelse

Kilde

gsr.war

GSR servicen

gsr.war

Se driftsvejledningen for yderligere information.

IsAlive check

Efter installation og opstart af servicen kan det kontrolleres om servicen kører på dette endpoint:

http://<server>:<port>/gsr/isalive

Output viser status, herunder om databasen er tilgængelig, om certifikater snart udløber, samt status for afsendelse af advis'er.

Konfiguration af dokumentdelingsservicen (DDS)

Der skal konfigureres følgende i DDS:

  1. Adgang til anvendelse af ITI-18, ITI-42, ITI-57 og ITI-61.

GSR-servicen kaldes fra DDS igennem GM Repository Proxy (GRP). Det er således GRP, der skal konfigureres som on-demand service i DDS, ikke GSR. Derimod skal GSR's ITI-43 endpoint (http://<gsr service host>:<port>/gsr/iti43) konfigureres i GRP. Se GRP installationsvejledning vedr. dette.

Bemærk

ITI-43 endpoint er ikke beskyttet sikkerhedsmæssigt med krav om kald med DGWS. I produktion skal dette endpoint derfor skærmes af mod kald udefra.

Konfiguration af afkoblingskomponenten (DCC)

DCC kan konfigureres med følgende endpoint:

http://<server>:<port>/gsr/dksconfig

Det er vigtigt at property dcc.endpoint tilrettes i application properties til at indeholde det korrekte GSR endpoint i forhold til det installerede miljø.

Afsendelse af advis til NAS

GSR's NAS integration er lavet på følgende måde:

  1. Advis der skal sendes fra servien, placeres lagres i første omgang som en record tabellen ADVIS i databasen, med status PENDING
  2. Et asynkront job kan afsende advis'er med status PENDING til NAS
  3. Såfremt det lykkes at afsende en advis til NAS skifter status til SUCCESSFUL
  4. Såfremt det ikke lykkes at afsende en advis til NAS tælles retry op. Der forsøges så igen næste gang jobbet kører.
  5. Hvis retry-count når en grænse (pt. 3) skifter status til FAILED

Det pågældende job kan afvikles ved at invokere følgende endpoint: 

http://<server>:<port>/gsr/task/advis

Ved installation bør der etableres scheduleret afvikling af dette job, ved at en ekstern komponent invokerer det nævnte endpoint med jævne mellemrum.

Status for afsendelse af advis kan monitoreres med isAlive.


  • No labels