Sdílet prostřednictvím


Příklady hledání FHIR pro 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.

Tady jsou příklady použití vyhledávacích operací FHIR® (Fast Healthcare Interoperability Resources), včetně parametrů hledání a modifikátorů hledání, řetězu a zpětného řetězu hledání, složeného vyhledávání, zobrazení další sady položek pro výsledky hledání a hledání pomocí POST požadavku. Další informace o vyhledávání najdete v tématu Přehled vyhledávání FHIR.

Parametry výsledků hledání

_zahrnovat

_include vyhledá v rámci prostředků ty, které obsahují zadaný parametr prostředku. Můžete například hledat mezi MedicationRequest prostředky a najít pouze ty, které obsahují informace o předpisech pro konkrétního pacienta, což je reference parametr patient. Následující příklad vytáhne všechny MedicationRequests a všechny pacienty, na které se odkazuje z MedicationRequests.

 GET [your-fhir-server]/MedicationRequest?_include=MedicationRequest:patient

Poznámka:

_include a _revinclude jsou omezené na 100 položek.

_revinclude

_revinclude umožňuje prohledávat opačný směr jako _include. Můžete například vyhledat pacienty a pak vrátit zpět všechny výskyty, které odkazují na pacienty:

GET [your-fhir-server]/Patient?_revinclude=Encounter:subject

_elementy

_elements zužuje výsledek hledání na podmnožinu polí, aby se zmenšila velikost odpovědi vynecháním nepotřebných dat. Parametr přijímá čárkami oddělený seznam základních prvků.

GET [your-fhir-server]/Patient?_elements=identifier,active

Z této žádosti získáte sadu pacientů, kde každý prostředek obsahuje pouze identifikátory a aktivní stav pacienta. Prostředky v této odpovědi obsahují meta.tag hodnotu, která SUBSETTED označuje, že jsou neúplnou sadou výsledků.

Modifikátory hledání

:ne

:not umožňuje najít prostředky, ve kterých atribut není pravdivý. Můžete například vyhledat pacienty, u kterých pohlaví není žena.

GET [your-fhir-server]/Patient?gender:not=female

Jako návratová hodnota byste získali všechny položky pacientů, u kterých pohlaví není žena, včetně prázdných hodnot (položky zadané bez pohlaví). To se liší od hledání pacientů, u kterých je pohlaví muž, protože to by nezahrnuly položky bez určitého pohlaví.

:nepřítomný

:missing vrátí všechny prostředky, které nemají hodnotu pro zadaný prvek, pokud je truehodnota , a vrátí všechny prostředky, které obsahují zadaný prvek, pokud je falsehodnota . U jednoduchých prvků datového typu odpovídá všem prostředkům, :missing=true ve kterých je prvek k dispozici s rozšířeními, ale má prázdnou hodnotu. Následující příklad ukazuje, jak najít všechny Patient prostředky, které chybí informace o datu narození.

GET [your-fhir-server]/Patient?birthdate:missing=true

:přesný

:exact se používá pro string parametry a vrací výsledky, které odpovídají přesně danému parametru, například při zřetězení znaků a velikostí znaků.

GET [your-fhir-server]/Patient?name:exact=Jon

Tento požadavek vrátí Patient prostředky, které mají přesně stejný název jako Jon. Pokud by zdroj měl pacienti s názvy, jako Jonathan je nebo joN, hledání by ignorovalo a přeskočí prostředek, protože přesně neodpovídá zadané hodnotě.

:obsahuje

:contains se používá pro string parametry a hledá prostředky s částečnou shodou zadané hodnoty kdekoli v řetězci v prohledávaném poli. contains nerozlišuje malá a velká písmena a umožňuje zřetězení znaků. Příklad:

GET [your-fhir-server]/Patient?address:contains=Meadow

Tento požadavek vrátí všechny Patient prostředky s address poli, která obsahují hodnoty obsahující řetězec "Meadow". To znamená, že můžete mít adresy, které obsahují hodnoty jako "Meadowers" nebo "59 Meadow ST" vrácené jako výsledky hledání.

Pokud chcete provést řadu vyhledávacích operací, které pokrývají více referenčních parametrů, můžete "řetězit" řadu referenčních parametrů tak, že je připojíte k požadavku serveru jeden po druhém pomocí tečky .. Pokud například chcete zobrazit všechny DiagnosticReport prostředky s odkazem subject na Patient prostředek, který obsahuje konkrétní name:

 GET [your-fhir-server]/DiagnosticReport?subject:Patient.name=Sarah

Tato žádost by vrátila všechny DiagnosticReport prostředky s pacientem s názvem "Sarah". Tečka . za polem Patient provede zřetězený vyhledávací parametr odkazu parametru subject .

Dalším běžným použitím běžného vyhledávání (ne zřetězených vyhledávání) je nalezení všech setkání pro konkrétního pacienta. Patientčasto mají jeden nebo více Encounters předmětem. Následující příkaz vyhledá všechny Encounter prostředky pro Patient idzadané prostředky .

GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Pomocí zřetězených vyhledávání můžete najít všechny Encounter prostředky, které odpovídají určité části Patient informací, jako je například birthdate.

GET [your-fhir-server]/Encounter?subject:Patient.birthdate=1987-02-20

To by umožnilo prohledávat Encounter prostředky pro všechny pacienty, kteří mají zadanou hodnotu data narození.

Řetězené vyhledávání lze navíc provést vícekrát v jednom požadavku pomocí symbolu &, který umožňuje vyhledat více podmínek v jednom požadavku. V takových případech hledání zřetězený "nezávisle" hledá každý parametr místo hledání podmínek, které splňují pouze všechny podmínky najednou:

GET [your-fhir-server]/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Tím se vrátí všechny Patient prostředky, které mají "Sarah" jako generalPractitioner "Sarah" a mají generalPractitioner adresu se státem WA. Jinými slovy, pokud pacient měl Sarah ze státu NY a Bill ze státu WA oba odkazy jako pacient generalPractitioner, oba jsou vráceny.

Scénáře, ve kterých musí být AND operace, která zahrnuje všechny podmínky jako skupinu, najdete v příkladu ve složené hledání.

Řetězové vyhledávání umožňuje hledat prostředky na základě vlastností prostředků, na které odkazují. Pomocí zpětného řetězového vyhledávání to můžete udělat naopak. Pomocí parametru můžete hledat prostředky na základě vlastností prostředků, _has které na ně odkazují. Prostředek má například Observation vyhledávací parametr patient odkazující na prostředek Pacient. Pomocí následujícího příkazu vyhledejte všechny prostředky pacientů, na které Observation odkazuje konkrétní code.

GET [base]/Patient?_has:Observation:patient:code=527

Tento požadavek vrátí prostředky pacienta, na které Observation odkazuje kód 527.

Vyhledávání zpětného řetězu navíc může mít rekurzivní strukturu. Například následující hledání pro všechny pacienty, kteří mají Observation , kde má pozorování událost auditu od konkrétního uživatele janedoe.

GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Poznámka:

V rozhraní Azure API for FHIR a opensourcovém serveru FHIR založeném na službě Azure Cosmos DB je zřetězený vyhledávání a reverzní zřetězený vyhledávání implementace MVP. Aby bylo možné provést zřetězený vyhledávání ve službě Azure Cosmos DB, implementace provede vyhledávací výraz a vydá dílčí dotazy k vyřešení odpovídajících prostředků. To se provádí pro každou úroveň výrazu. Pokud některý dotaz vrátí více než 100 výsledků, vyvolá se chyba.

Chcete-li vyhledat prostředky, které splňují více podmínek najednou, použijte složené vyhledávání, které spojuje posloupnost hodnot jednoho parametru se symbolem $. Výsledkem by byl průnik prostředků, které odpovídají všem podmínkám zadaným připojenými parametry hledání. Tyto parametry hledání se nazývají složené parametry hledání a definují nový parametr, který kombinuje více parametrů ve vnořené struktuře. Například následující hledání najde všechny DiagnosticReport prostředky, které obsahují Observation hodnotu draslíku menší nebo rovnou 9,2.

GET [your-fhir-server]/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Tento požadavek určuje komponentu obsahující kód 2823-3, který by v tomto případě byl draselný. $ Za symbolem určuje rozsah hodnoty pro komponentu, která se používá lt pro "menší než nebo rovno" a 9.2 pro rozsah hodnot draselných hodnot.

Hledání další sady položek

Maximální počet položek, které lze vrátit na jeden vyhledávací dotaz, je 1 000. Pokud je více než 1 000 položek, které odpovídají vyhledávacímu dotazu, můžete pomocí následujícího postupu zobrazit položky větší než 1 000.
Jako v následujícím Bundle výsledku použijte hodnotu searchsettokenu url pokračování.

    "resourceType": "Bundle",
    "id": "98731cb7-3a39-46f3-8a72-afe945741bd9",
    "meta": {
        "lastUpdated": "2021-04-22T09:58:16.7823171+00:00"
    },
    "type": "searchset",
    "link": [
        {
            "relation": "next",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd"
        },
        {
            "relation": "self",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated"
        }
    ],

Pak proveďte požadavek GET na zadanou adresu URL v poli relation: next.

GET [your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Tím se vrátí další sada položek pro výsledek hledání. Jedná se searchset o úplnou sadu položek výsledků hledání a token url pokračování je odkaz poskytovaný serverem pro načtení položek, které se nezobrazují v prvních 1000.

Hledání pomocí POST

Všechny výše uvedené příklady hledání používaly GET požadavky. Můžete také provádět operace vyhledávání pomocí POST požadavků pomocí _search.

POST [your-fhir-server]/Patient/_search?_id=45

Tento požadavek vrátí Patient prostředky s id hodnotou 45. Stejně jako u požadavků GET server určuje, která sada prostředků splňuje podmínku, a vrátí prostředek sady prostředků v odpovědi HTTP.

Dalším příkladem hledání pomocí post, kde se parametry dotazu odesílají jako tělo formuláře, je následující.

POST [your-fhir-server]/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Další kroky

V tomto článku jste se dozvěděli, jak hledat pomocí různých parametrů hledání, modifikátorů a vyhledávacích nástrojů FHIR. Další informace o FHIR Search najdete v tématu

Poznámka:

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