Sdílet prostřednictvím


Uložení profilů ve službě FHIR

HL7 Fast Healthcare Interoperability Resources (FHIR®) definuje standardní a interoperabilní způsob ukládání a výměny zdravotnických dat. I v rámci základní specifikace FHIR může být užitečné definovat další pravidla nebo rozšíření na základě kontextu, který FHIR používá. Pro takové kontextové použití FHIR se profily FHIR používají pro další vrstvu specifikací. Profil FHIR umožňuje zúžit a přizpůsobit definice prostředků pomocí omezení a rozšíření.

Služba FHIR ve službě Azure Health Data Services (označovaná jako služba FHIR) umožňuje ověřovat prostředky v profilech a zjistit, jestli prostředky odpovídají profilům. Tento článek vás provede základy profilů FHIR a jejich ukládáním. Další informace o profilech FHIR mimo tento článek najdete na stránce HL7.org.

Profil FHIR: základy

Profil nastaví další kontext prostředku, který je reprezentovaný jako StructureDefinition prostředek. Objekt StructureDefinition definuje sadu pravidel pro obsah prostředku nebo datového typu, například jaké prvky prostředek obsahuje a jaké hodnoty mohou tyto prvky mít.

Tady je několik příkladů, jak můžou profily upravovat základní prostředek:

  • Omezit kardinalitu: Můžete například nastavit maximální kardinalitu elementu na 0, což znamená, že element je v konkrétním kontextu vyloučený.
  • Omezte obsah prvku na jednu pevnou hodnotu.
  • Definujte požadovaná rozšíření pro prostředek.

Objekt StructureDefinition je identifikovaný pomocí jeho kanonické adresy URL: http://hl7.org/fhir/StructureDefinition/{profile}

Příklad:

  • http://hl7.org/fhir/StructureDefinition/patient-birthPlace je základní profil, který vyžaduje informace o registrované adrese narození pacienta.
  • http://hl7.org/fhir/StructureDefinition/bmi je další základní profil, který definuje, jak znázorňovat pozorování BMI (Body Mass Index).
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance je základní profil USA, který nastavuje minimální očekávání pro AllergyIntolerance prostředek přidružený k pacientovi a identifikuje povinná pole, jako jsou rozšíření a sady hodnot.

Pokud prostředek odpovídá profilu, profil se zadává uvnitř profile elementu prostředku. Níže vidíte příklad začátku prostředku Pacient, který má http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient profil.

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

Poznámka

Profily musí být založeny na základním prostředku a nemohou být v konfliktu se základním prostředkem. Pokud má například element kardinalitu 1..1, profil ho nemůže nastavit jako volitelný.

Profily jsou také určeny různými průvodci implementací (IG). Některé běžné skupiny IGs jsou uvedené níže. Další informace najdete na webu konkrétního ig, kde najdete další informace o ig ig a profilech, které jsou v něm definované:

Poznámka

Služba FHIR ve výchozím nastavení neukládá žádné profily z průvodců implementací. Budete je muset načíst do služby FHIR.

Přístup k profilům a jejich ukládání

Ukládání profilů

Pokud chcete ukládat profily ve službě FHIR, můžete PUTStructureDefinition použít s obsahem profilu v textu požadavku. Standardní PUT i podmíněná aktualizace jsou vhodné metody pro ukládání profilů ve službě FHIR. Pokud si nejste jistí, kterou použít, použijte podmíněnou aktualizaci.

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

Nebo

Podmíněná aktualizace: PUT http://<your FHIR service base URL>/StructureDefinition?url=http://sample-profile-url

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

Pokud byste například chtěli profil uložit us-core-allergyintolerance , použili byste následující příkaz pro zbytek s profilem usa Core allergy intolerance v těle. Do příkladu jsme zahrnuli fragment tohoto profilu.

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

Další příklady najdete v ukázkovém souboru REST pro US Core na opensourcové lokalitě, který vás provede ukládáním profilů US Core. Pokud chcete získat nejaktuálnější profily, měli byste je získat přímo z HL7 a z průvodce implementací, který je definuje.

Zobrazení profilů

K existujícím vlastním profilům můžete získat přístup pomocí GET požadavku GET http://<your FHIR service base URL>/StructureDefinition?url={canonicalUrl}, kde {canonicalUrl} je kanonická adresa URL vašeho profilu.

Pokud například chcete zobrazit profil prostředku základního cíle USA:

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

Tím se vrátí StructureDefinition prostředek pro profil základního cíle USA, který začne takto:

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

}

Poznámka

Zobrazí se jenom profily, které jste načetli do služby FHIR.

Služba FHIR nevrací StructureDefinition instance základních profilů, ale můžete je snadno najít na webu HL7, například:

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

Profily v příkazu capability

Obsahuje Capability Statement seznam všech možných chování vaší služby FHIR. Služba FHIR aktualizuje příkaz capability o podrobnosti uložených profilů v těchto formách:

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

Pokud máte POST například profil základního pacienta v USA, který začíná takto:

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

A odešlete žádost o GET :metadata

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

Vrátíte se s parametrem , CapabilityStatement který obsahuje následující informace o profilu základního pacienta USA, který jste nahráli na server FHIR:

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

Vazby v profilech

Služba terminologie je sada funkcí, které můžou provádět operace s lékařskými "terminologiemi", jako je ověřování kódů, překlad kódů, rozšiřování sad hodnot atd. Služba FHIR nepodporuje službu terminologie. Informace o podporovaných operacích ($), typech prostředků a interakcích najdete v CapabilityStatement služby. Typy prostředků ValueSet, StructureDefinition a CodeSystem se podporují se základními operacemi CRUD a vyhledáváním (jak jsou definovány v CapabilityStatement) a systém je využívá pro použití v $validate.

Sady hodnot mohou obsahovat složitou sadu pravidel a externích odkazů. Dnes bude služba zvažovat pouze předem rozšířené vložené kódy. Zákazníci musí před použitím operace $validate nahrát podporované sady hodnot na server FHIR. Prostředky ValueSet se musí nahrát na server FHIR pomocí PUT nebo podmíněné aktualizace, jak je uvedeno výše v části Ukládání profilů.

Další kroky

V tomto článku jste se dozvěděli o profilech FHIR. Dále se dozvíte, jak pomocí $validate zajistit, aby prostředky odpovídaly těmto profilům.

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.