Beschrijving
In Koppeltaal 2.0 maken we gebruik van verschillende resource types. De verschillende resource types gebruiken verschillende elementen om aan te geven of de resource content daadwerkelijk gebruikt wordt. Hiervoor wordt het element active of het element status gebruikt.
Het element active is van het type 'boleaan' en het element status heeft een lijstje van kiesbare enumeratie waarden.
Het volgende tabel is een lijstje van 'end of life' situaties per resource en de daarbij behorende element en waarde.
Resource | element | end of life waarde |
---|---|---|
ActivityDefinition | status | retired |
Endpoint | status | off |
Device | status | inactive |
Task | status | completed|cancelled|failed|rejected |
Patient | active | false |
Practitioner | active | false |
RelatedPerson | active | false |
CareTeam | status | inactive |
Subscription | status | off |
Indien men gebruik maakt van de FHIR DELETE operatie wordt er een “logische” verwijdering uitgevoerd. Dat wil zeggen dat men niet meer bij de inhoud van de resource kan komen, en dus ook niet de status van de resource kan bekijken. Belangrijk hierbij is dat de gegevens niet fysiek uit de FHIR datastore (database) worden verwijderd.
Stel dat er een Patient resource met id 123 wordt aangemaakt (via HTTP POST /Patient) en vervolgens wordt deze Patient id=123 verwijderd (via HTTP DELETE Patient/123). De Patient resource krijgt hiermee een tweede versie van Patient/123 met versie Patient/123/_history/2 die gemarkeerd wordt als ‘deleted’.
Deze patiënt verschijnt niet langer in de zoekresultaten en pogingen om deze resource Patient/123 te lezen (met behulp van een HTTP GET Patient/123) zullen falen met een "HTTP 410 Gone" melding met een Location header die een URL bevat met resource id en versie id:
Location: http://example.org/fhir/Patient/123/_history/2
Het mooie is dat de originele resource inhoud niet wordt verwijderd. Men kan de geschiedenis van de resource nog steeds opvragen op de volgende manieren:
GET Patient/123/_history/1 of met GET Patient/123/_history/.
Recht op vergetelheid
In een aantal gevallen mag een gebruiker aan een organisatie vragen om alle (historische) gegevens, van die gebruiker, uit hun systeem te verwijderen.
Voor het fysiek verwijderen van resources hebben sommige FHIR Resource Providers een $purge
functionaliteit geïmplementeerd.
Deze functie verwijdert alle historische versies van een resource (exclusief de huidige versie) uit de FHIR Store. Indien je alle versies wil verwijderen, MOET je eerst de huidige versie DELETEn (zie FHIR DELETE) en daarna de $purge
operatie aanroepen.
De $purge
operatie is echter GEEN STANDAARD (FHIR RESTfull) operatie, en moet apart geïmplementeerd worden voor de FHIR Store.
Extra Guidance
status:
- Generieke use case - klaar voor tweede review
- Spefifieke use cases
- patiënt - klaar voor review
Rationale
Implicaties
Voorbeelden
1 - Creëer een Patient Resource
POST http://hapi.fhir.org/baseR4/Patient/
{
"resourceType": "Patient",
"active": true,
"identifier": [{
"use": "usual",
"system": "http://hl7.org/fhir/sid/us-ssn",
"value": "555501234"
}
],
"name": [
{
"text": "Berend Botje",
"family": "Botje",
"given": [ "Berend" ]
}
],
"telecom": [{
"system": "email",
"value": "berendbotje01@vzvz.nl",
"use": "home"
}],
"gender": "male",
"birthDate": "1970-12-20",
"managingOrganization": {
"identifier":
{
"system": "http://fhir.nl/fhir/NamingSystem/agb-z",
"value": "12345678"
},
"type": "Organization"
}
}
Response:
{
"resourceType": "Patient",
"id": "2043390",
"meta": {
"versionId": "1",
"lastUpdated": "2021-04-19T13:15:53.052+00:00"
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Berend <b>BOTJE </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>555501234</td></tr><tr><td>Date of birth</td><td><span>20 December 1970</span></td></tr></tbody></table></div>"
},
"identifier": [
{
"use": "usual",
"system": "http://hl7.org/fhir/sid/us-ssn",
"value": "555501234"
}
],
"active": true,
"name": [
{
"text": "Berend Botje",
"family": "Botje",
"given": [
"Berend"
]
}
],
"telecom": [
{
"system": "email",
"value": "berendbotje01@vzvz.nl",
"use": "home"
}
],
"gender": "male",
"birthDate": "1970-12-20",
"managingOrganization": {
"type": "Organization",
"identifier": {
"system": "http://fhir.nl/fhir/NamingSystem/agb-z",
"value": "12345678"
}
}
}
2 - Verwijder (logische) de Patient Resource
DELETE http://hapi.fhir.org/baseR4/Patient/2043390
Response:
{
"resourceType": "OperationOutcome",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h1>Operation Outcome</h1><table border=\"0\"><tr><td style=\"font-weight: bold;\">INFORMATION</td><td>[]</td><td><pre>Successfully deleted 1 resource(s) in 12ms</pre></td>\n\t\t\t</tr>\n\t\t</table>\n\t</div>"
},
"issue": [
{
"severity": "information",
"code": "informational",
"diagnostics": "Successfully deleted 1 resource(s) in 12ms"
}
]
}
3 - Bevraag de (verwijderde) Patient Resource a.d.h.v. de id
GET http://hapi.fhir.org/baseR4/Patient/2043390
Statuscode: "410 Gone"
Location: http://hapi.fhir.org/baseR4/Patient/2043390/_history/2
{
"resourceType": "OperationOutcome",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h1>Operation Outcome</h1><table border=\"0\"><tr><td style=\"font-weight: bold;\">ERROR</td><td>[]</td><td><pre>Resource was deleted at 2021-04-19T13:18:00.818+00:00</pre></td>\n\t\t\t</tr>\n\t\t</table>\n\t</div>"
},
"issue": [
{
"severity": "error",
"code": "processing",
"diagnostics": "Resource was deleted at 2021-04-19T13:18:00.818+00:00"
}
]
}
4 - Bevraag de historische gegevens van de Patient Resource a.d.h.v. de id en versieId
GET http://hapi.fhir.org/baseR4/Patient/2043390/_history/1
Statuscode: 200 OK
{
"resourceType": "Patient",
"id": "2043390",
"meta": {
"versionId": "1",
"lastUpdated": "2021-04-19T13:15:53.052+00:00",
"source": "#vzvz_1235"
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Berend <b>BOTJE </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>555501234</td></tr><tr><td>Date of birth</td><td><span>20 December 1970</span></td></tr></tbody></table></div>"
},
"identifier": [
{
"use": "usual",
"system": "http://hl7.org/fhir/sid/us-ssn",
"value": "555501234"
}
],
"active": true,
"name": [
{
"text": "Berend Botje",
"family": "Botje",
"given": [
"Berend"
]
}
],
"telecom": [
{
"system": "email",
"value": "berendbotje01@vzvz.nl",
"use": "home"
}
],
"gender": "male",
"birthDate": "1970-12-20",
"managingOrganization": {
"type": "Organization",
"identifier": {
"system": "http://fhir.nl/fhir/NamingSystem/agb-z",
"value": "12345678"
}
}
}