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

如何将包含ImagingStudy/Patient的FHIR Bundle序列化为JSON字符串

FHIR Bundle序列化JSON实现方案

FHIR的JSON格式有严格的规范约束,手动拼接很容易出现字段类型错误、必填项缺失、扩展字段格式不符等问题,优先用各语言官方维护的FHIR SDK实现,需根据你使用的FHIR版本(DSTU2、STU3、R4、R4B、R5等)选择对应版本的依赖包,避免版本不兼容问题。

1. 主流语言实现示例

Java(HAPI FHIR库)

  • 引入对应FHIR版本的HAPI FHIR依赖,例如R4版本引入hapi-fhir-structures-r4、hapi-fhir-validation相关包
  • 构建Patient、ImagingStudy资源实例并填充对应字段
  • 将两个资源添加到Bundle实例中,根据业务场景设置Bundle的type属性(可选值包括document、searchset、collection等)
  • 调用JSON Parser完成序列化
// 初始化R4版本上下文
FhirContext ctx = FhirContext.forR4();
// 构造资源、组装Bundle逻辑省略
Bundle bundle = new Bundle();
// 添加Patient、ImagingStudy到bundle的entry数组中
// 序列化,setPrettyPrint设置为false可输出压缩版JSON
String jsonStr = ctx.newJsonParser().setPrettyPrint(true).encodeResourceToString(bundle);

Python(fhir.resources库)

  • 安装对应FHIR版本的依赖包,例如R4版本执行pip install fhir.resources~=6.4.0
  • 实例化Patient、ImagingStudy对象并赋值属性
  • 构造Bundle对象,将两个资源添加到entry列表
  • 调用内置json方法完成序列化
from fhir.resources.bundle import Bundle, BundleEntry
from fhir.resources.patient import Patient
from fhir.resources.imagingstudy import ImagingStudy

# 构造资源、属性赋值逻辑省略
patient = Patient(**patient_data)
imaging_study = ImagingStudy(**study_data)
# 组装Bundle
entries = [
    BundleEntry(resource=patient),
    BundleEntry(resource=imaging_study)
]
bundle = Bundle(type="searchset", entry=entries)
# 序列化,indent参数不传可输出压缩版JSON
json_str = bundle.json(indent=2)

C#(Firely .NET FHIR API)

  • 安装对应FHIR版本的NuGet包,例如R4版本安装Hl7.Fhir.R4
  • 构建资源实例并组装到Bundle
  • 调用FhirJsonSerializer完成序列化
var serializer = new FhirJsonSerializer(new SerializerSettings { Pretty = true });
// 序列化,Pretty设置为false可输出压缩版JSON
string jsonStr = serializer.SerializeToString(bundle);

2. 手动构造方案(仅适用于临时测试场景,不推荐生产使用)

注意:该方式需要严格遵循对应FHIR版本的JSON格式规范,所有资源字段必须符合FHIR定义的数据类型,必填字段不可缺失,否则生成的JSON无法被其他FHIR系统正常解析。

  • 按照Bundle结构定义构造结构体:resourceType固定为Bundle,填写对应type属性,entry数组中每个元素的resource字段分别存放Patient和ImagingStudy的完整资源内容
  • 使用对应语言的原生JSON序列化方法将结构体转换为字符串即可

注意事项

序列化前建议调用SDK内置的校验方法做一次FHIR格式校验,提前识别不符合规范的字段错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:27:00