Prometheno  ·  数据模型
01 — 定义

病历怎样变成研究数据。

Prometheno 用 OMOP CDM 5.4 存储健康数据,这是 OHDSI 社区通用的研究数据模型;用 FHIR R4 从医院门户接入病历,也用它把数据送出去。每条记录都要过三道质量关卡,映射到标准词表,并把原始编码和标准编码并排保存,随时可以追溯。

标准模型
OMOP CDM 5.4
交换格式
FHIR R4
词表
27 万概念 · 3,900 万映射
开发数据集
1,000 名 MIMIC-IV 患者
02 — 为什么要两套标准

FHIR 是医院说话的方式,OMOP 是研究提问的方式。

FHIR R4

医院门户和电子病历系统本来就在用的格式。它一次描述一位患者,以资源为单位:一个 Patient、一次 Encounter、一条 Observation。搬运病历很合适,但要问「所有 48 小时内肌酐上升 0.3 mg/dL 的患者」就很别扭。

OMOP CDM 5.4

专为这类问题设计的关系型模型,所有编码体系共用一套词表。按 OMOP 写的队列定义,在任何使用它的机构都能以同样方式运行,而做观察性研究的学术医学中心大多在用。

所以 Prometheno 两个都用:边缘用 FHIR,中间用 OMOP,中间不发明新东西。

03 — 处理流程

四步,每一步都能核查。

  1. 01接入

    病历以 FHIR R4 格式进来,来源是患者登录门户后的 Fasten Connect 回调,或本地部署的同步脚本。第 0 道关卡检查 JSON 是否合法、资源类型是否已知,并对内容做哈希。

  2. 02质量关卡

    第 1 道关卡检查必填字段和编码,给每条记录评 A、B、C、D 四个等级。第 2 道关卡检查结果是否是合法的 OMOP 记录。等级存在记录上,并计入患者的贡献评分。

  3. 03词表映射

    化验用 LOINC,诊断和操作用 SNOMED,药物用 RxNorm;ICD-9/10、CPT4、NDC 通过 OMOP 自带的概念关系映射过去。来源概念和标准概念都保留。

  4. 04OMOP 表

    person、visit_occurrence、measurement、condition_occurrence、drug_exposure、procedure_occurrence、observation、note。每条临床记录都关联到对应的就诊。

04 — 资源与表的对应

每种 FHIR 资源落在哪张表。

FHIR R4 资源OMOP CDM 表
Patientperson
Encountervisit_occurrence
Observationmeasurement
Conditioncondition_occurrence
MedicationRequestdrug_exposure
Immunizationdrug_exposure
Procedureprocedure_occurrence
AllergyIntoleranceobservation
DiagnosticReportnote
DocumentReferencenote
05 — 质量等级

每条记录都有等级,等级决定结果。

等级含义处理价值份额
A完整:编码、数值、时间、单位映射进 OMOP100%
B可用但有缺项补默认值后映射70%
C不完整隔离30%
D无效仅归档0%

在一位测试患者的真实门户数据上测得:化验映射率 84.9%,药物 86.9%,操作 68.4%,诊断 13.5%。诊断这么低,是因为大多数是没有编码的纯文本护理诊断。这个数字我们照实公布,不藏。

06 — 数据怎么出去

从哪扇门进来,就从哪扇门出去。

研究者可以把已获同意的队列导出为 CSV、JSON、FHIR R4 包或 OMOP CDM 表。FHIR 接口提供 Patient(含 $everything)、Condition、MedicationRequest、Observation、Procedure。患者在 Ember 里看到的是同一批记录,用的是看得懂的话。

07 — 常见问题

问与答。

为什么不全用 FHIR?
FHIR 是为交换一位患者的病历设计的。研究要跨成千上万名患者提问,OMOP CDM 就是为这个建的模型:一套词表,队列定义能在机构之间通用。Prometheno 边缘用 FHIR,中间用 OMOP。
用的是哪个 OMOP 版本?
CDM 5.4,采用 OHDSI 官方的建表脚本。note 表额外带上了 CDM 6.0 引入的事件关联字段,这样临床文书始终挂在它描述的那次就诊和那条记录上。
映射不上的编码会怎样?
记录会保留,原始编码存在 source_value 字段里,标准概念记为 0。不会被悄悄丢掉,但等级会降低,价值份额也随之降低。
映射后的记录能追溯到原件吗?
能。每一行都把来源概念和标准概念并排保存,关联到对应就诊,并带着接入时评定的质量等级。第 0 道关卡的内容哈希把它和来源的 FHIR 资源绑在一起。
能把数据以 FHIR 格式取回吗?
能。FHIR 接口提供 Patient($everything)、Condition、MedicationRequest、Observation、Procedure,队列导出也可以生成 FHIR R4 包,以及 CSV、JSON 和 OMOP 表。
开发用的是什么数据?
MIMIC-IV 的 1,000 名患者子集:42.9 万条化验、1.76 万条诊断、5.29 万条用药记录,配上完整的 OHDSI 词表,27 万个概念、3,900 万条关系。门户实时接入目前只在沙盒电子病历上测过,还没接过医院的生产系统。
接入有多快?
2026 年 1 月测过一次,一位测试患者,用批量脚本:17,718 条记录 15.8 秒,约每秒 1,120 条。不是基准测试套件,之后也没有重新测过。