你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

可选择的搜索参数(预览)

重要

可选择的搜索参数功能可用于预览版。 在没有服务级别协议(SLA)的情况下提供预览 API 和 SDK。 建议不要将它们用于生产工作负荷。 某些功能可能不受支持或者已受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

搜索资源是 FHIR® 服务的基础。 FHIR 服务中的每个资源将信息作为一组元素传递。 搜索参数用于查询这些元素中的信息。 部署 FHIR 服务后, 默认启用内置搜索参数 。 FHIR 服务通过在引入数据期间从 FHIR 资源提取和索引特定属性来执行高效的搜索。

可选择的搜索参数允许启用或禁用内置搜索参数。 此功能通过仅启用所需的搜索参数,帮助将更多资源存储在分配的存储空间中,并提高性能。

若要对搜索参数执行状态更新,请执行以下步骤:

  1. 获取搜索参数的状态。
  2. 更新搜索参数的状态。
  3. 执行重新编制索引作业

本文演示了使用 {{FHIR_URL}} 占位符来表示 FHIR 服务器 URL 的示例 API 调用中的 FHIR 搜索语法。

获取搜索参数的状态

提供 API 终结点(“$status”)以查看搜索参数的状态。 响应有四种状态:

状态 说明
支持 FHIR 服务支持搜索参数,并且你提交了启用搜索参数的请求。 执行重新编制索引操作,以从受支持的运行到启用。
已启用 搜索参数已启用搜索。 此状态是受支持的状态之后的下一步。
PendingDisable 执行重新索引操作后,禁用搜索参数将挂起。
已禁用 搜索参数已禁用。

若要获取所有搜索参数的状态,请使用以下请求,该请求返回所有搜索参数及其状态的列表。 滚动浏览列表以查找所需的搜索参数。

GET {{FHIR_URL}}/SearchParameter/$status

若要标识单个或搜索参数子集的状态,请使用以下筛选器。

  • 名称. 若要按名称标识搜索参数状态,请使用此请求。
   GET {{FHIR_URL}}/SearchParameter/$status?code=<name of search parameter/ sub string>
  • URL。 若要按规范标识符标识搜索参数状态,请使用此请求。
GET {{FHIR_URL}}/SearchParameter/$status?url=<SearchParameter url>
  • 资源类型。 在 FHIR 中,在单个资源级别启用搜索参数,以允许筛选和检索特定资源子集。 若要标识映射到资源的所有搜索参数的状态,请使用此请求。
GET {{FHIR_URL}}/SearchParameter/$status?resourcetype=<ResourceType name>

为了响应对 $status 终结点的 GET 请求,返回参数资源类型,其状态为搜索参数。 下面是一个示例响应。

{
  "resourceType" : "Parameters",
  "parameter" : [
    "name" : "searchParameterStatus",
    "part" : {
        {
        "name" : "url",
        "valueString" : "http://hl7.org/fhir/SearchParameter/Account-identifier"
        },
        {
        "name" : "status",
        "valueString" : "supported"
        }
    }
  ]
}

更新搜索参数的状态

获取搜索参数的状态后,将搜索参数的状态更新为 SupportedDisabled

注意

若要更新搜索参数的状态,需要 搜索参数管理器 Azure RBAC 角色。

可以为单个搜索参数或批量更新搜索参数状态。

更新单个搜索参数状态

若要更新单个搜索参数的状态,请使用以下 API 请求。

PUT {{FHIR_URL}}/SearchParameter/$status
{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "searchParameterStatus",
            "part": [
                {
                    "name": "url",
                    "valueUrl": "http://hl7.org/fhir/SearchParameter/Resource-test-id"
                },
                {
                    "name": "status",
                    "valueString": "Supported"
                }
            ]
        }
    ]
}

根据用例,可以为搜索参数保留状态状态值“Supported”或“Disabled”。 在请求中发送状态 Disabled 时,响应会返回, PendingDisable 因为重新编制索引作业必须运行才能完全删除关联。

如果在响应中收到 400 HTTP 状态代码,则表示标识的搜索参数没有唯一匹配。 检查搜索参数 ID。

批量更新搜索参数状态

若要批量更新搜索参数的状态,“PUT”请求应在请求正文中具有“参数”资源列表。 列表需要包含需要更新的单个搜索参数。

PUT {{FHIR_URL}}/SearchParameter/$status
{
  "resourceType" : "Parameters",
  "parameter" : [
    {
     "name" : "searchParameterStatus",
     "part" :{
        "name" : "url",
        "valueString" : "http://hl7.org/fhir/SearchParameter/Endpoint-name"
     },
     "part":{ 
        "name" : "status",
        "valueString" : "supported"
     }
    },
         "name" : "searchParameterStatus",
     "part" :{
        "name" : "url",
        "valueString" : "http://hl7.org/fhir/SearchParameter/HealthcareService-name"
     },
     "part":{ 
        "name" : "status",
        "valueString" : "supported"
     }
    },
    ...
  ]
}

执行重新编制索引作业

将搜索参数状态更新为 SupportedDisabled更新后,下一步是执行重新编制索引作业。

在为搜索参数编制索引之前,EnabledDisabled不会激活搜索参数的状态。 重新编制作业执行索引,将状态从 Supported /更新到 PendingDisable Enabled Disabled

可以针对整个 FHIR 服务数据库或特定搜索参数执行重新编制索引作业。 重新编制索引作业可能会消耗大量性能。 有关详细信息,请参阅 “运行重新编制索引”作业

注意

功能语句文档是 FHIR 服务器的一组行为。 Enabled 搜索参数列在 FHIR 服务的功能语句中。 功能语句可用于 /metadata 终结点。

常见问题

如果查询包含状态为“Supported”的搜索参数,则行为是什么?

需要重新编制“支持”状态的搜索参数。 在此之前,不会激活搜索参数。 如果在非活动搜索参数上执行查询,则 FHIR 服务将呈现响应而不考虑该搜索参数。 在响应中,将有一条警告消息,指示搜索参数未编制索引且未在查询中使用。 若要在此类情况下呈现错误,请使用值为“strict”的“Prefer: handling”标头。 通过设置此标头,警告将报告为错误。

后续步骤

定义自定义搜索参数

注意

FHIR® 是 HL7 的注册商标,经 HL7 许可使用。