Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

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

...

  • cpr-subscriber (Maven identifier: dk.sds:cprsubscriber)
  • dgws_idws_proxy security-api (Maven identifier: dk.sds.dgws-idws-proxy:wsproxy.nsp.security:security-api)

For at bygge disse interne artefakter, henvises der til artefakternes dokumentation.

...

Version

Dato

Ændring

Ansvarlig

2.0.0

2018-08-16

Initialt dokument

Trifork

2.0.82019-08-16Opdateret properties med konfiguration af Spring Boot Actuator. Opdateret default value for property "minLog.readActivity.text".Trifork
2.0.92019-25-09AjourførtTrifork
2.0.112019-12-16AjourførtTrifork
2.0.122021-05-25Tilføjet author propertiesKvalitetsIT
2.0.132021-08-20Fjernet reference til SyncJob og tabel PropertiesKvalitetsIT

Byggevejledning

...

Projektets deployables ender i target-mappen under de respektive moduler.

Afvikling af unit-tests

For at afvikle projektets unit-tests, skal en MariaDB-database-server være tilgængelig.

I udviklingssammenhæng kan man oprette de nødvendige database-schemas vha. scriptet compose/database/db/create_db.sql. I application.properties-filen i projektet er datasources som default sat til at anvende root-user med tomt password. Database-strukturen bliver automatisk oprettet vha. Flyway SQL-scripter, når unit-testene afvikles.

Unit-testene i projektet kan afvikles med følgende Maven-kommando:

mvn clean test

Alternativt kan også samtidigt bygge projektet ved at anvende Maven-kommandoen:

Unit-testene i projektet kan afvikles med følgende Maven-kommando:

mvn clean test

Alternativt kan også samtidigt bygge projektet ved at anvende Maven-kommandoen:

mvn clean mvn clean install

Krav til miljø

Komponenten er tilpasset at kunne indgå i det aktuelt gældende CI-miljø på NSP. Det tager aktuelt udgangspunkt i version 1 af NSP's platform Docker image.

...

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

Bemærk, ved unittest anvendes en in-memory H2 database, som automatisk startes op, når unittests køres.

Krav til Krav til hardware

Der stilles ikke nogle 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.

...

Ved initial installation af servicen vil det således være følgende scripter, der skal køres i den nedenstående rækkefølge:

Servicens database

...

  • fsk/V2__create_RegistryIndex.sql

(Replikeret) Stamdata-database

...

Herunder beskrives properties i fsk-service komponentens komponentens konfigurationsfiler.

application.properties

Properties er her opdelt i to tabeller. Den første Følgende tabel indeholder anvendte Spring Boot- properties. Den anden tabel indeholder properties, der er specifikt defineret til brug i servicen. Begge typer af properties er defineret i samme konfigurationsfil.

...

Komponentspecifikke-properties

PropertyBeskrivelseForslået værdiDefault
spring
whitelisted.
active
level3.
profilesAktiv profil i Spring Boot. Skal ikke ændres. Anvendes til at styre forskellige databasekonfigurationer ved henholdsvis unit-tests og deployment.productionspring.jmx.enabledJMX. Denne feature anvendes ikke.falsemanagement.endpoints.enabled-by-defaultAngiver hvorvidt standard Actuator endpoints skal aktiveres.falsemanagement.health.status.orderRækkefølge der angiver prioritet for Actuator Health statusser. Der er udover standard statusser tilføjet statussen "NEEDS_ATTENTION".DOWN, OUT_OF_SERVICE, NEEDS_ATTENTION, UNKNOWN, UPmanagement.health.status.http-mapping.NEEDS_ATTENTIONMapper Actuator Health statussen "NEEDS_ATTENTION" til HTTP statuskode "202 Accepted".202management.health.defaults.enabledAngiver hvorvidt standard Actuator Health indikatorer skal aktiveres.falsemanagement.health.db.enabledAngiver hvorvidt Actuator Health indikator for databasetilgang/datasources skal aktiveres.truemanagement.endpoint.health.enabledAngiver hvorvidt Actuator endpoint for Health skal aktiveres.truemanagement.endpoint.health.show-detailsAngiver hvorvidt Actuator Health indikatorer eksponerer detaljer om deres status.alwaysmanagement.endpoint.info.enabledAngiver hvorvidt Actuator endpoint for Info skal aktiveres.true

Komponentspecifikke-properties

odr organdonorregistretodr organdonorregistret odr organdonorregistret ltr til livstestamenteregisterltr-btrltrltr mod livstestamenteregistret ltr mod livstestamenteregistret
cvrsEn komma-separeret liste af CVR-numre, som tillades at kalde FSKs DocumentProviderWS service med et level 3 ID-kort. Denne løsning findes af hensyn til sundhed.dk's kald gennem DDS. Sundhed.dk kalder igennem med CVR-nr. 31908574. På testmiljøer vil der (af testhensyn) typisk også være åbent for Trifork's CVR-nr. 20921897.31908574
health.certificate-expires-warningAngiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel.30
author.institution.rootAngviver author institution root id ved oprettelse af stamkort i fsk.1.2.208.176.1.11.2.208.176.1.1
author.institution.extensionAngviver author institution extension ved oprettelse af stamkort i fsk.11262110000160091126211000016009
author.institution.assigningAuthorityNameAngviver author institution autorityname ved oprettelse af stamkort i fsk.SORSOR
author.institution.nameAngviver navn på author institution ved oprettelse af stamkort i fsk.Fælles Stamkort udstedelseFælles Stamkort udstedelse
datasource-fsk.jndi-nameAngiver navnet på den primære JNDI datasourcejava:jboss/datasources/FSK-DS
datasource-stamdata.jndi-nameAngiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-databasejava:jboss/datasources/STM-DS
spring.flyway.enabledAngiver om servicen selv sørger for opgradering af databasen (hvilket kræver at “fsk-service”-brugeren har privilegier til DDL, samt at inkrementelle SQL-scripts er tilgængelige i WAR-filen). Bør være false.false
sts.endpointAdresse på NSP'ens SecurityTokenService.http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService
client.keystore.filesystem.pathAngiver hvilken keystore, ser anvendes til DGWS kald til SCES og DDS.test1/Statens_Serum_Institut_FOCES.jks
client.keystore.passwordPassword til ovennævnte keystore.Test1234
client.org.idOrganisationsid i form af CVR-nummer.46837428
client.org.nameOrganisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i client.org.idStatens Serum Institut
minLog.readActivity.text

Angiver den tekst der registreres i MinLog, når DDS'en henter et dokument et kald til On-Demand-webservicen

Opslag i StamkortOpslag i Det Fælles Stamkort
minlog.on.idcard.level3.enabled

Angiver, om FSK skal minlogge, når der kaldes med SOSI Idkort niveau 3

true
sces.enableEnable/disable SCES integrationtruetrue
sces.endpointEndpoint til CPR-Enkeltopslaghttp://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4
sces.connect.timeout.millisConnect-timeout mod CPR-enkeltopslag (ms)20005000
sces.read.timeout.millisRead-timeout mod CPR-enkeltopslag (ms)700010000
odr.enableEnable/disable integration til organdonorregistrettruetrue
odr.endpointEndpoint til organdonorregisterhttp://localhost:8080/odr/odr
odr.connect.timeout.millisConnect-timeout mod organdonorregistret (ms)20005000
odr.read.timeout.millisRead-timeout mod organdonorregistret (ms)700010000
ltr.enableEnable/disable integration til livstestamenteregistrettruetrue
ltr.endpointEndpoint til livstestamenteregisterhttp://localhost:8080/ltr-btr/ltr
ltr.connect.timeout.millisConnect-timeout mod livstestamenteregistret (ms)20005000
ltr.read.timeout.millisRead-timeout mod livstestamenteregistret (ms)700010000
btr.startdatetime

Tidspunkt for, hvornår FSK servicen begynder at foretage kald til behandlingstestamenteregisterservicen (såfremt integrationen er enabled).

Dette angives som et dato/klokkeslæt i lokal tid på format yyyy-MM-dd HH:mm:ss.

2019-01-01 00:00:002019-01-01 00:00:00
btr.enableEnable/disable integration til behandlingstestamenteregistrettruetrue
btr.endpointEndpoint til behandlingstestamenteregisterhttp://localhost:8080/ltr-btr/btr
btr
PropertyBeskrivelseForslået værdiDefault
server.servlet.context-pathContext path på servicen. Bør altid være “/fsk", og matche den on-demand-service endpoint, der er konfigureret i Dokumentdelingsservicen./fskwhitelisted.level3.cvrsEn komma-separeret liste af CVR-numre, som tillades at kalde FSKs DocumentProviderWS service med et level 3 ID-kort. Denne løsning findes af hensyn til sundhed.dk's kald gennem DDS. Sundhed.dk kalder igennem med CVR-nr. 31908574. På testmiljøer vil der (af testhensyn) typisk også være åbent for Trifork's CVR-nr. 20921897.31908574health.certificate-expires-warningAngiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel.30
author.institution.rootAngviver author institution root id ved oprettelse af stamkort i fsk.1.2.208.176.1.11.2.208.176.1.1
author.institution.extensionAngviver author institution extension ved oprettelse af stamkort i fsk.11262110000160091126211000016009
author.institution.assigningAuthorityNameAngviver author institution autorityname ved oprettelse af stamkort i fsk.SORSOR
author.institution.nameAngviver navn på author institution ved oprettelse af stamkort i fsk.Fælles Stamkort udstedelseFælles Stamkort udstedelse
datasource-fsk.jndi-nameAngiver navnet på den primære JNDI datasourcejava:jboss/datasources/FSK-DSdatasource-stamdata.jndi-nameAngiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-databasejava:jboss/datasources/STM-DSspring.flyway.enabledAngiver om servicen selv sørger for opgradering af databasen (hvilket kræver at “fsk-service”-brugeren har privilegier til DDL, samt at inkrementelle SQL-scripts er tilgængelige i WAR-filen). Bør være false.falsests.endpointAdresse på NSP'ens SecurityTokenService.http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenServiceclient.keystore.filesystem.pathAngiver hvilken keystore, ser anvendes til DGWS kald til SCES og DDS.test1/Statens_Serum_Institut_FOCES.jksclient.keystore.passwordPassword til ovennævnte keystore.Test1234client.org.idOrganisationsid i form af CVR-nummer.46837428client.org.nameOrganisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i client.org.idStatens Serum Institut
minLog.readActivity.text

Angiver den tekst der registreres i MinLog, når DDS'en henter et dokument et kald til On-Demand-webservicen

Opslag i StamkortOpslag i Det Fælles Stamkort
sces.enableEnable/disable SCES integrationtruetrue
sces.endpointEndpoint til CPR-Enkeltopslaghttp://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4sces.connect.timeout.millisConnect-timeout mod CPR-enkeltopslag behandlingstestamenteregistret (ms)20005000
scesbtr.read.timeout.millisRead-timeout mod CPR-enkeltopslag behandlingstestamenteregister (ms)700010000
skr.enableEnable/disable integration til stamkortregistrettruetrue
odrskr.endpointEndpoint til organdonorregisterstamkortregisterhttp://localhost:8080/odrskr/odrskr
skr.connect.timeout.millisConnect-timeout mod stamkortregistret (ms)20005000
skr.read.timeout.millisRead-timeout mod stamkortregistret (ms)700010000
ltr.enableEnable/disable integration til livstestamenteregistrettruetrue
syes.endpointEndpoint til Stamdata Yder EnkeltopslagsServicehttp://localhost:8080/syes/syes
syes.connect.timeout.millisConnect-timeout mod Stamdata Yder EnkeltopslagsService (ms)20005000
syes.read.timeout.millisRead-timeout mod Stamdata Yder EnkeltopslagsService (ms)700010000
btr.startdatetime

Tidspunkt for, hvornår FSK servicen begynder at foretage kald til behandlingstestamenteregisterservicen (såfremt integrationen er enabled).

Dette angives som et dato/klokkeslæt i lokal tid på format yyyy-MM-dd HH:mm:ss.

2019-01-01 00:00:002019-01-01 00:00:00
btr.enableEnable/disable integration til behandlingstestamenteregistrettruetrue
btr.endpointEndpoint til behandlingstestamenteregisterhttp://localhost:8080/ltr-btr/btr
btr.connect.timeout.millisConnect-timeout mod behandlingstestamenteregistret (ms)20005000
btr.read.timeout.millisRead-timeout mod behandlingstestamenteregister (ms)700010000
skr.enableEnable/disable integration til stamkortregistrettruetrue
skr.endpointEndpoint til stamkortregisterhttp://localhost:8080/skr/skr
skr.connect.timeout.millisConnect-timeout mod stamkortregistret (ms)20005000
skr.read.timeout.millisRead-timeout mod stamkortregistret (ms)700010000
syes.endpointEndpoint til Stamdata Yder EnkeltopslagsServicehttp://localhost:8080/syes/syes
syes.connect.timeout.millisConnect-timeout mod Stamdata Yder EnkeltopslagsService (ms)20005000
syes.read.timeout.millisRead-timeout mod Stamdata Yder EnkeltopslagsService (ms)700010000
dds.registry.endpoint.prefixURL der benyttes som præfix for DDS registry endpoints, således at denne ikke behøver gentagelse for hvert registry endpoint (se fx dds.registryupdate.service.endpoint). Udpeger ikke DDS, men dens bagved liggende OpenText registry, som normalt ikke er åbent tilgængeligt som DDShttps://test1-cnsp.ekstern-test.nspop.dk:8443/registry/servicesdds.registerondemand.service.endpointURL til dokumentdelingsservicens registrering af "on demand"-dokumenterhttp://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistrydds.registryupdate.service.endpointURL til OpenText registry's opdateringsservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties${dds.registry.endpoint.prefix}/xds-iti57dds.registrystoredquery.service.endpointURL til OpenText registry's søgeservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties${dds.registry.endpoint.prefix}/xds-iti18dds.repository.unique.id

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

TEST1: 1.2.208.176.43210.8.10.12
TEST2: 1.2.208.176.43210.8.20.12
UDDANNELSE: 1.2.208.176.43210.8.40.12
PRODTEST: 1.2.208.176.43210.8.30.12
PROD: 1.2.208.176.8.1.12

Se oversigt til venstredds.home.community.idFSK's "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer.1.2.208.176.8.1.12dds.type.codeLOINC "type code" for FSKs dokumenter. Sættes til 52460-3 (LOINC "Patient Information", se evt. https://s.details.loinc.org/LOINC/52460-3.html?sections=Comprehensive)52460-3
dds.connect.timeout.millisConnect-timeout mod dokumentdelingsservicen (ms)20005000
dds.read.timeout.millisRead-timeout mod dokumentdelingsservicen (ms)700010000
jobs.ddssync.max.errorsDet maksimale antal fejl SyncJob'et må støde på før det standser udførsel. Bemærk: forbigående fejl ignoreres automatisk; antallet går udelukkende på logiske fejl fra DDS. Hvis SyncJob flere gange støder på samme fejl, kan man overveje at justere denne property til '1', så jobbet kan passere den fejlende besked og fortsætte den videre behandling.00
jobs.ddssync.cpr.max.resultsAngiver hvor mange cprnumre jobbet til løbende opdatering af DDS registry max. må behandle i en batch.10001000
dgwsclient.pool.sizeAntal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR.50dgwsclient.timeout.millisTimeout (ms) for tråde, der anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR.
Bør være større end de read-timeout-millis, der kan angives for de enkelte services.
10000
isProductionAngiver om denne service er til test eller produktionfalsefalse
ignoreInvalidIdcardInTestModeAngiver denne om DGWS certifikater afvises hvis de er udløbet. Denne property anvendes kun når isProduction er falsetruetrue
call.sces.status.30Fejl der returneres når CPR-nummeret har status 30Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivtcall.sces.status.50Fejl der returneres når CPR-nummeret har status 50Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivtcall.sces.status.60Fejl der returneres når CPR-nummeret har status 60Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivtcall.sces.status.90Fejl der returneres når CPR-nummeret har status 90Det er ikke muligt at hente stamkortet, da borgeren er afgået ved døden for mere end 1 år siden

log4j2.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 2 dokumentation for alternativ konfiguration.

minlogclient.properties

Konfigurerer MinLog for servicen.

Standardværdierne indeholder konfiguration der skriver MinLog-logninger til test1-miljøet.

...

dds.registry.endpoint.prefixURL der benyttes som præfix for DDS registry endpoints, således at denne ikke behøver gentagelse for hvert registry endpoint (se fx dds.registryupdate.service.endpoint). Udpeger ikke DDS, men dens bagved liggende OpenText registry, som normalt ikke er åbent tilgængeligt som DDShttps://test1-cnsp.ekstern-test.nspop.dk:8443/registry/services
dds.registerondemand.service.endpointURL til dokumentdelingsservicens registrering af "on demand"-dokumenterhttp://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistry
dds.registryupdate.service.endpointURL til OpenText registry's opdateringsservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties${dds.registry.endpoint.prefix}/xds-iti57
dds.registrystoredquery.service.endpointURL til OpenText registry's søgeservice. Benytter dds.registry.endpoint.prefix, så URL ikke gentages i flere properties${dds.registry.endpoint.prefix}/xds-iti18
dds.repository.unique.id

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

TEST1: 1.2.208.176.43210.8.10.12
TEST2: 1.2.208.176.43210.8.20.12
UDDANNELSE: 1.2.208.176.43210.8.40.12
PRODTEST: 1.2.208.176.43210.8.30.12
PROD: 1.2.208.176.8.1.12

Se oversigt til venstre
dds.home.community.idFSK's "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer.1.2.208.176.8.1.12
dds.type.codeLOINC "type code" for FSKs dokumenter. Sættes til 52460-3 (LOINC "Patient Information", se evt. https://s.details.loinc.org/LOINC/52460-3.html?sections=Comprehensive)52460-3
dds.connect.timeout.millisConnect-timeout mod dokumentdelingsservicen (ms)20005000
dds.read.timeout.millisRead-timeout mod dokumentdelingsservicen (ms)700010000
dgwsclient.pool.sizeAntal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR.50
dgwsclient.timeout.millisTimeout (ms) for tråde, der anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR.
Bør være større end de read-timeout-millis, der kan angives for de enkelte services.
10000
isProductionAngiver om denne service er til test eller produktionfalsefalse
ignoreInvalidIdcardInTestModeAngiver denne om DGWS certifikater afvises hvis de er udløbet. Denne property anvendes kun når isProduction er falsetruetrue
call.sces.status.30Fejl der returneres når CPR-nummeret har status 30Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt
call.sces.status.50Fejl der returneres når CPR-nummeret har status 50Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt
call.sces.status.60Fejl der returneres når CPR-nummeret har status 60Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt
call.sces.status.90Fejl der returneres når CPR-nummeret har status 90Det er ikke muligt at hente stamkortet, da borgeren er afgået ved døden for mere end 1 år siden

log4j.xml

Konfigurerer logning for servicen.

Der benyttes en rolling file appender, hvor størrelsen af log filerne og antallet af gemte log filer konfigureres med de to environment variable: LOG_MAX_FILE_SIZE og LOG_MAX_BACKUP_INDEX.

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.

minlogclient.properties

FSK anvender MinLogProvider til at registrere logninger i MinLog2, og i den forbindelse skal Kafka properties for Min Log 2 konfigureres. 

Property

Beskrivelse

kafka.producer.bootstrap.serversKafka endpoint, som anvendes i forbindelse med kald til MinLog2
kafka.producer.client.idNavnet som FSK vil fremgå med i listen af Producers på et Kafka Cluster.
kafka.producer.key.serializerSerializer key for Kafka producer
kafka.producer.key.value.serializerSerializer value for Kafka producer
kafka.topic

Kafka topic som anvendes i forbindelse med kald til MinLog2

log4j-nspslalog.properties

...