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 birthdate
hiá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.
Láncolt keresés
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 name
mutató 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 birthdate
hivatkoznak.
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áncolt keresés
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 code
erő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 527
rendelkező 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 janedoe
orvos hivatkozikAuditEvent
, használja a következőt:
GET {{FHIR_URL}}/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe
Összetett keresés
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.2
kisebb 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 result
erőforrásból) és a value
hozzá code
kapcsoló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.