Udostępnij za pośrednictwem


Przechowywanie profilów w usłudze Azure API for FHIR

Ważne

Usługa Azure API for FHIR zostanie wycofana 30 września 2026 r. Postępuj zgodnie ze strategiami migracji, aby przejść do usługi Azure Health Data Services FHIR® do tej daty. Ze względu na wycofanie usługi Azure API for FHIR nowe wdrożenia nie będą możliwe od 1 kwietnia 2025 r. Usługa FHIR usług Azure Health Data Services to rozwinięta wersja usługi Azure API for FHIR, która umożliwia klientom zarządzanie usługami FHIR, DICOM i MedTech z integracją z innymi usługami platformy Azure.

HL7 Fast Healthcare Interoperability Resources (FHIR®) definiuje standardowy i współdziałalny sposób przechowywania i wymiany danych opieki zdrowotnej. Nawet w ramach podstawowej specyfikacji FHIR pomocne może być zdefiniowanie innych reguł lub rozszerzeń na podstawie kontekstu używanego przez FHIR. W przypadku takich kontekstowych zastosowań FHIR profile FHIR są używane do dodatkowej warstwy specyfikacji. Profil FHIR umożliwia zawężenie i dostosowanie definicji zasobów przy użyciu ograniczeń i rozszerzeń.

Interfejs API platformy Azure dla standardu FHIR umożliwia weryfikowanie zasobów względem profilów w celu sprawdzenia, czy zasoby są zgodne z profilami. W tym artykule przedstawiono podstawy profilów FHIR i sposób ich przechowywania. Aby uzyskać więcej informacji na temat profilów FHIR poza tym artykułem, odwiedź stronę HL7.org.

Profil FHIR: podstawowe informacje

Profil ustawia dodatkowy kontekst zasobu reprezentowanego StructureDefinition jako zasób. Element StructureDefinition definiuje zestaw reguł dotyczących zawartości zasobu lub typu danych, takich jak elementy, które mają zasób i jakie wartości mogą przyjmować te elementy.

Oto kilka przykładów sposobu modyfikowania zasobu podstawowego przez profile:

  • Ogranicz kardynalność: na przykład można ustawić maksymalną kardynalność elementu na 0, co oznacza, że element jest wykluczony w określonym kontekście.
  • Ogranicz zawartość elementu do pojedynczej stałej wartości.
  • Zdefiniuj wymagane rozszerzenia dla zasobu.

Element jest StructureDefinition identyfikowany przez jego kanoniczny adres URL: http://hl7.org/fhir/StructureDefinition/{profile}.

Oto kilka przykładów.

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace jest podstawowym profilem, który wymaga informacji na temat zarejestrowanego adresu urodzenia pacjenta.
  • http://hl7.org/fhir/StructureDefinition/bmi to inny profil podstawowy, który definiuje sposób reprezentowania obserwacji indeksu masy ciała (BMI).
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance jest profilem us Core, który określa minimalne oczekiwania dotyczące AllergyIntolerance zasobu skojarzonego z pacjentem i identyfikuje obowiązkowe pola, takie jak rozszerzenia i zestawy wartości.

Gdy zasób jest zgodny z profilem, profil jest określony wewnątrz profile elementu zasobu. Poniżej znajduje się przykład początku Patient zasobu, który ma profil 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"
    ]
  },

Uwaga

Profile muszą być oparte na zasobie podstawowym i nie mogą powodować konfliktu z zasobem podstawowym. Jeśli na przykład element ma kardynalność 1..1, profil nie może go ustawić jako opcjonalny.

Profile są określane przez różne przewodniki implementacji (IG). Poniżej znajduje się lista typowych grup zabezpieczeń. Aby uzyskać więcej informacji, odwiedź określoną witrynę IG, aby dowiedzieć się więcej na temat IG i profilów zdefiniowanych w niej.

Uwaga

Interfejs API platformy Azure dla standardu FHIR domyślnie nie przechowuje żadnych profilów z przewodników implementacji. Należy załadować je do interfejsu API platformy Azure for FHIR.

Uzyskiwanie dostępu do profilów i przechowywanie profilów

Przechowywanie profilów

Aby przechowywać profile w usłudze Azure API for FHIR, możesz PUT StructureDefinition pracować z zawartością profilu w treści żądania. Aktualizacja lub aktualizacja warunkowa są dobrymi metodami przechowywania profilów w usłudze FHIR. Użyj aktualizacji warunkowej, jeśli nie masz pewności, która z nich ma być używana.

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

or

Aktualizacja warunkowa: 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"
	…
}

Jeśli na przykład chcesz przechowywać us-core-allergyintolerance profil, użyj następującego polecenia rest z profilem nietolerancji alergii US Core w organizmie. Dołączyliśmy fragment kodu tego profilu na potrzeby przykładu.

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

Aby uzyskać więcej przykładów, zobacz przykładowy plik REST platformy US Core w witrynie typu open source, który przeprowadzi Cię przez proces przechowywania profilów us Core. Aby uzyskać najbardziej aktualne profile, należy pobrać profile bezpośrednio z programu HL7 i przewodnik implementacji, który je definiuje.

Wyświetlanie profilów

Dostęp do istniejących profilów niestandardowych można uzyskać przy użyciu GET żądania , GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}gdzie {canonicalUrl} jest kanonicznym adresem URL profilu.

Na przykład użyj następującego polecenia, jeśli chcesz wyświetlić profil zasobu podstawowego celu USA.

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

Spowoduje to zwrócenie StructureDefinition zasobu dla profilu us Core Goal, który rozpoczyna się podobnie do poniższego.

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

}

Uwaga

Zobaczysz tylko profile załadowane do usługi Azure API for FHIR.

Interfejs API platformy Azure dla standardu FHIR nie zwraca StructureDefinition wystąpień dla profilów podstawowych, ale można je znaleźć w witrynie internetowej HL7.

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

Profile w instrukcji capability

Lista Capability Statement zawiera listę wszystkich możliwych zachowań interfejsu AZURE API for FHIR. Usługa Azure API for FHIR aktualizuje instrukcję możliwości ze szczegółami przechowywanych profilów w poniższych formularzach.

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

Jeśli na przykład zapiszesz profil pacjenta podstawowego usa, który zaczyna się jak poniżej.

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

GET Wyślij żądanie dla elementu metadata:

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

Zostanie zwrócony element CapabilityStatement zawierający następujące informacje dotyczące profilu pacjenta podstawowego usa przekazanego do usługi Azure API for FHIR.

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

Powiązania w profilach

Usługa terminologii to zestaw funkcji, które mogą wykonywać operacje na medycznych "terminologiach", takich jak weryfikowanie kodów, tłumaczenie kodów, rozszerzanie zestawów wartości i inne operacje.
Usługa Azure API for FHIR nie obsługuje usługi terminologii. Informacje dotyczące obsługiwanych operacji ($), typów zasobów i interakcji można znaleźć w usłudze CapabilityStatement. Typy ValueSetStructureDefinition zasobów i CodeSystem są obsługiwane przy użyciu podstawowych operacji tworzenia, odczytu, aktualizacji i usuwania (CRUD) oraz wyszukiwania (zgodnie z definicją w pliku CapabilityStatement), a także są używane przez system do użycia w $validateprogramie .

Zestawy wartości mogą zawierać złożony zestaw reguł i odwołań zewnętrznych. Obecnie usługa uwzględnia tylko wstępnie rozwinięte kody wbudowane. Klienci muszą przekazać obsługiwane zestawy wartości do serwera FHIR przed użyciem $validate operacji. ValueSet Zasoby muszą zostać przekazane do serwera FHIR przy użyciu funkcji PUT lub aktualizacji warunkowej, jak wspomniano w sekcji przechowywania profilów.

Następne kroki

W tym artykule przedstawiono informacje o profilach FHIR. Następnie możesz dowiedzieć się, jak zapewnić $validate zgodność zasobów z tymi profilami.

Uwaga

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.