篩選醫療照護搜尋結果

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

舉例來說,如果您要搜尋單一患者的資料,搜尋要求的內容必須包含以下指定患者 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\")"