Share via


Profielen opslaan in Azure API for FHIR

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

Met Azure API for FHIR kunt u resources valideren op basis van profielen om te zien of de resources aan de profielen voldoen. In dit artikel wordt u begeleid bij de basisbeginselen van FHIR-profielen en hoe u deze kunt opslaan. Ga naar HL7.org voor meer informatie over FHIR-profielen buiten dit artikel.

FHIR-profiel: de basisbeginselen

Een profiel stelt aanvullende 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 hebben.

Hieronder vindt u enkele voorbeelden van hoe profielen de basisresource kunnen wijzigen:

  • Kardinaliteit beperken: u kunt bijvoorbeeld de maximale kardinaliteit voor 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 vereiste extensies voor de resource.

A StructureDefinition wordt aangeduid met de canonieke URL: http://hl7.org/fhir/StructureDefinition/{profile}

Bijvoorbeeld:

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace is een basisprofiel dat informatie vereist over het geregistreerde geboorteadres 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 dat minimale verwachtingen instelt voor AllergyIntolerance resource die is gekoppeld aan een patiënt en 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. Hieronder ziet u een voorbeeld van het begin van een patiëntresource met http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient profiel.

{
  "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 worden gebouwd op basis van de basisresource en kunnen geen conflict veroorzaken met de basisresource. Als een element bijvoorbeeld de kardinaliteit 1..1 heeft, kan het profiel het niet optioneel maken.

Profielen worden ook opgegeven door verschillende implementatiehandleidingen (IG's). Hieronder vindt u enkele algemene ID'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 Azure API for FHIR slaat standaard geen profielen op uit implementatiehandleidingen. U moet ze laden in de Azure API for FHIR.

Profielen openen en opslaan

Profielen opslaan

Als u profielen wilt opslaan in Azure API for FHIR, kunt PUT u de StructureDefinition met de profielinhoud in de hoofdtekst van de aanvraag. Een update of een voorwaardelijke update zijn beide goede methoden om profielen op te slaan in de FHIR-service. Gebruik de voorwaardelijke update als u niet zeker weet welke u moet gebruiken.

Standaard PUT: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id

or

Voorwaardelijke update: PUT http://<your Azure API for FHIR 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 profiel US Core allergie-intolerantie in de hoofdtekst. We hebben een fragment van dit profiel toegevoegd voor het voorbeeld.

PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/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. Hier vindt u instructies voor het opslaan van US Core-profielen. Om de meest recente profielen te krijgen, moet u de profielen rechtstreeks ophalen uit HL7 en de implementatiehandleiding waarin ze worden gedefinieerd.

Profielen weergeven

U hebt toegang tot uw bestaande aangepaste profielen met behulp van een GET aanvraag, GET http://<your Azure API for FHIR 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://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/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 Azure API for FHIR hebt geladen.

Azure API for FHIR retourneert StructureDefinition geen exemplaren voor de basisprofielen, maar deze zijn te vinden op de HL7-website, zoals:

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

Profielen in de mogelijkheidsinstructie

De Capability Statement bevat alle mogelijke gedragingen van Azure API for FHIR. Azure API for FHIR werkt de mogelijkheidsinstructie bij met details van de opgeslagen profielen in de vorm van:

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

Als u bijvoorbeeld een US Core Patient-profiel opslaat, 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 verzend een GET aanvraag voor uw metadata:

GET http://<your Azure API for FHIR base URL>/metadata

U krijgt een met de CapabilityStatement volgende informatie over het US Core Patient-profiel dat u hebt geüpload naar Azure API for FHIR:

...
{
    "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 set functies waarmee bewerkingen kunnen worden uitgevoerd op medische 'terminologieën', zoals het valideren van codes, het vertalen van codes, het uitbreiden van waardesets, enzovoort. De Azure API for FHIR-service biedt geen ondersteuning voor de terminologieservice. Informatie over 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 het CapabilityStatement) en worden door het systeem gebruikt voor gebruik in $validate.

ValueSets kunnen een complexe set regels en externe verwijzingen bevatten. Tegenwoordig wordt in de service alleen rekening gehouden met de vooraf uitgevouwen inlinecodes. Klanten moeten ondersteunde ValueSets uploaden naar de FHIR-server voordat ze de $validate-bewerking kunnen 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 aan deze profielen voldoen.

FHIR® is een gedeponeerd handelsmerk van HL7 en wordt gebruikt met de toestemming van HL7.