过滤医疗搜索结果

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

例如,当您 搜索单个患者数据时,搜索请求 body 必须包含以下指定患者 ID 的过滤器表达式:

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

本页介绍了如何为医疗保健搜索定义过滤器。

准备工作

在开始之前,请执行以下操作:

定义过滤器

过滤条件在 servingConfigs.search 方法的请求正文的 filter 字段中指定。

过滤条件定义遵循过滤条件表达式语法。 在过滤条件表达式中,字面量可以是 对搜索查询的响应。例如,如果响应包含观察资源, 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 资源过滤条件

您可以使用过滤条件检查某个 FHIR 资源是否存在于 Vertex AI Search 数据存储区。例如,您可以搜索 具有 ID 的 DocumentReference 资源 6112d1ac-c6bd-4755-d689-bfb71d59afc5

"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"