Özel arama parametrelerini tanımlama
FHIR® belirtimi, tüm kaynaklara uygulanan bir dizi arama parametresini tanımlar. Ayrıca, FHIR belirli kaynaklara özgü birçok arama parametresi tanımlar. Ancak, FHIR belirtimi tarafından standart bir arama parametresi olarak tanımlanmayan bir kaynaktaki bir öğeye karşı da arama yapmak isteyebilirsiniz. Bu makalede, Azure Health Veri Hizmetleri'ndeki FHIR hizmetinde kullanmak üzere kendi özel arama parametrelerinizi nasıl tanımlayabileceğiniz açıklanmaktadır.
Not
Bir arama parametresini her oluşturduğunuzda, güncelleştirdiğinizde veya sildiğinizde, canlı üretim için arama parametresini etkinleştirmek üzere bir reindex işi çalıştırmanız gerekir. Aşağıdaki FHIR hizmet veritabanının tamamını yeniden dizine almadan önce arama parametrelerini nasıl test edeceğinizi özetleyeceğiz.
Yeni arama parametresi oluşturma
Yeni bir arama parametresi oluşturmak için POST
FHIR hizmet veritabanına bir SearchParameter
kaynak eklemeniz gerekir.
POST {{FHIR_URL}}/SearchParameter
Aşağıdaki örneklerde yeni bir özel arama parametresi oluşturma gösterilmektedir.
Uygulama Kılavuzu'nda tanım başına yeni arama parametresi oluşturma
Aşağıdaki kod örneği, FHIR hizmet veritabanınızdaki kaynak türüne US Core Race arama parametresinin Patient
nasıl ekleneceğini gösterir.
{
"resourceType" : "SearchParameter",
"id" : "us-core-race",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "Returns patients with a race extension matching the specified code.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
Başvuru türüne sahip kaynak öznitelikleri için yeni arama parametresi oluşturma
Aşağıdaki kod örneğinde, dağıtıldıkları konuma göre MedicationDispense kaynaklarında arama yapmak için özel bir arama parametresinin nasıl oluşturulacağı gösterilmektedir. Bu, Başvuru türü için özel arama parametresi ekleme örneğidir.
{
"resourceType": "SearchParameter",
"id": "a3c28d46-fd06-49ca-aea7-5f9314ef0497",
"url": "{{An absolute URI that is used to identify this search parameter}}",
"version": "1.0",
"name": "MedicationDispenseLocationSearchParameter",
"status": "active",
"description": "Search parameter for MedicationDispense by location",
"code": "location",
"base": ["MedicationDispense"],
"target": ["Location"],
"type": "reference",
"expression": "MedicationDispense.location"
}
Not
Yeni arama parametresi, arama parametresini veritabanına aldıktan ve veritabanınızı yeniden dizine aldıktan POST
sonra FHIR hizmetinin yetenek deyiminde görünür. SearchParameter
yetenek deyiminde öğesini görüntülemek, FHIR hizmetinizde bir arama parametresinin desteklenip desteklenmediğini anlamanın tek yoludur. yetenek deyiminde öğesini bulamazsanız SearchParameter
, arama parametresini etkinleştirmek için veritabanınızı yeniden dizine almanız gerekir. Yeniden dizinleme işlemini tetiklemeden önce birden çok arama parametresi oluşturabilirsiniz POST
.
Kaynağın SearchParameter
önemli öğeleri şunlardır:
url
: Arama parametresini tanımlamak için benzersiz bir anahtar. HL7 gibi kuruluşlar, yukarıda ABD Çekirdek Yarışı arama parametresinde gösterildiği gibi tanımladıkları arama parametreleri için standart bir URL biçimi kullanır.code
: Kod öğesinde depolanan değer, bir API çağrısına dahil edildiğinde arama parametresi için kullanılan addır. "US Core Race" uzantısına sahip önceki örnek için, belirtilen kodlama sisteminden ayarlanan değerde nerede<code>
olduğunu arayabilirsinizGET {{FHIR_URL}}/Patient?race=<code>
. Bu çağrı, belirli bir ırkın tüm hastalarını alır.base
: Arama parametresinin hangi kaynak türleri için geçerli olduğunu açıklar. Arama parametresi tüm kaynaklar için geçerliyse kullanabilirsinizResource
; aksi takdirde, tüm ilgili kaynak türlerini listeleyebilirsiniz.target
: Arama parametresinin hangi kaynak türleriyle eşleştiklerini açıklar.type
: Arama parametresinin veri türünü açıklar. Tür, FHIR hizmetindeki veri türleri desteğiyle sınırlıdır. Bu, desteklenen bir birleşim olmadığı sürece Özel türünde bir arama parametresi tanımlayamadığınız veya bileşik arama parametresi tanımlayamadığınız anlamına gelir.expression
: Arama için değerin nasıl hesaplandığı açıklanır. Bir arama parametresini açıklarken, belirtim için gerekli olmasa bile ifadeyi eklemeniz gerekir. Bunun nedeni, ifadeye veya xpath söz dizimine ihtiyacınız olmasıdır ve FHIR hizmeti xpath söz dizimini yoksayar.
Yeni arama parametrelerini test edin
Yeniden dizinleme işi çalıştırmadan üretimde yeni arama parametrelerini kullanamazsınız ancak veritabanının tamamını yeniden dizine almadan önce özel arama parametrelerinizi test etmenin yolları vardır.
İlk olarak, hangi değerlerin döndürüldiğini görmek için yeni bir arama parametresini test edebilirsiniz. Belirli bir kaynak örneğinde aşağıdaki komutu çalıştırarak (kaynak kimliğini sağlayarak), arama parametresi adına ve ilgili öğede depolanan değere sahip değer çiftlerinin listesini geri alırsınız. Bu liste, kaynağın tüm arama parametrelerini içerir. Oluşturduğunuz arama parametresini bulmak için ekranı kaydırabilirsiniz. Bu komutu çalıştırmak FHIR hizmetinizdeki hiçbir davranışı değiştirmez.
GET https://{{FHIR_URL}}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex
Örneğin, bir hastanın tüm arama parametrelerini bulmak için:
GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex
Sonuç şuna benzer:
{
"resourceType": "Parameters",
"id": "8be24e78-b333-49da-a861-523491c3437a",
"meta": {
"versionId": "1"
},
"parameter": [
{
"name": "deceased",
"valueString": "http://hl7.org/fhir/special-values|false"
},
{
"name": "language",
"valueString": "urn:ietf:bcp:47|en-US"
},
{
"name": "race",
"valueString": "2028-9"
}
]
...}
Arama parametrenizin beklendiği gibi görüntülendiğini gördüğünüzde, aramayı yeni arama parametrenizle test etmek için tek bir kaynağı yeniden dizine alabilirsiniz. Tek bir kaynağı yeniden dizine almak için aşağıdakileri kullanın.
POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex
Bu POST
çağrının çalıştırılması, istekte belirtilen kaynak örneği için tanımlanan tüm arama parametrelerinin dizinlerini ayarlar. Bu çağrı FHIR hizmet veritabanında değişiklik yapar. Artık arama yapabilir ve üst bilgiyi true
olarak ayarlayabilirsinizx-ms-use-partial-indices
. Bu, FHIR hizmetinin arama parametresi dizine alınan kaynaklardan herhangi birinin sonuçlarını döndürmesine neden olur( bu durumda, bu türdeki tüm kaynak örnekleri dizine alınmamış olsa bile).
Örneğimize devam edersek, etkinleştirmek SearchParameter
için bir hastanın dizinini ekleyebilirsiniz:
POST {{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex
Ardından test aramaları yapın:
- Yarışa göre hasta için:
GET {{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
- Konum için (başvuru türü)
{{fhirurl}}/MedicationDispense?location=<locationid referenced in MedicationDispense Resource>
x-ms-use-partial-indices: true
Yeni arama parametrenizi test ettikten ve beklendiği gibi çalıştığını onayladıktan sonra, yeni arama parametrelerinin canlı üretimde kullanılabilmesi için reindex işinizi çalıştırın veya zamanlayın.
FHIR hizmet veritabanınızı yeniden dizine alma hakkında bilgi için bkz . Yeniden dizin oluşturma işi çalıştırma.
Arama parametresini güncelleştirme
Arama parametresini güncelleştirmek için komutunu kullanarak PUT
arama parametresinin yeni bir sürümünü oluşturun. Arama parametresi kimliğini isteğin id
gövdesindeki PUT
alana ve istek dizesine PUT
eklemeniz gerekir.
Not
Arama parametrenizin kimliğini bilmiyorsanız, kullanarak GET {{FHIR_URL}}/SearchParameter
bu parametreyi arayabilirsiniz. Bu, tüm özel ve standart arama parametrelerini döndürür. İhtiyacınız olan arama parametresini bulmak için listeyi kaydırabilirsiniz. Aramayı ada göre de sınırlayabilirsiniz. Aşağıdaki örnek istekte gösterildiği gibi, özel SearchParameter
kaynak örneğinin adı şeklindedir USCoreRace
. kullanarak GET {{FHIR_URL}}/SearchParameter?name=USCoreRace
bu SearchParameter
kaynağı ada göre arayabilirsiniz.
PUT {{FHIR_URL}}/SearchParameter/{{SearchParameter_ID}}
{
"resourceType" : "SearchParameter",
"id" : "{{SearchParameter_ID}}",
"url" : "http://hl7.org/fhir/us/core/SearchParameter/us-core-race",
"version" : "3.1.1",
"name" : "USCoreRace",
"status" : "active",
"date" : "2019-05-21",
"publisher" : "US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "other",
"value" : "http://www.healthit.gov/"
}
]
}
],
"description" : "New Description!",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"code" : "race",
"base" : [
"Patient"
],
"type" : "token",
"expression" : "Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').extension.value.code"
}
Yukarıdaki isteğin sonucu güncelleştirilmiş SearchParameter
bir kaynak olacaktır.
Uyarı
Arama parametrelerini güncelleştirirken dikkatli olun. Mevcut bir arama parametresinin değiştirilmesi beklenen davranışı etkileyebilir. Hemen bir reindex işi çalıştırmanızı öneririz.
Arama parametresini silme
Bir arama parametresini silmeniz gerekiyorsa aşağıdakileri kullanın.
DELETE {{FHIR_URL}}/SearchParameter/{{SearchParameter_ID}}
Uyarı
Arama parametrelerini silerken dikkatli olun. Mevcut bir arama parametresinin silinmesi beklenen davranışı etkileyebilir. Hemen bir reindex işi çalıştırmanızı öneririz.
Sonraki adımlar
Bu makalede, özel arama parametresi oluşturmayı öğrendiniz. Ardından FHIR hizmet veritabanınızı yeniden dizine almayı öğrenebilirsiniz. Daha fazla bilgi için bkz.