1. OMOP CDM 全景与映射工程定位
在真实世界证据(Real-World Evidence, RWE)的生产链条中,OMOP 通用数据模型(Common Data Model, CDM)扮演的是"统一语言"的角色。医院信息系统、检验系统、影像系统、医保结算系统各自使用不同的编码体系与表结构,如果每个研究问题都从原始数据重新写一遍抽取逻辑,成本高、不可复现、难以跨机构比较。OMOP CDM 的价值就在于:把异构的源数据一次性映射到一套标准化的表结构与标准词表上,之后的分析工具、队列定义、统计脚本就可以在多个数据源上复用。
CDM 版本演进:从 v5 到 v5.4 与 v6 的分叉
OMOP CDM 由 OHDSI(Observational Health Data Sciences and Informatics)社区维护。当前工程实践中最主流的是 CDM v5.3 与 v5.4,它们属于 v5.x 系列,向后兼容性较好,绝大多数 OHDSI 工具(如 Achilles、DataQualityDashboard、ATLAS、CohortMethod)都围绕 v5.x 构建。CDM v6.0 曾尝试引入更规范化的调整(例如将部分字段拆分、调整 visit_occurrence 与 visit_detail 的关系),但由于生态工具迁移成本高,实际落地比例远低于 v5.x。因此本课程以 CDM v5.4 作为目标模型,同时说明与 v5.3 的差异点,便于读者在遇到旧数据源时做兼容处理。
版本差异中需要特别留意的几处:v5.4 在 visit_occurrence 中新增了 admitted_from_concept_id 与 discharged_to_concept_id,用于刻画转科与转院路径;episode 与 episode_event 表被正式纳入,用于表达跨就诊的疾病发作过程;payer_plan_period 的字段语义也有微调。这些变化直接影响映射时的字段落位决策。
核心表域:五域结构与它们的分工
OMOP CDM 的表可以按语义划分为五个域,理解这个划分是设计映射方案的前提:
- 临床数据域(Clinical Data):
person、visit_occurrence、condition_occurrence、drug_exposure、procedure_occurrence、measurement、observation、device_exposure等。这是映射工作量最大的部分,源系统中的诊断、医嘱、检验、手术记录都要落到这里。 - 标准化词表域(Standardized Vocabularies):
concept、concept_relationship、concept_ancestor、vocabulary、domain、drug_strength等。它决定了"源编码映射到哪个标准概念"这一核心动作的可行性。 - 健康系统域(Health System):
location、care_site、provider,描述"在哪里、由谁提供医疗服务"。 - 健康经济域(Health Economics):
payer_plan_period、cost,承载支付方与费用信息。 - 派生要素域(Derived Elements):
drug_era、dose_era、condition_era,由临床事件按规则推导出的连续用药期、剂量期与疾病期,通常由 ETL 的后续步骤或工具生成,而非直接映射。
需要强调的是,OMOP 中几乎所有临床事件表都共享一组"骨架字段":person_id、*_concept_id、*_start_date、*_end_date、*_type_concept_id、visit_occurrence_id、provider_id、*_source_value、*_source_concept_id。其中 *_source_value 保留源系统原始值,*_source_concept_id 记录源编码在词表中的对应概念(常为 0),*_concept_id 才是标准化后的目标概念。这三者的区分是映射质量追溯的关键。
映射工程在 RWE 生产中的位置
从上面的全景可以看到,映射工程不是孤立的技术环节,而是连接"原始数据"与"可分析数据"的枢纽。它的上游是数据源治理(数据可及性、隐私合规、字段字典获取),下游是队列构建与统计分析。映射质量直接决定下游结论的可信度:如果 condition_concept_id 映射错误,队列纳入标准就会失效;如果 visit_occurrence_id 关联断裂,就无法区分住院与门诊场景。
因此映射工程的核心交付物不只是"一张填好的表",而是一套可追溯、可复现、可审计的转换资产,包括:源字段到目标字段的落位映射表、源编码到标准概念的映射字典、ETL 脚本或 SQL、以及映射质量报告(覆盖率、未映射清单、异常值统计)。
课程项目数据源介绍
本课程贯穿一个模拟教学项目,数据源设定为某三甲医院 2021—2023 年的脱敏数据,包含四类源表:
| 源表 | 关键字段示例 | 主要目标表 |
|---|---|---|
| PAT_VISIT(就诊) | VISIT_ID、PAT_ID、DEPT_CODE、ADM_TIME、DIS_TIME | visit_occurrence |
| PAT_DIAG(诊断) | DIAG_CODE(ICD-10)、DIAG_NAME、DIAG_TYPE | condition_occurrence |
| PAT_ORDER(医嘱) | DRUG_CODE、DRUG_NAME、DOSE、UNIT、START_TIME | drug_exposure |
| LAB_RESULT(检验) | ITEM_CODE、RESULT_VALUE、UNIT、REPORT_TIME | measurement |