Overblik
Behandlingstestamenteregistret (BTR) er én applikation men udadtil to services, der håndterer data for henholdsvis behandlingstestamenteregistreringer og livstestamenteregistreringer. Begge services har operationer til opdatering (registrering og/eller ændring) og udstilling af borgerens oplysninger i disse registre.
HL7 CDA
Modellen der anvendes til at repræsentere livs- og behandlingstestamentedata er HL7 CDA (se evt. http://www.hl7.org/implement/standards/product_brief.cfm?product_id=7 ), som er en XML-baseret standard til repræsentation af kliniske data. HL7 CDA er et begrebsapparat, som kan repræsentere en enorm mængde af forskelligartede data, hvoraf kun en lille delmængde anvendes i servicen. Det anbefales derfor at studere eksemplerne der refereres her på siden frem for modellen der defineres af HL7 CDA, da de giver et mere præcist billede af hvilke data der kræves og returneres af de forskellige operationer. CDA-terminologien gør, at man kan kvalificere de forskellige begreber gennem attributter (f.eks. at et id er et CPR nummer ved at angive assigningAuthorityName="CPR"), og derfor valideres der i servicen, at disse attributter anvendes korrekt, så der ikke er tvivl om hvordan data skal fortolkes. Dvs. i praksis sker der en strengere validering end WSDL og XSDer dikterer.
Data i begge servicer består kort fortalt af et person id (CPR-Nummer) med tilhørende værdier for besvarelser på forskellige spørgsmål vedrørende livsforlængende behandling. Servicen indeholder operationer til vedligehold og udstilling af disse data.
Anvendelse
I begge servicer repræsenteres en livs- eller behandlingstestamenteregistrering i et ClinicalDocument, som er grundpillen i CDA. Heri indgår en CDA header og en StructuredBody. I forbindelse med begge servicer er der lavet en "extension" til CDA, hvori det er muligt at repræsentere henholdsvis en livs- eller behandlingstestamenteregistrering som observation-type i dokumentets StructuredBody, som vist på figuren nedenunder. Figuren giver et overblik over de væsentligste elementer der anvendes i CDA.
Selve dokumentets CDA Header (som ligger i ClinicalDocument før StructuredBody) indeholder information om borgerens person id (CPR-nr.) og hvem der er ophavsmand på den pågældende registreringen, hvilken kun kan være borgeren selv.
De egentlige data for borgerens registrering forefindes under StructuredBody, som indeholder en liste af Entry-elementer, dog eksisterer der kun én Entry eftersom en borger kun kan have én gyldig registrering ad gangen. Entry indholder en Observation, som reelt er det CDA element, hvor data om en livs- eller behandlingstestamenteregistrering forefindes.
OID
Ifm. HL7 CDA er der defineret en række OID'er, som hver især definerer et udfaldsrum for forskellige id/kode-typer. Meningen er, at der til et id (på fx en person, altså CPR-nummer) defineres et OID, som kan betragtes som en type-erklæring. For livs- og behandlingstestamenteregistreringer er følgende OID'er aktuelle:
Type | OID | Beskrivelse | Eksempel |
---|---|---|---|
CPR | 1.2.208.176.1.2 | CPR-nummer | <ns2:id assigningAuthorityName="CPR" extension="0501792275" root="1.2.208.176.1.2"/> |
DK MedCom (member body) | 1.2.208.184 | Id på ClinicalDocument. Ikke aktual ifm. denne service (extension=NA) | <ns2:id assigningAuthorityName="MedCom" extension="NA" root="1.2.208.184"/> |
Fortrolighed | 2.16.840.1.113883.5.25 | Altid N (for "Normal") ifm. denne service | <ns2:confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> |
Dokument type-id | 2.16.840.1.113883.1.3 | HL7-registreret RMIM (HL7 internal) | <ns2:typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/> |
Code system | 1.2.208.184.15.1* | Kodesystem | <ns2:code code="LivingWill" displayName="Livstestamente" codeSystem="1.2.208.184.15.1"/> |
Code system | 1.2.208.184.15.1* | Kodesystem | <ns2:code code="TreatmentWill" displayName="Behandlingstestamente" codeSystem="1.2.208.184.15.1"/> |
* id defineres endeligt af MedCom.
På oidref.com kan man i øvrigt se betydningen af enkeltcifre i de fleste OID'er, fx http://oidref.com/2.16.840.1.113883.1.3
Snitflade
Sundhedsfaglige anvender begge services gennem en DGWS-snitflade, som skal kaldes med et MOCES niveau 4 medarbejdercertifikat. Via DGWS er der udelukkende adgang til at se, om en registrering eksisterer, samt se detaljer om registreringen.
Borgere anvender services gennem en IDWS-snitflade og har adgang til alle operationer. Der understøttes ikke fuldmagter.
Hvis en borger forsøger at oprette et behandlingstestamente, og der samtidigt allerede eksisterer et livstestamente for denne borger, fejler kaldet. Anvendere skal derfor først slette livstestamentet for borgeren, og dernæst oprette behandlingstestamentet. Dette kan også gøres ved hjælp af UpgradeToTreatmentWill-serviceoperationen.
Snitfladerne skal kaldes skal kaldes gennem NSP'ens DCC endpoint (afkoblingskomponenten).
Server-URL'er for de forskellige test-miljøer kan findes på Endpoints for eksterne testmiljøer.
Pt findes der 2 sæt af snit flader til Behandlingstestamenteregistret. Forskellen er, at for noLifeProlongingIfDying kan der i version 2 ikke angives om der skal gives yderligere accept fra nærmest pårørende, værge eller fremtidsfuldmægtig.
WSDL-filer | |
---|---|
HTML-side med overblik | <server>/btr/wsdl |
Livstestamenteregister DGWS | <server>/btr/wsdl/ltr/dgws |
Livstestamenteregister IDWS | <server>/btr/wsdl/ltr/idws |
Behandlingstestamenteregister DGWS | <server>/btr/wsdl/btr/dgws |
Behandlingstestamenteregister IDWS | <server>/btr/wsdl/btr/idws |
Behandlingstestamenteregister DGWS v2 | <server>/btr/wsdl/btrV2/dgws |
Behandlingstestamenteregister IDWS v2 | <server>/btr/wsdl/btrV2/idws |
WSDL Livstestamenteregistret
Operation | Beskrivelse | DGWS | IDWS |
---|---|---|---|
UpdateLivingWillRequest_2018_05_01 | Opdatér en borgers livstestamenteregistrering | Nej | Ja |
DeleteLivingWillRequest_2018_05_01 | Slet en borgers livstestamenteregistrering | Nej | Ja |
GetLivingWillRequest_2018_05_01 | Hent en livstestamenteregistrering for en specifik borger | Ja | Ja |
HasLivingWillRequest_2018_05_01 | Hent om en specifik borger har en livstestamenteregistrering | Ja | Ja |
WSDL Behandlingstestamenteregistret
Operation | Beskrivelse | DGWS | IDWS |
---|---|---|---|
CreateTreatmentWill_2018_05_01 | Opret en behandlingstestamenteregistrering for en specifik borger | Nej | Ja |
UpdateTreatmentWill_2018_05_01 | Opdatér en borgers behandlingstestamenteregistrering | Nej | Ja |
DeleteTreatmentWill_2018_05_01 | Slet en borgers behandlingstestamenteregistrering | Nej | Ja |
GetTreatmentWill_2018_05_01 | Hent en behandlingstestamenteregistrering for en specifik borger | Ja | Ja |
HasTreatmentWill_2018_05_01 | Hent om en specifik borger har en behandlingstestamenteregistrering | Ja | Ja |
WSDL Behandlingstestamenteregistret version 2
Operation | Beskrivelse | DGWS | IDWS |
---|---|---|---|
CreateTreatmentWill_2020_03_16 | Opret en behandlingstestamenteregistrering for en specifik borger | Nej | Ja |
UpdateTreatmentWill_2020_03_16 | Opdatér en borgers behandlingstestamenteregistrering | Nej | Ja |
UpgradeToTreatmentWill_2020_03_16 | Opret en behandlingstestamenteregistrering for en specifik borger og slet en borgers livstestamenteregistrering | Nej | Ja |
DeleteTreatmentWill_2020_03_16 | Slet en borgers behandlingstestamenteregistrering | Nej | Ja |
GetTreatmentWill_2020_03_16 | Hent en behandlingstestamenteregistrering for en specifik borger | Ja | Ja |
GetTreatmentWillWithOnlyForcedTreatment | Hent en behandlingstestamenteregistrering for en specifik borger. Indeholder kun forced treatment. | Ja | Nej |
HasTreatmentWill_2020_03_16 | Hent om en specifik borger har en behandlingstestamenteregistrering | Ja | Ja |
Serviceoperationer Livstestamenteregistret
Nedenfor beskrives de forskellige operationer i servicen. For hver operation gives eksempler på request/response hvis aktuelle (for simpelhedens skyld uden DGWS/IDWS headers). Eksemplerne tjener dels til formål at give overblik over hvad der skal til for at bruge en operation, men demonstrerer samtidigt hvilke attributter der er krævet. Dvs. de forskellige requests angiver hvad der som minimum skal angives.
UpdateLivingWill
Request-eksempel:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
livingWill | Data for en livstestamenteregistrering. Type er LivingWill. Se tabel under afsnittet Typer. | - | Nej |
Response-eksempel (indeholder ingen data):
DeleteLivingWill
Request-eksempel:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response-eksempel (indeholder ingen data):
GetLivingWill
Request-eksempel:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response-eksempel
Element | Beskrivelse | Type |
---|---|---|
realmCode | Krævet pr. standard, fast værdi | |
typeId | Krævet pr. standard, fast værdi | |
templateId | Krævet pr. standard, fast værdi | |
id | Krævet pr. standard, fast værdi | |
code | Krævet pr. standard, fast værdi | |
title | Krævet pr. standard, fast værdi | |
effectiveTime | Krævet pr. standard, fast værdi | |
ConfidentialityCode | Krævet pr. standard, fast værdi | |
languageCode | Krævet pr. standard, fast værdi | |
versionNumber | Versionsnummer for en registrering | |
recordTarget.patient Role.id | Borgerens CPR-nr i "extension"-attribut | |
author.time | Dato/tid. Format: yyyyMMddHHmmssZ, fx. 20171024143445+0200 | |
Borgerens CPR-nr i "extension"-attribut | ||
Nedenstående elementer hører alle under component.structuredBody.component.section.entry.observation | ||
code | Krævet pr. standard, fast værdi | |
value | Data for en livstestamenteregistrering | LivingWill. Se tabel under afsnittet Typer. |
HasLivingWill
Request-eksempel:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response:
Element | Beskrivelse | Type |
---|---|---|
willExists | Eksisterer der en livstestamenteregistrering for den pågældende person der laves en forespørgsel for. | hl7:bl |
Serviceoperationer Behandlingstestamenteregistret
I det følgende foreståes følgende, når der angives treatmentWill som element: For oprindelig version anvendes treatmentWill, for version 2 af servicen anvendes treatmentWillV2.
Der er request og response eksempler for både oprindelig version og version 2.
CreateTreatmentWill
Request-eksempel:
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
treatmentWill | Data for en behandlingstestamenteregistrering. Type er TreatmentWill. Se tabel under afsnittet Typer. | - | Nej |
Response-eksempel (indeholder ingen data):
Response-eksempel v2 (indeholder ingen data):
UpgradeToTreatmentWill
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
treatmentWill | Data for en behandlingstestamenteregistrering. Type er TreatmentWill. Se tabel under afsnittet Typer. | - | Nej |
Response-eksempel V2 (indeholder ingen data):
UpdateTreatmentWill
Request-eksempel:
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
treatmentWill | Data for en behandlingstestamenteregistrering. Type er TreatmentWill. Se tabel under afsnittet Typer. | - | Nej |
Response-eksempel (indeholder ingen data):
Response-eksempel v2 (indeholder ingen data):
DeleteTreatmentWill
Request-eksempel:
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response-eksempel (indeholder ingen data):
Response-eksempel v2 (indeholder ingen data):
GetTreatmentWill
Request-eksempel:
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response-eksempel:
Response-eksempel:
Element | Beskrivelse | Type |
---|---|---|
realmCode | Krævet pr. standard, fast værdi | |
typeId | Krævet pr. standard, fast værdi | |
templateId | Krævet pr. standard, fast værdi | |
id | Krævet pr. standard, fast værdi | |
code | Krævet pr. standard, fast værdi | |
title | Krævet pr. standard, fast værdi | |
effectiveTime | Krævet pr. standard, fast værdi | |
ConfidentialityCode | Krævet pr. standard, fast værdi | |
languageCode | Krævet pr. standard, fast værdi | |
versionNumber | Versionsnummer for en registrering | |
recordTarget.patient Role.id | Borgerens CPR-nr i "extension"-attribut | |
author.time | Dato/tid. Format: yyyyMMddHHmmssZ, fx. 20171024143445+0200 | |
Borgerens CPR-nr i "extension"-attribut | ||
Nedenstående elementer hører alle under component.structuredBody.component.section.entry.observation | ||
code | Krævet pr. standard, fast værdi | |
value | Data for en behandlingstestamenteregistrering | TreatmentWill. Se tabel under afsnittet Typer. |
GetTreatmentWillWithOnlyForcedTreatment
Request-eksempel v2:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response-eksempel:
Element | Beskrivelse | Type |
---|---|---|
realmCode | Krævet pr. standard, fast værdi | |
typeId | Krævet pr. standard, fast værdi | |
templateId | Krævet pr. standard, fast værdi | |
id | Krævet pr. standard, fast værdi | |
code | Krævet pr. standard, fast værdi | |
title | Krævet pr. standard, fast værdi | |
effectiveTime | Krævet pr. standard, fast værdi | |
ConfidentialityCode | Krævet pr. standard, fast værdi | |
languageCode | Krævet pr. standard, fast værdi | |
versionNumber | Versionsnummer for en registrering | |
recordTarget.patient Role.id | Borgerens CPR-nr i "extension"-attribut | |
author.time | Dato/tid. Format: yyyyMMddHHmmssZ, fx. 20171024143445+0200 | |
Borgerens CPR-nr i "extension"-attribut | ||
Nedenstående elementer hører alle under component.structuredBody.component.section.entry.observation | ||
code | Krævet pr. standard, fast værdi | |
value | Data for en behandlingstestamenteregistrering. Indeholder kun noForcedTreatmentIfIncapable. | TreatmentWillWithOnlyForcedTreatment. Se tabel under afsnittet Typer. |
HasTreatmentWill
Request-eksempel:
Request-eksempel:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
id | Som attribut "extension" angives personens CPR-nummer (uden bindestreg) | varchar(30) | Nej |
Response:
Response:
Element | Beskrivelse | Type |
---|---|---|
willExists | Eksisterer der en behandlingstestamenteregistrering for den pågældende person der laves en forespørgsel for. | hl7:bl |
Typer
LivingWill
Den generelle struktur der anvendes på create- og update-requests, samt på get-responses, ser ud som følger:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
noLifeProlongingIfDying | Livstestamente tilkendegivelse | Boolean | Nej |
noLifeProlongingIfSeverelyDegraded | Livstestamente tilkendegivelse | Boolean | Nej |
TreatmentWill
Den generelle struktur der anvendes på create- og update-requests, samt på get-responses, ser ud som følger:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
noLifeProlongingIfDying | Behandlingstestamente tilkendegivelse | TreatmentWillValueType*1 | Nej |
noLifeProlongingIfSeverelyDegraded | Behandlingstestamente tilkendegivelse | TreatmentWillValueType | Nej |
noLifeProlongingIfSeverePain | Behandlingstestamente tilkendegivelse | TreatmentWillValueType | Nej |
noForcedTreatmentIfIncapable | Behandlingstestamente tilkendegivelse | TreatmentWillValueType | Nej |
TreatmentWillV2
Den generelle struktur der anvendes på create- og update-requests, samt på get-responses, ser ud som følger:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
noLifeProlongingIfDying | Behandlingstestamente tilkendegivelse | TreatmentWillValueTypeWithoutAcceptanceNeeded | Nej |
noLifeProlongingIfSeverelyDegraded | Behandlingstestamente tilkendegivelse | TreatmentWillValueTypeWithAcceptanceNeeded | Nej |
noLifeProlongingIfSeverePain | Behandlingstestamente tilkendegivelse | TreatmentWillValueTypeWithAcceptanceNeeded | Nej |
noForcedTreatmentIfIncapable | Behandlingstestamente tilkendegivelse | TreatmentWillValueTypeWithAcceptanceNeeded | Nej |
TreatmentWillWithOnlyForcedTreatment
Den generelle struktur der anvendes på create- og update-requests, samt på get-responses, ser ud som følger:
Element | Beskrivelse | Type | Optionel |
---|---|---|---|
noForcedTreatmentIfIncapable | Behandlingstestamente tilkendegivelse | TreatmentWillValueTypeWithAcceptanceNeeded | Nej |
TreatmentWillValueType/TreatmentWillValueTypeWithAcceptanceNeeded
Elementets er en standard boolean, hvis indhold kan være "true" eller "false".
Elementet har en optionel attribut, acceptanceNeeded, som er en enumeration, der kan indeholde én af følgende strenge:
- relativeAcceptanceRequired
- guardianAcceptanceRequired
- trustedAgentAcceptanceRequired
Hvis denne attribut udelades, angiver dette, at der ikke er angivet nogen værdi for denne data. Bemærk, at attributten kun må angives såfremt elementets indhold er "true"; denne validering foregår i servicen og kan ikke ses ud fra XML Schema'et.
*1: det er fra version 1.1.1 ikke længer tilladt at angive acceptanceNeeded for noLifeProlongingIfDying i den oprindelige snitflade (TreatmentWill). Der vil blive returneret med en soap fejl, hvis det sker.
TreatmentWillValueTypeWithoutAcceptanceNeeded
Elementets er en standard boolean, hvis indhold kan være "true" eller "false".
Notificeringer i NAS
I forbindelse med skriveoperationer i BTR (oprettelse, opdateringer og sletninger) sker der en notificering via NAS få sekunder efter ændringen er gemt. Se evt. NAS2 - Anvenderguide.
De enkelte notificeringer indholder ikke detaljer vedr. oprettelse, redigering eller sletning af borgerens behandlingstestamentdata of livstestamentdata , men udelukkende oplysninger om det cprnummer, for hvilket opdateringen har fundet sted. Det er efterfølgende op til anvenderen at hente det opdaterede stamkort ud via snitfladerne.
Følgende er et eksempel på en opdateringsnotificering til behandlingstestamente:
Følgende er et eksempel på en opdateringsmeddelelse til livstestamente:
Notificeringer for Behandlingstestamenteregisteret
For notificeringer på behandlingstestamenteregisteret anvendes topic http://sundhedsdatastyrelsen.dk/TreatmentWill/2022/05/05:TreatmentWillUpdated
Notificeringer følger nedenstående XSD:
Notificeringer for Livstestamenteregisteret
Der anvendes følgende topic: http://sundhedsdatastyrelsen.dk/LivingWill/2022/05/05:LivingWillUpdated
Notificeringer følger nedenstående XSD:
Ændringslog
Version | Dato | Ændring | Ansvarlig |
---|---|---|---|
1.0.1 | 2018-08-09 | Initialt dokument | Trifork |
- | 2018-08-10 | Tilføjelser til snitfladebeskrivelse | 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.6 | 2018-10-15 | Tilføjet data-elementet noForcedTreatmentIfIncapable Fjernet elementet relativeAcceptanceRequired og indført acceptanceNeeded for alle 4 Behandlingstestamente-spørgsmål Opdateret request/response XML-eksempler | Trifork |
1.1.0 | 2020-03-24 | TreatmentWillV2 med noLifeProlongingIfDying uden angivelse af yderligere accept | KvalitetsIT |
1.1.1 | 2020-03-30 | TreatmentWill validerer ingen yderligere accept angives på noLifeProlongingIfDying | KvalitetsIT |
1.1.2 | 2022-10-10 | TreatmentWillWithOnlyForcedTreatment endpoint tilføjet. | KvalitetsIT |
1.1.3 | 2022-11-03 | UpgradeToTreatmentWill endpoint tilføjet. Opretter et behandlingstestamente og sletter livstestamente for en bestemt cpr. | KvalitetsIT |