Přehled vyhledávání FHIR
Specifikace FHIR (Fast Healthcare Interoperability Resources) definuje rozhraní API pro dotazování prostředků v serverové databázi FHIR®. Tento článek vás provede klíčovými aspekty dotazování dat v FHIR. Úplné podrobnosti o rozhraní API pro vyhledávání FHIR najdete v dokumentaci k vyhledávání HL7 FHIR.
V tomto článku předvedeme syntaxi vyhledávání FHIR v příkladech volání rozhraní API se {{FHIR_URL}}
zástupným symbolem, který představuje adresu URL serveru FHIR. Pokud je služba FHIR ve službě Azure Health Data Services, bude https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.com
tato adresa URL .
Vyhledávání FHIR může být v určitém typu prostředku, zadaném oddílu nebo všech prostředcích v databázi serveru FHIR. Nejjednodušší způsob, jak provést vyhledávání v FHIR, je použít GET
požadavek. Pokud například chcete vyžádat všechny Patient
prostředky v databázi, můžete použít následující požadavek.
GET {{FHIR_URL}}/Patient
Můžete také hledat pomocí POST
. Pokud chcete hledat pomocí POST
, parametry hledání se doručí v textu požadavku. To usnadňuje odesílání dotazů s delší a složitější řadou parametrů.
POST
GET
Pokud je žádost o vyhledávání úspěšná, obdržíte sadu FHIR searchset
obsahující instance prostředků vrácené z hledání. Pokud hledání selže, v odpovědi najdete podrobnosti o OperationOutcome
chybě.
V následujících částech se podíváme na různé aspekty dotazování prostředků v FHIR. Jakmile si prohlédnete tato témata, podívejte se na stránku ukázek vyhledávání FHIR, která obsahuje příklady různých metod vyhledávání FHIR.
Parametry vyhledávání
Při hledání v FHIR hledáte v databázi prostředky, které splňují určitá kritéria. Rozhraní API FHIR určuje bohatou sadu parametrů hledání pro vyladění kritérií hledání. Každý prostředek v FHIR nese informace jako sadu prvků a vyhledávací parametry pracují s dotazem na informace v těchto prvech. Pokud se ve volání rozhraní API pro vyhledávání FHIR najde kladná shoda mezi parametry hledání požadavku a odpovídajícími hodnotami prvků uloženými v instanci prostředku, vrátí server FHIR sadu obsahující instance prostředků, jejichž prvky splňují kritéria hledání.
Pro každý parametr vyhledávání definuje specifikace FHIR datový typ , který lze použít. Podpora ve službě FHIR pro různé datové typy je popsána níže.
Typ vyhledávacího parametru | Služba FHIR ve službě Azure Health Data Services | Azure API for FHIR | Komentář |
---|---|---|---|
Číslo | Ano | Yes | |
datum | Ano | Yes | |
string | Yes | Yes | |
token | Ano | Yes | |
reference | Ano | Yes | |
složený | Částečná | Částečná | Seznam podporovaných složených typů najdete v tomto článku. |
množství. | Ano | Yes | |
uri | Ano | Yes | |
zvláštní | No | Ne |
Běžné parametry hledání
Existují běžné parametry hledání, které se vztahují na všechny prostředky v FHIR. Jsou uvedeny následujícím způsobem spolu s jejich podporou ve službě FHIR.
Běžný parametr vyhledávání | Služba FHIR ve službě Azure Health Data Services | Azure API for FHIR | Komentář |
---|---|---|---|
_id |
Ano | Ano | |
_lastUpdated |
Ano | Ano | |
_tag |
Ano | Ano | |
_type |
Ano | Ano | |
_security |
Ano | Ano | |
_profile |
Ano | Ano | |
_has |
Ano | Ano | |
_query |
No | No | |
_filter |
No | No | |
_list |
No | No | |
_text |
No | No | |
_content |
No | Ne |
Parametry specifické pro prostředky
Služba FHIR ve službě Azure Health Data Services podporuje téměř všechny parametry hledání specifické pro prostředky definované ve specifikaci FHIR. Parametry hledání, které nejsou podporované, jsou uvedené na následujících odkazech:
Aktuální podporu parametrů hledání můžete zobrazit také v příkazu FHIR Capability Statement s následujícím požadavkem:
GET {{FHIR_URL}}/metadata
Pokud chcete zobrazit podporované parametry hledání v příkazu capability, přejděte na CapabilityStatement.rest.resource.searchParam
parametry hledání specifické pro prostředek a CapabilityStatement.rest.searchParam
vyhledejte parametry hledání, které platí pro všechny prostředky.
Poznámka:
Služba FHIR ve službě Azure Health Data Services neindexuje automaticky parametry hledání, které nejsou definovány v základní specifikaci FHIR. Služba FHIR podporuje vlastní parametry hledání.
Složené parametry hledání
Složená vyhledávání v FHIR umožňují vyhledávat dvojice prvků jako logicky propojené jednotky. Pokud byste například hledali pozorování, ve kterých byla výška pacienta větší než 60 palců, měli byste se ujistit, že jedna vlastnost pozorování obsahovala kód výšky a hodnotu větší než 60 palců (hodnota by se měla týkat pouze výšky). Například byste nechtěli pozitivní shodu na pozorování s kódem výšky a kódem délky ramen přes 60 palců. Složené parametry hledání brání tomuto problému vyhledáváním v předem zadaných dvojicích prvků, jejichž hodnoty musí splňovat kritéria hledání, aby se kladná shoda vyskytla.
Služba FHIR ve službě Azure Health Data Services podporuje následující párování typů parametrů vyhledávání pro složená hledání.
- Referenční informace, token
- Token, Datum
- Token, Číslo, Číslo
- Token, Množství
- Token, Řetězec
- Token, Token
Další informace najdete v dokumentaci k parametrům složeného hledání HL7.
Poznámka:
Složené parametry vyhledávání nepodporují modifikátory podle specifikace FHIR.
Modifikátory a předpony
Modifikátory umožňují kvalifikovat parametry hledání s dalšími podmínkami. Níže je tabulka modifikátorů FHIR a jejich podpory ve službě FHIR.
Modifikátory | Služba FHIR ve službě Azure Health Data Services | Azure API for FHIR | Komentář |
---|---|---|---|
:missing |
Ano | Ano | |
:exact |
Ano | Ano | |
:contains |
Ano | Ano | |
:text |
Ano | Yes | |
:type (odkaz) |
Ano | Ano | |
:not |
Ano | Yes | |
:below (URI) |
Ano | Yes | |
:above (URI) |
Ano | Yes | |
:in (token) |
No | Ne | |
:below (token) |
No | Ne | |
:above (token) |
No | Ne | |
:not-in (token) |
No | No | |
:identifier |
No | Ne |
Pro parametry hledání, které mají určité pořadí (čísla, kalendářní data a množství), můžete použít předponu před hodnotou parametru k upřesnění kritérií hledání (například kde Patient?_lastUpdated=gt2022-08-01
předpona gt
znamená "větší než"). Služba FHIR ve službě Azure Health Data Services podporuje všechny předpony definované ve standardu FHIR.
Parametry výsledků hledání
FHIR určuje sadu parametrů výsledků hledání, která pomáhá spravovat informace vrácené z hledání. Podrobnosti o tom, jak používat parametry výsledků hledání v FHIR, najdete na webu HL7 . Následuje tabulka parametrů výsledků hledání FHIR a jejich podpora ve službě FHIR.
Parametry výsledků hledání | Služba FHIR ve službě Azure Health Data Services | Azure API for FHIR | Komentář |
---|---|---|---|
_elements |
Ano | Ano | |
_count |
Ano | Yes | _count je omezený na 1 000 prostředků. Pokud je nastavená hodnota vyšší než 1 000, vrátí se pouze 1000 a do sady se zahrne upozornění. |
_include |
Ano | Yes | Načtené položky jsou omezeny _include na 100. _include v PaaS a OSS ve službě Azure Cosmos DB nepodporuje :iterate (#2137). |
_revinclude |
Ano | Yes | Načtené položky jsou omezeny _revinclude na 100. _revinclude v PaaS a OSS ve službě Azure Cosmos DB nepodporuje :iterate (#2137). Pro chybný požadavek existuje také nesprávný stavový kód: #1319. |
_summary |
Ano | Yes | |
_total |
Částečná | Částečná | _total=none a _total=accurate |
_sort |
Částečná | Částečná | sort=_lastUpdated se podporuje ve službě FHIR. Pro službu FHIR a servery FHIR služby OSS SQL DB FHIR se podporuje řazení podle řetězců a polí dateTime. U databází Azure API for FHIR a OSS Azure Cosmos DB vytvořených po 20. dubnu 2021 se řazení podporuje podle jména, příjmení, narození a klinického data. |
_contained |
No | No | |
_containedType |
No | No | |
_score |
No | Ne |
Poznámka:
- Ve výchozím nastavení
_sort
uspořádá záznamy ve vzestupném pořadí. Předponu-
můžete také použít k řazení sestupně. Služba FHIR umožňuje řadit pouze podle jednoho pole najednou. - Služba FHIR podporuje vyhledávání zástupných znaků pomocí revinclude. Přidání parametru dotazu "." do dotazu revinclude směruje službu FHIR tak, aby odkazovala na všechny prostředky mapované na zdrojový prostředek.
Ve výchozím nastavení je služba FHIR ve službě Azure Health Data Services nastavená na lenientní zpracování. To znamená, že server ignoruje všechny neznámé nebo nepodporované parametry. Pokud chcete použít striktní zpracování, můžete zahrnout hlavičku Prefer
a nastavit handling=strict
.
Zřetězený a zřetězený vyhledávání
Zřetězený vyhledávání umožňuje provádět jemně cílené dotazy na prostředky, které mají odkaz na jiný prostředek. Pokud například chcete zjistit, kde je jméno pacienta Jane, použijte:
GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane
V .
předchozím požadavku směruje cestu zřetězeného hledání k cílovému parametru (name
v tomto případě).
Podobně můžete provést zpětné zřetězení hledání pomocí parametru _has
. To vám umožní načíst instance prostředků zadáním kritérií pro jiné prostředky, které odkazují na prostředky, které vás zajímají. Příklady zřetězených a obrácených zřetězených vyhledávání najdete na stránce s příklady hledání FHIR.
Stránkování
Jak jsme už zmínili, výsledky hledání FHIR jsou k dispozici ve stránkovaném formuláři na odkazu uvedeném v searchset
sadě. Ve výchozím nastavení služba FHIR zobrazí na stránce 10 výsledků hledání, ale dá se to zvýšit (nebo snížit) nastavením parametru _count
. Pokud je na jedné stránce více shod, obsahuje next
balíček odkaz. Opakované načítání z next
odkazu vrátí další stránky výsledků. Všimněte si, že hodnota parametru _count
nesmí překročit 1 000.
Služba FHIR ve službě Azure Health Data Services v současné době podporuje next
pouze odkaz a nepodporuje first
last
previous
ani odkazy v balíčcích vrácených z vyhledávání.
Často kladené dotazy
Co znamená "částečná podpora" v nepodporovaných parametrech hledání R4?
Některé parametry hledání specifické pro prostředek pokrývají více než jeden datový typ a služba FHIR ve službě Azure Health Data Services může podporovat pouze tento parametr vyhledávání u jednoho z těchto datových typů. Například Condition-abatement-age a Condition-nástup-age pokrývají dva různé datové typy, Věk a Rozsah; Služba FHIR ve službě Azure Health Data Services však podporuje tyto dva parametry hledání v rozsahu, ale ne ve věku.
Podporuje se operace $lastn pro pozorování?
Tato funkce není podporovaná. Alternativním přístupem by bylo použití _count k omezení prostředků vrácených na stránku a _sort k poskytování výsledků v sestupném pořadí.
Další kroky
Teď, když jste se seznámili se základy vyhledávání FHIR, najdete na stránce ukázek hledání podrobnosti o tom, jak hledat pomocí parametrů hledání, modifikátorů a dalších metod hledání FHIR.
Poznámka:
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.