Share via


Ö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şı arama yapmak isteyebileceğiniz senaryolar vardır. Bu makalede, Azure Health Veri Hizmetleri'ndeki FHIR hizmetinde kullanmak üzere kendi özel arama parametrelerinizi nasıl tanımlayabileceğiniz açıklanı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 yeniden dizin oluşturma işi çalıştırmanız gerekir. Aşağıda, FHIR hizmet veritabanının tamamını yeniden dizinlemeden ö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 ö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 parametresininPatient 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

Kod örneği, dağıtıldıkları konuma göre MedicationDispense kaynaklarını aramak için özel bir arama parametresinin nasıl oluşturulacağını gösterir. 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, siz arama parametresini veritabanına aktardı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 belirlemenin 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:

  • url: Arama parametresini açıklayan 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. Yukarıdaki "US Core Race" uzantısına sahip ö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 kullanabilirsiniz Resource; 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, özel türünde bir arama parametresi tanımlayamadığınız veya desteklenen bir bileşim olmadığı sürece 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 da 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 etme

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 birkaç yolu vardır.

İlk olarak, hangi değerlerin döndürüleceğini görmek için yeni bir arama parametresini test edebilirsiniz. Aşağıdaki komutu belirli bir kaynak örneğinde ç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 komutun çalıştırılması 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:

POST https://{{FHIR_URL}/{{RESOURCE}}/{{RESOURCE_ID}}/$reindex

Bu POST çağrıyı çalıştırmak, istekte belirtilen kaynak örneği için tanımlanan tüm arama parametrelerinin dizinlerini ayarlar. Bu çağrı, FHIR hizmet veritabanında bir değişiklik yapar. Artık üst bilgiyi trueolarak arayabilir ve ayarlayabilirsinizx-ms-use-partial-indices. Bu da FHIR hizmetinin, arama parametresinin dizini oluşturulmuş olan kaynaklardan herhangi birinin sonuçlarını döndürmesine neden olur( bu türdeki tüm kaynak örnekleri dizine alınmamış olsa bile).

Örneğimize devam edersek, etkinleştirmek SearchParameteriçin bir hastanın dizinini oluşturabilirsiniz:

POST {{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex

Ardından bir test araması yapın

  1. Irk açısından hasta için:
GET {{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
  1. 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 yeniden dizin 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}}/SearchParameterbu parametreyi arayabilirsiniz. Bu, standart arama parametrelerinin yanı sıra tüm özel parametreleri döndürür ve ihtiyacı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=USCoreRacebu 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. Bir yeniden dizin işini hemen ç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. Bir yeniden dizin işini hemen ç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.

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