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í proAllergyIntolerance
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.