Saat membuat kueri data layanan kesehatan, Anda dapat menggunakan filter untuk menyaring respons penelusuran. Dalam permintaan penelusuran, Anda dapat memberikan filter untuk menerapkan kriteria yang menyertakan atau mengecualikan respons penelusuran tertentu.
Misalnya, saat Anda menelusuri data satu pasien, isi permintaan penelusuran harus berisi ekspresi filter berikut yang menentukan ID pasien:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
Halaman ini menunjukkan cara menentukan filter untuk penelusuran layanan kesehatan.
Sebelum memulai
Sebelum memulai, lakukan hal berikut:
- Buat aplikasi penelusuran layanan kesehatan dan penyimpanan data penelusuran layanan kesehatan, lalu impor data FHIR R4. Untuk mengetahui informasi selengkapnya, lihat Membuat aplikasi penelusuran layanan kesehatan dan Membuat penyimpanan data penelusuran layanan kesehatan.
- Tinjau daftar resource FHIR R4 yang didukung Agent Search sebagai kolom yang dapat diindeks, ditelusuri, dan diambil. Untuk mengetahui informasi selengkapnya, lihat Referensi skema data FHIR R4 Layanan kesehatan.
- Pahami sintaksis ekspresi filter.
Menentukan filter
Filter ditentukan di kolom filter dalam isi permintaan metode
servingConfigs.search.
Definisi filter mengikuti sintaksis ekspresi filter.
Dalam ekspresi filter, literal dapat berupa kolom yang dapat diindeks dari respons terhadap kueri penelusuran. Misalnya, jika respons berisi resource Observasi, patient_id yang direferensikan oleh resource Observasi dapat digunakan sebagai literal filter.
Bagian berikut menunjukkan beberapa contoh cara membuat filter.
Menentukan filter resource_datetime
Contoh ini menunjukkan cara menentukan filter untuk penelusuran yang hanya menyertakan resource yang memiliki nilai resource_datetime yang lebih baru dari nilai tanggal dan waktu yang ditentukan.
REST
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search:search" \
-d '{
"query": "QUERY",
"filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_datetime > \"DATE_TIME_VALUE,
"contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
}'
Ganti kode berikut:
PROJECT_ID: ID project Anda. Google CloudDATA_STORE_ID: ID penyimpanan data Agent Search.QUERY: kueri penelusuran.PATIENT_ID: ID resource pasien yang datanya ingin Anda telusuri.DATE_TIME_VALUE: nilai kolomresource_datetimeyang mewakili tanggal dan waktu dalam format dateTime FHIR. Beberapa contoh kolom ini adalah sebagai berikut:- Untuk menentukan tanggal dan waktu dengan zona waktu yang dipisahkan oleh pemisah
T:2022-08-05T01:00:00+00:00 - Untuk menentukan tanggal:
2022-08-05 - Untuk menentukan bulan:
2022-08 - Untuk menentukan tahun:
2022
- Untuk menentukan tanggal dan waktu dengan zona waktu yang dipisahkan oleh pemisah
Menentukan filter jenis resource
Contoh berikut menunjukkan cara membuat filter yang menggunakan operator AND untuk memfilter semua resource Komposisi terlebih dahulu, lalu memfilter resource yang tanggalnya lebih baru dari tanggal dan waktu yang ditentukan.
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""Menentukan filter resource FHIR
Anda dapat menggunakan filter untuk memeriksa apakah resource FHIR ada di penyimpanan data Agent Search. Misalnya, Anda dapat menelusuri resource DocumentReference yang memiliki ID 6112d1ac-c6bd-4755-d689-bfb71d59afc5 menggunakan filter berikut.
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"