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 patient
olan 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 _include
arama 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 true
olduğunda false
belirtilen öğ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ı Jon
olan kaynakları döndürürPatient
. Kaynağın veya joN
gibi 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.
Zincirleme arama
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 name
bir öğ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. Patient
genellikle bir konu ile bir veya daha fazla Encounter
s vardır. Aşağıdaki, sağlanan id
ile için Patient
tüm Encounter
kaynakları arar.
GET [your-fhir-server]/Encounter?subject=Patient/78a14cbe-8968-49fd-a231-d43e6619399f
Zincirleme aramayı kullanarak, gibi birthdate
belirli 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 generalPractitioner
adı 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.
Ters zincir araması
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 code
bir 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 527
baş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 janedoe
bir 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.
Bileşik arama
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-3
bileş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 searchset
devamlı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: next
altı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 _search
istekleri 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.