Page History
...
Dette dokument beskriver designet af Behandlingstestamenteregistret (BTR).
En beskrivelse af funktionaliteten i servicen kan findes i dokumentet "Behandlingstestamenteregistret-service".
Ændringslog
| Version | Dato | Ændring | Ansvarlig |
|---|---|---|---|
| 1.0.1 | 2018-08-30 | Initialt dokument | Trifork |
| 1.0.2 | 2018-08-31 | Ny release | Trifork |
| 1.0.6 | 2018-10-15 | Opdateret TreatmentWill database-schema figur med nyeste ændringer | Trifork |
| 1.0.12 | 2019-08-16 | Tilføjet note om MinLog SessionId | Trifork |
| 1.0.13 | 2021-01-18 | Opdateret 'Design'-figur | KvalitetsIT |
| 1.1.7 | 2021-09-06 | Opdateret efter 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-25 | Opdateret ifm inaktive cpr numre afvises | KvalitetsIT |
| 1.1.10 | 2022-10-25 | Validering af alder med CprExists tiløjet | KvalitetsIT |
| GIT | 2024-07-21 | SDS-7326: BTR - oprydningsjob skal tilpasses (CprExists er blevet omdøbt ti personInformation) | KvalitetsIT |
Terminologi
| HL7 CDA | Standard til udveksling af oplysninger indenfor sundhedsvæsenet. |
...
Systemet består af en enkelt service der håndterer begge registre. Som illustreret på figuren herunder tilgår brugerne servicen indirekte via Sundhed.dk , patientjournalsystemer, lægepraksissystemer osv. som integrerer til systemet. Herudover foretager Dokumentdelingsservicen (DDS) opslag via FSK. Opslaget via FSK returnerer alene information om, hvorvidt der findes data for en person eller ej.
Organdonorregister-servicen består af en webservice, som andre systemer kan benytte til at oprette, opdatere, slette og aflæse seneste registrering fra.
| HTML |
|---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-507fac52-f8c5-4e21-bca1-7be0ca6abf06.html" name="test" height="580" width="800">You need a Frames Capable browser to view this content.</iframe> |
* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.
Servicen understøtter adgang gennem DGWS eller IDWS. Håndteringen af DGWS/IDWS-billetter håndteres ved hjælp af security-api'et.
...
Oplysningen om døde personer stammer fra stamdata. Cpr-subscriber gør det muligt for SKR-servicen at lave opslag i stamdata til brug i dette slettejob.
I miljøer med flere app-servere er det vigtigt at servicens interne job ikke kører i flere inkarnationer, da der så kan opstå "race conditions". Derfor bør det sikres at jobbets "enabled"-property fra application.properties kun er true på præcis én app-server, og false på de øvrige.
Det drejer sig om denne property: jobs.delete.enabled
NAS
Alle ændringer (oprettelser, opdateringer og sletning) af Stamkort afstedkommer adviseringer til NAS.
Ved manglende adgang til NAS-servicen vil servicekaldet fejle.
Beskedformat og topics
MinLog
Alle opslag og ændringer af oplysninger i registret registreres i MinLog. Med undtagelse af system bruger og borgerens egen læsning af data.
Ved manglende adgang til MinLog-servicen vil servicekaldet fejle.
Som MinLog SessionId anvendes MessageID defineret i anvender-requests. Hvis SessionId er længere end 46 tegn (det maksimalt tilladte i MinLog-servicen) anvendes i stedet SHA-1 værdien (altid 40 tegn).
...
PersonInformation
Gennem kald til CprExists PersonInformation Service foretages validering af CPR nummer. CPR CPR valideringen kan køre i følgende tre modes:
- OFF: Der foretages ikke yderligere verifikation af CPRnummeret udover simpel validering af længde. CPRExists personalinformation kaldes ikke
- WARNING: CPRExists personalinformation service kaldes. Hvis denne service svarer, at CPR nummeret ikke findes eller er inaktivt, så audit logges denne information.
- REJECT: CPRExists personalinformation service kaldes. Svaret fra denne er en hård validering dvs kaldet til BTR fejler, hvis CPRExist service ikke kender CPR nummeret eller det er inaktivt.
personalinformation Service benyttes ligeledes til validering af alder. Denne validering foretages altid.
personalinformation Service bruges af slette jobbet til at slå op i personinformation med kaldet deceased, for at finde borger som har været døde i mindst et år (kan konfigureres til noget andet end et år). Deceased kaldet returner en liste af de borgere, som opfylder dette.
Design
| Gliffy Diagram | |||||
|---|---|---|---|---|---|
|
...
|
Datamodel
Da det kun er borgeren selv der har adgang til at oprette og ændre i vedkommendes livs- og behandlingstestamente, kan datamodellen for disse services realiseres relativt simpelt, idet at det ikke er nødvendigt at lagre information omkring hvem der har oprettet / opdateret data.
...
Ved sletning afsluttet gyldighedsperioden blot.
| HTML |
|---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/f72c13b1-dd78-4a85-a317-4ae73cee3635.html" name="test" height="450" width="800">You need a Frames Capable browser to view this content.</iframe> |
* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.
Den detaljerede databasetabel Det detaljerede databaseschema for livstestamentet er vist på figuren herunder.
...
Tabellen LivingWill anvendes til at lagre information om en borgers livstestamente. ValidFrom - ValidTo definerer gyldighedsperioden.
Det Den detaljerede databaseschema databasetabel for behandlingstestamentet er vist på figuren herunder.
...
De to Properies-tabeller indeholder tekniske key/value properties, som anvendes internt af servicen. Tabellerne er navngivet, så det er muligt for dem at sameksistere i samme schema i et udviklingsmiljø.fordi de eksisterer side om side i det samme skema i et udviklingsmiljø.
Slettejob
BTR servicen indeholder to slettejobs der kan slette registreringer for afdøde personer. Registreringerne for en afdød skal slettes 1 år (kan konfigureres til noget andet end et år) efter personen er afgået ved døden. Registreringerne bliver slettet fra databasen og data kan således ikke genskabes igen.
De to slettejobs virker grundlæggende på samme måde, men der slettes data i to forskellige tabeller.
Sletningen i enten livstestamenteregister/behandlingstestamenteregister foregår ved at der opbygges en arbejdskø der indeholder alle cpr numre for de personer der er død for 1 år siden. s Service bruges til at finde disse personer, ved at lave et deceased kald til personinformation som returnerer cpr nummer på de personer som har været døde i 1 år eller mere.
- Hvis arbejdskøen er tom, så hentes cpr numre fra alle personer der findes i hhv. livstestamenteregister/behandlingstestamenteregister. Dette findes ved at lave opslag i en af tabellerne LivingWill eller TreatmentWill. Derefter vil disse cpr nummer blive slået op i s deceased for at finde de personer som har været død i et 1 år eller mere.
- Hvis arbejdskøen indeholder cpr numre, så slettes personen fra enten livstestamenteregister eller behandlingstestamenteregister.
Jobbet for LivingWill består af følgende operationer:
| Operation | Beskrivelse |
| Default operation | Formål: Benyttes til at fylde operationer på stakken, når stakken er tom. Java klasse: LivingWillDeceasedCleanupSupplier Batching: For hvert af tallene 00-99, oprettes en "prefix baseret operation" Shuffles: nej Andet: - |
| Prefix baseret operation | Formål: Givet et tal mellem 00 og 99, hentes alle borger id'er fra som starter med disse cifre. Java klasse: LivingWillDeceasedPatientIdPrefixCleanupSupplier Batching: Opretter en mængde "borger id baseret operation", hver med et konfigurerbart antal af disse borger id'er Shuffles: ja Andet: - |
| Borger id baseret operation | Formål: Givet en liste af borger id'er, tages de id'er der tilhører afdøde borgere. Dette afgøres ved kald til PersonInformation. Java klasse: LivingWillDeceasedPatientIdBatchCleanupSupplier Batching: Opretter eet "oprydningsjob" med de afdøde borgers id Shuffles: nej Andet: - |
| Oprydningsjob | Formål: Givet en liste af borger id'er slettes i databasen stamkort for denne liste af id'er Java klasse: LivingWillBatchCleanupOperation Batching: na Shuffles: na Andet: - |
Jobbet for TreatmentWill består af følgende operationer:
| Operation | Beskrivelse |
| Default operation | Formål: Benyttes til at fylde operationer på stakken, når stakken er tom. Java klasse: TreatmentWillDeceasedCleanupSupplier Batching: For hvert af tallene 00-99, oprettes en "prefix baseret operation" Shuffles: nej Andet: - |
| Prefix baseret operation | Formål: Givet et tal mellem 00 og 99, hentes alle borger id'er fra som starter med disse cifre. Java klasse: TreatmentWillDeceasedPatientIdPrefixCleanupSupplier Batching: Opretter en mængde "borger id baseret operation", hver med et konfigurerbart antal af disse borger id'er Shuffles: ja Andet: - |
| Borger id baseret operation | Formål: Givet en liste af borger id'er, tages de id'er der tilhører afdøde borgere. Dette afgøres ved kald til PersonInformation. Java klasse: TreatmentWillDeceasedPatientIdBatchCleanupSupplier Batching: Opretter eet "oprydningsjob" med de afdøde borgers id Shuffles: nej Andet: - |
| Oprydningsjob | Formål: Givet en liste af borger id'er slettes i databasen stamkort for denne liste af id'er Java klasse: TreatmentWillBatchCleanupOperation Batching: na Shuffles: na Andet: - |