Delen via


Profielen opslaan in FHIR-service

HL7 Fast Healthcare Interoperability Resources (FHIR®) definieert een standaard en interoperabele manier om gezondheidszorggegevens op te slaan en uit te wisselen. Zelfs binnen de basis-FHIR-specificatie kan het handig zijn om andere regels of extensies te definiëren op basis van de context waarin FHIR wordt gebruikt. Voor contextspecifieke toepassingen van FHIR worden FHIR-profielen gebruikt voor de extra laag specificaties. Met het FHIR-profiel kunt u resourcedefinities beperken en aanpassen met behulp van beperkingen en extensies.

Met de FHIR-service van Azure Health Data Services kunt u resources valideren op basis van profielen om te zien of de resources voldoen aan de profielen. In dit artikel wordt u begeleid bij de basisbeginselen van FHIR-profielen en hoe u ze opslaat. Ga naar HL7.org voor meer informatie over FHIR-profielen.

FHIR-profiel: de basisprincipes

Een profiel stelt extra context in voor de resource die wordt weergegeven als een StructureDefinition resource. A StructureDefinition definieert een set regels voor de inhoud van een resource of een gegevenstype, zoals welke elementen een resource heeft en welke waarden deze elementen kunnen aannemen.

Hier volgen enkele voorbeelden van hoe profielen de basisresource kunnen wijzigen.

  • Kardinaliteit beperken: u kunt bijvoorbeeld de maximale kardinaliteit van een element instellen op 0, wat betekent dat het element wordt uitgesloten in de specifieke context.
  • De inhoud van een element beperken tot één vaste waarde.
  • Definieer de vereiste extensies voor de resource.

Een StructureDefinition wordt geïdentificeerd door de canonieke URL: http://hl7.org/fhir/StructureDefinition/{profile}

Voorbeeld:

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace is een basisprofiel dat informatie vereist over het geregistreerde adres van de geboorte van de patiënt.
  • http://hl7.org/fhir/StructureDefinition/bmi is een ander basisprofiel dat definieert hoe BMI-waarnemingen (Body Mass Index) moeten worden weergegeven.
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance is een US Core-profiel waarmee minimale verwachtingen worden ingesteld voor de AllergyIntolerance resource die is gekoppeld aan een patiënt en die verplichte velden identificeert, zoals extensies en waardesets.

Wanneer een resource voldoet aan een profiel, wordt het profiel opgegeven in het profile element van de resource. In het volgende voorbeeld ziet u het begin van een 'Patiënt'-resource, die een profiel heeft http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient .

{
  "resourceType" : "Patient",
  "id" : "ExamplePatient1",
  "meta" : {
    "lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
    "source" : "Organization/PayerOrganizationExample1",
    "profile" : [
      "http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
    ]
  },

Notitie

Profielen moeten boven op de basisresource worden gebouwd en kunnen niet conflicteren met de basisresource. Als een element bijvoorbeeld een kardinaliteit van 1..1 heeft, kan het profiel het niet optioneel maken.

Profielen worden ook opgegeven door verschillende implementatiehandleidingen (IG's). Hier volgt een lijst met algemene IG's. Ga voor meer informatie naar de specifieke IG-site voor meer informatie over de IG en de profielen die erin zijn gedefinieerd.

Notitie

De FHIR-service slaat standaard geen profielen op uit implementatiehandleidingen. U moet ze laden in de FHIR-service.

Profielen openen en profielen opslaan

Profielen opslaan

Als u profielen wilt opslaan in de FHIR-service, kunt PUT u de StructureDefinition profielinhoud in de hoofdtekst van de aanvraag gebruiken. Een standaard PUT of een voorwaardelijke update zijn beide goede methoden voor het opslaan van profielen op de FHIR-service. Gebruik de voorwaardelijke update als u niet zeker weet welke te gebruiken.

Standaard PUT: PUT http://<your FHIR service base URL>/StructureDefinition/profile-id

or

Voorwaardelijke update: PUT http://<your FHIR service base URL>/StructureDefinition?url=http://sample-profile-url

{ 
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
	…
}

Als u bijvoorbeeld het us-core-allergyintolerance profiel wilt opslaan, gebruikt u de volgende rest-opdracht met het us Core-profiel voor allergie-intolerantie in het lichaam. We hebben een fragment van dit profiel opgenomen voor het voorbeeld.

PUT https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
    "resourceType" : "StructureDefinition",
    "id" : "us-core-allergyintolerance",
    "text" : {
        "status" : "extensions"
    },
    "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
    "version" : "3.1.1",
    "name" : "USCoreAllergyIntolerance",
    "title" : "US  Core AllergyIntolerance Profile",
    "status" : "active",
    "experimental" : false,
    "date" : "2020-06-29",
        "publisher" : "HL7 US Realm Steering Committee",
    "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
    "description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",

Zie het US Core-voorbeeld-REST-bestand op de opensource-site voor meer voorbeelden. Dit helpt u bij het opslaan van US Core-profielen. Als u de meest recente profielen wilt ophalen, moet u de profielen rechtstreeks ophalen uit HL7 en de implementatiehandleiding die deze definieert.

Profielen weergeven

U hebt toegang tot uw bestaande aangepaste profielen met behulp van een GET aanvraag, GET http://<your FHIR service base URL>/StructureDefinition?url={canonicalUrl}waarbij {canonicalUrl} de canonieke URL van uw profiel is.

Als u bijvoorbeeld het resourceprofiel us Core Goal wilt weergeven:

GET https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal

Hiermee wordt de resource voor het StructureDefinition US Core Goal-profiel geretourneerd dat als volgt begint.

{
  "resourceType" : "StructureDefinition",
  "id" : "us-core-goal",
  "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
  "version" : "3.1.1",
  "name" : "USCoreGoalProfile",
  "title" : "US Core Goal Profile",
  "status" : "active",
  "experimental" : false,
  "date" : "2020-07-21",
  "publisher" : "HL7 US Realm Steering Committee",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.healthit.gov"
        }
      ]
    }
  ],
  "description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",

}

Notitie

U ziet alleen de profielen die u in de FHIR-service hebt geladen.

De FHIR-service retourneert StructureDefinition geen exemplaren voor de basisprofielen, maar ze zijn eenvoudig te vinden op de HL7-website, zoals het volgende.

  • http://hl7.org/fhir/Observation.profile.json.html
  • http://hl7.org/fhir/Patient.profile.json.html

Profielen in de mogelijkheidsinstructie

De Capability Statement lijst bevat alle mogelijke gedragingen van uw FHIR-service. De FHIR-service werkt de mogelijkheidsinstructie bij met details van de opgeslagen profielen in de volgende formulieren.

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

Als u POST bijvoorbeeld een US Core Patient-profiel hebt, dat als volgt begint:

{
  "resourceType": "StructureDefinition",
  "id": "us-core-patient",
  "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
  "version": "3.1.1",
  "name": "USCorePatientProfile",
  "title": "US Core Patient Profile",
  "status": "active",
  "experimental": false,
  "date": "2020-06-27",
  "publisher": "HL7 US Realm Steering Committee",

En stuur een GET aanvraag voor uw metadata:

GET http://<your FHIR service base URL>/metadata

Er wordt een CapabilityStatement geretourneerd met de volgende informatie over het US Core Patient-profiel dat u hebt geüpload naar uw FHIR-server.

...
{
    "type": "Patient",
    "profile": "http://hl7.org/fhir/StructureDefinition/Patient",
    "supportedProfile":[
        "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    ],

Bindingen in profielen

Een terminologieservice is een reeks functies die bewerkingen kunnen uitvoeren op medische terminologie, zoals het valideren van codes, het vertalen van codes en het uitbreiden van waardesets. De FHIR-service biedt geen ondersteuning voor terminologieservice. Informatie voor ondersteunde bewerkingen ($), resourcetypen en interacties vindt u in de CapabilityStatement van de service. Resourcetypen ValueSet, StructureDefinition en CodeSystem worden ondersteund met eenvoudige CRUD-bewerkingen en Search (zoals gedefinieerd in de CapabilityStatement) en worden gebruikt door het systeem voor gebruik in $validate.

ValueSets kunnen een complexe set regels en externe verwijzingen bevatten. Momenteel overweegt de service alleen de vooraf uitgevouwen inlinecodes. Klanten moeten ondersteunde ValueSets uploaden naar de FHIR-server voordat ze de $validate-bewerking gebruiken. De ValueSet-resources moeten worden geüpload naar de FHIR-server met behulp van PUT of voorwaardelijke update, zoals vermeld in de sectie Profielen opslaan hierboven.

Volgende stappen

In dit artikel hebt u meer geleerd over FHIR-profielen. Vervolgens leert u hoe u $validate kunt gebruiken om ervoor te zorgen dat resources voldoen aan deze profielen.

Notitie

FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.