对医疗保健搜索结果进行排序

默认情况下,当您搜索医疗保健数据时,系统会按倒序时间顺序返回搜索结果。在搜索包含非结构化文本的以下 FHIR 资源类型时,您可以按搜索结果与查询的相关性对其进行排序:

  • 组合
  • DiagnosticReport
  • DocumentReference

示例场景

假设您要搜索给定患者的关键字 insulin,并已将结果过滤为包含非结构化文本的资源。除其他结果外,您还会收到以下文档:

  • 结果 1:日期为 2024 年 4 月 24 日的 DocumentReference 资源,其中包含有关患者“HbA1c”水平的备注。
  • 结果 2:日期为 2024 年 1 月 11 日的 DiagnosticReport 资源,其中包含有关患者必须遵循的“胰岛素治疗方案”的备注。

默认情况下,结果 1 会显示在搜索结果中的更高位置,因为它是更新的文档,但如果您按相关性对结果进行排序,结果 2 会显示在搜索结果中的更高位置。这是因为该商品与搜索查询 insulin 更相关。

对医疗保健搜索结果进行排序

如需按相关性对搜索结果进行排序,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往 Agent Builder 页面。

    Agent Builder

  2. 选择要查询的医疗保健搜索应用。

  3. 在导航菜单中,点击预览

  4. 患者 ID 字段中,输入您要查询数据的患者的 ID。患者 ID 区分大小写。

  5. Enter 键或点击预览以提交患者 ID。

  6. 在此处搜索搜索栏中,输入您的查询。

    如果您启用了自动补全功能,则在输入时,搜索栏下方会显示自动补全建议列表。

  7. Enter 键提交查询。

    • 搜索结果会显示在分页表格中,这些表格会根据 FHIR 资源类型进行分类。
    • 默认情况下,所有 FHIR 资源类型的搜索结果均按时间倒序显示。
  8. 对于 Composition、DocumentReference 和 DiagnosticReport 资源,请点击排序:按时间倒序过滤条件,然后从列表中选择相关性。然后,系统会按相关性对这些资源的结果进行排序。

REST

如需按相关性对搜索结果进行排序,请按如下方式修改 search 请求:

  • filter 字段添加到请求中,以将搜索结果限制为仅包含以下包含非结构化文本的 FHIR 资源:Composition、DiagnosticReport 和 DocumentReference。
  • orderBy 字段添加到搜索请求中,并将其值设置为 _RELEVANCE,以获取按相关性排序的搜索响应。
  1. 发送搜索请求。

    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/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
    "query": "KEYWORD_QUERY",
    "filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_type: ANY(\"Composition\", \"DiagnosticReport\", \"DocumentReference\")",
    "orderBy": "_RELEVANCE"
    }'
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • APP_ID:您要查询的 Vertex AI Search 应用的 ID。
    • KEYWORD_QUERY:您要搜索过滤后的患者的患者临床数据中的关键字,例如“糖尿病”或“血糖”。
    • PATIENT_ID:您要搜索其数据的患者的资源 ID。

    您应该会收到一个 JSON 响应,其中包含按相关性排序的明细搜索结果。