Megosztás a következőn keresztül:


FHIR keresési példák

Az alábbiakban példákat láthat a Fast Healthcare Együttműködési erőforrások (FHIR®) keresési API-hívásaira, amelyek különböző keresési paramétereket, módosítókat, láncolt és fordított láncolt kereséseket, összetett kereséseket, POST keresési kérelmeket és egyebeket mutatnak be. Az FHIR keresési fogalmainak általános bemutatása: Az FHIR-keresés áttekintése.

Keresési eredmény paraméterei

_include

_include lehetővé teszi az erőforráspéldányok keresését, és a célerőforrás-példányok által hivatkozott egyéb erőforrásokat is belefoglalhatja az eredményekbe. Használhatja például az erőforrások lekérdezésétMedicationRequest, _include és a keresést egy adott betegre vonatkozó vényekre korlátozhatja. Az FHIR szolgáltatás ezután visszaadja az MedicationRequest erőforrásokat és a hivatkozott erőforrást Patient . A következő példában a kérés lekéri az adatbázis összes MedicationRequest erőforráspéldányát és a példányok által MedicationRequest hivatkozott összes beteget.

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

Feljegyzés

Az Azure Health Data Services FHIR szolgáltatása legfeljebb 100 elem keresését _include korlátozza, és _revinclude legfeljebb 100 elemet ad vissza.

_revinclude

_revinclude lehetővé teszi az erőforráspéldányok keresését, és a találatok között a célerőforrás-példányokra hivatkozó egyéb erőforrásokat is felvehet. Megkeresheti például a betegeket, majd megfordíthatja a betegekre hivatkozó összes találkozást.

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

_elements

_elements a keresési eredményekben szereplő információkat az erőforrástípushoz definiált elemek egy részhalmazára szűkíti. A _elements paraméter elfogadja az alapelemek vesszővel tagolt listáját.

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

Az előző kérés egy betegcsomagot ad vissza. Minden bejegyzés csak az azonosítókat és a beteg aktív állapotát tartalmazza. A válasz bejegyzései olyan értéket SUBSETTED tartalmaznakmeta.tag, amely azt jelzi, hogy nem minden, az erőforráshoz definiált elem szerepel benne.

Keresési módosítók

:not

:not lehetővé teszi olyan erőforrások keresését, amelyek egy adott értékkel nem rendelkező elemhez tartoznak. Kereshet például olyan betegeket, akik nem nők.

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

Cserébe minden Patient olyan erőforrást megkap, amelynek gender elemértéke nem female, beleértve a nemi értékkel nem rendelkező betegeket is. Ez eltér a nemi értékkel rendelkező erőforrások keresésétől Patient , mivel ez figyelmen kívül hagyná a male meghatározott nemű betegeket.

:missing

:missing Visszaadja az összes olyan erőforrást, amely nem rendelkezik értékkel a megadott elemhez, amikor :missing=true. Emellett :missing a megadott elemet tartalmazó összes erőforrást visszaadja, ha :missing=false. Egyszerű adattípus-elemek esetén az összes olyan erőforráson megegyezik, :missing=true ahol egy elem jelen van, de üres értékkel rendelkezik. Ha például az összes Patient olyan erőforrást meg szeretné keresni, amelyről birthdatehiányzik információ, az alábbi hívást kezdeményezheti.

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

:exact

:exact adattípusú string elemek keresésére szolgál, és pozitív eredményt ad vissza, ha a paraméter értéke pontosan egyezik az elemérték kis- és nagybetűivel és teljes karaktersorozatával.

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

Ez a kérés olyan erőforrásokat ad Patient vissza, amelyek neve given vagy family neve Jon. Ha vannak olyan betegek, akiknek Jonathan például vagy JON, a keresés figyelmen kívül hagyná ezeket az erőforrásokat, mivel a nevük nem felel meg pontosan a megadott értéknek.

:contains

:contains típuselemek lekérdezésére string szolgál, és lehetővé teszi a megadott értékkel való egyezéseket bárhol a mezőben. contains nem megkülönbözteti a kis- és nagybetűket, és felismeri a más karakterekkel összefűzött egyező sztringeket. Példa:

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

Ez a kérés a "Rét" sztringet tartalmazó elemmezőkkel rendelkező address összes Patient erőforrást visszaadja (a kis- és nagybetűk nem érzékenyek). Ez azt jelenti, hogy olyan értékekkel rendelkező címek is lehetnek, mint a "Meadows Lane", a "Pinemeadow Place" vagy a "Meadowlark St", amelyek pozitív találatokat adnak vissza.

Ha olyan keresési műveleteket szeretne végrehajtani, amelyek a hivatkozott erőforrás elemeit fedik le, paraméterek sorozatát is "láncba" helyezheti.. Ha például az összes DiagnosticReport erőforrást egy megadott betegre namemutató hivatkozással subject szeretné megtekinteni, használja az alábbi lekérdezést.

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

Ez a kérés minden DiagnosticReport olyan erőforrást visszaad, amelynek egy "Sarah" nevű beteg tárgya van. A . láncolt keresés name a hivatkozott Patient erőforráson belüli elemre mutat.

Az FHIR keresés egy másik gyakori használata, ha egy adott beteg minden találkozását megtalálja. Ha rendszeresen (nem láncolt) szeretne keresni olyan erőforrásokatEncounter, amelyek egy adott id erőforrásra hivatkoznakPatient, használja az alábbiakat.

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

Láncolt kereséssel megtalálhatja az összes Encounter olyan erőforrást, amely egy keresési paraméternek megfelelő betegre hivatkozik. Az alábbi példa bemutatja, hogyan kereshet olyan találkozásokat, amelyek a betegekre birthdatehivatkoznak.

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

Ez az összes Encounter olyan példányt visszaadja, amely a megadott birthdate értékkel rendelkező betegekre hivatkozik.

Emellett több láncolt keresést is kezdeményezhet az & operátorral, amely lehetővé teszi, hogy egyetlen kérelemben több hivatkozásra keressen. Azokban az esetekben, amikor a &láncolt keresés "egymástól függetlenül" keres minden elemértéket.

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

Ez visszaadja az összes Patient olyan erőforrást, amely "Sarah"-ra hivatkozik, valamint generalPractitioner egy generalPractitioner olyan hivatkozásra, amely Washington államban rendelkezik címmel. Más szóval, ha egy betegnek van egy generalPractitioner Sarah nevű New York államból, és egy másik generalPractitioner nevű Bill Washington államból, mindkettő megfelel a feltételeknek a pozitív egyezést, amikor ezt a keresést.

Azokban a forgatókönyvekben, amelyekben a kereséshez logikai ÉS feltétel szükséges, amely szigorúan ellenőrzi a párosított elemértékeket, tekintse meg az alábbi összetett keresési példákat.

Fordított láncú keresés használata az FHIR-ben lehetővé teszi a más erőforrások által hivatkozott célerőforrás-példányok keresését. Más szóval az erőforrásokat a hivatkozó erőforrások tulajdonságai alapján keresheti meg. Ez a paraméterrel _has történik. Az erőforrás például egy keresési paraméterrel patient rendelkezik, Observation amely egy erőforrásra Patient mutató hivatkozást keres. Egy adott codeerőforrás által Observation hivatkozott összes Patient erőforrás megkereséséhez használja az alábbi kódot.

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

Ez a kérés olyan erőforrásokat ad Observation visszaPatient, amelyekre a kóddal 527rendelkező erőforrások hivatkoznak.

Emellett a fordított láncolt keresés rekurzív struktúrával is rendelkezhet. Ha például az összes olyan beteget szeretné megkeresni, akinek Observation a megfigyelésére egy nevesített janedoeorvos hivatkozikAuditEvent, használja a következőt:

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

Ha logikailag összekapcsolt párként csoportosított elemeket tartalmazó erőforrásokat szeretne keresni, az FHIR összetett keresést határoz meg, amely egyetlen paraméterértékeket kapcsol össze az $ operátorral – egy csatlakoztatott paraméterpárt alkotva. Összetett keresés esetén pozitív egyezés akkor fordul elő, ha az elemértékek metszete megfelel a párosított keresési paraméterekben beállított összes feltételnek. Az alábbi példa az összes DiagnosticReport olyan erőforrást lekérdezi, amely a következőnél 9.2kisebb káliumértéket tartalmaz:

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

Ebben az esetben a párosított elemek az code elem (a Observation hivatkozott resulterőforrásból) és a value hozzá codekapcsolódó elem lesznek. A kódot követve az $ operátor a value feltételt lt (a kálium-mmol/L értéknél kisebb) 9.2 értékre állítja be.

Összetett keresési paraméterekkel több összetevőkód-értékmennyiséget is szűrhet logikai VAGY értékkel. Ha például 90-nél nagyobb diasztolés vérnyomással vagy 140-nél nagyobb szisztolés vérnyomással kapcsolatos megfigyeléseket szeretne lekérdezni:

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

Figyelje meg, hogyan , működik logikai VAGY operátorként a két feltétel között.

A következő bejegyzéskészlet megtekintése

A keresési lekérdezésekből egyszerre visszaadható erőforrások maximális száma 1000. Előfordulhat azonban, hogy több mint 1000 erőforráspéldánya van, amelyek megfelelnek a keresési lekérdezésnek, és az első 1000 bejegyzés után szeretné lekérni a következő találatkészletet. Ebben az esetben a folytatási (vagyis "next") jogkivonat url értékét a keresésből visszaadott csomagban searchset az alábbiak szerint használhatja.

    "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"
        }
    ],

A megadott URL-címmel kapcsolatos kérést GET kell megadnia:

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

Ez a keresési eredmények következő bejegyzéskészletét adja vissza. A searchset csomag a keresési eredmények bejegyzéseinek teljes készlete, a folytatási jogkivonat url pedig az FHIR szolgáltatás által az első részhalmazba nem illő bejegyzések lekérésére szolgáló hivatkozás (az egy oldalra visszaadott bejegyzések maximális számának korlátozása miatt).

Keresés a következő használatával: POST

Az itt említett összes keresési példa kéréseket használ GET . Az FHIR keresési API-hívásokat azonban a paraméterrel POST az _search alábbiak szerint is kezdeményezheti.

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

Ez a kérés a megadott id értékkel visszaadja az Patient erőforráspéldányt. GET A kérésekhez hasonlóan a kiszolgáló határozza meg, hogy mely erőforráspéldányok felelnek meg a feltételeknek, és egy csomagot ad vissza a HTTP-válaszban.

A keresés POST másik funkciója, hogy lehetővé teszi a lekérdezési paraméterek űrlap törzsként való elküldését.

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

name=John

Következő lépések

Ebben a cikkben megismerkedett az FHIR-ben való kereséssel keresési paraméterekkel, módosítókkal és egyéb módszerekkel. Az FHIR kereséssel kapcsolatos további információkért lásd:

Feljegyzés

Az FHIR® a HL7 bejegyzett védjegye, amelyet a HL7 engedélyével használnak.