1. FHIR _summary 参数概述
在FHIR(Fast Healthcare Interoperability Resources)标准中,_summary参数是一个经常被忽视但极其重要的查询修饰符。它允许客户端指定服务器返回资源的简化版本,而不是完整的资源表示。这个参数在医疗数据交换场景中特别有价值,比如当我们需要快速浏览患者基本信息而不需要完整的医疗记录时。
我第一次在实际项目中接触_summary参数是在开发一个急诊科分诊系统时。系统需要快速显示患者的关键生命体征和过敏信息,而完整的FHIR资源包含太多不必要的数据字段。通过使用_summary=true,API响应大小减少了约70%,显著提升了界面加载速度。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. _summary 参数的核心功能解析
2.1 参数取值与含义
_summary参数支持以下几种取值,每种都对应不同的资源返回策略:
| 参数值 | 功能描述 | 典型使用场景 |
|---|---|---|
| true | 返回仅包含关键字段的简化资源 | 列表浏览、快速检索 |
| text | 仅返回资源的文本部分(narrative) | 文档预览 |
| data | 排除文本部分,只返回结构化数据 | 数据分析处理 |
| count | 仅返回匹配资源数量 | 统计查询 |
| false | 返回完整资源(默认值) | 需要完整数据的场景 |
2.2 底层实现原理
从技术实现角度看,当FHIR服务器接收到包含_summary参数的请求时,会在资源序列化阶段应用过滤逻辑。以HAPI FHIR服务器为例,这个过程大致如下:
- 解析查询参数,识别
_summary值 - 加载完整的资源对象到内存
- 根据
_summary值应用对应的元素过滤器 - 序列化过滤后的资源为JSON/XML
- 返回响应给客户端
这种实现方式确保了数据一致性,因为过滤是在完整资源基础上进行的,而不是在数据库查询阶段。
3. 实际应用场景与示例
3.1 患者列表快速浏览
在急诊科信息系统中,我们经常需要显示患者基本信息列表。使用完整Patient资源会导致不必要的数据传输:
http复制GET /P
