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, ada skenario di mana Anda mungkin 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 Anda membuat, memperbarui, atau menghapus parameter pencarian, Anda harus menjalankan pekerjaan indeks ulang untuk mengaktifkan parameter pencarian untuk produksi langsung. Di bawah ini kami akan menguraikan bagaimana Anda dapat menguji parameter pencarian sebelum mengindeks kembali seluruh database layanan FHIR.

Membuat parameter pencarian baru

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

POST {{FHIR_URL}}/SearchParameter

Contoh di bawah ini menunjukkan pembuatan parameter pencarian kustom baru

Membuat parameter pencarian baru per definisi dalam Panduan Implementasi

Contoh kode di bawah ini 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 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 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 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:

  • 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 di atas 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 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 jalurx dan layanan FHIR mengabaikan sintaksis jalurx.

Menguji parameter pencarian baru

Meskipun Anda tidak dapat menggunakan parameter pencarian baru dalam produksi hingga Anda menjalankan pekerjaan reindex, ada beberapa cara untuk menguji parameter pencarian kustom 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 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 di 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 kembali satu sumber daya untuk menguji pencarian dengan parameter pencarian baru Anda. Untuk mengindeks ulang satu sumber daya:

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 melakukan pencarian pengujian

  1. Untuk pasien berdasarkan 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 pencarian berfungsi seperti yang diharapkan, jalankan, atau jadwalkan pekerjaan indeks ulang 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 serta 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 serta standar, dan Anda dapat menggulir daftar untuk menemukan parameter pencarian yang Anda butuhkan. Anda juga dapat membatasi pencarian berdasarkan nama. Seperti yang ditunjukkan dalam contoh permintaan di bawah ini, 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 dari 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 mengetahui informasi selengkapnya, lihat

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