Skip to end of banner
Go to start of banner

TOP-KT-013 - Levenscyclus van een FHIR Resource - [review]

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

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 elementend of life waarde
ActivityDefinitionstatusretired
Endpointstatusoff
Devicestatusinactive
Taskstatuscompleted|cancelled|failed|rejected
Patientactivefalse
Practitioneractivefalse
RelatedPersonactivefalse
CareTeamstatusinactive
Subscriptionstatusoff


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 $expunge functionaliteit geïmplementeerd. Deze functie verwijdert alle versies van een resource uit de FHIR Store.

De $expunge operatie is echter GEEN STANDAARD (FHIR RESTfull) operatie, en moet apart geïmplementeerd worden voor de FHIR Store. Deze operatie mag alleen op instance-level aangeroepen worden.


Statussen van een task

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
Behandelaar kan de task launchenPatiënt kan de task launchen
Taak aanmaken

Een behandelaar kiest een interventie voor een patient en maakt daarmee een taak voor de patiënt.


draftDe taak is nog niet klaar om te worden uitgevoerdJaNee
Een behandelaar komt erachter dat de taak foutief aangemaakt is.entered-in-errorDe taak is foutief ingevoerd en mag niet uitgevoerd wordenJaNee
Taak vrijgeven

De behandelaar besluit dat de taak uitgevoerd mag gaan worden door de patiënt en geeft deze vrij.

readyDe taak is klaar om te worden uitgevoerd, maar er is nog geen actie ondernomen. JaJa
Uitvoeren taak


De patiënt start met het uitvoeren van de taak

in-progressDe taak is gestart, maar is nog niet voltooid.JaJa

Er kan iets mis gaan tijdens de uitvoering van de taak

cancelled

De taak is niet voltooidJaJa
on-holdDe taak is gestart, maar het uitvoeren is onderbroken.JaJa
failedDe taak is geprobeerd, maar kon vanwege een fout niet worden voltooid.JaJa

De taak is succesvol afgerond

completedDe taak is voltooid.JaJa
Inzien taak

Zowel de behandelaar als de patiënt kunnen beide de taak inzien. Ieder vanuit hun eigen portaal.


completed

De taak is voltooid.JaJa

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:

StapTaak statusDefinitieBehandelaar kan de task launchenPatiënt kan de task launchen
Taak-toekenning wordt beoordeeld door de patiëntrequestedDe taak is klaar. De taak-toekenning moet eerst beoordeeld worden door de patiëntJaNee
receivedDe taak-toekenning wordt beoordeeld door de patiëntJaNee
acceptedDe taak-toekenning is geaccepteerd door de patiënt. De taak is klaar om uitgevoerd te wordenJaJa
rejectedDe taak-toekenning is afgekeurd. De taak zal niet uitgevoerd worden zonder aanpassingenJaNee

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"
        }
    }
}


Toepassingsgebied


Onderbouwen


Eisen


Referenties

  • No labels