Page History
...
I produktion består Behandlingstestamenteregister-servicen af 2 følgende to komponenter (war-arkiverarkiv), der er deployet på en Wildfly applikationsserver:
- ltr-btr-service-wildfly: Selve Behandlingstestamenteregister-servicen. Denne afhænger af adgang til 2 MariaDB datasources. Desuden afhænger den af at kunne kalde (skrive til) MinLog-servicen.wsproxy: DGWS/IDWS proxy der håndterer requests og responses og internt viderestiller til
- ltr-btr-service-wildfly.
...
- operations: De to baggrundsjobs der hører til Behandlingstestamenteregister-servicen. Denne afhænger også af adgang til 2 MariaDB datasources.
Ændringslog
Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
1.0.1 | 2018-08-17 | Initialt dokument | Trifork |
| 1.0.2 | 2018-08-31 | Ny release | Trifork |
| 1.0.3 | 2018-09-06 | Endpoints ændret fra /ltr-btr til /btr | Trifork |
| 1.0.4 | 2018-11-23 | Tilføjet admin endpoints | Trifork |
| 1.0.14 | 2019-25-09 | Ajourført | Trifork |
| 1.1.0 | 2020-03-24 | TreatmentWillV2 med noLifeProlongingIfDying uden angivelse af yderligere accept | KvalitetsIT |
| 1.1.1 | 2020-03-30 | Afvisning af yderligere accept for uafvendeligt døende på TreatmentWill-snitflade | KvalitetsIT |
| 1.1.3 | 2020-05-26 | Opdateret slettejob | KvalitetsIT |
| 1.1.7 | 2021-09-06 | Opdateret ifm. udfasning af dgws/idws-proxy. | KvalitetsIT |
| 1.1.8 | 2021-10-12 | Opdateret ifm. udfasning af btr-snitflade med accept fra pårørende, værge eller fremtidsfuldmægtig for uafvendeligt døende | KvalitetsIT |
| 1.1.9 | 2021-10-26 | Opdateret ifm inaktive cpr numre afvises | KvalitetsIT |
| 1.1.10 | 2022-03-19 | Genintroduceret btr-snitflade | KvalitetsIT |
| 1.1.11 | 2023-12-13 | SDS-6387: BTR - oprydningsjob genbesøg | KvalitetsIT |
Funktionalitet
Servicen udstiller en række data som beskrevet i anvenderguiden. Komponenten kaldes af anvendere gennem NSP'ens DCC (afkoblingskomponenten), som viderestiller kaldet til servicens webservice-endpoint. Servicen udstiller derudover en række administrative og konfigurationsrelaterede funktionaliter.
...
URL | Funktionalitet | |
|---|---|---|
<server>/btr-service/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 | -service/dksconfig/ltr | Livstestamenteregistret: DCC auto-konfigurations API. Anvendes til konfiguration af NSP'ens DCC. |
<server>/btr | -service/ltr | Livstestamenteregistret: Webservice-endpoint |
<server>/btr | -service/btr | Behandlingstestamenteregistret: Webservice-endpoint |
<server>/btr | -service/ltrAdmin | Livstestamenteregistret: Webservice admin-endpoint (til brug for brugerflade) |
<server>/btr | -service/btrAdmin | Behandlingstestamenteregistret: Webservice admin-endpoint (til brug for brugerflade) |
<server>/btr | -service/dksconfig/btr | Behandlingstestamenteregistret: DCC auto-konfigurations API. Anvendes til konfiguration af NSP'ens DCC. |
<server>/btr | -service/wsdl | HTML-side med links til download af WSDL-filer i hhv. DGWS- og IDWS-udgave. |
<server>/btr | -service/wsdl/ltr/dgws | Livstestamenteregistret: DGWS WSDL |
<server>/btr | -service/wsdl/ltr/idws | Livstestamenteregistret: IDWS WSDL |
<server>/btr | -service/wsdl/btr/dgws | Behandlingstestamenteregistret: DGWS WSDL |
<server>/btr | -service/wsdl/btr/idws | Behandlingstestamenteregistret: IDWS WSDL |
<server>/btr-service/wsdl/btrV2/dgws | Behandlingstestamenteregistret version 2: DGWS WSDL | |
<server>/btr-service/wsdl/btrV2/idws | Behandlingstestamenteregistret version 2: IDWS WSDL |
Kald via proxy-komponenten
URL | Funktionalitet|||
|---|---|---|---|
<server>/btr/ | proxy/isaliveStatus-side for proxy-komponenten. Viser om komponenten fungerer korrekt, se afsnittet Overvågningtreatment-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 TreatmentWill tabellen. Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen. | |
<server>/btr/ | proxy/versionViser version for proxy-komponententreatment-will-deceased-cleanup/status | Returnerer statuskoden for den seneste kørsel af TreatmentWill slettejobbet. | |
<server>/btr/ | ltrSamme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/btr | Samme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/ltrAdmin | Samme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/btrAdmin | Samme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/isAlive | Samme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/dksconfig | Samme som ovenfor, blot går kaldet igennem proxy-komponenten. | ||
<server>/btr/wsdl | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
<server>/btr/wsdl/ltr/dgws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
<server>/btr/wsdl/ltr/idws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
<server>/btr/wsdl/btr/dgws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
<server>/btr/wsdl/btr/idws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
<server>/btr/wsdl/btrV2/dgws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten. | ||
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 | <server>/btr/wsdl/btrV2/idws | Samme som ovenfor, blot går kaldet gennem proxy-komponenten . |
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 et integreret slettejobto 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 | ||||
|---|---|---|---|---|
| ||||
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: 20182024-0812-10T1002T01:5500:1700.777Z00Z Build-Date: 20182024-0812-10T1012T00:5200:22Z00Z Build-Version: 1.01.1-SNAPSHOT Builder: A robotRobot Display time: 20182024-0812-10T1202T01:57:43.577Z Delete job: Enabled, Last successful deletion: 1900-01-01T00:00:00Z, Error count: 0 |
HTTP statuskode
01:01.001Z |
Den nye alarm-side vil kun melde fejl og indeholde information, hvis bagved liggende tjeks melder fejl.
| Code Block | ||||
|---|---|---|---|---|
| ||||
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 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 på status-siden:
- Hvis mindst én 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.
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 logninger er konfigureret med logs benytter en rolling file appender, der indsætter og indeholder derfor et postfix i filnavnet på historiske logfiler ud fra følgende pattern:
-%d{MM-dd-yyyy}-%i...
, der ikke er præsenteret i nedenstående.
Følgende tabel over logfiler beskriver, hvilke komponenter der skriver til dem:
Logfilnavn | Indhold | |
|---|---|---|
| accesshandler.log | Log for accesshandler-biblioteket. | |
| access.log | Access-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 | boot: INFOcore: INFO |
| nsp-kafka.log | Log for kafka-produceren, som står for skrivning til MinLog. | |
| nsputil-sla-btr.log | SLA-log. Indeholder SLA-logninger for alle kald på servicen. Indeholder desuden SLA-logninger for servicens kald til MinLog. | btr_audit|
| server.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), hvornår der blev kaldt samt kaldets varighed. | |
| btr_proxy.log | Applikationslog for DGWS/IDWS proxyen (wsproxy komponenten). Denne logfil indeholder detaljer omkring hvilke kald, der delegeres videre til servicen af proxyen. |
Slettejob
| Log 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
| Operation | Kontekst | Kategorier |
|---|---|---|
| UpdateLivingWill | updateLivingWill | livstestamente, aktør, cpr validering |
| DeleteLivingWill | deleteLivingWill | cpr, aktør, cpr validering |
| GetLivingWill | getLivingWill | livstestamente, aktør, cpr validering |
| HasLivingWill | hasLivingWill | cpr, aktør, cpr validering |
Behandlingstestamenteregistret
| Operation | Kontekst | Kategorier |
|---|---|---|
| CreateTreatmentWill | createTreatmentWill | behandlingstestamente, aktør, cpr validering |
| UpdateTreatmentWill | updateTreatmentWill | behandlingstestamente, aktør, cpr validering |
| DeleteTreatmentWill | deleteTreatmentWill | cpr, aktør, cpr validering |
| GetTreatmentWill | getTreatmentWill | behandlingstestamente, aktør, cpr validering |
| HasTreatmentWill | hasTreatmentWill | cpr, aktør, cpr validering |
Behandlingstestamenteregistret version 2
| Operation | Kontekst | Kategorier |
|---|---|---|
| CreateTreatmentWill | createTreatmentWill | behandlingstestamente, aktør, cpr validering |
| UpdateTreatmentWill | updateTreatmentWill | behandlingstestamente, aktør, cpr validering |
| DeleteTreatmentWill | deleteTreatmentWill | cpr, aktør, cpr validering |
| GetTreatmentWill | getTreatmentWill | behandlingstestamente, aktør, cpr validering |
| HasTreatmentWill | hasTreatmentWill | cpr, aktør, cpr validering |
| UpgradeToTreatmentWill | upgradeToTreatmentWill | behandlingstestamente, aktør, cpr validering |
| GetTreatmentWillWithOnlyForcedTreatment | getTreatmentWillWithOnlyForcedTreatment | behandlingstestamente, aktør, cpr validering |
Følgende tabeller viser hvad der audit logges for hver af de fem kategorier.
cpr
| Komponent | Kontekst | Type | Nøgle | Information |
|---|---|---|---|---|
| BTR | (afhængig af operation) | Personlig | cpr | CPR på borgeren |
livstestamente
| Komponent | Kontekst | Type | Nøgle | Information |
|---|---|---|---|---|
| BTR | (afhængig af operation) | Ikke Personlig | pid | ID på livstestamente |
| BTR | (afhængig af operation) | Personlig | cpr | CPR på borgeren |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-dying | noLifeProlongingIfDying feltet på livstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-severely-degraded | noLifeProlongingIfSeverelyDegraded feltet på livstestamente |
behandlingstestamente
| Komponent | Kontekst | Type | Nøgle | Information |
|---|---|---|---|---|
| BTR | (afhængig af operation) | Ikke Personlig | pid | ID på behandlingstestamente |
| BTR | (afhængig af operation) | Personlig | cpr | CPR på borgeren |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-dying | noLifeProlongingIfDying feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-dying-acceptance-needed | noLifeProlongingIfDying.acceptanceNeeded feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-severely-degraded | noLifeProlongingIfSeverelyDegraded feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-severely-degraded-acceptance-needed | noLifeProlongingIfSeverelyDegraded.acceptanceNeeded feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-severe-pain | noLifeProlongingIfSeverePain feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-life-prolonging-if-severe-pain-acceptance-needed | noLifeProlongingIfSeverePain.acceptanceNeeded feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-forced-treatment-if-incapable | noForcedTreatmentIfIncapable feltet på behandlingstestamente |
| BTR | (afhængig af operation) | Følsomme | no-forced-treatment-if-incapable-acceptance-needed | noForcedTreatmentIfIncapable.acceptanceNeeded feltet på behandlingstestamente |
aktør
| Komponent | Kontekst | Type | Nøgle | Information |
|---|---|---|---|---|
| BTR | (afhængig af operation) | Personlig | actor-cpr | CPR på aktør |
| BTR | (afhængig af operation) | Personlig | actor-firstname | Fornavn på aktør |
| BTR | (afhængig af operation) | Personlig | actor-lastname | Efternavn på aktør |
| BTR | (afhængig af operation) | Personlig | actor-usertype | Typen af aktør |
| BTR | (afhængig af operation) | Personlig | actor-authorisation-number | Autorisationsnummer på aktør |
| BTR | (afhængig af operation) | Personlig | actor-education-code | Uddannelseskode på aktør |
| BTR | (afhængig af operation) | Personlig | actor-organisation-id | Organisations ID på aktør |
| BTR | (afhængig af operation) | Personlig | actor-organisation-id-source | Typen af organisations ID |
| BTR | (afhængig af operation) | Personlig | actor-organisation-name | Organisationsnavn på aktør |
cpr validering
Følgende logges kun hvis validerings mode er sat til WARNING.
| Komponent | Kontekst | Type | Nøgle | Information |
|---|---|---|---|---|
| BTR | validateCpr | Personlig | cpr-does-not-exist | Medsendt CPR nummer (hvis det ikke findes i CPR register) |
| BTR | validateCpr | Personlig | cpr-inactive | Medsendt 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 / Brugertype | Borger | Sundhedsfaglig | System bruger | Admin bruger |
|---|---|---|---|---|
| UpdateLivingWill | x | x | x | |
| DeleteLivingWill | x | x | x | |
| GetLivingWill | x | x | x | |
| HasLivingWill |
Behandlingstestamenteregistret
| Operation / Brugertype | Borger | Sundhedsfaglig | System bruger | Admin bruger |
|---|---|---|---|---|
| CreateTreatmentWill | x | x | x | |
| UpdateTreatmentWill | x | x | x | |
| DeleteTreatmentWill | x | x | x | |
| GetTreatmentWill | x | x | x | |
| HasTreatmentWill |
Slettejob
Servicens slettejob 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.max.time=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-operations/ltr-slettejob/start
og BTR:
curl <server>/ltr-btr-operations/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)Servicens slettejob kører automatisk efter det konfigurede scheduling-pattern. Størrelsen af batches kan konfigureres som beskrevet i installationsvejledningen.
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.