Aracılığıyla paylaş


FHIR arama örnekleri

Aşağıda çeşitli arama parametreleri, değiştiriciler, zincirlenmiş ve ters zincirlenmiş aramalar, bileşik aramalar POST , arama istekleri ve daha fazlasını içeren Hızlı Sağlık Hizmeti Birlikte Çalışabilirlik Kaynakları (FHIR®) arama API'leri çağrılarına örnekler 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 bulunan 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. FHIR hizmeti daha sonra kaynakları ve başvuruda Patient bulunan 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, _include _revinclude aramaları ve en fazla 100 öğe döndürecek şekilde 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 geriye doğru 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

Önceki istek bir hasta paketi döndürür. 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 belirtmek için değerini meta.tag 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ş femalehastalar da dahil olmak üzere öğe değeri olmayan tüm Patient kaynakları gender alırsınız. Bu, belirtilen cinsiyeti olmayan hastaları yoksayacağı için Patient cinsiyet değerine sahip male kaynakları aramaktan farklıdır.

:missing

:missing , olduğunda :missing=truebelirtilen öğe için değeri olmayan tüm kaynakları döndürür. 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 bulunduğu ancak boş bir değere sahip olduğu tüm kaynaklarda eşleşir. Örneğin, üzerinde birthdateeksik olan tüm Patient kaynakları bulmak istiyorsanız aşağıdaki çağrıyı yapabilirsiniz.

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. Örneğin:

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 bir 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 aşağıdaki sorguyu kullanın.

 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 bulunan kaynağın name içindeki öğesine işaret ederPatient.

FHIR aramasının bir diğer yaygın kullanımı, belirli bir hastanın tüm karşılaşmalarını bulmaktır. Normal (zincirsiz) bir arama yapmak için, belirli id bir kaynakla başvuruda Patient bulunan kaynakları aramak için Encounter aşağıdakileri kullanı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 zincirlenmiş arama başlatabilirsiniz ve bu da tek bir istekte birden çok başvuruda arama yapılmasına olanak tanır. ile ilgili &durumlarda zincirlenmiş 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ı, ayrıca Washington eyaletinde adresi olan bir generalPractitioner başvuru olarak generalPractitioner döndürür. Başka bir deyişle, bir hastanın New York eyaletinden Sarah adlı ve Washington eyaletinden Bill adlı başka generalPractitioner bir generalPractitioner hasta varsa, bu arama yaparken her ikisi de 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 aşağıdaki kodu kullanın.

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

Bu istek, koduyla 527kaynaklar tarafından Observation başvuruda bulunan kaynakları döndürürPatient.

Buna ek olarak, ters zincirlenmiş arama özyinelemeli bir yapıya sahip olabilir. Örneğin, gözlemin adlı janedoebelirli bir Observation uygulamacı tarafından başvurulduğu bir yerde başvuruda AuditEvent bulunan tüm hastaları aramak istiyorsanız şunu kullanın:

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 eşleşme oluşur. Aşağıdaki örnek, değerinden 9.2küçük bir potasyum değeri içeren tüm DiagnosticReport kaynaklar için sorgular:

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

Bu durumda eşlenen öğeler öğesi (olarak başvuruldu bir Observation kaynaktan) ve value ile codebağlantılı öğe olacaktırcode.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'dan büyük 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 1.000'den fazla kaynak örneğiniz olabilir ve ilk 1.000 girdiden sonraki sonuç kümesini almak isteyebilirsiniz. Bu durumda, aramadan döndürülen paketteki searchset continuation (başka bir ifadeyle"next") belirteç url değerini aşağıdaki gibi kullanabilirsiniz.

    "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 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

Burada bahsedilen tüm arama örnekleri istekleri kullanır GET . Ancak parametresini kullanarak POST FHIR arama API'leri ç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. GET İsteklerde olduğu gibi sunucu da koşulları karşılayan kaynak örneklerini 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.

Not

FHIR®, HL7'nin tescilli ticari markasıdır ve HL7'nin izniyle kullanılır.