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

如何通过一次查询从FHIR服务器获取患者的所有组合检测与独立检测?

实现单次查询获取FHIR实验室组合/分组与独立检测结果的方案

核心逻辑

FHIR里实验室检测结果统一用Observation资源承载:

  • 组合/分组检测:一般是一个"父"Observation,通过hasMember字段引用同组的多个"子"Observation;部分系统也会用partOf关联到DiagnosticReport来实现分组。
  • 独立检测:就是没有hasMember引用的单个Observation。

要单次查询覆盖两类数据,有以下两种可行方案:


方案1:基于Observation的组合查询

直接查询目标患者的实验室Observation,同时用FHIR的_include参数拉取分组检测关联的子资源,一次请求搞定所有数据。

查询示例

GET [FHIR服务器地址]/Observation?patient=[患者ID]&category=laboratory&_include=Observation:hasMember

参数说明

  • patient=[患者ID]:锁定目标患者,过滤该患者的所有实验室数据
  • category=laboratory:只筛选实验室类别的Observation,排除生命体征等其他类型
  • _include=Observation:hasMember:要求服务器返回所有被父Observation通过hasMember引用的子Observation

效果

  • 直接拿到所有独立检测的Observation(无hasMember字段的条目)
  • 同时拿到所有分组检测的父Observation,以及其关联的子检测Observation
  • 服务器会把关联资源一并返回,不用二次查询

方案2:关联DiagnosticReport的查询

如果你的目标FHIR服务器是用DiagnosticReport来组织实验室分组检测的,可通过查询DiagnosticReport并附带关联的Observation来实现:

查询示例

GET [FHIR服务器地址]/DiagnosticReport?patient=[患者ID]&category=laboratory&_include=DiagnosticReport:result

参数说明

  • patient=[患者ID]:指定目标患者
  • category=laboratory:筛选实验室类别的诊断报告
  • _include=DiagnosticReport:result:要求返回该报告关联的所有检测结果Observation

补充说明

如果存在未关联DiagnosticReport的独立Observation,可通过_or参数合并两个查询,一次性覆盖所有情况:

GET [FHIR服务器地址]/Observation?patient=[患者ID]&category=laboratory&_or:0=_has:DiagnosticReport:result:patient=[患者ID]&_or:1=_missing:partOf

注意点

  • 要确认目标FHIR服务器支持_include、_has这些参数(FHIR STU3及以上版本都支持)
  • 部分服务器会限制单次返回的资源数量,可配合_count参数调整分页大小
  • 如果分组检测有多层嵌套(组内还有子组),用_include:recurse就能递归拉取所有层级的子Observation:
GET [FHIR服务器地址]/Observation?patient=[患者ID]&category=laboratory&_include:recurse=Observation:hasMember

内容的提问来源于stack exchange,提问作者Aftab Baig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:21:05