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 denganGET {{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 menggunakanResource
; 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:
- Untuk pasien dengan ras:
GET {{FHIR_URL}}/Patient?race=2028-9
x-ms-use-partial-indices: true
- 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