过滤医疗保健搜索结果

查询医疗保健数据时,您可以使用过滤条件来优化搜索结果。在搜索请求中,您可以提供过滤条件,以强制执行包含或排除特定搜索响应的条件。

例如,当您搜索单个患者的数据时,搜索请求正文必须包含以下用于指定患者 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\")"