Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Doel

(FHIR) Meta is een set metadata die technische content meegeeft aan elke type FHIR resource. De metadata elementen zijn in FHIR R4 allemaal optioneel, echter in de context van Koppeltaal 2.0 gaan we enkele elementen in de implementatie vereisen. Zie hiervoor de cardinaliteit.

...

FHIR Specification (v4.0.1: R4 - Mixed Normative and STU). Dit is de huidige gepubliceerde versie. Zie ook: https://www.hl7.org/fhir/resource.html#Meta

Koppeltaal 2.0 (draft) profiel van Meta

Element

Omschrijving

Card.

Type

versionId

De waarde van versionId verandert elke keer als de inhoud van de resource verandert. Er kan naar worden verwezen in een resource referentie (voorbeeld: ResourceType/id/_history/versionId). De versionId wordt bij Koppeltaal gebruikt om ervoor te zorgen dat updates altijd zijn gebaseerd op de nieuwste versie (of meest recente content) van de resource. De versie kan globaal uniek zijn, of binnen het bereik van de logische id van de resource.

VersionId's zijn over het algemeen ofwel een serieel oplopende identificatie binnen het bereik van de logische ID, ofwel een uuid, hoewel geen van deze beschrijvingen vereist is. Er is geen vaste volgorde voor de versionId's. Cliënten of afnemers mogen er niet van uitgaan dat een versionId die na een andere komt, numeriek of alfabetisch een latere versie vertegenwoordigt. Dezelfde versionId mag nooit worden gebruikt voor meer dan één versie van dezelfde resource.
RESTful API:

  • De versionId wordt in de HTTP ETag header bij elk antwoord meegegeven.
  • Bij ontvangst van een schrijfbewerking MOET de server dit item bijwerken naar de huidige waarde of het verwijderen.
  • Twee resources zijn identiek als de versionId's identiek zijn.
  • Alle services die in de context van Koppeltaal werken MOETEN het versionid  element ondersteunen.
  • Bij het aanpassen/wijzigen van de content van de resources moet men gebruik maken de versionId in combinatie met de If-Match HTTP header, om zo wijzigingen gecontroleerd door een FHIR service uit te laten voeren. Deze techniek heet "Optimistic Locking" en wordt bij RESTful APIs gebruikt omdat deze "stateless" zijn, hierdoor onthoudt de  FHIR service geen locks.
10..1Id
lastUpdated

Dit element verandert de waarde als de content van de resource verandert. Gebruik hier de tijdzonecode van de server waarop de FHIR service functioneert.

RESTful API:

  • Bij ontvangst van een schrijfbewerking MOET de FHIR (Resource) Provider dit item bijwerken naar de huidige tijd op de server
10..1instant
source

Een uri die het resource systeem en interactie (bv create, update, etc) identificeert. In de context van Koppeltaal wordt voor het resource systeem de "client_id" bedoeld. Per resource moet er één genomineerde "client_id" ingevuld worden; voor aanvullende gegevens zullen eventueel andere resources gebruikt worden.

RESTful API:

  • Bij ontvangst van een schrijfbewerking MOET de FHIR (Resource) Provider de resource systeem uri en interactie id ongewijzigd laten.
  • Voor de source mogen de volgende HTTP Request Headers gebruikt worden:
    • X-Request-ID - levert de interactie id aan 
    • X-Request-System - levert de resource systeem aan

Kanttekening:

  • We zouden het 'source' ook voor 'Multitenancy'  kunnen gebruiken, zodat we kunnen achterhalen bij welke tenant (container of huurder van een dienst) de resource behoort.
  • Het lijkt erop dat parameter X-Request-System niet geïmplementeerd is in een HAPI FHIR server
1..1

Wordt niet gebruikt binnen Koppeltaal 2.0

0..1string
profileEen bewering of toekenning dat de inhoud van de resource overeenkomt met een resource profile (vastgelegd in een StructureDefinition). Zie FHIR Profiles voor verdere uitleg. Een profile wordt gewijzigd als de waardensets wijzigen of  het systeem de conformiteit opnieuw controleert. De profile kan worden gebruikt om aan te geven aan welke versie(s) de FHIR resource moet voldoen. Een FHIR server kan ongeldige interacties afwijzen en testen aan de hand van de profile(s). 0..1canonical
tagLabels die aan een resource zijn toegewezen. Labels worden gebruikt om resources te kunnen identificeren en te relateren aan (security en werk) processen. Toepassingen hoeven de tags niet in beschouwing te nemen bij het interpreteren van een resource. 0..*coding

User Stories

  1. Een FHIR resource kan aan een profile (Meta.profile) voldoen, zoals vastgelegd is in de StructureDefinition resource. 

Parameters voor zoekopdrachten (search) 

...

HTTP Request

...

Methode

...

Actie

...

Aandachtspunten bij migratie vanuit Koppeltaal 1.x / DSTU1

  • TBD

Voorbeelden

Aannames en opmerkingen:

...

  • Als de X-Request-ID header afwezig is, wordt er een random id gegenereerd en opgeslagen door de HAPI FHIR server
  • Als de meta.source afwezig is , wordt de domein uri niet gevuld
Code Block
languagexml
titlePost Source information (XML) Location
POST /Location
X-Request-ID: vzvz_1234

<Location xmlns='http://hl7.org/fhir'>
  <meta>
    <source value="vzvz.nl/fhir/R4"/>
  </meta>     
  <endpoint>
    <reference value="Endpoint/159"/>
    <type value="Endpoint"/>
  </endpoint>
</Location>
Code Block
languagejs
titleGet Source information (JSON) Location
{
  "resourceType": "Location",
  "id": "1839404",
  "meta": {
    "versionId": "1",
    "lastUpdated": "2021-01-28T08:45:06.773+00:00",
    "source": "vzvz.nl/fhir/R4#vzvz_1234"
  },
  "endpoint": [     
    {
      "reference": "Endpoint/159",
      "type": "Endpoint"
    }   
  ]
}

Zie ook:

https://smilecdr.com/docs/fhir_repository/fhir_endpoint_module.html#capturing-source-information

...