Menentukan parameter pencarian kustom untuk Azure API untuk FHIR

Spesifikasi Fast Healthcare Interoperability Resources (FHIR®) menentukan serangkaian parameter pencarian untuk semua sumber daya dan parameter pencarian yang khusus untuk sumber daya. Namun, ada skenario di mana Anda mungkin ingin mencari terhadap elemen dalam sumber daya yang tidak didefinisikan oleh spesifikasi FHIR sebagai parameter pencarian standar. Artikel ini menjelaskan bagaimana Anda dapat menentukan parameter pencarian Anda sendiri untuk digunakan di Azure API untuk FHIR.

Catatan

Setiap kali Anda membuat, memperbarui, atau menghapus parameter pencarian, Anda harus menjalankan pekerjaan indeks ulang untuk mengaktifkan parameter pencarian yang akan digunakan dalam produksi. Di bawah ini kami akan menguraikan bagaimana Anda dapat menguji parameter pencarian sebelum mengindeks kembali seluruh server FHIR.

Membuat parameter pencarian baru

Untuk membuat parameter pencarian baru, Anda POST sumber SearchParameter daya ke database. Contoh kode di bawah ini menunjukkan cara menambahkan US Core Race SearchParameter ke Patient sumber daya.

POST {{FHIR_URL}}/SearchParameter

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

Catatan

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

Elemen penting dari :SearchParameter

  • url: Kunci unik untuk menjelaskan parameter pencarian. Banyak organisasi, seperti HL7, menggunakan format URL standar untuk parameter pencarian yang mereka tentukan, seperti yang ditunjukkan di atas dalam parameter pencarian ras INTI AS.

  • code: Nilai yang disimpan dalam kode adalah apa yang akan Anda gunakan saat mencari. Untuk contoh di atas, Anda akan mencari untuk GET {FHIR_URL}/Patient?race=<code> mendapatkan semua pasien dari ras tertentu. Kode harus unik untuk sumber daya yang diterapkan parameter pencarian.

  • base: Menjelaskan 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 sumber daya yang relevan.

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

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

Menguji parameter pencarian

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

Pertama, Anda dapat menguji parameter pencarian baru untuk melihat nilai apa yang akan dikembalikan. Dengan menjalankan perintah di bawah ini terhadap instans sumber daya tertentu (dengan memasukkan ID mereka), Anda akan mendapatkan kembali daftar pasangan nilai dengan nama parameter pencarian dan nilai yang disimpan untuk pasien tertentu. Ini akan mencakup semua parameter pencarian untuk sumber daya dan Anda dapat menggulir untuk menemukan parameter pencarian yang Anda buat. Menjalankan perintah ini tidak akan mengubah perilaku apa pun di server FHIR Anda.

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

Misalnya, untuk menemukan semua parameter pencarian untuk pasien:

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

Hasilnya akan terlihat seperti:

{
  "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 Anda melihat bahwa parameter pencarian Anda ditampilkan seperti yang diharapkan, Anda dapat mengindeks kembali satu sumber daya untuk menguji pencarian dengan elemen . Pertama, Anda akan mengindeks kembali satu sumber daya:

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

Menjalankan ini, mengatur indeks untuk parameter pencarian apa pun untuk sumber daya tertentu yang Anda tentukan untuk jenis sumber daya tersebut. Ini memang membuat pembaruan ke server FHIR. Sekarang Anda dapat mencari dan mengatur header gunakan indeks parsial ke true, yang berarti bahwa itu akan mengembalikan hasil di mana salah satu sumber daya memiliki parameter pencarian yang diindeks, bahkan jika tidak semua sumber daya dari jenis tersebut mengindeksnya.

Melanjutkan dengan contoh kami di atas, Anda dapat mengindeks satu pasien untuk mengaktifkan Us Core Race SearchParameter:

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

Kemudian cari pasien yang memiliki ras tertentu:

GET https://{{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true

Setelah Anda menguji dan puas bahwa parameter pencarian Anda berfungsi seperti yang diharapkan, jalankan atau jadwalkan pekerjaan indeks ulang Anda sehingga parameter pencarian dapat digunakan di server FHIR untuk kasus penggunaan produksi.

Memperbarui parameter pencarian

Untuk memperbarui parameter pencarian, gunakan PUT untuk membuat versi baru parameter pencarian. Anda harus menyertakan SearchParameter ID dalam id elemen isi PUT permintaan dan dalam PUT panggilan.

Catatan

Jika Anda tidak tahu ID untuk parameter pencarian, Anda dapat mencarinya. Menggunakan GET {{FHIR_URL}}/SearchParameter akan mengembalikan semua parameter pencarian kustom, dan Anda dapat menggulir parameter pencarian untuk menemukan parameter pencarian yang Anda butuhkan. Anda juga dapat membatasi pencarian berdasarkan nama. Dengan contoh di bawah ini, Anda dapat mencari nama menggunakan USCoreRace: 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"
}

Hasilnya akan diperbarui SearchParameter dan versinya akan bertahas.

Peringatan

Berhati-hatilah saat memperbarui SearchParameters yang telah diindeks di database Anda. Mengubah perilaku SearchParameter 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 SearchParameters yang telah diindeks di database Anda. Mengubah perilaku SearchParameter 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. Selanjutnya Anda dapat mempelajari cara mengindeks kembali server FHIR Anda.

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