Sdílet prostřednictvím


Ukládání 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, ve kterém se používá FHIR. Pro 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 služby Azure Health Data Services umožňuje ověřovat prostředky vůči profilům a zjistit, jestli prostředky odpovídají profilům. Tento článek vás provede základy profilů FHIR a jejich uložením. Další informace oprofile HL7.org ch

Profil FHIR: základy

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

Následuje několik příkladů, jak mohou profily upravovat základní prostředek.

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

A StructureDefinition je identifikovaná jeho kanonickou adresou 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, je profil zadán uvnitř profile prvku prostředku. V následujícím příkladu můžete vidět začátek 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 postavené na základním prostředku a nemůžou 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 implementacemi (IGS). Následuje seznam běžných IG. Další informace najdete na konkrétním webu IG, kde najdete další informace o ig a profilech definovaných v něm.

Poznámka:

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

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

Ukládání profilů

Chcete-li uložit profily ve službě FHIR, můžete PUT StructureDefinition obsah profilu v textu požadavku. Standardní PUT nebo podmíněná aktualizace jsou dobrými metodami ukládání profilů ve službě FHIR. Podmíněnou aktualizaci použijte, pokud si nejste jistí, kterou možnost použít.

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 intolerance pro alergiky USA v těle. V příkladu jsme zahrnuli fragment kódu 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ém webu, který vás provede ukládáním profilů pro jádra USA. Pokud chcete získat nejaktuálnější profily, měli byste profily získat přímo z HL7 a průvodce implementací, který je definuje.

Zobrazení profilů

Ke stávajícím GET vlastním profilům můžete přistupovat pomocí 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 us Core Goal:

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

Tím se vrátí prostředek pro profil základního StructureDefinition cíle USA, který začíná následujícím způsobem.

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

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

Služba FHIR nevrací StructureDefinition instance pro základní profily, ale snadno je najdete na webu HL7, například na následujícím webu.

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

Profily v příkazu capability

Seznam Capability Statement všech možných chování služby FHIR. Služba FHIR aktualizuje příkaz schopností s podrobnostmi o uložených profilech v následujících formuláří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 GET žádost o :metadata

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

Vrátí se CapabilityStatement zpráva obsahující následující informace o profilu us Core Patient, 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 "terminologií", jako jsou ověřování kódů, překlad kódů a rozšiřující se sady hodnot. Služba FHIR nepodporuje službu terminologie. Informace o podporovaných operacích ($),typech Typy prostředků ValueSet, StructureDefinition a CodeSystem jsou podporovány se základními operacemi CRUD a vyhledáváním (jak je definováno 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ů. V současné době bude služba brát v úvahu pouze před rozbalené vložené kódy. Zákazníci musí před použitím operace $validate nahrát na server FHIR podporované hodnoty. Prostředky ValueSet musí být odeslány na server FHIR pomocí PUT nebo podmíněné aktualizace, jak je uvedeno v části Ukládání profilů výše.

Další kroky

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

Poznámka:

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