Versions Compared

Key

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

...

URL

Funktionalitet

<server>/btr/isAlivestatus

Status-side for servicen. Viser om servicen fungerer korrekt, se afsnittet Overvågning.

<server>/btr/isAlive

Samme som kald til <server>/btr/status. Se afsnittet Overvågning.


<server>/btr/alarm

Alarm-side for servicen. Viser om der er valideringsfejl i servicen, se afsnittet Overvågning.

<server>/btr/dksconfig/ltr
Livstestamenteregistret: DCC auto-konfigurations API. Anvendes til konfiguration af NSP'ens DCC.
<server>/btr/ltr
Livstestamenteregistret: Webservice-endpoint
<server>/btr/btr
Behandlingstestamenteregistret: Webservice-endpoint
<server>/btr/ltrAdmin
Livstestamenteregistret: Webservice admin-endpoint (til brug for brugerflade)
<server>/btr/btrAdmin
Behandlingstestamenteregistret: Webservice admin-endpoint (til brug for brugerflade)
<server>/btr/dksconfig/btr
Behandlingstestamenteregistret: DCC auto-konfigurations API. Anvendes til konfiguration af NSP'ens DCC.
<server>/btr/wsdl
HTML-side med links til download af WSDL-filer i hhv. DGWS- og IDWS-udgave.
<server>/btr/wsdl/ltr/dgws
Livstestamenteregistret: DGWS WSDL
<server>/btr/wsdl/ltr/idws
Livstestamenteregistret: IDWS WSDL
<server>/btr/wsdl/btr/dgws
Behandlingstestamenteregistret: DGWS WSDL
<server>/btr/wsdl/btr/idws
Behandlingstestamenteregistret: IDWS WSDL
<server>/btr/wsdl/btrV2/dgws
Behandlingstestamenteregistret version 2: DGWS WSDL
<server>/btr/wsdl/btrV2/idws
Behandlingstestamenteregistret version 2: IDWS WSDL
<server>/ltr-btr-operations/ltr-slettejobtreatment-will-deceased-cleanup/start
Slettejob for LTR BTR startes ved kald af denne url, og personer, som har været døde i et år eller mere, slettes fra LivingWill mindst 2 år (kan konfigureres med "deletion.save.deceased") vil blive slettes fra TreatmentWill tabellen. Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen.
<server>/btr/ltrtreatment-btrwill-operations/ltrdeceased-slettejobcleanup/status

Oplysninger om slettejob på den pågældende server. Oplysningerne gemmes i hukommelsen på serveren og forsvinder ved genstart.

Der kan returneres følgende fra statussnitfladen:

200: Komponenten fungerer og kan anvendes.
5xx: Komponenten melder at den ikke kan anvendes.

Der returneres desuden følgende oplysninger i JSON format:

  • Tidspunkt for sidste afvikling af slettejob på serveren (hvis værdien findes ellers tom værdi)
  • Status for sidste afvikling på serveren (true=ingen fejl, false=fejl, tom tekst=ikke afviklet) 
  • Evt. fejlbesked ved sidste afvikling (udeladt hvis kørslen er gået godt)
<server>/ltr-btr-operations/btr-slettejob/start
Slettejob for BTR startes ved kald af denne url, og personer, som har været døde i et år eller mere, slettes fra TreatmentWill tabellen. Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen.
<server>/ltr-btr-operations/btr-slettejob/status

Oplysninger om slettejob på den pågældende server. Oplysningerne gemmes i hukommelsen på serveren og forsvinder ved genstart.

Der kan returneres følgende fra statussnitfladen:

200: Komponenten fungerer og kan anvendes.
5xx: Komponenten melder at den ikke kan anvendes.

Der returneres desuden følgende oplysninger i JSON format:

  • Tidspunkt for sidste afvikling af slettejob på serveren (hvis værdien findes ellers tom værdi)
  • Status for sidste afvikling på serveren (true=ingen fejl, false=fejl, tom tekst=ikke afviklet) 
  • Evt. fejlbesked ved sidste afvikling (udeladt hvis kørslen er gået godt)

Daglig drift

Servicen kræver ingen daglig vedligeholdelse udover sædvanlig systemovervågning.

Alt data (inkl. historiske data) for en borger fjernes 1 år efter borgerens død ved hjælp af to slettejobs.

Overvågning

Servicen udstiller en status-side (isAlive). På denne side fremgår servicens version, opstartstidspunkt mm. samt status for slettejob.

Eksempel på et response fra status-siden:

Code Block
200 OK

Title: ltr-btr-service-wildfly
Deployed: 2018-08-10T10:55:17.777Z
Build-Date: 2018-08-10T10:52:22Z
Build-Version: 1.0.1-SNAPSHOT
Builder: A robot
Display time: 2018-08-10T12:57:43.577Z
Delete job: Enabled, Last successful deletion: 1900-01-01T00:00:00Z, Error count: 0

HTTP statuskode

Status-siden returnerer følgende HTTP statuskoder afhængig af servicens status:

  • 200: Applikationen kører i øjeblikket fint.
  • 500: Der er opstået en fejl, der kræver indgriben.

Fejlfinding

Følgende årsager kan resultere i en statuskode 500:

  • Hvis btr eller stm databaserne ikke er tilgængelige. Der overvåges databaseadgang ved et simpelt "SELECT 1" statement. Denne query køres på alle datasources.
  • Andre ukendte årsager.

Hvis status-siden giver HTTP 500 bør man checke den servicens log, som burde indeholde en detaljeret fejlmeddelelse med stacktrace.

Logning

Følgende beskrivelse af logning i servicen tager udgangspunkt i standard-opsætningen. Logning konfigureres vha. konfigurationsfilerne beskrevet i installationsvejledningen.

Alle logfiler placeres i standalone/log i Wildfly.

Alle logs benytter en rolling file appender, og indeholder derfor et postfix i filnavnet, der ikke er præsenteret i nedenstående.

Følgende tabel over logfiler beskriver, hvilke komponenter der skriver til dem:

...

Logfilnavn

...

Indhold

...

audit.log

...

btr_service.log

...

Applikationslog for servicen, som indeholder de vigtigste systemhændelser.

Root: WARN
org.springframework.core: INFO
dk.sundhedsdatastyrelsen.livstestamente: INFO

...

Auditlog

Der er i BTR fem kategorier af audit logs; cpr, livstestamente, behandlingstestamente, aktør og cpr validering

Følgende tabeller viser hvilke kategorier der audit logges for hver operation i BTR.

Livstestamenteregistret

...

Behandlingstestamenteregistret

...

Behandlingstestamenteregistret version 2

...

Returnerer statuskoden for den seneste kørsel af TreatmentWill slettejobbet.
<server>/btr/living-will-deceased-cleanup/start
Slettejob for BTR startes ved kald af denne url, og personer, som har været døde mindst 2 år (kan konfigureres med "deletion.save.deceased") vil blive slettes fra LivingWill tabellen. Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen.
<server>/btr/living-will-deceased-cleanup/status

Returnerer statuskoden for den seneste kørsel af LivingWill slettejobbet.

Daglig drift

Servicen kræver ingen daglig vedligeholdelse udover sædvanlig systemovervågning.

Alt data (inkl. historiske data) for en borger fjernes 1 år efter borgerens død ved hjælp af to slettejobs.

Overvågning

Servicen udstiller nu en status-side og en alarm-side, hvor den tidligere kun har udstillet en isAlive-side.

Kald til den gamle isAlive-side vil nu blive håndteret på samme måde, som kald til status-siden.

I den nye udgave vil status-siden kun melde fejl, hvis servicen ikke kan nå de bagved liggende databaser. Status siden vil stadig indholde informationer om version, opstartstidspunkt m.m. 

Eksempel på et response fra status-siden:

Code Block
languagebash
title/status
HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/8
Transfer-Encoding: chunked
Content-Type: text/plain;charset=ISO-8859-1
Date: Mon, 2 Dec 2024 01:01:01 GMT

200  OK

Title: ltr-btr-service-wildfly
Deployed: 2024-12-02T01:00:00.00Z
Build-Date: 2024-12-12T00:00:00Z
Build-Version: 1.1.1
Builder: A Robot
Display time: 2024-12-02T01:01:01.001Z

Den nye alarm-side vil kun melde fejl og indeholde information, hvis bagved liggende tjeks melder fejl.

Code Block
languagebash
title/alarm
HTTP/1.1 500 Internal Server Error
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/8
Transfer-Encoding: chunked
Content-Type: text/plain;charset=ISO-8859-1
Date: Mon, 2 Dec 2024 01:01:01 GMT

203  Non-Authoritative Information from: PersonInformationServiceClient
Antal fejl: 25
2024-12-02T01:00:00.001: Fejl i retursvar fra PersonInformation


Status for baggrundsjobbet LTR fremgår af denne url:

curl <server>/ltr-btr-operations/ltr-slettejob/status

og for BTR:

curl <server>/ltr-btr-operations/btr-slettejob/status

Eksempel på denne statusside hvor et af jobbene er fejlet (det vil se ud på samme måde for begge jobs):

Code Block
{"lastException":"An error occurred querying v2_Person_Simplified between 2022-09-26T11:06:47Z and 2022-09-26T11:11:29Z","timeOfLastExecution":"2023-09-26 13:11:29","lastExecutionSucceeded":"false"}


HTTP statuskode

Status og alarm-siderne returnerer følgende HTTP statuskoder afhængig af servicens status:

  • 200: Applikationen kører i øjeblikket fint.
  • 500: Der er opstået en fejl, der kræver indgriben. 

Fejlfinding

Følgende årsager kan resultere i en statuskode 500 på status-siden:

  • Hvis btr eller stm databaserne ikke er tilgængelige. Der overvåges databaseadgang ved et simpelt "SELECT 1" statement. Denne query køres på alle datasources.

Hvis status-siden giver HTTP 500 bør man checke den servicens log, som burde indeholde en detaljeret fejlmeddelelse med stacktrace.

Følgende årsager kan resultere i en statuskode 500 på alarm-siden:

  • Hvis der opstår fejl ved kald til PersonInformation-servicen.

Hvis alarm-siden giver HTTP 500, så vil den også sende informativ tekst med omkring fejl. Derudover bør man tjekke servicelog.

Logning

Følgende beskrivelse af logning i servicen tager udgangspunkt i standard-opsætningen. Logning konfigureres vha. konfigurationsfilerne beskrevet i installationsvejledningen.

Alle logfiler placeres i standalone/log i Wildfly.

Alle logs benytter en rolling file appender, og indeholder derfor et postfix i filnavnet, der ikke er præsenteret i nedenstående.

Følgende tabel over logfiler beskriver, hvilke komponenter der skriver til dem:

Logfilnavn

Indhold

accesshandler.logLog for accesshandler-biblioteket.
access.logAccess-log.

audit.log

Auditlog. Indeholder logning af, hvem der har kaldt, hvilken SOAP-action der blev kaldt, hvilken person der blev kaldt for, hvordan der blev kaldt (DGWS/IDWS) og hvornår der blev kaldt.

btr_service.log

Applikationslog for servicen, som indeholder de vigtigste systemhændelser.

Root: WARN
org.springframework.core: INFO
dk.sundhedsdatastyrelsen.livstestamente: INFO

nsp-kafka.logLog for kafka-produceren, som står for skrivning til MinLog.
nsputil-sla-btr.logSLA-log. Indeholder SLA-logninger for alle kald på servicen. Indeholder desuden SLA-logninger for servicens kald til MinLog.
server.logLog for Wildfly-serveren.

Auditlog

Der er i BTR fem kategorier af audit logs; cpr, livstestamente, behandlingstestamente, aktør og cpr validering

Følgende tabeller viser hvilke kategorier der audit logges for hver operation i BTR.

Livstestamenteregistret

OperationKontekstKategorier
UpdateLivingWillupdateLivingWilllivstestamente, aktør, cpr validering
DeleteLivingWilldeleteLivingWillcpr, aktør, cpr validering
GetLivingWillgetLivingWilllivstestamente, aktør, cpr validering
HasLivingWillhasLivingWillcpr, aktør, cpr validering

Behandlingstestamenteregistret

OperationKontekstKategorier
CreateTreatmentWillcreateTreatmentWillbehandlingstestamente, aktør, cpr validering
UpdateTreatmentWillupdateTreatmentWillbehandlingstestamente, aktør, cpr validering
DeleteTreatmentWilldeleteTreatmentWillcpr, aktør, cpr validering
GetTreatmentWillgetTreatmentWillbehandlingstestamente, aktør, cpr validering
HasTreatmentWillhasTreatmentWillcpr, aktør, cpr validering

Behandlingstestamenteregistret version 2

OperationKontekstKategorier
CreateTreatmentWillcreateTreatmentWillbehandlingstestamente, aktør, cpr validering
UpdateTreatmentWillupdateTreatmentWillbehandlingstestamente, aktør, cpr validering
DeleteTreatmentWilldeleteTreatmentWillcpr, aktør, cpr validering
GetTreatmentWillgetTreatmentWillbehandlingstestamente, aktør, cpr validering
HasTreatmentWillhasTreatmentWillcpr, aktør, cpr validering
UpgradeToTreatmentWillupgradeToTreatmentWillbehandlingstestamente, aktør, cpr validering
GetTreatmentWillWithOnlyForcedTreatmentgetTreatmentWillWithOnlyForcedTreatmentbehandlingstestamente, aktør, cpr validering


Følgende tabeller viser hvad der audit logges for hver af de fem kategorier.

cpr

KomponentKontekstTypeNøgleInformation
BTR(afhængig af operation)PersonligcprCPR på borgeren

livstestamente

KomponentKontekstTypeNøgleInformation
BTR(afhængig af operation)Ikke PersonligpidID på livstestamente
BTR(afhængig af operation)PersonligcprCPR på borgeren
BTR(afhængig af operation)Følsommeno-life-prolonging-if-dyingnoLifeProlongingIfDying feltet på livstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-severely-degradednoLifeProlongingIfSeverelyDegraded feltet på livstestamente

behandlingstestamente

KomponentKontekstTypeNøgleInformation
BTR(afhængig af operation)Ikke PersonligpidID på behandlingstestamente
BTR(afhængig af operation)PersonligcprCPR på borgeren
BTR(afhængig af operation)Følsommeno-life-prolonging-if-dyingnoLifeProlongingIfDying feltet på behandlingstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-dying-acceptance-needednoLifeProlongingIfDying.acceptanceNeeded feltet på behandlingstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-severely-degradednoLifeProlongingIfSeverelyDegraded feltet på behandlingstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-severely-degraded-acceptance-needednoLifeProlongingIfSeverelyDegraded.acceptanceNeeded feltet på behandlingstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-severe-painnoLifeProlongingIfSeverePain feltet på behandlingstestamente
BTR(afhængig af operation)Følsommeno-life-prolonging-if-severe-pain-acceptance-needednoLifeProlongingIfSeverePain.acceptanceNeeded feltet på behandlingstestamente

Følgende tabeller viser hvad der audit logges for hver af de fem kategorier.

cpr

...

livstestamente

KomponentKontekstTypeNøgleInformationBTR(afhængig af operation)Ikke PersonligpidID på livstestamenteBTR(afhængig af operation)PersonligcprCPR på borgeren
BTR(afhængig af operation)Følsommeno-
life
forced-
prolonging
treatment-if-
dying
incapable
noLifeProlongingIfDying
noForcedTreatmentIfIncapable feltet på
livstestamente
behandlingstestamente
BTR(afhængig af operation)Følsommeno-
life
forced-
prolonging
treatment-if-incapable-
severely
acceptance-
degraded
needed
noLifeProlongingIfSeverelyDegraded
noForcedTreatmentIfIncapable.acceptanceNeeded feltet på
livstestamente
behandlingstestamente

...

aktør

KomponentKontekstTypeNøgleInformation
BTR(afhængig af operation)
Ikke BTR(afhængig af operation)Personlig
Personlig
pidID på behandlingstestamente
actor-cprCPR på
borgeren
aktør
BTR(afhængig af operation)
Følsomme
Personlig
no-life-prolonging-if-dyingnoLifeProlongingIfDying feltet på behandlingstestamente
actor-firstnameFornavn på aktør
BTR(afhængig af operation)
Følsomme
Personlig
no-life-prolonging-if-dying-acceptance-needednoLifeProlongingIfDying.acceptanceNeeded feltet på behandlingstestamente
actor-lastnameEfternavn på aktør
BTR(afhængig af operation)
Følsomme
Personlig
no-life-prolonging-if-severely-degradednoLifeProlongingIfSeverelyDegraded feltet på behandlingstestamente
actor-usertypeTypen af aktør
BTR(afhængig af operation)
Følsommeno-life-prolonging-if-severely-degraded-acceptance-needednoLifeProlongingIfSeverelyDegraded.acceptanceNeeded feltet på behandlingstestamente
Personligactor-authorisation-numberAutorisationsnummer på aktør
BTR(afhængig af operation)
Følsomme
Personlig
no
actor-
life-prolonging-if-severe-painnoLifeProlongingIfSeverePain feltet på behandlingstestamente
education-codeUddannelseskode på aktør
BTR(afhængig af operation)
Følsomme
Personlig
no
actor-
life-prolonging-if-severe-pain-acceptance-needednoLifeProlongingIfSeverePain.acceptanceNeeded feltet på behandlingstestamente
organisation-idOrganisations ID på aktør
BTR(afhængig af operation)
Følsomme
Personlig
no
actor-
forced
organisation-
treatment
id-
if-incapablenoForcedTreatmentIfIncapable feltet på behandlingstestamente
sourceTypen af organisations ID
BTR(afhængig af operation)
Følsomme
Personlig
no
actor-
forced-treatment-if-incapable-acceptance-needednoForcedTreatmentIfIncapable.acceptanceNeeded feltet på behandlingstestamente

...

organisation-nameOrganisationsnavn på aktør

cpr validering

Følgende logges kun hvis validerings mode er sat til WARNING.

KomponentKontekstTypeNøgleInformation
BTR
(afhængig af operation)
validateCprPersonlig
actor-cprCPR på aktørBTR(afhængig af operation)Personligactor-firstnameFornavn på aktørBTR(afhængig af operation)Personligactor-lastnameEfternavn på aktørBTR(afhængig af operation)Personligactor-usertypeTypen af aktørBTR(afhængig af operation)Personligactor-authorisation-numberAutorisationsnummer på aktørBTR(afhængig af operation)Personligactor-education-codeUddannelseskode på aktørBTR(afhængig af operation)Personligactor-organisation-idOrganisations ID på aktørBTR(afhængig af operation)Personligactor-organisation-id-sourceTypen af organisations IDBTR(afhængig af operation)Personligactor-organisation-nameOrganisationsnavn på aktør

cpr validering

Følgende logges kun hvis validerings mode er sat til WARNING.

...

cpr-does-not-existMedsendt CPR nummer (hvis det ikke findes i CPR register)
BTRvalidateCprPersonligcpr-inactiveMedsendt CPR nummer (hvis det er inaktivt)

Minlog

Der er i BTR fire brugertyper: Borger, sundhedsfaglig, system bruger og admin bruger. 

Følgende tabel viser for hvilke operationer og brugertype kombinationer, der logges til minlog (x=der logges).

Livstestamenteregistret

Operation / BrugertypeBorgerSundhedsfagligSystem brugerAdmin bruger
UpdateLivingWillxx
x
DeleteLivingWillxx
x
GetLivingWillxx
x
HasLivingWill



Behandlingstestamenteregistret

Operation / BrugertypeBorgerSundhedsfagligSystem brugerAdmin bruger
CreateTreatmentWillxx
x
UpdateTreatmentWillxx
x
DeleteTreatmentWillxx
x
GetTreatmentWillxx
x
HasTreatmentWill



Slettejob

Servicens slettejob

Slettejob

Slettejob for hver service bliver afviklet vha. en udstillet RestController, som kaldes vha. simpelt HTTP GET kald.
Dette gøres for at sikre afviklingen af slettejob i flere-node drift, hvor en loadbalancer sørger for fordeling af kald til bagvedliggende servere.

Driften vedligeholder en cron, som kalder slettejobbets url i et fast mønster vha. curl.

Følgende

...

parameter til styring af slettejobbet kan ændres i application

...

.properties for LTR:

jobs.delete.

...

max

...

.

...

time=

...

PT20S

og BTR:

jobs.delete.cpr-max-results.btrtime=25
jobs.delete.cpr-max-loops.btr=2

...

PT20S

Der er en max grænse for hvor lang tid jobbet må køre pr. gang og det kan angives her. Når jobbet har kørt den tid der er angivet, så stopper udførslen. Her efter kan jobbet kaldes igen og den vil fortsætte med processeringen hvor jobbet stoppede sidst.

Parameteren angives som en Duration i ISO-8601 format. Dvs. eksemplet viser 20 sekunder.

Kommando til kald af slettejob for LTR:

curl <server>/ltr-btr-service/syncjoboperations/ltr-slettejob/start

og BTR:

curl <server>/ltr-btr-service/syncjoboperations/btr-slettejob/start

Slettejobbet skal for LTR aktiveres hver dag, hvert 15. minut mellem 8.05-16.05 - startende kl. 8.05

Slettejobbet skal for BTR aktiveres hver dag, hvert 15. minut mellem 8.10-16.10 - startende kl. 8.10

Med mindre ovenstående parametre ændres, så vil slettejobbet behandle op til 1550 sletninger om dagen. (I gennemsnit er der 150 døde pr. døgn).

Backup

Servicen indeholder ikke nogen backup-mekanismer, og dette skal derfor konfigureres på database-niveau. Der bør foretages backup af data på en forsvarlig måde, i tilfælde af behov for en genetablering af data. Disse data skal opbevares på en forsvarlig måde, jfr. regler om personhenførbare data.