Bagikan melalui


Menentukan parameter pencarian kustom

Spesifikasi FHIR® mendefinisikan sekumpulan parameter pencarian yang berlaku untuk semua sumber daya. Selain itu, FHIR mendefinisikan banyak parameter pencarian yang khusus untuk sumber daya tertentu. Namun, Anda mungkin juga ingin mencari elemen dalam sumber daya yang tidak didefinisikan oleh spesifikasi FHIR sebagai parameter pencarian standar. Artikel ini menjelaskan bagaimana Anda dapat menentukan parameter pencarian kustom Anda sendiri untuk digunakan dalam layanan FHIR di Azure Health Data Services.

Catatan

Setiap kali membuat, memperbarui, atau menghapus parameter pencarian, Anda harus menjalankan pekerjaan reindex untuk mengaktifkan parameter pencarian untuk produksi langsung. Kami akan menguraikan bagaimana Anda dapat menguji parameter pencarian sebelum mengindeks ulang seluruh database layanan FHIR berikut ini.

Membuat parameter pencarian baru

Untuk membuat parameter pencarian baru, Anda perlu POST sumber SearchParameter daya ke database layanan FHIR.

POST {{FHIR_URL}}/SearchParameter

Contoh berikut menunjukkan pembuatan parameter pencarian kustom baru.

Membuat parameter pencarian baru per definisi di Panduan Implementasi

Contoh kode berikut menunjukkan cara menambahkan parameter pencarian Us Core Race ke Patient jenis sumber daya di database layanan FHIR Anda.

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

Membuat parameter pencarian baru untuk atribut sumber daya dengan jenis referensi

Contoh kode berikut menunjukkan cara membuat parameter pencarian kustom untuk mencari sumber daya MedicationDispense berdasarkan lokasi tempat mereka dispensasi. Ini adalah contoh menambahkan parameter pencarian kustom untuk jenis Referensi.

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

Catatan

Parameter pencarian baru akan muncul dalam pernyataan kemampuan layanan FHIR setelah Anda POST mencari parameter ke database dan mengindeks ulang database Anda. Melihat SearchParameter dalam pernyataan kemampuan adalah satu-satunya cara untuk mengetahui apakah parameter pencarian didukung di layanan FHIR Anda. Jika Anda tidak dapat menemukan SearchParameter dalam pernyataan kemampuan, maka Anda masih perlu mengindeks ulang database Anda untuk mengaktifkan parameter pencarian. Anda dapat POST beberapa parameter pencarian sebelum memicu operasi indeks ulang.

Elemen penting dari SearchParameter sumber daya adalah:

  • url: Kunci unik untuk menjelaskan parameter pencarian. Organisasi seperti HL7 menggunakan format URL standar untuk parameter pencarian yang mereka tentukan, seperti yang ditunjukkan di atas dalam parameter pencarian Us Core Race.

  • code: Nilai yang disimpan dalam elemen kode adalah nama yang digunakan untuk parameter pencarian saat disertakan dalam panggilan API. Untuk contoh sebelumnya dengan ekstensi "US Core Race", Anda akan mencari dengan GET {{FHIR_URL}}/Patient?race=<code> di mana <code> berada dalam nilai yang ditetapkan dari sistem pengkodian yang ditentukan. Panggilan ini akan mengambil semua pasien dari ras tertentu.

  • base: Menjelaskan jenis sumber daya mana yang diterapkan parameter pencarian. Jika parameter pencarian berlaku untuk semua sumber daya, Anda dapat menggunakan Resource; jika tidak, Anda dapat mencantumkan semua jenis sumber daya yang relevan.

  • target: Menjelaskan jenis sumber daya mana yang cocok dengan parameter pencarian.

  • type: Menjelaskan jenis data untuk parameter pencarian. Jenis dibatasi oleh dukungan untuk jenis data dalam layanan FHIR. Ini berarti Bahwa Anda tidak dapat menentukan parameter pencarian jenis Khusus atau menentukan parameter pencarian komposit kecuali itu adalah kombinasi yang didukung.

  • expression: Menjelaskan cara menghitung nilai untuk pencarian. Saat menjelaskan parameter pencarian, Anda harus menyertakan ekspresi, meskipun tidak diperlukan oleh spesifikasi. Ini karena Anda memerlukan ekspresi atau sintaks xpath dan layanan FHIR mengabaikan sintaks xpath.

Menguji parameter pencarian baru

Meskipun Anda tidak dapat menggunakan parameter pencarian baru dalam produksi sampai Anda menjalankan pekerjaan reindex, ada cara untuk menguji parameter pencarian kustom Anda sebelum mengindeks ulang seluruh database.

Pertama, Anda dapat menguji parameter pencarian baru untuk melihat nilai apa yang dikembalikan. Dengan menjalankan perintah berikut terhadap instans sumber daya tertentu (dengan menyediakan ID sumber daya), Anda mendapatkan kembali daftar pasangan nilai dengan nama parameter pencarian dan nilai yang disimpan dalam elemen yang sesuai. Daftar ini mencakup semua parameter pencarian untuk sumber daya. Anda dapat menggulir untuk menemukan parameter pencarian yang Anda buat. Menjalankan perintah ini tidak akan mengubah perilaku apa pun dalam layanan FHIR Anda.

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

Misalnya, untuk menemukan semua parameter pencarian untuk pasien:

GET https://{{FHIR_URL}}/Patient/{{PATIENT_ID}}/$reindex

Hasilnya terlihat seperti ini:

{
  "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"
    }
    ]
    ...}

Setelah melihat bahwa parameter pencarian Anda ditampilkan seperti yang diharapkan, Anda dapat mengindeks ulang satu sumber daya untuk menguji pencarian dengan parameter pencarian baru Anda. Untuk mengindeks ulang satu sumber daya, gunakan yang berikut ini.

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

Menjalankan panggilan ini POST mengatur indeks untuk parameter pencarian apa pun yang ditentukan untuk instans sumber daya yang ditentukan dalam permintaan. Panggilan ini memang membuat perubahan pada database layanan FHIR. Sekarang Anda dapat mencari dan mengatur x-ms-use-partial-indices header ke true, yang menyebabkan layanan FHIR mengembalikan hasil untuk salah satu sumber daya yang memiliki parameter pencarian yang diindeks, bahkan jika tidak semua instans sumber daya dari jenis tersebut mengindeksnya.

Melanjutkan dengan contoh kami, Anda dapat mengindeks satu pasien untuk mengaktifkan SearchParameter:

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

Dan kemudian lakukan pencarian pengujian:

  1. Untuk pasien dengan ras:
GET {{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
  1. Untuk Lokasi (jenis referensi)
{{fhirurl}}/MedicationDispense?location=<locationid referenced in MedicationDispense Resource>
x-ms-use-partial-indices: true

Setelah Menguji parameter pencarian baru dan mengonfirmasi bahwa parameter tersebut berfungsi seperti yang diharapkan, jalankan, atau jadwalkan pekerjaan reindex Anda sehingga parameter pencarian baru dapat digunakan dalam produksi langsung.

Lihat Menjalankan pekerjaan reindex untuk informasi tentang cara mengindeks ulang database layanan FHIR Anda.

Memperbarui parameter pencarian

Untuk memperbarui parameter pencarian, gunakan PUT untuk membuat versi baru parameter pencarian. Anda harus menyertakan ID parameter pencarian di id bidang dalam isi PUT permintaan dan PUT string permintaan.

Catatan

Jika Anda tidak tahu ID untuk parameter pencarian Anda, Anda dapat mencarinya menggunakan GET {{FHIR_URL}}/SearchParameter. Ini akan mengembalikan semua parameter pencarian kustom dan standar. Anda dapat menggulir daftar untuk menemukan parameter pencarian yang Anda butuhkan. Anda juga dapat membatasi pencarian berdasarkan nama. Seperti yang ditunjukkan dalam contoh permintaan berikut, nama instans sumber daya kustom SearchParameter adalah USCoreRace. Anda dapat mencari sumber daya ini SearchParameter berdasarkan nama menggunakan GET {{FHIR_URL}}/SearchParameter?name=USCoreRace.

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

Hasil permintaan di atas akan menjadi sumber daya yang diperbarui SearchParameter .

Peringatan

Berhati-hatilah saat memperbarui parameter pencarian. Mengubah parameter pencarian yang ada dapat berdampak pada perilaku yang diharapkan. Sebaiknya jalankan pekerjaan reindex segera.

Menghapus parameter pencarian

Jika Anda perlu menghapus parameter pencarian, gunakan yang berikut ini.

DELETE {{FHIR_URL}}/SearchParameter/{{SearchParameter_ID}}

Peringatan

Berhati-hatilah saat menghapus parameter pencarian. Menghapus parameter pencarian yang ada dapat berdampak pada perilaku yang diharapkan. Sebaiknya jalankan pekerjaan reindex segera.

Langkah berikutnya

Dalam artikel ini, Anda telah mempelajari cara membuat parameter pencarian kustom. Selanjutnya Anda dapat mempelajari cara mengindeks ulang database layanan FHIR Anda. Untuk informasi selengkapnya, lihat

Catatan

FHIR® adalah merek dagang terdaftar HL7 dan digunakan dengan izin HL7.