You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FHIR场景下如何搜索包含指定标识Patient的Bundle资源

结论

你的搜索需求在FHIR标准中是支持的,官方没有给Bundle预置内置的嵌套entry资源搜索参数,不代表标准不支持这类场景,可通过以下三类标准兼容的方案实现:


方案1:自定义Bundle搜索参数(最常用,兼容性最好)

FHIR标准允许服务端为任意资源扩展自定义搜索参数,你可以为Bundle新增一个Token类型的搜索参数,配置路径为Bundle.entry.resource.ofType(Patient).identifier,同时设置参数的匹配规则为「匹配任意一个符合路径规则的标识符」即可。
配置完成后直接按常规参数搜索即可,示例请求:

[base]/Bundle?patient-identifier=bar|abcde

其中patient-identifier是你自定义的搜索参数名,bar|abcde是FHIR Token类型参数的标准写法,分隔标识符的code和value。


方案2:使用_filter搜索扩展

如果你的FHIR服务端支持标准可选的_filter搜索功能,可以直接写过滤表达式完成搜索,无需额外配置参数,示例请求:

[base]/Bundle?_filter=entry.resource.ofType(Patient).identifier.where(type.coding.code='bar').value eq 'abcde'

该方案的缺点是_filter属于FHIR可选功能,部分轻量化的FHIR服务端可能不支持。


方案3:反向链式搜索

你可以先搜索符合条件的Patient资源,再通过反向引用找到包含该Patient的Bundle,要求你存储Bundle时已经维护了Bundle和内部Patient资源的引用关联,示例请求:

[base]/Bundle?_has:Patient:_id=[匹配到的Patient资源ID]

该方案需要两次查询或者链式参数拼接,灵活性不如前两种,适合没有权限修改服务端搜索参数配置的场景。


补充说明

你之前尝试的参数组合没有生效是正常的,FHIR官方没有为Bundle预置这类跨嵌套资源的搜索参数,需要服务端按业务需求自行扩展,主流FHIR实现(如HAPI FHIR、Firely Server)都支持上述所有方案。

内容的提问来源于stack exchange,提问作者Dave Montgomery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:06:00