1. OMOP CDM标准化工程全景

OMOP CDM(Observational Medical Outcomes Partnership Common Data Model)不是一套数据库建表脚本,也不是某个厂商的ETL工具,而是一套面向观察性健康数据的通用数据模型与术语体系。它的核心价值在于:把来自不同医院、不同信息系统、不同编码标准的原始数据,映射到统一的表结构、统一的字段语义和统一的术语编码上,使跨机构、跨时间的数据能够被同一套分析程序直接消费。理解这一点,是开展标准化工程的前提。

一、OMOP CDM的定位与核心组成

OMOP CDM由OHDSI(Observational Health Data Sciences and Informatics)社区维护,目前主流版本为CDM v5.4。它由三部分共同构成:

  • 关系型表结构:以患者为中心,围绕临床事件组织数据。核心表包括PERSON(患者)、VISIT_OCCURRENCE(就诊)、CONDITION_OCCURRENCE(诊断)、DRUG_EXPOSURE(用药)、MEASUREMENT(检验检查)、OBSERVATION(观察)、PROCEDURE_OCCURRENCE(操作)等。每张表通过person_id、visit_occurrence_id等外键关联,形成以人为中心的事件网络。
  • 标准化术语体系:所有临床概念必须映射到标准概念(Standard Concept),并归入SNOMED、LOINC、RxNorm、ICD-10-CM等标准词表。CDM中的concept_id是连接事实表与术语表的桥梁,CONCEPT、CONCEPT_RELATIONSHIP、CONCEPT_ANCESTOR等词表表支撑语义查询与层级汇总。
  • 标准化词表与元数据:包括DOMAIN(域)、VOCABULARY(词表)、CONCEPT_CLASS(概念类别)等,用于约束和解释每个concept_id的来源与含义。

需要特别强调的是:CDM表结构只是“骨架”,术语映射才是“血肉”。没有标准化术语,CDM只是一堆空表;没有CDM表结构,术语也无处安放。二者缺一不可。

二、标准化工程的目标

标准化工程的目标可以概括为四个层次:

  1. 结构对齐:把源系统的表、字段、主外键关系,转换为CDM规定的表与字段,保证数据能“装进去”。
  2. 语义对齐:把源系统的本地编码、自由文本、院内字典,映射到标准concept_id,保证数据“看得懂”。
  3. 质量可控:通过数据质量检查(DQD)识别缺失、越界、逻辑矛盾、时间倒置等问题,保证数据“信得过”。
  4. 可复现可扩展:ETL过程版本化、可重跑、可审计,新增数据源时能复用已有映射与规则,保证工程“走得远”。

这四个层次不是并列关系,而是递进关系:结构对齐是基础,语义对齐是核心,质量可控是保障,可复现可扩展是工程化要求。

三、标准化工程的生命周期

一个完整的OMOP CDM标准化工程通常经历以下阶段:

  • 源数据剖析:盘点源系统表结构、字段含义、编码分布、数据量、时间范围,识别主键、外键、空值率、异常值。
  • CDM映射设计:确定源表到CDM表的对应关系,设计字段级映射规则,明确哪些字段直接映射、哪些需要转换、哪些需要拆分或合并。
  • 术语映射:对诊断、药品、检验、手术等临床概念,建立源编码到标准concept_id的映射表,处理一对多、多对一、无匹配等情况。
  • ETL开发与执行:编写SQL或使用ETL工具,按映射规则抽取、转换、加载数据,生成CDM实例。
  • 数据质量评估:运行ACHILLES、DQD等工具,检查数据完整性、一致性、合理性,输出质量报告。
  • 验证与迭代:通过病例回溯、统计对比、专家评审等方式验证映射正确性,修正规则并重新执行。
  • 发布与维护:将CDM实例发布给分析人员,建立版本管理与变更控制机制,持续维护术语映射和ETL脚本。

这个生命周期不是一次性线性过程,而是“剖析—映射—执行—评估—修正”的循环迭代。实际项目中,术语映射和ETL开发往往交替进行,质量评估会反复触发映射修正。

四、从源数据到CDM的端到端流程

下面这张图展示了从源系统到CDM实例的端到端数据流,以及各阶段的关键输入、处理动作和输出物。图中同时标注了术语映射在流程中的位置——它贯穿结构映射与ETL执行,是连接源编码与标准concept_id的核心环节。

源数据层 HIS / LIS / RIS 电子病历 / 医保结算 本地编码 / 自由文本 表结构异构、编码不统一 源数据剖析 字段含义 / 编码分布 主外键 / 空值率 数据量 / 时间范围 输出:源数据剖析报告 映射设计 表级映射:源表→CDM表 字段级映射:源字段→CDM字段 术语映射:源编码→concept_id 输出:映射规格说明书 ETL执行 抽取 / 转换 / 加载 SQL / 调度 / 日志 版本化 / 可重跑 输出:CDM实例 CDM实例 PERSON / VISIT_OCCURRENCE CONDITION_OCCURRENCE DRUG_EXPOSURE / MEASUREMENT 统一表结构 + 标准concept_id 数据质量评估 完整性 / 一致性 合理性 / 时间逻辑 ACHILLES / DQD 输出:质量报告 修正映射规则 重新执行ETL 术语映射贯穿始终 源编码 → 标准词表(SNOMED / LOINC / RxNorm / ICD-10-CM)→ concept_id 处理一对多、多对一、无匹配、历史版本变更;映射表版本化,支持审计与回溯

从图中可以看到,标准化工程不是一条单向流水线,而是一个带反馈回路的闭环。数据质量评估的结果会反向驱动映射规则修正和ETL重跑,直到质量指标达到可接受水平。术语映射则像一条“纵贯线”,从映射设计阶段一直延伸到CDM实例,决定了数据在语义层面是否真正可用。

五、工程化落地的关键判断

在实际项目中,判断一个OMOP CDM标准化工程是否“做到位”,可以看几个具体信号:

  • CDM实例中核心表的记录数是否与源系统量级匹配,是否存在大量因映射失败而丢弃的记录。
  • CONDITION_OCCURRENCE、DRUG_EXPOSURE等表中,concept_id为0(无匹配概念)的比例是否控制在可接受范围,通常要求低于5%~10%,具体阈值视数据源质量而定。
  • VISIT_OCCURRENCE能否覆盖绝大多数临床事件,是否存在大量事件没有关联就诊记录。
  • 时间字段是否满足“事件时间不早于出生时间、不晚于当前时间”等基本逻辑约束。
  • ETL脚本是否版本化,映射表是否可追溯,能否在源数据更新后快速重跑并复现结果。
建议在项目启动阶段就建立“映射规格说明书”和“术语映射表”两份核心文档,前者记录表级与字段级映射规则,后者记录源编码到concept_id的对应关系。这两份文档是后续ETL开发、质量评估和版本迭代的基础,也是团队协作和知识传承的关键载体。

总结来说,OMOP CDM标准化工程的本质,是把“数据可用”这件事从依赖个人经验,转变为依赖可复现的规则、可审计的映射和可迭代的流程。理解CDM的定位与组成,明确工程目标与生命周期,掌握从源数据到CDM的端到端流程,是后续所有具体工作的起点。