Skip to end of banner
Go to start of banner

Meta (eHealth Metadata)

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 7 Next »

Doel

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

Referentie

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 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.
0..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
0..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 het "domein uri" bedoeld. Per resource moet er één genomineerde domein ingevuld worden; voor aanvullende gegevens zullen eventueel andere resources gebruikt worden.

Er mogen geen relaties of referenties gelegd worden tussen resources, die verschillende domein uri's bevatten.

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 (domein uri) 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
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. Elke FHIR resource behoort bij één domein (Meta.source) dat uit een domein uri en een interactie id is samengesteld .
  2. FHIR resource met verschillende domeinen mogen niet aan elkaar gerelateerd worden. 
  3. Een FHIR resource voldoet aan een profile (Meta.profile) zoals vastgelegd is in de StructureDefinition resource. 

Parameters voor zoekopdrachten (search) 

HTTP Request

Methode

Actie

/ResourceType?_source=uri.domainGetOphalen van het (bron) domein uri
/Resourcetype?_source=%23interactieIdGetOphalen van het requestId


Zoek parameters:

Naam

Type

Omschrijving

_sourcesamengestelde stringzoeken naar het (uri) domein en interactie id

Creatie

HTTP Request

Methode

Actie

/ResourceType.meta.sourcePostDefiniëren van een bron of domein

De volgende elementen zijn vereist:

Naam

Details

meta.sourceHet domein van de ResourceType.

Update

Naam

Methode

Actie

/ResourceType.meta.sourcePutAanpassen van domein


Aandachtspunten bij migratie vanuit Koppeltaal 1.x / DSTU1

  • TBD

Voorbeelden

Aannames en opmerkingen:


Source informatie van Location

  • Als de X-Request-ID header afwezig is, wordt er een random id gegenereerd en opgeslagen
  • Als de meta.source afwezig is , wordt de domein uri niet gevuld


Post 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>
Get 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

https://smilecdr.com/docs/fhir_repository/tracing_and_provenance.html#storing-source-information

  • No labels