...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
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
...
situaties per resource en de daarbij behorende element en waarde. Alle onderstaande waardes zijn ook terug te vinden via het profiel van iedere resource.
Resource | element |
---|
...
Waarde | Betekenis | |
---|---|---|
ActivityDefinition | status |
...
draft | This resource is still under development and is not yet considered to be ready for normal use. | ||
active | This resource is ready for normal use. | ||
retired | This resource has been withdrawn or superseded and should no longer be used. | ||
unknown | The authoring system does not know which of the status values currently applies for this resource. Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, it's just not known which one. | ||
Endpoint | status | active | This endpoint is expected to be active and can be used. |
suspended | This endpoint is temporarily unavailable. | ||
error | This endpoint has exceeded connectivity thresholds and is considered in an error state and should no longer be attempted to connect to until corrective action is taken. | ||
off | This endpoint is no longer to be used. | ||
entered-in-error | This instance should not have been part of this patient's medical record. | ||
test | This endpoint is not intended for production usage. | ||
Device | status | active | The device is available for use. |
inactive | The device is no longer available for use. | ||
entered-in-error | The device was entered in error and voided. | ||
unknown | The status of the device has not been determined. | ||
Task | status | zie: statussen van een task | |
Patient | active | true | The patients record is in active use |
false | The patients record is not in active use
Requirements Need to be able to mark a patient record as not to be used because it was created in error.
If a record is inactive, and linked to an active record, then future patient/record updates should occur on the other patient. | ||
Practitioner | active | true | The practitioner's record is in active use. |
false | The practitioner's record is not in active use. Requirements Need to be able to mark a practitioner record as not to be used because it was created in error. | ||
CareTeam | status | proposed | The care team has been drafted and proposed, but not yet participating in the coordination and delivery of patient care. |
active | The care team is currently participating in the coordination and delivery of care. | ||
suspended | The care team is temporarily on hold or suspended and not participating in the coordination and delivery of care. | ||
inactive | The care team was, but is no longer, participating in the coordination and delivery of care. | ||
entered-in-error | The care team should have never existed. | ||
Organization | status | active | The organization's record is in active use. |
inactive | The organization's record is not in active use. Requirement Need a flag to indicate a record is no longer to be used and should generally be hidden for the user in the UI. Comment This element is labeled as a modifier because it may be used to mark that the resource was created in error. | ||
Subscription | status | requested | The client has requested the subscription, and the server has not yet set it up. |
active | The subscription is active. | ||
error | The server has an error executing the notification. | ||
off | Too many errors have occurred or the subscription has expired. |
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/.
Warning | ||
---|---|---|
| ||
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 De |
Anchor | ||||
---|---|---|---|---|
|
FHIR kent standaard een aantal mogelijke statussen voor een task. In de onderstaande tabel worden die aan Koppeltaal use cases gebonden, waaronder ook de launch.
De onderstaande tabel is overgenomen uit business use case: Toewijzen en volgen taak. De behandelaar kan van iedere statuswijziging een notificatie ontvangen en op die manier de voortgang van uitvoering blijven volgen.
Stap | Taak status | Betekenis | Behandelaar kan de task launchen | Patiënt kan de task launchen | |
---|---|---|---|---|---|
Taak aanmaken | Een behandelaar kiest een interventie voor een patient en maakt daarmee een taak voor de patiënt. | draft | De taak is nog niet klaar om te worden uitgevoerd | Ja | Nee |
Een behandelaar komt erachter dat de taak foutief aangemaakt is. | entered-in-error | De taak is foutief ingevoerd en mag niet uitgevoerd worden | Ja | Nee | |
Taak vrijgeven | De behandelaar besluit dat de taak uitgevoerd mag gaan worden door de patiënt en geeft deze vrij. | ready | De taak is klaar om te worden uitgevoerd, maar er is nog geen actie ondernomen. | Ja | Ja |
Uitvoeren taak | De patiënt start met het uitvoeren van de taak | in-progress | De taak is gestart, maar is nog niet voltooid. | Ja | Ja |
Er kan iets mis gaan tijdens de uitvoering van de taak | cancelled | De taak is niet voltooid | Ja | Ja | |
on-hold | De taak is gestart, maar het uitvoeren is onderbroken. | Ja | Ja | ||
failed | De taak is geprobeerd, maar kon vanwege een fout niet worden voltooid. | Ja | Ja | ||
De taak is succesvol afgerond | completed | De taak is voltooid. | Ja | Ja | |
Inzien taak | Zowel de behandelaar als de patiënt kunnen beide de taak inzien. Ieder vanuit hun eigen portaal. | completed | De taak is voltooid. | Ja | Ja |
Overige statussen van een task
Bovenstaande tabel beschrijft de voornaamste statussen die gebruikt zullen worden binnen Koppeltaal. Een taak kent echter ook een status-flow waarbij een taak-toekenning wordt beoordeel. De status "ready" wordt gebruikt wanneer de taak-toekenning een gegeven is. Binnen de GGZ is dit laatste bijna altijd het geval. Wanneer dit echter wel gebruikt wordt, dient de status als volgt behandeld te worden:
Stap | Taak status |
---|
...
Betekenis | Behandelaar kan de task launchen | Patiënt kan de task launchen | ||
---|---|---|---|---|
Taak-toekenning wordt beoordeeld door de patiënt | requested | De taak is klaar. De taak-toekenning moet eerst beoordeeld worden door de patiënt | Ja | Nee |
received | De taak-toekenning wordt beoordeeld door de patiënt | Ja | Nee | |
accepted | De taak-toekenning is geaccepteerd door de patiënt. De taak is klaar om uitgevoerd te worden | Ja | Ja | |
rejected | De taak-toekenning is afgekeurd. De taak zal niet uitgevoerd worden zonder aanpassingen | Ja | Nee |
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"
}
}
}