Versions Compared

Key

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

...

Projektet bygges med Maven og kræver Java 8 samt en MariaDB-installation for at kunne afvikle unit-tests.Udover normalt tilgængelige Maven dependencies, afhænger projektet også af interne artefakter. Hvis disse artefakter ikke er udgivet (released) i den påkrævede version i NSP's Nexus repository, skal man selv udtjekke og bygge dem fra


Info

Alle filer der refereres til ligger sammen med projektets kildekode i NSP's Subversion

...

. Referencer til stier er relative med udgangspunkt i projektets rodmappe.

Ændringslog

  • cpr-subscriber (Maven identifier: dk.sds:cprsubscriber)

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

Info

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

Ændringslog

Version

Dato

Ændring

Ansvarlig

Version

Dato

Ændring

Ansvarlig

1.0.1

2018-08-15

Initialt dokument

Trifork

1.0.22018-08-31Ny releaseTrifork
1.0.32018-09-06Endpoints ændret fra /ltr-btr til /btrTrifork
1.0.42018-09-11Ændret databasedriver til MySQLTrifork
1.0.62018-10-15Tilføjelse af tre SQL-scripterTrifork
1.0.122019-08-19Opdateret default value for property "minlog.read-activity-text.ltr" og "minlog.read-activity-text.btr". Tilføjet to SQL-scripter.Trifork
1.0.142019-25-09AjourførtTrifork
1.1.32020-05-26Opdateret properties til slettejobKvalitetsIT
1.1.72021-09-06Opdateret ifm. udfasning af dgws/idws-proxy.KvalitetsIT
1.1.82021-10-12Opdateret ifm. udfasning af btr-snitflade med accept fra pårørende, værge eller fremtidsfuldmægtig for uafvendeligt døendeKvalitetsIT
1.1.92021-10-25Opdateret ifm inaktive cpr numre afvisesKvalitetsIT
1.1.102022-10-18Tilføjet minlog.read-activity-text-with-only-forced-treatment.btrKvalitetsIT
1.1.112022-10-25TIlføjet cprexists.minageKvalitetsIT

Byggevejledning

For at bygge projektet og dets deployables (war-filer) uden at køre unit-tests og integrationstests, anvendes følgende Maven kommando:

mvn clean install -DskipTests

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:

mvn clean install

Afvikling af integrationstests

Se testvejledningen.

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.

Krav til database

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

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.

Oprettelse af databaser og tabeller

Herunder beskrives servicens tilgang til database samt oprettelse af tabeller og views.

Tilgang til database

Servicen består af en database, der både indeholder data for Livstestamenteregistret og for Behandlingstestamenteregistret. Derudover afhænger den af adgang til et view i en (replikeret) stamdata-database.

Servicen konfigureres med 1 datasource, som tilgår databasen vha. separat specificerede brugere.

En bruger skal give adgang til databasen, og den skal være tildelt følgende rettigheder på databasen:

  • Ved normal drift i produktion: SELECT, INSERT, UPDATE, DELETE
  • Yderligere nødvendige rettigheder ved databaseoprettelse og migreringer: CREATE, DROP, ALTER

Databasebrugeren, der tilgår stamdata-view'et, skal være tildelt følgende rettigheder:

1.1.332023-11-09SDS-6387: omlægning af slettejobKvalitetsIT
GIT2024-07-21SDS-7326: BTR - oprydningsjob skal tilpasses (cprexists er omdøbt til personInformation)KvalitetsIT

Byggevejledning

For at bygge projektet og dets deployables (war-filer) uden at køre unit-tests og integrationstests, anvendes følgende Maven kommando:

mvn clean install -DskipTests

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:

mvn clean install

Afvikling af integrationstests

Se testvejledningen.


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.

Krav til database

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

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.

Oprettelse af databaser og tabeller

Herunder beskrives servicens tilgang til database samt oprettelse af tabeller.

Tilgang til database

Servicen består af en database, der både indeholder data for Livstestamenteregistret og for Behandlingstestamenteregistret. 

Servicen konfigureres med 1 datasource, som tilgår databasen vha. separat specificerede brugere.

En bruger skal give adgang til databasen, og den skal være tildelt følgende rettigheder på databasen:

  • Ved normal drift i produktion: SELECT, INSERT, UPDATE, DELETE
  • Yderligere nødvendige rettigheder ved databaseoprettelse og migreringer: CREATE, DROP, ALTER
  • Ved normal drift i produktion: SELECT
  • Yderligere nødvendige rettigheder ved databaseoprettelse og migreringer: CREATE VIEW, DROP

Oprettelse af database og tabeller

Datamodellen styres vha. inkrementelle SQL-scripter, der kan findes under compose/database/db/migration. De er inddelt i 2 undermapper::

  • btr: indeholder scripts til at køre på servicens Livstestamenteregister-database og Behandlingstestamenteregister-databasestm: indeholder scripts til at køre på en (replikeret) stamdata-database.


Info

Scripts er udformet til at blive kørt med databasemigreringsværktøjet Flyway, men dette er kun aktiveret under afvikling af unit-tests, da dette ikke ønskes anvendt i produktion.

I produktion anvendes scripterne manuelt og skal køres på databasen i inkrementel rækkefølge baseret på versionsnummeret i filnavnet (først V1__(...).sql, dernæst V2__(...).sql, osv.). Hvert script må aldrig køres mere end én gang; der gælder dog en undtagelse for ikke-versionerede scripter, hvis filnavne begynder med R, som står for Repeatable. Disse Repeatable scripter skal køres hver gang deres indhold (checksum) er blevet ændret, men de må først køres efter alle versionerede scripter er blevet kørt.

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 Behandlingstestamenteregister og Livstestamenteregister-database

  • btr/V1__create_LivingWill.sql
  • btr/V2__create_PropertiesLivingWill.sql
  • btr/V3__create_TreatmentWill.sql 
  • btr/V4__create_PropertiesTreatmentWill.sql
  • btr/V5__alter_add_NoForcedTreatmentIfIncapable.sql
  • btr/V6__migrate_RelativeAcceptanceRequired_to_AcceptanceNeeded.sql
  • btr/V7__add_AcceptanceNeeded_for_all.sql
  • btr/V8__add_PersonIdentifier_index.sql
  • btr/V9__add_PersonIdentifier_index.sql

(Replikeret) Stamdata-database

  • stm/R__create_v2_Person_Simplified_view.sql
Info

Scriptet R__create_v2_Person_Simplified_view.sql opretter et view, som afhænger af eksistensen af tabellen v2_Person. Dette er tabellen, der indeholder CPR-ændringer, og den skal man selv stå for at levere. Under afvikling af unit-tests bliver en testudgave af denne tabel automatisk oprettet vha. et SQL-script i compose/database/db/test.

Deployment

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

ltr-btr-service-wildfly indholder de nødvendige konfigurationsfiler til valg af datasource, brugerdefinerede parametre, logning, mm. Wildfly-modulet er integreret i komponentens Docker image.

Info

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 ltr-btr-service-wildfly komponentens konfigurationsfiler.

application.properties

V1__(...).sql, dernæst V2__(...).sql, osv.). Hvert script må aldrig køres mere end én gang; 

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 Behandlingstestamenteregister og Livstestamenteregister-database

  • btr/V1__create_LivingWill.sql
  • btr/V2__create_PropertiesLivingWill.sql
  • btr/V3__create_TreatmentWill.sql 
  • btr/V4__create_PropertiesTreatmentWill.sql
  • btr/V5__alter_add_NoForcedTreatmentIfIncapable.sql
  • btr/V6__migrate_RelativeAcceptanceRequired_to_AcceptanceNeeded.sql
  • btr/V7__add_AcceptanceNeeded_for_all.sql
  • btr/V8__add_PersonIdentifier_index.sql
  • btr/V9__add_PersonIdentifier_index.sql

Deployment

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

ltr-btr-service-wildfly indholder de nødvendige konfigurationsfiler til valg af datasource, brugerdefinerede parametre, logning, mm. Wildfly-modulet er integreret i komponentens Docker image.


Info

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 ltr-btr-service-wildfly komponentens konfigurationsfiler.

application.properties

PropertyBeskrivelseDefault
datasource.btr.jndi-nameAngiver navnet på en JNDI datasource til Behandlingstestamenteregister-databasenjava:jboss/datasources/BTR-DS
dcc.endpoint.ltrAngiver det endpoint, som DCC'en skal kalde for Livstestamenteregistret. Dette kommer til at fremgå af den XML, der returneres i /dksconfig. Bør ændres før produktion.http://test1.fsk.netic.dk:8080/btr/ltr
dcc.endpoint.btrAngiver det endpoint, som DCC'en skal kalde for Behandlingstestamenteregistret. Dette kommer til at fremgå af den XML, der returneres i /dksconfig . Bør ændres før produktion.http://test1.fsk.netic.dk:8080/btr/btr
minlog.read-activity-text.ltr
PropertyBeskrivelseDefaultdatasource.btr.jndi-nameAngiver navnet på en JNDI datasource til Behandlingstestamenteregister-databasenjava:jboss/datasources/BTR-DSdatasource.stamdata.jndi-nameAngiver navnet på den JNDI datasource der giver adgang til en (replikeret) stamdata-databasejava:jboss/datasources/STM-DSdcc.endpoint.ltrAngiver det endpoint, som DCC'en skal kalde for Livstestamenteregistret. Dette kommer til at fremgå af den XML, der returneres i /dksconfig. Bør ændres før produktion.http://test1.fsk.netic.dk:8080/btr/ltrdcc.endpoint.btrAngiver det endpoint, som DCC'en skal kalde for Behandlingstestamenteregistret. Dette kommer til at fremgå af den XML, der returneres i /dksconfig . Bør ændres før produktion.http://test1.fsk.netic.dk:8080/btr/btrminlog.read-activity-text.ltrAngiver den tekst der registreres i MinLog, når der bliver læst Livstestamente-data for et CPR-nummer.L\u00e6sning af Livstestamenteminlog.read-activity-text.btrAngiver den tekst der registreres i MinLog, når der bliver læst Behandlingstestamente-data for et CPR-nummer.L\u00e6sning af Behandlingstestamenteminlog.read-activity-text-with-only-forced-treatment.btrAngiver den tekst der registreres i MinLog, når der bliver læst Behandlingstestamente-data som kun indeholder tvang ved somatisk behandling for et CPR-nummer.minlog.create-activity-text.btr
Angiver den tekst der registreres i MinLog, når der bliver
oprettet Behandlingstestamente
læst Livstestamente-data for et CPR-nummer.
Oprettelse
L\u00e6sning af
Behandlingstestamente
Livstestamente
minlog.
delete
read-activity-text.
ltr
btrAngiver den tekst der registreres i MinLog, når der bliver
slettet Livstestamente
læst Behandlingstestamente-data for et CPR-nummer.
Sletning
L\u00e6sning af
Livstestamente
Behandlingstestamente
minlog.
delete
read-activity-text-with-only-forced-treatment.btrAngiver den tekst der registreres i MinLog, når der bliver
slettet
læst Behandlingstestamente-data som kun indeholder tvang ved somatisk behandling for et CPR-nummer.
Sletning af Behandlingstestamente

minlog.

update

create-activity-text.

ltr

btr

Angiver den tekst der registreres i MinLog, når der bliver
opdateret Livstestamente
oprettet Behandlingstestamente-data for et CPR-nummer.
Opdatering
Oprettelse af
Livstestamente
Behandlingstestamente

minlog.

update

delete-activity-text.

btr

ltr

Angiver den tekst der registreres i MinLog, når der bliver
opdateret Behandlingstestamente
slettet Livstestamente-data for et CPR-nummer.
Opdatering
Sletning af
Behandlingstestamentebtr.open-date

Angiver det præcise tidspunkt (ISO 8601) fra hvornår mulighed for oprettelser aktiveres for Behandlingstestamenteregistret. Hvis denne er null eller ikke er mulig at parse som et tidspunkt, vil mulighed for oprettelse alligevel være muligt, og en advarsel vil blive logget ved opstart.

Hvis oprettelser og opdateringer deaktiveres for Behandlingstestamenteregistret, vil integrationstestene fejle.

2018-06-01T00:00:00+01:00jobs.delete.cpr-max-results.ltrLivstestamenteregister-slettejob: Angiver maksimum antal rækker med opdateringer i cpr-registry der skal læses ad gangen25jobs.delete.cpr-max-loops.ltrLivstestamenteregister-slettejob: Angiver maksimum antal batches der skal behandles pr. jobeksekvering

2

jobs.delete.cpr-max-results.btrBehandlingstestamenteregister-slettejob: Angiver maksimum antal rækker med opdateringer i cpr-registry der skal læses ad gangen25jobs.delete.cpr-max-loops.btrBehandlingstestamenteregister-slettejob: Angiver maksimum antal batches der skal behandles pr. jobeksekvering2cprexists.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

nullcprexists.maxTotalConnections

Konfiguration af client pool til kald af CPRExists service

200cprexists.defaultMaxConnectionsPerRoute

Konfiguration af client pool til kald af CPRExists service

20cprexists.inactive.statusKonfiguration af inaktive status, liste adskilt af komma30,50,60cprexists.minageMinimum alder for oprettelse af behandlingstestamente
Livstestamente

minlog.delete-activity-text.btr

Angiver den tekst der registreres i MinLog, når der bliver slettet Behandlingstestamente-data for et CPR-nummer.Sletning af Behandlingstestamente

minlog.update-activity-text.ltr


Angiver den tekst der registreres i MinLog, når der bliver opdateret Livstestamente-data for et CPR-nummer.Opdatering af Livstestamente

minlog.update-activity-text.btr

Angiver den tekst der registreres i MinLog, når der bliver opdateret Behandlingstestamente-data for et CPR-nummer.Opdatering af Behandlingstestamente

minlog.citizen.user.title

Værdi der registreres som Role i MinLog, når en borger opretter, opdaterer, læser eller sletter egne data.borger

minlog.healthcareprofessional.unknown.user.title

Værdi der registreres som Role i MinLog, hvis en sundhedsfagligs rolle ikke kan bestemmes ud fra Uddannelseskode eller National Rolleunverified role
btr.open-date

Angiver det præcise tidspunkt (ISO 8601) fra hvornår mulighed for oprettelser aktiveres for Behandlingstestamenteregistret. Hvis denne er null eller ikke er mulig at parse som et tidspunkt, vil mulighed for oprettelse alligevel være muligt, og en advarsel vil blive logget ved opstart.

Hvis oprettelser og opdateringer deaktiveres for Behandlingstestamenteregistret, vil integrationstestene fejle.

2018-06-01T00:00:00+01:00
personInformation.validationlevel

Valideringsniveau for CPR validering

Eksempel: WARNING, REJECT, OFF


personInformation.url

URL for CPR exist service

Eksempel: http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personInformation

null
personinformation.error.tolerance

Antal fejl der tolereres fra PersonInformation servicen før /health endpointet for slettejobbet angiver servicen som ikke tilgængelig. Default værdi er 0.

50
18
whitelisted.level3.cvrsKomma separeret liste af cvr numre, der må kalde servicen med niveau 3 id kort
allowed.idws.audienceDet tilladte audience på indkommende idws requestshttps://fsk
nas.app.nameApplikationsnavn til sla-logning ved NAS-kaldtreatmentwillregister
nas.app.shortnameKort applikationsnavn til sla-logning ved NAS-kald.btr
nas.fail.thesholdGrænse for hvor mange gange NAS-kald må fejle i træk, før NAS opfattes som usund.1
nas.connect.timeout.millisGrænse for hvor lang tid det må tage at oprette forbindelse til NAS (i ms.).10000
nas.read.timeout.millisGrænse for hvor lang tid det må tage at modtage svar fra NAS (i ms.).10000
nas.max.total.connectionsMaksimalt antal samtidige NAS-forbindelser.200
nas.default.max.connections.per.routeMaksimalt antal NAS-forbindelser per rute.20
nas.service.urlNAS Endpointhttp://test1.ekstern-test.nspop.dk:8080/nas2/notificationbroker/service
nas.topic.livingwillnotificationNAS topic ved opdateringer af livstestamentehttp://sundhedsdatastyrelsen.dk/LivingWill/2022/05/05:LivingWillUpdated
nas.topic.treatmentwillnotificationNAS topic ved opdateringer af behandlingstestamentehttp://sundhedsdatastyrelsen.dk/TreatmentWill/2022/05/05
:TreatmentWillUpdated
:TreatmentWillUpdated
nas.idcard.subject.id.typeSubjecttype for IDKort til NAS-kald.medcom:cvrnumber
nas.idcard.subject.id
.type
Subjecttype
SubjectId for IDKort til NAS-kald.
medcom:cvrnumber
46837428
nas.idcard.subject
.id
.nameSubjectname for IDKort til NAS-kald.Funktionssignatur til testmiljø (funktionscertifikat)
nas.idcard.levelSikkerhedsniveau for IDKort til NAS-kald.3
nas.idcard.system.nameSystemnavn i
SubjectId for
IDKort til NAS-kald.
46837428
itsystem
nas.
idcard.subject.nameSubjectname for IDKort til NAS-kald.Funktionssignatur til testmiljø (funktionscertifikat)
sts.endpointEndpointet, hvor Minspærring skal trække sit SOSI IDkort på baggrund af sts.keystorehttp://test2.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService
nas.sts.test.modeBoolsk værdi, der angiver om der anvendes test- eller produktions SOSIFederationtrue
nas.sts.keystoresti til keystore, der indeholder certifikat til at trække Idkort
nas.idcard.levelSikkerhedsniveau for IDKort til NAS-kald.3nas.idcard.system.nameSystemnavn i IDKort
til NAS-kald.
itsystem
Statens_Serum_Institut_FOCES.jks
nas.sts.
endpointEndpointet, hvor Minspærring skal trække sit SOSI IDkort på baggrund af
keystore.passwordPassword til sts.keystore
http://test2.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService
n/a
jobs.delete.max.durationAngiver den maksimale udførelsestid for baggrundsjobbet. Angives som Duration i ISO-8601 formattet. Default værdien er på 20 sekunder.PT20S
desired.execution.duration

deletion.save.deceased

Angiver period på, hvor længe en person minimum skal være død for at blive slettet af slettet jobbet. 
Formatet er D for dage, M for måneder og Y for år.
Nogle eksempler: 2Y er 2 år, 12M er 12 måneder og 60D er 60 dage. 

P12M
deletion.jobs.batchSize

Angiver den maksimale antal cpr numre, som behandles per gang

500
nas.sts.test.modeBoolsk værdi, der angiver om der anvendes test- eller produktions SOSIFederationtruenas.sts.keystoresti til keystore, der indeholder certifikat til at trække Idkort til NAS-kald.Statens_Serum_Institut_FOCES.jksnas.sts.keystore.passwordPassword til sts.keystoren/a

log4j.xml

Konfigurerer logning for servicen.

...

Filnavn når deployet

Beskrivelse

Kilde

btr-service.war

LTR-BTR servicen

ltr-btr-service-wildfly-<version>.war

ltr-btr-operations.war

LTR-BTR baggrundsjob

ltr-btr-operations.war

Se driftsvejledningen for yderligere information.

...