查詢醫療保健資料時,您可以使用篩選器縮小搜尋範圍,在搜尋要求中,您可以提供篩選器來強制執行條件,包括納入或排除特定搜尋回應。
舉例來說,當您搜尋單一病患的資料時,搜尋要求主體必須包含下列篩選器運算式,指定病患 ID:
"filter": "patient_id: ANY(\"PATIENT_ID\")"
本頁說明如何定義醫療保健搜尋的篩選條件。
事前準備
開始之前,請先執行下列操作:
- 建立醫療照護搜尋應用程式和醫療照護搜尋資料儲存庫,並匯入 FHIR R4 資料。詳情請參閱「建立醫療保健搜尋應用程式」和「建立醫療保健搜尋資料儲存庫」。
- 查看 Vertex AI Search 支援的 FHIR R4 資源清單,瞭解可建立索引、搜尋及擷取的欄位。詳情請參閱「Healthcare FHIR R4 資料結構定義參考資料」。
- 瞭解篩選運算式語法。
定義篩選器
篩選器是在 servingConfigs.search
方法的要求主體中,於 filter
欄位指定。
篩選器定義遵循篩選運算式語法。
在篩選運算式中,常值可以是搜尋查詢回應中的任何可建立索引的欄位。舉例來說,如果回應包含 Observation 資源,則可將 Observation 資源參照的 patient_id
做為篩選器常值。
以下各節提供幾個篩選器建構範例。
定義 resource_datetime
篩選器
這個範例說明如何指定搜尋的篩選條件,只納入 resource_datetime
值晚於指定日期和時間值的資源。
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}} }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 ID。DATA_STORE_ID
:Vertex AI Search 資料儲存庫的 ID。QUERY
:搜尋查詢。PATIENT_ID
:您要搜尋資料的病患資源 ID。DATE_TIME_VALUE
:resource_datetime
欄位的值,代表 FHIR dateTime 格式的日期和時間。這個欄位的部分範例如下:- 如要指定日期和時間,並以
T
分隔符號分隔時區,請使用以下格式:2022-08-05T01:00:00+00:00
- 如要指定日期:
2022-08-05
- 如要指定月份,請說出
2022-08
- 如要指定年份,請使用
2022
。
- 如要指定日期和時間,並以
定義資源類型篩選器
以下範例說明如何建構篩選器,使用 AND
運算子先篩選所有 Composition 資源,然後篩選日期晚於指定日期和時間的資源。
"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""
定義 FHIR 資源篩選器
您可以使用篩選器,檢查 Vertex AI Search 資料儲存庫中是否有 FHIR 資源。舉例來說,您可以使用下列篩選器,搜尋 ID 為 6112d1ac-c6bd-4755-d689-bfb71d59afc5
的 DocumentReference 資源。
"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"