Přehled vyhledávání ve službě Azure API for FHIR
Důležité
Rozhraní Azure API for FHIR bude vyřazeno 30. září 2026. Postupujte podle strategií migrace a do tohoto data přejděte na službu FHIR® služby Azure Health Data Services. Vzhledem k vyřazení rozhraní Azure API for FHIR nebudou nová nasazení od 1. dubna 2025 povolena. Služba FHIR služby Azure Health Data Services je vyvinutá verze rozhraní Azure API for FHIR, která zákazníkům umožňuje spravovat služby FHIR, DICOM a MedTech s integrací do jiných služeb Azure.
Specifikace FHIR (Fast Healthcare Interoperability Resources) definuje základy hledání prostředků FHIR®. Tento článek vás provede některými klíčovými aspekty vyhledávání prostředků v FHIR. Úplné podrobnosti o vyhledávání prostředků FHIR najdete ve specifikaci HL7 FHIR. V tomto článku uvádíme příklady syntaxe vyhledávání. Každé vyhledávání je proti vašemu serveru FHIR, který má obvykle adresu URL https://<FHIRSERVERNAME>.azurewebsites.net
. V příkladech používáme zástupný symbol {{FHIR_URL}} pro tuto adresu URL.
Hledání FHIR může být v konkrétním typu prostředku, zadaném oddílu nebo všech prostředcích. 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 pacienty v databázi, můžete použít následující požadavek.
GET {{FHIR_URL}}/Patient
Můžete také hledat pomocí POST
, což je užitečné, pokud je řetězec dotazu dlouhý. Pokud chcete hledat pomocí POST
, dají se parametry hledání odeslat jako text formuláře. To umožňuje delší a složitější řadu parametrů dotazu, které by mohly být obtížné zobrazit a pochopit v řetězci dotazu.
Pokud je žádost o vyhledávání úspěšná, obdržíte odpověď sady FHIR s typem searchset
. Pokud hledání selže, najdete podrobnosti o chybě v nápovědě OperationOutcome
, abyste pochopili, proč hledání selhalo.
V následujících částech se podíváme na různé aspekty vyhledávání. Jakmile si projdete tyto podrobnosti, projděte si naši stránku s ukázkami, která obsahuje příklady hledání, která můžete provést v rozhraní Azure API for FHIR.
Parametry vyhledávání
Vyhledávání jsou založená na různých atributech prostředku. Tyto atributy se nazývají parametry vyhledávání. Každý prostředek má sadu definovaných parametrů hledání. Aby bylo možné úspěšně vyhledávat, musí být parametr vyhledávání definován a indexován v databázi.
Každý parametr vyhledávání má definované datové typy. Následující tabulka popisuje podporu různých datových typů.
Upozorňující
V současné době dochází k problému při použití _sort
rozhraní Azure API for FHIR s zřetězeným vyhledáváním. Další informace najdete v opensourcovém problému č. 2344. Tento problém bude vyřešen během vydání v prosinci 2021.
Typ vyhledávacího parametru | Azure API for FHIR | Služba FHIR ve službě Azure Health Data Services | 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ů je popsán dále 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. Najdete je v následujícím seznamu spolu s jejich podporou v rámci rozhraní Azure API for FHIR.
Běžný parametr vyhledávání | Azure API for FHIR | Služba FHIR ve službě Azure Health Data Services | Komentář |
---|---|---|---|
_id | Ano | Yes | |
_lastUpdated | Ano | Yes | |
_značka | Ano | Yes | |
_typ | Ano | Yes | |
_bezpečnost | Ano | Yes | |
_profil | Ano | Yes | |
_má | Částečná | Ano | _has Podpora pro MVP v rozhraní Azure API for FHIR a verze operačního systému podporovaná službou Azure Cosmos DB. Další podrobnosti najdete v následující části řetězení. |
_dotaz | No | Ne | |
_filtr | No | Ne | |
_seznam | No | Ne | |
_Text | No | Ne | |
_obsah | No | Ne |
Parametry specifické pro prostředky
S rozhraním Azure API for FHIR podporujeme téměř všechny parametry hledání specifické pro prostředky definované specifikací FHIR. Na následujících odkazech jsou k dispozici pouze parametry hledání, které nepodporujeme.
Aktuální podporu parametrů hledání můžete zobrazit také v příkazu FHIR Capability s následujícím požadavkem.
GET {{FHIR_URL}}/metadata
Pokud chcete zobrazit parametry hledání v příkazu capability, přejděte k CapabilityStatement.rest.resource.searchParam
zobrazení parametrů hledání pro jednotlivé prostředky a CapabilityStatement.rest.searchParam
vyhledejte parametry hledání pro všechny prostředky.
Poznámka:
Rozhraní Azure API for FHIR automaticky nevytvoří ani neindexuje žádné parametry hledání, které nejsou definovány specifikací FHIR. Poskytujeme ale podporu pro definování vlastních parametrů hledání.
Složené parametry hledání
Složené vyhledávání umožňuje vyhledávat podle párů hodnot. Pokud byste například hledali pozorování výšky, ve kterém byla osoba 60 palců, měli byste se ujistit, že jedna komponenta pozorování obsahovala kód výšky a hodnotu 60. Nechtěli byste získat pozorování, kde byla uložena hmotnost 60 a výška 48, i když by pozorování měl záznamy, které jsou kvalifikované pro hodnotu 60 a kód výšky, pouze v různých částech součástí.
S rozhraním Azure API for FHIR podporujeme následující párování typů parametrů vyhledávání.
- Referenční informace, token
- Token, Datum
- Token, Číslo, Číslo
- Token, Množství
- Token, Řetězec
- Token, Token
Další informace najdete ve složených parametrech hledání HL7.
Poznámka:
Složené parametry hledání nepodporují modifikátory podle specifikace FHIR.
Modifikátory a předpony
Modifikátory umožňují upravit parametr vyhledávání. Následující tabulka obsahuje přehled všech modifikátorů FHIR a jejich podpory v rozhraní Azure API for FHIR.
Modifikátory | Azure API for FHIR | Služba FHIR ve službě Azure Health Data Services | Komentář |
---|---|---|---|
:nepřítomný | Ano | Yes | |
:přesný | Ano | Yes | |
:obsahuje | Ano | Yes | |
:Text | Ano | Yes | |
:type (odkaz) | Ano | Yes | |
:ne | 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 | Ne |
Pro parametry hledání, které mají konkrétní pořadí (čísla, kalendářní data a množství), můžete použít předponu parametru, která vám pomůže najít shody. Rozhraní Azure API for FHIR podporuje všechny předpony.
Parametry výsledků hledání
Pro usnadnění správy vrácených prostředků existují parametry výsledků hledání, které můžete použít. Podrobnosti o tom, jak používat jednotlivé parametry výsledků hledání, najdete na webu HL7 .
Parametry výsledků hledání | Azure API for FHIR | Služba FHIR ve službě Azure Health Data Services | Komentář |
---|---|---|---|
_elementy | Ano | Yes | |
_počítat | Ano | Yes | _count je omezeno na 1 000 prostředků. Pokud je nastavená hodnota vyšší než 1000, vrátí se pouze 1000 a v sadě se vrátí upozornění. |
_zahrnovat | Ano | Yes | Zahrnuté položky jsou omezeny na 100. _include v PaaS a OSS ve službě Azure Cosmos DB nezahrnuje podporu iterace (#2137). |
_revinclude | Ano | Yes | Zahrnuté položky jsou omezeny na 100. _revinclude v PaaS a OSS ve službě Azure Cosmos DB nezahrnuje podporu iterace (#2137). Pro chybný požadavek č. 1319 je také nesprávný stavový kód. |
_shrnutí | Ano | Yes | |
_totální | Částečná | Částečná | _total=none and _total=accurate |
_třídit | Částečná | Částečná | sort=_lastUpdated se podporuje v rozhraní Azure API for FHIR a službě FHIR. 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. |
_obsahoval | No | Ne | |
_containedType | No | Ne | |
_partitura | No | Číslo |
Poznámka:
Ve výchozím nastavení _sort
seřadí záznam ve vzestupném pořadí. Předponu '-'
můžete použít k řazení sestupně. Kromě toho služba FHIR a rozhraní Azure API for FHIR umožňují řazení pouze na jednom poli najednou.
Ve výchozím nastavení je rozhraní Azure API for FHIR 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 použít záhlaví Prefer a nastavit handling=strict
.
Zřetězený a zřetězený vyhledávání
Zřetězený vyhledávání umožňuje hledat pomocí vyhledávacího parametru u prostředku, na který odkazuje jiný prostředek. Pokud například chcete zjistit, kde je jméno pacienta Jane, použijte:
GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane
.
Podobně můžete provést reverzní zřetězené vyhledávání. To umožňuje získat prostředky, u kterých zadáte kritéria pro jiné prostředky, které na ně odkazují. Další 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.
Poznámka:
V rozhraní Azure API for FHIR a opensourcovém prostředí zálohovaném službou Azure Cosmos DB platí omezení, kdy každý poddotaz vyžadovaný pro zřetězený a zřetězený hledání vrátí jenom 1 000 položek. Pokud se najde více než 1 000 položek, zobrazí se následující chybová zpráva: "Poddotazy ve zřetězené výrazy nemůžou vrátit více než 1000 výsledků, použijte další selektivní kritéria." Pokud chcete získat úspěšný dotaz, budete muset být konkrétnější v tom, co hledáte.
Stránkování
Jak jsme už zmínili, výsledky hledání jsou stránkovanou sadou. Ve výchozím nastavení vrátí hledání 10 výsledků na stránku, ale to lze zvýšit (nebo snížit) zadáním _count
. V rámci sady bude odkaz na sebe, který obsahuje aktuální výsledek hledání. Pokud existují další shody, sada bude obsahovat další odkaz. Další odkaz můžete dál používat k získání dalších stránek výsledků. _count
je omezena na 1 000 položek nebo méně.
Další odkaz v sadě obsahuje limit velikosti tokenu pokračování o velikosti 3 kB. Pomocí hlavičky x-ms-documentdb-responsecontinuationtokenlimitinkb
můžete upravit velikost tokenu pokračování mezi 1 kB až 3 kB.
Rozhraní Azure API for FHIR v současné době podporuje pouze další odkaz v balíčcích a nepodporuje první, poslední nebo předchozí odkazy.
Další kroky
Teď, když jste se seznámili se základy vyhledávání, najdete na stránce s ukázkami hledání podrobnosti o tom, jak hledat pomocí různých parametrů hledání, modifikátorů a dalších scénářů hledání FHIR.
Poznámka:
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.