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 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 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
- Untuk pasien berdasarkan 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 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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk