Sdílet prostřednictvím


Příklady hledání FHIR

Následují příklady volání rozhraní API pro vyhledávání Fast Healthcare Interoperability Resources (FHIR®) s různými parametry hledání, modifikátory, zřetězenými a obrácenými zřetězenými vyhledáváními, složenými vyhledáváními, POST požadavky na vyhledávání a dalšími funkcemi. Obecný úvod do konceptů vyhledávání FHIR najdete v tématu Přehled vyhledávání FHIR.

Parametry výsledků hledání

_include

_include umožňuje vyhledat instance prostředků a zahrnout do výsledků další prostředky odkazované instancemi cílových prostředků. Můžete například použít _include dotaz na MedicationRequest prostředky a omezit vyhledávání na předpis pro konkrétního pacienta. Služba FHIR pak vrátí MedicationRequest prostředky a odkazovaný Patient prostředek. V následujícím příkladu žádost vyžádá všechny MedicationRequest instance prostředků v databázi a všechny pacienty, na které instance odkazují MedicationRequest .

 GET {{FHIR_URL}}/MedicationRequest?_include=MedicationRequest:patient

Poznámka:

Služba FHIR ve službě Azure Health Data Services omezuje vyhledávání a _include _revinclude vrací maximálně 100 položek.

_revinclude

_revinclude umožňuje vyhledat instance prostředků a zahrnout do výsledků další prostředky, které odkazují na cílové instance prostředků. Můžete například vyhledat pacienty a pak vrátit zpět všechna setkání, která odkazují na pacienty.

GET {{FHIR_URL}}/Patient?_revinclude=Encounter:subject

_elements

_elements zužuje informace ve výsledcích hledání na podmnožinu prvků definovaných pro typ prostředku. Parametr _elements přijímá čárkami oddělený seznam základních prvků.

GET {{FHIR_URL}}/Patient?_elements=identifier,active

Předchozí žádost vrátí svazek pacientů. Každá položka obsahuje pouze identifikátory a aktivní stav pacienta. Položky v odpovědi obsahují meta.tag hodnotu, která SUBSETTED označuje, že nejsou zahrnuty všechny prvky definované pro prostředek.

Modifikátory hledání

:not

:not umožňuje najít prostředky s prvkem, který nemá danou hodnotu. Můžete například vyhledat pacienty, kteří nejsou ženami.

GET {{FHIR_URL}}/Patient?gender:not=female

Ve vrácených hodnotách byste získali všechny Patient prostředky, jejichž gender hodnota prvku není female, včetně všech pacientů, kteří nemají zadanou hodnotu pohlaví. To se liší od hledání Patient zdrojů s genderovou male hodnotou, protože by to ignorovalo pacienty bez zadaného pohlaví.

:missing

:missing vrátí všechny prostředky, které nemají hodnotu pro zadaný prvek, když :missing=true. Kromě toho vrátí všechny prostředky, :missing které obsahují zadaný prvek při :missing=false. U jednoduchých prvků datového typu odpovídá všem prostředkům, :missing=true kde je prvek, ale má prázdnou hodnotu. Pokud například chcete najít všechny Patient prostředky, na které chybí informace birthdate, můžete provést následující volání.

GET {{FHIR_URL}}/Patient?birthdate:missing=true

:exact

:exact slouží k vyhledávání prvků s datovými string typy a vrací kladné, pokud hodnota parametru přesně odpovídá velikosti písmen a úplné posloupnosti znaků hodnoty prvku.

GET {{FHIR_URL}}/Patient?name:exact=Jon

Tento požadavek vrátí Patient prostředky, které mají given nebo family mají název Jon. Pokud by byli pacienti se jmény, jako Jonathan je nebo JON, hledání by tyto prostředky ignorovalo, protože jejich názvy neodpovídají zadané hodnotě přesně.

:contains

:contains slouží k dotazování na string elementy typu a umožňuje shody se zadanou hodnotou kdekoli v poli. contains nerozlišuje malá a velká písmena a rozpozná odpovídající řetězce zřetězené s jinými znaky. Příklad:

GET {{FHIR_URL}}/Patient?address:contains=Meadow

Tento požadavek vrátí všechny Patient prostředky s address poli prvků, které obsahují řetězec "Meadow" (nerozlišují malá a velká písmena). To znamená, že můžete mít adresy s hodnotami, jako je "Meadows Lane", "Pinemeadow Place" nebo "Meadowlark St", které vrací kladné shody.

Chcete-li provádět vyhledávací operace, které pokrývají prvky obsažené v odkazovaném prostředku, můžete "řetězit" řadu parametrů společně s .. Pokud například chcete zobrazit všechny DiagnosticReport prostředky s odkazem subject na pacienta určeného nameuživatelem, použijte následující dotaz.

 GET {{FHIR_URL}}/DiagnosticReport?subject:Patient.name=Sarah

Tato žádost vrátí všechny DiagnosticReport prostředky s pacientem s názvem "Sarah". Odkazuje . zřetězený hledání na name prvek v rámci odkazovaného Patient prostředku.

Dalším běžným použitím vyhledávání FHIR je nalezení všech setkání pro konkrétního pacienta. Chcete-li provést pravidelné (neřetězené) vyhledávání Encounter prostředků, které odkazují na Patient dané id použití, použijte následující.

GET {{FHIR_URL}}/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Pomocí zřetězených vyhledávání můžete najít všechny Encounter zdroje, které odkazují na pacienty, jejichž podrobnosti odpovídají parametru hledání. Následující příklad ukazuje, jak vyhledat setkání odkazující na pacienty zúžené .birthdate

GET {{FHIR_URL}}/Encounter?subject:Patient.birthdate=1987-02-20

Tím by se vrátily všechny Encounter výskyty, které odkazují na pacienty se zadanou birthdate hodnotou.

Kromě toho můžete zahájit více zřetězených hledání pomocí operátoru & , který umožňuje vyhledávání více odkazů v jednom požadavku. V případech s zřetězeným &vyhledáváním "nezávisle" vyhledá každou hodnotu prvku.

GET {{FHIR_URL}}/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Tím se vrátí všechny Patient prostředky, které mají odkaz na "Sarah" jako generalPractitioner plus odkaz na generalPractitioner adresu ve státě Washington. Jinými slovy, pokud měl generalPractitioner pacient jménem Sarah z New Yorku a jiný generalPractitioner bill ze státu Washington, obě by při tomto hledání splňovaly podmínky pro pozitivní shodu.

Scénáře, ve kterých hledání vyžaduje logickou podmínku AND, která přísně kontroluje spárované hodnoty prvků, najdete v následujících příkladech složeného vyhledávání .

Použití reverzního zřetězenýho vyhledávání v FHIR umožňuje vyhledat cílové instance prostředků odkazované jinými prostředky. Jinými slovy, můžete hledat prostředky na základě vlastností prostředků, které na ně odkazují. To se provádí pomocí parametru _has . Prostředek má například Observation parametr patient vyhledávání, který kontroluje odkaz na Patient prostředek. Pokud chcete najít všechny Patient prostředky, na které Observation odkazuje konkrétní code, použijte následující kód.

GET {{FHIR_URL}}/Patient?_has:Observation:patient:code=527

Tento požadavek vrátí Patient prostředky, na Observation které odkazují prostředky s kódem 527.

Zpětné zřetězený vyhledávání navíc může mít rekurzivní strukturu. Pokud například chcete vyhledat všechny pacienty odkazované na místo, kde Observation se na pozorování odkazuje AuditEvent konkrétní odborník s názvem janedoe, použijte:

GET {{FHIR_URL}}/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Pokud chcete vyhledat prostředky, které obsahují prvky seskupené jako logicky propojené páry, FHIR definuje složené vyhledávání, které spojuje hodnoty jednoho parametru společně s operátorem $ – tvoří propojený pár parametrů. Ve složeného vyhledávání dojde ke kladné shodě, když průnik hodnot prvků splňuje všechny podmínky nastavené ve spárovaných parametrech hledání. Následující příklad dotazuje všechny DiagnosticReport prostředky, které obsahují hodnotu draselné hodnoty menší než 9.2:

GET {{FHIR_URL}}/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Spárované prvky v tomto případě by byly code element (z Observation prostředku odkazovaného jako result) a value prvek spojený s code. Za kódem operátor $ nastaví podmínku value jako (pro lt "menší než") 9.2 (pro hodnotu mmol/L draselný).

Složené parametry hledání se dají použít také k filtrování množství hodnot kódu více součástí pomocí logického operátoru OR. Pokud chcete například dotazovat pozorování s diastolicovým krevním tlakem větším než 90 NEBO systolicovým krevním tlakem vyšším než 140:

GET {{FHIR_URL}}/Observation?component-code-value-quantity=http://loinc.org|8462-4$gt90,http://loinc.org|8480-6$gt140

Všimněte si, jak , funguje jako logický operátor OR mezi těmito dvěma podmínkami.

Zobrazení další sady položek

Maximální počet prostředků, které lze vrátit najednou z vyhledávacího dotazu, je 1 000. Můžete však mít více než 1 000 instancí prostředků, které odpovídají vyhledávacímu dotazu, a chcete načíst další sadu výsledků po prvních 1 000 položkách. V tomto případě byste použili hodnotu tokenu url pokračování (tj"next". ) v searchset sadě vrácenou z hledání následujícím způsobem.

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

Zadali byste požadavek na zadanou GET adresu URL:

GET {{FHIR_URL}}/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Tím se vrátí další sada položek pro výsledky hledání. Sada searchset je kompletní sada položek výsledků hledání a token url pokračování je odkaz poskytovaný službou FHIR k načtení položek, které se nevejdou do první podmnožiny (kvůli omezení maximálního počtu položek vrácených pro jednu stránku).

Hledání pomocí POST

Všechny zde uvedené příklady vyhledávání používají GET požadavky. Volání rozhraní API pro vyhledávání FHIR však můžete provést pomocí POST následujícího parametru _search .

POST {{FHIR_URL}}/Patient/_search?_id=45

Tento požadavek vrátí Patient instanci prostředku s danou id hodnotou. Stejně jako u GET požadavků server určuje, které instance prostředků splňují podmínky, a vrátí sadu v odpovědi HTTP.

Další funkcí vyhledávání POST je, že umožňuje odeslat parametry dotazu jako tělo formuláře.

POST {{FHIR_URL}}/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Další kroky

V tomto článku jste se dozvěděli o vyhledávání v FHIR pomocí parametrů hledání, modifikátorů a dalších metod. Další informace o vyhledávání FHIR najdete v tématu

Poznámka:

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