文章
· 六月 12, 2023 阅读大约需 2 分钟

使用 Synthea 生成 FHIR 测试数据

文章相关视频参见Synthea生成FHIR测试数据,以及FHIR服务器加载FHIR资源文件

1. 什么是Synthea

Synthea是一个开源软件包,可以模拟生成患者就诊数据。他的github地址在这里

生成的就诊模版从最初的模拟美国前十种常见病、前十种慢性病到现今超过90种不同的模型。详细模型参见这里

基于当前版本,Synthea的特性包括:

  • 从出生到死亡的全生命周期
  • 可配置的人口统计学信息(默认为美国马萨诸塞州人口普查数据)
  • 模块化规则系统
    • 插入通用模块
    • 用于附加功能的自定义 Java 规则模块
  • 主要医疗事件就诊、急诊室就诊和症状驱动的就诊
  • 症状、 过敏、药品、 疫苗接种、观察/生命体征、实验室、处置、 护理计划
  • 支持格式
    • HL7 FHIR(R4、STU3 v3.0.1 和 DSTU2 v1.0.2)
    • ndjson 格式的批量 FHIR(设置 exporter.fhir.bulk_data = true 以激活)
    • C-CDA (设置 exporter.ccda.export = true 以激活)
    • CSV (设置 exporter.csv.export = true 以激活)
    • CPCDS (设置 exporter.cpcds.export = true 以激活)
  • 使用Graphviz可视化呈现规则和疾病模块

支持的参数可见下图

比如 -p 5 生成5条测试数据

         -g M 生成男性测试数据

         -a 60-65 生成年龄在60-65周岁患者测试数据

2. 使用Synthea 生成测试数据

为了方便使用,也将该软件做成了docker,所以你可以简单的执行下面命令行

docker run --rm -v $PWD/output:/output --name synthea-docker intersystemsdc/irisdemo-base-synthea:version-1.3.4 -p 5

该命令会在当前路径的output文件夹下生成5条患者符合FHIR标准的就诊数据,数据相关摘要信息如下面终端输出:

3. 加载生成的 FHIR 数据至 InterSystems IRIS for Health

生成完FHIR数据后,需要加载到FHIR服务器(FHIR资源仓库)中。

我们在输出目录下可以看到生成7条json数据,其中5条患者就诊相关,1条就诊医院信息,一条参与者(就诊医生)信息。

在InterSystems IRIS for health中可以方便的使用DataLoader类中的方法,批量加载FHIR资源数据,进入FHIR 资源仓库命名空间后执行:

zw ##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles("/external/fhir/","FHIRServer","/fhir/r4")

该方法中的第一个参数是fhir资源文件路径; 第二个参数服务类型,这里一般是FHIRServer; 第三个参数FHIRServer的service名称。

执行后显示如下:

之后我们可以进入管理门户,或者使用SQL客户端查询相关存储表,表明数据被正确导入

讨论 (0)1
登录或注册以继续