Ukládání profilů v Rozhraní Azure API for 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í.
Azure API for FHIR umožňuje ověřovat prostředky na základě profilů 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. Definuje StructureDefinition
sadu pravidel pro obsah prostředku nebo datového typu, například jaké prvky má prostředek a jaké hodnoty mohou tyto prvky nabírat.
Níže 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 hodnotu 0, což znamená, že prvek je v konkrétním kontextu vyloučen.
- Omezte obsah prvku na jednu pevnou hodnotu.
- Definujte požadovaná rozšíření pro prostředek.
A StructureDefinition
je identifikována 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 způsob reprezentace 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, 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 se musí vytvářet nad základním prostředkem 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íže jsou uvedené některé běžné iG. Další informace najdete na konkrétním webu IG, kde se dozvíte více o IG a profilech, které jsou v něm definované:
Poznámka
Rozhraní Azure API for FHIR ve výchozím nastavení neukládá žádné profily z průvodců implementací. Budete je muset načíst do rozhraní Azure API for FHIR.
Přístup k profilům a ukládání profilů
Ukládání profilů
Pokud chcete ukládat profily v rozhraní Azure API for FHIR, můžete PUT
StructureDefinition
použít obsah profilu v textu požadavku. Aktualizace nebo 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 Azure API for FHIR base URL>/StructureDefinition/profile-id
Nebo
Podmíněná aktualizace: 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"
…
}
Pokud například chcete uložit us-core-allergyintolerance
profil, použijte následující příkaz pro zbytek s profilem základní alergie USA v těle. Do příkladu jsme zahrnuli fragment tohoto profilu.
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.",
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ů us Core. Pokud chcete získat nejaktuálnější profily, měli byste je získat přímo z HL7 a průvodce implementací, který je definuje.
Zobrazení profilů
Ke stávajícím vlastním profilům můžete přistupovat pomocí GET
požadavku GET http://<your Azure API for FHIR 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://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/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č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 rozhraní Azure API for FHIR.
Azure API for FHIR nevrací StructureDefinition
instance pro základní profily, ale najdete je 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
Seznam Capability Statement
všech možných chování rozhraní Azure API for FHIR Azure API for FHIR aktualizuje příkaz capability o podrobnosti o uložených profilech v těchto formách:
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
Pokud například uložíte profil základního pacienta 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 pošlete žádost o GET
:metadata
GET http://<your Azure API for FHIR base URL>/metadata
Vrátíte se spolu s následujícími CapabilityStatement
informacemi o profilu základního pacienta USA, který jste nahráli do rozhraní Azure API for 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é mohou 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 Azure API for 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 brát v úvahu 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 se svolením HL7.