Speichern von Profilen in der Azure-API für FHIR

Wichtig

Azure API for FHIR wird am 30. September 2026 eingestellt. Folgen Sie den Migrationsstrategien, um bis zu diesem Datum zum Azure Health Data Services-FHIR®-Dienst zu wechseln. Aufgrund der Einstellung von Azure API for FHIR werden neue Bereitstellungen ab dem 1. April 2025 nicht zugelassen. Der Azure Health Data Services-FHIR-Dienst ist die weiterentwickelte Version der Azure-API für FHIR, mit der Kundschaft FHIR-, DICOM- und Medizintechnikdienste mit Integrationen in andere Azure-Dienste verwalten kann.

HL7 Fast Healthcare Interoperability Resources (FHIR®) definiert eine Standard- und interoperable Methode zum Speichern und Austauschen von Gesundheitsdaten. Auch innerhalb der Basis-FHIR-Spezifikation kann es hilfreich sein, andere Regeln oder Erweiterungen basierend auf dem Kontext zu definieren, in dem FHIR verwendet wird. Für solche kontextspezifischen Verwendungen von FHIR werden FHIR-Profile für die zusätzliche Spezifikationsebene verwendet. Mit dem FHIR-Profil können Sie Ressourcendefinitionen mithilfe von Einschränkungen und Erweiterungen eingrenzen und anpassen.

Die Azure-API für FHIR ermöglicht die Überprüfung von Ressourcen anhand von Profilen, um festzustellen, ob die Ressourcen den Profilen entsprechen. Dieser Artikel führt Sie durch die Grundlagen von FHIR-Profilen und deren Speicherung. Weitere Informationen zu FHIR-Profilen außerhalb dieses Artikels finden Sie unter HL7.org.

FHIR-Profil: Grundlagen

Ein Profil legt zusätzlichen Kontext für die Ressource fest, die als StructureDefinition Ressource dargestellt wird. A StructureDefinition definiert eine Reihe von Regeln für den Inhalt einer Ressource oder eines Datentyps, z. B. welche Elemente eine Ressource hat und welche Werte diese Elemente annehmen können.

Einige Beispiele dafür, wie Profile die Basisressource ändern können:

  • Einschränken der Kardinalität: Sie können z. B. die maximale Kardinalität für ein Element auf 0 festlegen, was bedeutet, dass das Element im spezifischen Kontext ausgeschlossen ist.
  • Beschränken Sie den Inhalt eines Elements auf einen einzelnen festen Wert.
  • Definieren Sie erforderliche Erweiterungen für die Ressource.

A StructureDefinition wird durch die kanonische URL identifiziert: http://hl7.org/fhir/StructureDefinition/{profile}.

Nachfolgend finden Sie einige Beispiele.

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace ist ein Basisprofil, das Informationen über die registrierte Geburtsadresse des Patienten benötigt.
  • http://hl7.org/fhir/StructureDefinition/bmi ist ein weiteres Basisprofil, das definiert, wie Body Mass Index (BMI)-Beobachtungen dargestellt werden.
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance ist ein US Core-Profil, das mindeste Erwartungen an AllergyIntolerance Ressourcen festlegt, die einem Patienten zugeordnet sind, und es identifiziert obligatorische Felder wie Erweiterungen und Wertsätze.

Wenn eine Ressource einem Profil entspricht, wird das Profil innerhalb des profile Elements der Ressource angegeben. Nachfolgend sehen Sie ein Beispiel für den Anfang einer Patient Ressource, die das Profil http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patientaufweist.

{
  "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"
    ]
  },

Hinweis

Profile müssen auf der Basisressource aufbauen und können nicht mit der Basisressource in Konflikt stehen. Wenn z. B. ein Element eine Kardinalität von 1..1 aufweist, kann es vom Profil nicht optional werden.

Profile werden durch verschiedene Implementierungshandbücher (IGs) angegeben. Nachfolgend finden Sie eine Liste allgemeiner IGs. Weitere Informationen finden Sie auf der spezifischen IG-Website, um mehr über die IG und die darin definierten Profile zu erfahren.

Hinweis

Die Azure-API für FHIR speichert standardmäßig keine Profile aus Implementierungshandbüchern. Sie müssen sie in die Azure-API für FHIR laden.

Zugreifen auf Profile und Speichern von Profilen

Speichern von Profilen

Um Profile in der Azure-API für FHIR zu speichern, können PUT Sie den StructureDefinition Profilinhalt im Textkörper der Anforderung verwenden. Ein Update oder eine bedingte Aktualisierung sind beide gute Methoden zum Speichern von Profilen im FHIR-Dienst. Verwenden Sie das bedingte Update, wenn Sie nicht sicher sind, welche Sie verwenden möchten.

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

or

Bedingte Aktualisierung: 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"
	…
}

Wenn Sie beispielsweise das us-core-allergyintolerance Profil speichern möchten, verwenden Sie den folgenden Rest-Befehl mit dem US Core-Allergieintoleranzprofil im Körper. Wir haben einen Codeausschnitt dieses Profils für das Beispiel eingefügt.

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.",

Weitere Beispiele finden Sie in der US Core-REST-Datei auf der Open-Source-Website, die durch das Speichern von US Core-Profilen führt. Um die aktuellsten Profile zu erhalten, sollten Sie die Profile direkt aus HL7 und dem Implementierungshandbuch abrufen, das sie definiert.

Anzeigen von Profilen

Sie können auf Ihre vorhandenen benutzerdefinierten Profile über eine GET Anforderung zugreifen, GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}wobei {canonicalUrl} es sich um die kanonische URL Ihres Profils handelt.

Verwenden Sie z. B. Folgendes, wenn Sie ein RESSOURCENprofil für us-Kernziele anzeigen möchten.

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal

Dadurch wird die Ressource für das StructureDefinition US-Kernzielprofil zurückgegeben, das wie folgt beginnt.

{
  "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).",

}

Hinweis

Sie sehen nur die Profile, die Sie in die Azure-API für FHIR geladen haben.

Die Azure-API für FHIR gibt keine Instanzen für die Basisprofile zurück StructureDefinition , aber sie finden sie auf der HL7-Website.

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

Profile in der Capability-Anweisung

In der Capability Statement Liste sind alle möglichen Verhaltensweisen der Azure-API für FHIR aufgeführt. Die Azure-API für FHIR aktualisiert die Funktionsanweisung mit Details zu den gespeicherten Profilen in den folgenden Formularen.

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

Wenn Sie beispielsweise ein US Core Patient-Profil speichern, das wie folgt beginnt.

{
  "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",

Und senden Sie eine GET Anfrage für Ihre metadata:

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

Sie werden ein CapabilityStatement Objekt zurückgegeben, das die folgenden Informationen zum US Core Patient-Profil enthält, das Sie in die Azure-API für FHIR hochgeladen haben.

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

Bindungen in Profilen

Ein Terminologiedienst ist eine Reihe von Funktionen, die Vorgänge in medizinischen "Terminologien" ausführen können, z. B. Das Überprüfen von Codes, übersetzen von Codes, erweiternde Wertesätze und andere Vorgänge.
Die Azure-API für den FHIR-Dienst unterstützt keinen Terminologiedienst. Informationen zu unterstützten Vorgängen ($), Ressourcentypen und Interaktionen finden Sie im Dienst CapabilityStatement. Ressourcentypen ValueSetStructureDefinition und CodeSystem werden mit grundlegenden CRUD-Vorgängen (Create, Read, Update, Delete) und Search (gemäß Definition in der CapabilityStatement) sowie von dem System für die Verwendung $validatein verwendet werden unterstützt.

ValueSets können einen komplexen Satz von Regeln und externen Verweisen enthalten. Heute betrachtet der Dienst nur die vordefinierten Inlinecodes. Kunden müssen unterstützte ValueSets vor der Verwendung des $validate Vorgangs auf den FHIR-Server hochladen. Die ValueSet Ressourcen müssen mit PUT oder bedingter Aktualisierung auf den FHIR-Server hochgeladen werden, wie im Abschnitt zum Speichern von Profilen erwähnt.

Nächste Schritte

In diesem Artikel haben Sie mehr über FHIR-Profile gelernt. Als Nächstes erfahren Sie, wie Sie verwenden $validate können, um sicherzustellen, dass Ressourcen diesen Profilen entsprechen.

Hinweis

FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.