Page History
...
FSK-servicen består af én komponent (war-arkiv), der skal konfigureres og deployes på en applikationsserver:
...
- 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.8 | 2019-08-16 | Opdateret properties med konfiguration af Spring Boot Actuator. Opdateret default value for property "minLog.readActivity.text". | Trifork |
2.0.9 | 2019-25-09 | Ajourført | Trifork |
2.0.11 | 2019-12-16 | Ajourført | Trifork |
2.0.12 | 2021-05-25 | Tilføjet author properties | KvalitetsIT |
2.0.13 | 2021-08-20 | Fjernet reference til SyncJob og tabel Properties | KvalitetsIT |
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
Property | Beskrivelse | Forslået værdi | Default |
---|
whitelisted. |
level3. |
Komponentspecifikke-properties
cvrs | En 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-warning | Angiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel. | 30 | ||||
author.institution.root | Angviver author institution root id ved oprettelse af stamkort i fsk. | 1.2.208.176.1.1 | 1.2.208.176.1.1 | |||
author.institution.extension | Angviver author institution extension ved oprettelse af stamkort i fsk. | 1126211000016009 | 1126211000016009 | |||
author.institution.assigningAuthorityName | Angviver author institution autorityname ved oprettelse af stamkort i fsk. | SOR | SOR | |||
author.institution.name | Angviver navn på author institution ved oprettelse af stamkort i fsk. | Fælles Stamkort udstedelse | Fælles Stamkort udstedelse | |||
datasource-fsk.jndi-name | Angiver navnet på den primære JNDI datasource | java:jboss/datasources/FSK-DS | ||||
datasource-stamdata.jndi-name | Angiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-database | java:jboss/datasources/STM-DS | ||||
spring.flyway.enabled | Angiver 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.endpoint | Adresse på NSP'ens SecurityTokenService. | http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService | ||||
client.keystore.filesystem.path | Angiver hvilken keystore, ser anvendes til DGWS kald til SCES og DDS. | test1/Statens_Serum_Institut_FOCES.jks | ||||
client.keystore.password | Password til ovennævnte keystore. | Test1234 | ||||
client.org.id | Organisationsid i form af CVR-nummer. | 46837428 | ||||
client.org.name | Organisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i client.org.id | Statens 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 Stamkort | Opslag 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.enable | Enable/disable SCES integration | true | true | |||
sces.endpoint | Endpoint til CPR-Enkeltopslag | http://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4 | ||||
sces.connect.timeout.millis | Connect-timeout mod CPR-enkeltopslag (ms) | 2000 | 5000 | |||
sces.read.timeout.millis | Read-timeout mod CPR-enkeltopslag (ms) | 7000 | 10000 | |||
odr.enable | Enable/disable integration til organdonorregistret | true | true | |||
odr.endpoint | Endpoint til organdonorregister | http://localhost:8080/odr/odr | ||||
odr.connect.timeout.millis | Connect-timeout mod organdonorregistret (ms) | 2000 | 5000 | |||
odr.read.timeout.millis | Read-timeout mod organdonorregistret (ms) | 7000 | 10000 | |||
ltr.enable | Enable/disable integration til livstestamenteregistret | true | true | |||
ltr.endpoint | Endpoint til livstestamenteregister | http://localhost:8080/ltr-btr/ltr | ||||
ltr.connect.timeout.millis | Connect-timeout mod livstestamenteregistret (ms) | 2000 | 5000 | |||
ltr.read.timeout.millis | Read-timeout mod livstestamenteregistret (ms) | 7000 | 10000 | |||
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:00 | 2019-01-01 00:00:00 | |||
btr.enable | Enable/disable integration til behandlingstestamenteregistret | true | true | |||
btr.endpoint | Endpoint til behandlingstestamenteregister | http://localhost:8080/ltr-btr/btr | ||||
btr | ||||||
Property | Beskrivelse | Forslået værdi | Default | server.servlet.context-path | Context path på servicen. Bør altid være “/fsk", og matche den on-demand-service endpoint, der er konfigureret i Dokumentdelingsservicen. | /fsk | whitelisted.level3.cvrs | En 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-warning | Angiver antal dage, inden anvendte certifikater udløber, hvorfra komponentens statusside vil begynde at vise en advarsel. | 30 |
---|---|---|---|---|---|---|
author.institution.root | Angviver author institution root id ved oprettelse af stamkort i fsk. | 1.2.208.176.1.1 | 1.2.208.176.1.1 | |||
author.institution.extension | Angviver author institution extension ved oprettelse af stamkort i fsk. | 1126211000016009 | 1126211000016009 | |||
author.institution.assigningAuthorityName | Angviver author institution autorityname ved oprettelse af stamkort i fsk. | SOR | SOR | |||
author.institution.name | Angviver navn på author institution ved oprettelse af stamkort i fsk. | Fælles Stamkort udstedelse | Fælles Stamkort udstedelse | datasource-fsk.jndi-name | Angiver navnet på den primære JNDI datasource | java:jboss/datasources/FSK-DS | datasource-stamdata.jndi-name | Angiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-database | java:jboss/datasources/STM-DS | spring.flyway.enabled | Angiver 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.endpoint | Adresse på NSP'ens SecurityTokenService. | http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService | client.keystore.filesystem.path | Angiver hvilken keystore, ser anvendes til DGWS kald til SCES og DDS. | test1/Statens_Serum_Institut_FOCES.jks | client.keystore.password | Password til ovennævnte keystore. | Test1234 | client.org.id | Organisationsid i form af CVR-nummer. | 46837428 | client.org.name | Organisationsnavn. Dette skal være navnet på den organisation, der matcher CVR nummeret angivet i client.org.id | Statens 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 Stamkort | Opslag i Det Fælles Stamkort | |||
sces.enable | Enable/disable SCES integration | true | true | |||
sces.endpoint | Endpoint til CPR-Enkeltopslag | http://test1.ekstern-test.nspop.dk:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4 | sces.connect.timeout.millis | Connect-timeout mod CPR-enkeltopslag behandlingstestamenteregistret (ms) | 2000 | 5000 |
scesbtr.read.timeout.millis | Read-timeout mod CPR-enkeltopslag behandlingstestamenteregister (ms) | 7000 | 10000 | |||
skr.enable | Enable/disable integration til | organdonorregistretstamkortregistret | true | true | ||
odrskr.endpoint | Endpoint til organdonorregisterstamkortregister | http://localhost:8080/odrskr/odrskr | ||||
skr.connect.timeout.millis | Connect-timeout mod | organdonorregistretstamkortregistret (ms) | 2000 | 5000 | ||
skr.read.timeout.millis | Read-timeout mod | organdonorregistretstamkortregistret (ms) | 7000 | 10000 | ||
ltr.enable | Enable/disable integration til livstestamenteregistret | true | true | |||
syes.endpoint | Endpoint | til livstestamenteregistertil Stamdata Yder EnkeltopslagsService | http://localhost:8080/ | ltr-btrsyes/ | ltrsyes | |
syes.connect.timeout.millis | Connect-timeout | mod livstestamenteregistretmod Stamdata Yder EnkeltopslagsService (ms) | 2000 | 5000 | ||
syes.read.timeout.millis | Read-timeout | mod livstestamenteregistretmod Stamdata Yder EnkeltopslagsService (ms) | 7000 | 10000 | ||
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:00 | 2019-01-01 00:00:00 | |||
btr.enable | Enable/disable integration til behandlingstestamenteregistret | true | true | btr.endpoint | Endpoint til behandlingstestamenteregister | http://localhost:8080/ltr-btr/btr |
btr.connect.timeout.millis | Connect-timeout mod behandlingstestamenteregistret (ms) | 2000 | 5000 | |||
btr.read.timeout.millis | Read-timeout mod behandlingstestamenteregister (ms) | 7000 | 10000 | |||
skr.enable | Enable/disable integration til stamkortregistret | true | true | skr.endpoint | Endpoint til stamkortregister | http://localhost:8080/skr/skr |
skr.connect.timeout.millis | Connect-timeout mod stamkortregistret (ms) | 2000 | 5000 | |||
skr.read.timeout.millis | Read-timeout mod stamkortregistret (ms) | 7000 | 10000 | syes.endpoint | Endpoint til Stamdata Yder EnkeltopslagsService | http://localhost:8080/syes/syes |
syes.connect.timeout.millis | Connect-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 2000 | 5000 | |||
syes.read.timeout.millis | Read-timeout mod Stamdata Yder EnkeltopslagsService (ms) | 7000 | 10000 | dds.registry.endpoint.prefix | URL 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 DDS | https://test1-cnsp.ekstern-test.nspop.dk:8443/registry/services | dds.registerondemand.service.endpoint | URL til dokumentdelingsservicens registrering af "on demand"-dokumenter | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistry | dds.registryupdate.service.endpoint | URL 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.endpoint | URL 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 | Se oversigt til venstre | dds.home.community.id | FSK's "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer. | 1.2.208.176.8.1.12 | dds.type.code | LOINC "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.millis | Connect-timeout mod dokumentdelingsservicen (ms) | 2000 | 5000 | |||
dds.read.timeout.millis | Read-timeout mod dokumentdelingsservicen (ms) | 7000 | 10000 | |||
jobs.ddssync.max.errors | Det 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. | 0 | 0 | |||
jobs.ddssync.cpr.max.results | Angiver hvor mange cprnumre jobbet til løbende opdatering af DDS registry max. må behandle i en batch. | 1000 | 1000 | dgwsclient.pool.size | Antal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. | 50 | dgwsclient.timeout.millis | Timeout (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 |
isProduction | Angiver om denne service er til test eller produktion | false | false | |||
ignoreInvalidIdcardInTestMode | Angiver denne om DGWS certifikater afvises hvis de er udløbet. Denne property anvendes kun når isProduction er false | true | true | call.sces.status.30 | Fejl der returneres når CPR-nummeret har status 30 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.50 | Fejl der returneres når CPR-nummeret har status 50 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.60 | Fejl der returneres når CPR-nummeret har status 60 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | call.sces.status.90 | Fejl der returneres når CPR-nummeret har status 90 | Det 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.prefix | URL 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 DDS | https://test1-cnsp.ekstern-test.nspop.dk:8443/registry/services | |
dds.registerondemand.service.endpoint | URL til dokumentdelingsservicens registrering af "on demand"-dokumenter | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddsregistry | |
dds.registryupdate.service.endpoint | URL 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.endpoint | URL 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 | Se oversigt til venstre | |
dds.home.community.id | FSK's "HomeCommunityId" som konfigureret i DDS. Samme værdi på alle miljøer. | 1.2.208.176.8.1.12 | |
dds.type.code | LOINC "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.millis | Connect-timeout mod dokumentdelingsservicen (ms) | 2000 | 5000 |
dds.read.timeout.millis | Read-timeout mod dokumentdelingsservicen (ms) | 7000 | 10000 |
dgwsclient.pool.size | Antal parallelle kald, der kan maksimalt anvendes til kald til de underliggende services SCES, SKR, LTR, BTR og ODR. | 50 | |
dgwsclient.timeout.millis | Timeout (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 | |
isProduction | Angiver om denne service er til test eller produktion | false | false |
ignoreInvalidIdcardInTestMode | Angiver denne om DGWS certifikater afvises hvis de er udløbet. Denne property anvendes kun når isProduction er false | true | true |
call.sces.status.30 | Fejl der returneres når CPR-nummeret har status 30 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
call.sces.status.50 | Fejl der returneres når CPR-nummeret har status 50 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
call.sces.status.60 | Fejl der returneres når CPR-nummeret har status 60 | Det er ikke muligt at hente stamkortet, da CPR-nummeret er inaktivt | |
call.sces.status.90 | Fejl der returneres når CPR-nummeret har status 90 | Det 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.servers | Kafka endpoint, som anvendes i forbindelse med kald til MinLog2 |
kafka.producer.client.id | Navnet som FSK vil fremgå med i listen af Producers på et Kafka Cluster. |
kafka.producer.key.serializer | Serializer key for Kafka producer |
kafka.producer.key.value.serializer | Serializer value for Kafka producer |
kafka.topic | Kafka topic som anvendes i forbindelse med kald til MinLog2 |
log4j-nspslalog.properties
...