Aracılığıyla paylaş


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 femaletü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=falsebelirtilen öğ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 birthdateeksik 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 Jonsahip given kaynakları döndürürPatient. veya JONgibi 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.

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 namebelirtilen 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 idbir 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 birthdatedaraltı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.

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 codebir Observation ile başvuruda bulunan tüm Patient kaynakları bulmak için:

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

Bu istek, koduyla 527kaynaklar 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ı janedoebelirli 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

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.2bir 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 codebağlanan öğe olacaktır coderesult. 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.