篩選醫療照護搜尋結果

查詢醫療保健資料時,您可以使用篩選器縮小搜尋範圍,在搜尋要求中,您可以提供篩選器來強制執行條件,包括納入或排除特定搜尋回應。

舉例來說,當您搜尋單一病患的資料時,搜尋要求主體必須包含下列篩選器運算式,指定病患 ID:

"filter": "patient_id: ANY(\"PATIENT_ID\")"

本頁說明如何定義醫療保健搜尋的篩選條件。

事前準備

開始之前,請先執行下列操作:

定義篩選器

篩選器是在 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_VALUEresource_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\")"