FHIR arama örnekleri
Aşağıda çeşitli arama parametreleri, değiştiriciler, zincirleme ve ters zincirleme aramalar, bileşik aramalar POST
, arama istekleri ve daha fazlasını içeren Hızlı Sağlık Birlikte Çalışabilirliği Kaynakları (FHIR®) arama API'sinin bazı örnekleri verilmiştir. FHIR arama kavramlarına genel bir giriş için bkz. FHIR Aramasına Genel Bakış.
Arama sonucu parametreleri
_include
_include
kaynak örneklerini aramanıza ve sonuçlara hedef kaynak örnekleri tarafından başvuruda bulunılan diğer kaynakları eklemenize olanak tanır. Örneğin, kaynakları sorgulamak MedicationRequest
ve aramayı belirli bir hastanın reçeteleriyle sınırlamak için kullanabilirsiniz_include
. Daha sonra FHIR hizmeti hem kaynakları hem de başvuruda bulunılan Patient
kaynağı döndürürMedicationRequest
. Aşağıdaki örnekte, istek veritabanındaki tüm MedicationRequest
kaynak örneklerini ve örnekler tarafından MedicationRequest
başvuruda bulunan tüm hastaları çeker:
GET {{FHIR_URL}}/MedicationRequest?_include=MedicationRequest:patient
Not
Azure Health Veri Hizmetleri'ndeki FHIR hizmeti, aramaları ve en fazla 100 öğe döndürecek şekilde _include
_revinclude
sınırlar.
_revinclude
_revinclude
kaynak örneklerini aramanıza ve sonuçlara hedef kaynak örneklerine başvuran diğer kaynakları eklemenize olanak tanır. Örneğin, hastaları arayabilir ve ardından hastalara başvuran tüm karşılaşmaları dahil edebilirsiniz:
GET {{FHIR_URL}}/Patient?_revinclude=Encounter:subject
_elements
_elements
arama sonuçlarındaki bilgileri bir kaynak türü için tanımlanan öğelerin bir alt kümesine daraltır. _elements
parametresi, temel öğelerin virgülle ayrılmış bir listesini kabul eder:
GET {{FHIR_URL}}/Patient?_elements=identifier,active
Yukarıdaki istekte bir hasta paketi alırsınız, ancak her giriş yalnızca tanımlayıcıları ve hastanın etkin durumunu içerir. Yanıttaki girdiler, kaynak için tanımlanan tüm öğelerin dahil edilmediğini belirten bir meta.tag
değeri SUBSETTED
içerir.
Arama değiştiricileri
:not
:not
, belirli bir değere sahip olmayan bir öğeye sahip kaynakları bulmanıza olanak tanır. Örneğin, kadın olmayan hastaları arayabilirsiniz:
GET {{FHIR_URL}}/Patient?gender:not=female
Buna karşılık, cinsiyet değeri belirtilmemiş hastalar da dahil olmak üzere öğe değeri olmayan female
tüm Patient
kaynakları gender
alırsınız. Bu, cinsiyet değeri olan male
kaynakları aramaktan Patient
farklıdır çünkü bu, belirtilen cinsiyete sahip olmayan hastaları yok sayar.
:missing
:missing
, belirtilen öğe için değeri olmayan tüm kaynakları döndürür.:missing=true
Ayrıca, :missing
olduğunda :missing=false
belirtilen öğesini içeren tüm kaynakları döndürür. Basit veri türü öğeleri için, :missing=true
bir öğenin mevcut olduğu ancak boş bir değere sahip olduğu tüm kaynaklarda eşleşecektir. Örneğin, üzerinde birthdate
eksik bilgiler bulunan tüm Patient
kaynakları bulmak istiyorsanız şunları çağırabilirsiniz:
GET {{FHIR_URL}}/Patient?birthdate:missing=true
:exact
:exact
veri türlerine sahip string
öğeleri aramak için kullanılır ve parametre değeri, öğe değerinin büyük/küçük harf ve tam karakter dizisiyle tam olarak eşleşiyorsa pozitif döndürür.
GET {{FHIR_URL}}/Patient?name:exact=Jon
Bu istek, veya family
adına Jon
sahip given
kaynakları döndürürPatient
. veya JON
gibi Jonathan
adları olan hastalar varsa, adları belirtilen değerle tam olarak eşleşmediğinden arama bu kaynakları yoksayar.
:contains
:contains
tür öğelerini sorgulamak için string
kullanılır ve alanın herhangi bir yerinde belirtilen değerle eşleşmelere izin verir. contains
büyük/küçük harfe duyarlı değildir ve diğer karakterlerle birleştirilmiş eşleşen dizeleri tanır. Örnek:
GET {{FHIR_URL}}/Patient?address:contains=Meadow
Bu istek, "Meadow" dizesini (büyük/küçük harfe duyarsız) içeren öğe alanları olan address
tüm Patient
kaynakları döndürür. Bu, pozitif eşleşmeler döndüren "Meadows Lane", "Pinemeadow Place" veya "Meadowlark St" gibi değerlere sahip adreslere sahip olabileceğiniz anlamına gelir.
Zincirleme arama
Başvuruda bulunılan kaynağın içindeki öğeleri kapsayan arama işlemleri gerçekleştirmek için, bir dizi parametreyi ile .
birlikte "zincirleyebilirsiniz". Örneğin, tarafından name
belirtilen bir subject
hastaya başvuru içeren tüm DiagnosticReport
kaynakları görüntülemek istiyorsanız:
GET {{FHIR_URL}}/DiagnosticReport?subject:Patient.name=Sarah
Bu istek, "Sarah" adlı bir hasta konusu olan tüm DiagnosticReport
kaynakları döndürür. Zincirlenmiş .
aramayı başvuruda Patient
bulunan kaynağın name
içindeki öğeye gösterir.
FHIR aramasının bir diğer yaygın kullanımı, belirli bir hasta için tüm karşılaşmaları bulmaktır. Normal (zincirleme olmayan) bir arama yapmak içinEncounter
, belirli id
bir ile başvuruda Patient
bulunan kaynakları arayın:
GET {{FHIR_URL}}/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f
Zincirleme aramayı kullanarak, ayrıntıları bir arama parametresiyle eşleşen hastalara başvuran tüm Encounter
kaynakları bulabilirsiniz. Aşağıdaki örnekte, tarafından birthdate
daraltılmış hastalara başvuran karşılaşmaların nasıl arandığı gösterilmektedir:
GET {{FHIR_URL}}/Encounter?subject:Patient.birthdate=1987-02-20
Bu, belirtilen birthdate
değere sahip hastalara başvuran tüm Encounter
örnekleri döndürür.
Buna ek olarak, işlecini &
kullanarak birden çok zincirleme arama başlatabilirsiniz ve bu da tek bir istekte birden çok başvuruda arama yapılmasına olanak tanır. ile &
böyle durumlarda zincirleme arama her öğe değerini "bağımsız olarak" tarar:
GET {{FHIR_URL}}/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA
Bu, "Sarah" başvurusu olan tüm Patient
kaynakları artı olarak generalPractitioner
Washington durumunda adresi olan bir generalPractitioner
başvuru olarak döndürür. Başka bir deyişle, bir hastanın generalPractitioner
New York eyaletinden sarah ve Washington eyaletinden Bill adında bir generalPractitioner
hasta varsa, bu arama yaparken pozitif eşleşme koşullarını karşılar.
Aramanın eşleştirilmiş öğe değerlerini kesinlikle denetleyen bir mantıksal AND koşulu gerektirdiği senaryolar için aşağıdaki bileşik arama örneklerine bakın.
Zincirleme aramayı ters çevirme
FHIR'de ters zincirlenmiş arama kullanmak, diğer kaynaklar tarafından başvuruda bulunan hedef kaynak örneklerini aramanızı sağlar. Başka bir deyişle, kaynaklara başvuran kaynakların özelliklerine göre arama yapabilirsiniz. Bu, parametresiyle _has
gerçekleştirilir. Örneğin, kaynağın Observation
bir kaynağa başvuruyu denetlediği bir Patient
arama parametresi patient
vardır. belirli code
bir Observation
ile başvuruda bulunan tüm Patient
kaynakları bulmak için:
GET {{FHIR_URL}}/Patient?_has:Observation:patient:code=527
Bu istek, koduyla 527
kaynaklar tarafından Observation
başvuruda bulunılan kaynakları döndürürPatient
.
Buna ek olarak, ters zincirlenmiş arama özyinelemeli bir yapıya sahip olabilir. Örneğin, gözlemin adlı janedoe
belirli bir uygulayıcı tarafından başvurulduğu bir Observation
ile başvuruda AuditEvent
bulunan tüm hastaları aramak istiyorsanız:
GET {{FHIR_URL}}/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe
Bileşik arama
Mantıksal olarak bağlı çiftler olarak gruplandırılmış öğeleri içeren kaynakları aramak için FHIR, tek parametre değerlerini işleçle $
birleştiren bileşik aramayı tanımlar ve bağlı bir parametre çifti oluşturur. Bileşik aramada, öğe değerlerinin kesişimi eşleştirilmiş arama parametrelerinde ayarlanan tüm koşulları karşıladığında pozitif bir eşleşme oluşur. Örneğin, değerinden küçük 9.2
bir potasyum değeri içeren tüm DiagnosticReport
kaynakları bulmak istiyorsanız:
GET {{FHIR_URL}}/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2
Bu durumda eşlenen öğeler öğesi (olarak başvuruda bulunılan bir Observation
kaynaktan) ve value
ile code
bağlanan öğe olacaktır code
result
. işleci ile kodun $
takipi value
koşulu ("küçüktür") (potasyum mmol/L değeri için) 9.2
olarak lt
ayarlar.
Bileşik arama parametreleri, birden çok bileşen kodu değeri miktarlarını mantıksal VEYA ile filtrelemek için de kullanılabilir. Örneğin, diastolik kan basıncı 90 VEYA sistolik kan basıncı 140'tan büyük olan gözlemleri sorgulamak için:
GET {{FHIR_URL}}/Observation?component-code-value-quantity=http://loinc.org|8462-4$gt90,http://loinc.org|8480-6$gt140
İki koşul arasında mantıksal OR işleci olarak nasıl ,
çalıştığını unutmayın.
Sonraki giriş kümesini görüntüleme
Bir arama sorgusundan aynı anda döndürülebilecek en fazla kaynak sayısı 1000'dir. Ancak, arama sorgusuyla eşleşen 1000'den fazla kaynak örneğine sahip olabilirsiniz ve ilk 1000 girdiden sonraki sonuç kümesini almak isteyebilirsiniz. Böyle bir durumda, aramadan döndürülen pakette searchset
continuation (örn. "next"
) belirteç url
değerini kullanırsınız:
"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"
}
],
Sağlanan URL için bir GET
istekte bulunabilirsiniz:
GET {{FHIR_URL}}/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd
Bu, arama sonuçlarınız için bir sonraki girdi kümesini döndürür. Paket searchset
, arama sonucu girdilerinin tam kümesidir ve devamlılık belirteci url
, FHIR hizmeti tarafından ilk alt kümeye sığmayan girişleri almak için sağlanan bağlantıdır (bir sayfa için döndürülen en fazla girdi sayısı kısıtlaması nedeniyle).
Kullanarak arama POST
Yukarıda bahsedilen arama örneklerinin tümü istekleri kullanır GET
. Bununla birlikte, parametresini kullanarak POST
FHIR arama API'si çağrıları _search
da yapabilirsiniz:
POST {{FHIR_URL}}/Patient/_search?_id=45
Bu istek, verilen id
değere Patient
sahip kaynak örneğini döndürür. İsteklerde olduğu gibi GET
sunucu da hangi kaynak örneklerinin koşulları karşıladığını belirler ve HTTP yanıtında bir paket döndürür.
ile POST
aramanın bir diğer özelliği de sorgu parametrelerini form gövdesi olarak göndermenize olanak tanıyor olmasıdır:
POST {{FHIR_URL}}/Patient/_search
content-type: application/x-www-form-urlencoded
name=John
Sonraki adımlar
Bu makalede, arama parametrelerini, değiştiricileri ve diğer yöntemleri kullanarak FHIR'de arama hakkında bilgi edindiyseniz. FHIR araması hakkında daha fazla bilgi için bkz.
FHIR®, HL7'nin tescilli ticari markasıdır ve HL7 izniyle kullanılır.