你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可选择的搜索参数(预览)
重要
可选择的搜索参数功能可用于预览版。 在没有服务级别协议(SLA)的情况下提供预览 API 和 SDK。 建议不要将它们用于生产工作负荷。 某些功能可能不受支持或者已受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
搜索资源是 FHIR® 服务的基础。 FHIR 服务中的每个资源将信息作为一组元素传递。 搜索参数用于查询这些元素中的信息。 部署 FHIR 服务后, 默认启用内置搜索参数 。 FHIR 服务通过在引入数据期间从 FHIR 资源提取和索引特定属性来执行高效的搜索。
可选择的搜索参数允许启用或禁用内置搜索参数。 此功能通过仅启用所需的搜索参数,帮助将更多资源存储在分配的存储空间中,并提高性能。
若要对搜索参数执行状态更新,请执行以下步骤:
- 获取搜索参数的状态。
- 更新搜索参数的状态。
- 执行重新编制索引作业。
本文演示了使用 {{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"
}
}
]
}
更新搜索参数的状态
获取搜索参数的状态后,将搜索参数的状态更新为 Supported
或 Disabled
。
注意
若要更新搜索参数的状态,需要 搜索参数管理器 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"
}
},
...
]
}
执行重新编制索引作业
将搜索参数状态更新为 Supported
或 Disabled
更新后,下一步是执行重新编制索引作业。
在为搜索参数编制索引之前,Enabled
Disabled
不会激活搜索参数的状态。 重新编制作业执行索引,将状态从 Supported
/更新到 PendingDisable
Enabled
Disabled
。
可以针对整个 FHIR 服务数据库或特定搜索参数执行重新编制索引作业。 重新编制索引作业可能会消耗大量性能。 有关详细信息,请参阅 “运行重新编制索引”作业。
注意
功能语句文档是 FHIR 服务器的一组行为。 Enabled
搜索参数列在 FHIR 服务的功能语句中。 功能语句可用于 /metadata 终结点。
常见问题
如果查询包含状态为“Supported”的搜索参数,则行为是什么?
需要重新编制“支持”状态的搜索参数。 在此之前,不会激活搜索参数。 如果在非活动搜索参数上执行查询,则 FHIR 服务将呈现响应而不考虑该搜索参数。 在响应中,将有一条警告消息,指示搜索参数未编制索引且未在查询中使用。 若要在此类情况下呈现错误,请使用值为“strict”的“Prefer: handling”标头。 通过设置此标头,警告将报告为错误。
后续步骤
注意
FHIR® 是 HL7 的注册商标,经 HL7 许可使用。