Aracılığıyla paylaş


FHIR için Azure API için FHIR arama örnekleri

Önemli

FHIR İçin Azure API'si 30 Eylül 2026 tarihinde kullanımdan kaldırılacaktır. Bu tarihe kadar Azure Health Data Services FHIR® hizmetine geçiş yapmak için geçiş stratejilerini izleyin. FHIR İçin Azure API'sinin kullanımdan kaldırılması nedeniyle 1 Nisan 2025 tarihinden itibaren yeni dağıtımlara izin verilmeyecektir. Azure Health Data Services FHIR hizmeti , müşterilerin FHIR, DICOM ve MedTech hizmetlerini diğer Azure hizmetleriyle tümleştirmelerle yönetmesine olanak tanıyan FHIR için Azure API'sinin gelişmiş sürümüdür.

Aşağıda arama parametreleri ve değiştiriciler, zincir ve ters zincir araması, bileşik arama, arama sonuçları için sonraki giriş kümesini görüntüleme ve istekle POST arama gibi Hızlı Sağlık Hizmetleri Birlikte Çalışabilirlik Kaynakları (FHIR®) arama işlemlerini kullanma örnekleri verilmiştir. Arama hakkında daha fazla bilgi için bkz . FHIR Arama'ya Genel Bakış.

Arama sonucu parametreleri

_kapsamak

_include kaynağın belirtilen parametresini içeren kaynaklar arasında aramalar. Örneğin, yalnızca parametresi patientolan reference belirli bir hastanın reçeteleri hakkında bilgi içerenleri bulmak için kaynaklar arasında MedicationRequest arama yapabilirsiniz. Aşağıdaki örnek, 'den başvuruda bulunan MedicationRequests tüm ve tüm hastaları MedicationRequestsçeker.

 GET [your-fhir-server]/MedicationRequest?_include=MedicationRequest:patient

Not

_include ve _revinclude 100 öğeyle sınırlıdır.

_revinclude

_revinclude olarak ters yönde _includearama yapmanızı sağlar. Örneğin, hastaları arayabilir ve ardından hastalara başvuran tüm karşılaşmaları geri alabilirsiniz:

GET [your-fhir-server]/Patient?_revinclude=Encounter:subject

_Öğe

_elements gereksiz verileri atlayarak yanıt boyutunu küçültmek için arama sonucunu alanların bir alt kümesine daraltır. parametresi, temel öğelerin virgülle ayrılmış bir listesini kabul eder.

GET [your-fhir-server]/Patient?_elements=identifier,active

Bu istekten, her kaynağın yalnızca tanımlayıcıları ve hastanın etkin durumunu içerdiği bir hasta paketi alırsınız. Bu yanıttaki kaynaklar, tamamlanmamış bir meta.tag SUBSETTED sonuç kümesi olduğunu belirtmek için değerini içerir.

Arama değiştiricileri

:değil

:not bir özniteliğin doğru olmadığı kaynakları bulmanıza olanak tanır. Örneğin, cinsiyetin kadın olmadığı hastaları arayabilirsiniz.

GET [your-fhir-server]/Patient?gender:not=female

Dönüş değeri olarak, boş değerler (cinsiyet olmadan belirtilen girdiler) dahil olmak üzere cinsiyetin dişi olmadığı tüm hasta girdilerini alırsınız. Bu, cinsiyetin erkek olduğu hastaları aramaktan farklıdır, çünkü bu, belirli bir cinsiyet olmadan girişleri içermez.

:eksik

:missing değeri olduğunda belirtilen öğe için değeri olmayan tüm kaynakları döndürür ve değeri trueolduğunda falsebelirtilen öğeyi içeren tüm kaynakları döndürür. Basit veri türü öğeleri için, :missing=true öğesinin uzantılarla mevcut olduğu ancak boş bir değere sahip olduğu tüm kaynaklarla eşleşir. Aşağıdaki örnekte, doğum tarihinde eksik bilgiler olan tüm Patient kaynakların nasıl bulunduğunu gösterilmektedir.

GET [your-fhir-server]/Patient?birthdate:missing=true

:kesin

:exact parametreler için string kullanılır ve büyük/küçük harf ve karakter birleştirme gibi parametreyle tam olarak eşleşen sonuçlar döndürür.

GET [your-fhir-server]/Patient?name:exact=Jon

Bu istek, adı ile tam olarak aynı Jonolan kaynakları döndürürPatient. Kaynağın veya joNgibi Jonathan adları olan Hastaları varsa, belirtilen değerle tam olarak eşleşmediğinden, arama kaynağı yoksayar ve atlar.

:Içerir

:contains parametreler için string kullanılır ve aranmakta olan alanın içindeki dizenin herhangi bir yerinde belirtilen değerin kısmi eşleşmelerine sahip kaynakları arar. contains büyük/küçük harfe duyarlı değildir ve karakter birleştirmeye izin verir. Örneğin:

GET [your-fhir-server]/Patient?address:contains=Meadow

Bu istek, "Meadow" dizesini içeren değerleri olan alanlara sahip address tüm Patient kaynakları döndürür. Bu, arama sonuçları olarak "Meadowers" veya "59 Meadow ST" gibi değerleri içeren adreslerin döndürülebileceği anlamına gelir.

Birden çok başvuru parametresini kapsayan bir dizi arama işlemi gerçekleştirmek için, başvuru parametreleri serisini nokta kullanarak .sunucu isteğine birer birer ekleyerek "zincirleyebilirsiniz". Örneğin, belirli namebir öğesini içeren bir Patient subject kaynağa başvuru içeren tüm DiagnosticReport kaynakları görüntülemek istiyorsanız:

 GET [your-fhir-server]/DiagnosticReport?subject:Patient.name=Sarah

Bu istek, "Sarah" adlı hasta konusu olan tüm DiagnosticReport kaynakları döndürür. Alandan Patient sonraki dönem., parametrenin başvuru parametresinde subject zincirlenmiş aramayı gerçekleştirir.

Düzenli bir aramanın (zincirlenmiş arama değil) bir diğer yaygın kullanımı, belirli bir hastanın tüm karşılaşmalarını bulmaktır. Patientgenellikle bir konu ile bir veya daha fazla Encounters vardır. Aşağıdaki, sağlanan idile için Patient tüm Encounter kaynakları arar.

GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f

Zincirleme aramayı kullanarak, gibi birthdatebelirli bir bilgi parçasıyla Patient eşleşen tüm Encounter kaynakları bulabilirsiniz.

GET [your-fhir-server]/Encounter?subject:Patient.birthdate=1987-02-20

Bu, belirtilen doğum tarihi değerine sahip tüm hastalarda kaynakların aranmasına Encounter olanak sağlar.

Buna ek olarak, zincirlenmiş arama, bir istekte birden çok koşul aramanıza olanak tanıyan simgesi &kullanılarak bir istekte birden çok kez yapılabilir. Böyle durumlarda zincirlenmiş arama, tek seferde yalnızca tüm koşulları karşılayan koşulları aramak yerine her parametreyi "bağımsız olarak" arar:

GET [your-fhir-server]/Patient?general-practitioner:Practitioner.name=Sarah&general-practitioner:Practitioner.address-state=WA

Bu, "Sarah" generalPractitioner değerini içeren ve wa eyaletinin adresini içeren tüm Patient generalPractitioner kaynakları döndürür. Başka bir deyişle, eyalet NY'den Sarah ve eyalet WA'sından Bill varsa, her ikisi de hastanın generalPractitioneradı olarak başvuruda bulunursa, her ikisi de döndürülür.

Aramanın grup olarak tüm koşulları kapsayan bir AND işlem olması gereken senaryolar için Bileşik arama'daki örneklere bakın.

Zincir arama, başvurdıkları kaynakların özelliklerine göre kaynakları aramanızı sağlar. Ters zincir aramasını kullanmak tam tersi yapmanıza olanak tanır. Parametresini kullanarak _has kaynaklara başvuran kaynakların özelliklerine göre arama yapabilirsiniz. Örneğin, bir Observation kaynağın Patient kaynağına başvuran bir arama parametresi patient vardır. Belirli codebir ile başvuruda bulunarak Observation tüm Hasta kaynaklarını bulmak için aşağıdakileri kullanın.

GET [base]/Patient?_has:Observation:patient:code=527

Bu istek, koduyla 527başvuruda Observation bulunan Hasta kaynaklarını döndürür.

Ayrıca ters zincir araması özyinelemeli bir yapıya sahip olabilir. Örneğin, aşağıdakiler gözlemin belirli bir kullanıcıdan janedoebir denetim olayına sahip olduğu tüm hastaları Observation arar.

GET [base]/Patient?_has:Observation:patient:_has:AuditEvent:entity:agent:Practitioner.name=janedoe

Not

FHIR için Azure API'de ve Azure Cosmos DB tarafından desteklenen açık kaynak FHIR sunucusunda zincirlenmiş arama ve ters zincirlenmiş arama bir MVP uygulamasıdır. Azure Cosmos DB'de zincirleme aramayı gerçekleştirmek için uygulama, arama ifadesinde adım adım ilerler ve eşleşen kaynakları çözümlemek için alt sorgular oluşturur. Bu, ifadenin her düzeyi için yapılır. Herhangi bir sorgu 100'den fazla sonuç döndürürse bir hata oluşur.

Aynı anda birden çok koşula uyan kaynakları aramak için, tek parametreli değerlerin bir dizisini simgesiyle $birleştiren bileşik bir arama kullanın. Sonuç, birleştirilmiş arama parametreleri tarafından belirtilen tüm koşullarla eşleşen kaynakların kesişimi olur. Bu tür arama parametreleri bileşik arama parametreleri olarak adlandırılır ve birden çok parametreyi iç içe yerleştirilmiş bir yapıda birleştiren yeni bir parametre tanımlar. Örneğin, aşağıdaki arama 9,2'den küçük veya buna eşit bir potasyum değeri içeren Observation tüm DiagnosticReport kaynakları bulur.

GET [your-fhir-server]/DiagnosticReport?result.code-value-quantity=2823-3$lt9.2

Bu istek, kodunu içeren 2823-3bileşeni belirtir ve bu durumda potasyum olabilir. Sembolün $ ardından, "küçüktür veya eşittir" 9.2 için ve potasyum değer aralığı için kullanılan lt bileşenin değerinin aralığını belirtir.

Sonraki giriş kümesinde arama

Tek bir arama sorgusu başına döndürülebilecek girdi sayısı üst sınırı 1000'dir. Arama sorgusuyla eşleşen 1.000'den fazla girdi varsa, 1000'den büyük girişleri görmek için aşağıdaki yordamı kullanabilirsiniz.
aşağıdaki Bundle sonuçta olduğu gibi içinde searchsetdevamlılık belirteci url değerini kullanın.

    "resourceType": "Bundle",
    "id": "98731cb7-3a39-46f3-8a72-afe945741bd9",
    "meta": {
        "lastUpdated": "2021-04-22T09:58:16.7823171+00:00"
    },
    "type": "searchset",
    "link": [
        {
            "relation": "next",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd"
        },
        {
            "relation": "self",
            "url": "[your-fhir-server]/Patient?_sort=_lastUpdated"
        }
    ],

Ardından alanının relation: nextaltında sağlanan URL için bir GET isteği yapın.

GET [your-fhir-server]/Patient?_sort=_lastUpdated&ct=WzUxMDAxNzc1NzgzODc5MjAwODBd

Bu, arama sonucunuz için sonraki girdi kümesini döndürür. searchset tam arama sonucu girdileri kümesidir ve devamlılık belirteciurl, sunucu tarafından ilk 1000'de görünmeyen girdileri almanız için sağlanan bağlantıdır.

POST kullanarak arama

Daha önce kullanılmış GET isteklerden bahsedilen tüm arama örnekleri. ayrıca kullanarak _searchistekleri kullanarak POST arama işlemleri yapabilirsiniz.

POST [your-fhir-server]/Patient/_search?_id=45

Bu istek 45 değerine sahip id kaynakları döndürürPatient. GET isteklerinde olduğu gibi, sunucu hangi kaynak kümesinin koşulu karşıladığını belirler ve HTTP yanıtında bir paket kaynağı döndürür.

Sorgu parametrelerinin form gövdesi olarak gönderildiği POST kullanarak aramanın bir diğer örneği aşağıdaki gibidir.

POST [your-fhir-server]/Patient/_search
content-type: application/x-www-form-urlencoded

name=John

Sonraki adımlar

Bu makalede, farklı arama parametreleri, değiştiriciler ve FHIR arama araçlarını kullanarak arama yapmayı öğrendiniz. FHIR Arama hakkında daha fazla bilgi için bkz.

Not

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