3. 药物警戒数据模型与标准
药物警戒数据平台的核心难点,不在于把数据存进数据库,而在于让来自医院、企业、监管机构、文献和患者支持项目的异构数据,能够被同一套语义理解、被同一套规则校验、被同一条链路传递。要做到这一点,必须先把“标准”当作数据模型的骨架,而不是事后附加的字段说明。本节围绕 ICH E2B(R3)、MedDRA、WHODrug、CDISC 这几类最常出现在药物警戒场景中的标准,说明它们各自解决什么问题、在数据模型中处于什么位置,以及如何把原始数据映射到统一模型。
一、四类标准的分工:从传输、编码到分析
ICH E2B(R3) 是个例安全报告(ICSR)的电子传输标准,它规定的是“报告长什么样、字段怎么组织、如何交换”。E2B(R3) 采用 HL7 v3 消息结构,核心是 ICSR 消息,包含报告标识、患者信息、可疑药品、不良反应、报告者、发送方等模块。它解决的是监管机构与企业之间的互操作问题,因此字段的取值、必填性、时间格式、编码系统引用都有严格约束。
MedDRA 是监管活动医学词典,用于编码不良反应、适应证、病史、检查等医学概念。它采用五级层级:低位语(LLT)、首选语(PT)、高位语(HLT)、高位组语(HLGT)、系统器官分类(SOC)。同一个临床事件可能对应多个 LLT,但通常只有一个主 SOC。MedDRA 还提供 SMQ(标准 MedDRA 查询),用于把一组相关 PT 组合成可复用的信号检索集。
WHODrug 用于编码药品,包括药品名称、活性成分、剂型、规格、给药途径等。WHODrug 提供 ATC 分类和 DDD 信息,适合做药品暴露分析和药物利用研究。CDISC 则覆盖临床研究数据交换与分析,其中 SDTM 用于提交数据,ADaM 用于分析数据集,CDASH 用于数据采集。在药物警戒中,CDISC 常与 E2B 配合,把临床试验中的不良事件数据转换为可提交的 ICSR。
二、数据模型设计原则:以“可追溯、可校验、可扩展”为底线
药物警戒数据模型不是把 E2B 字段原样建表,而是要在标准之间建立稳定的语义层。设计时建议遵循四条原则。
第一,主键与版本分离。 每份 ICSR 应有全局唯一报告 ID,同时记录其来源系统、来源版本和标准版本。例如同一份报告从 E2B(R2) 升级到 E2B(R3),报告 ID 不变,但标准版本字段要更新,避免历史数据被覆盖。
第二,编码字段与原始文本并存。 MedDRA 编码结果不能替代原始描述。模型中应同时保留“原始报告术语”和“MedDRA LLT/PT 编码”,并记录编码版本、编码人和编码时间。这样在 MedDRA 版本升级或编码争议时,可以回溯和重编码。
第三,时间与取值遵循统一约定。 E2B(R3) 要求日期使用 ISO 8601 格式,部分日期允许部分精度。模型中应区分“精确日期”“部分日期”“未知日期”,并统一时区处理。药品剂量、给药途径等字段要保留单位,避免单位混用导致计算错误。
第四,关系建模而非宽表堆叠。 一份报告可能涉及多个可疑药品、多个不良反应、多个报告者。应采用“报告—药品”“报告—事件”“报告—报告者”的关系表,而不是把所有信息塞进一张宽表。这样既符合 E2B 的多值结构,也便于后续做药品暴露和事件组合分析。
三、标准化映射方法:从原始数据到统一模型
映射不是简单的字段对应,而是一个“识别—归一—编码—校验”的过程。以一份来自医院的不良事件报告为例,原始数据可能包含“患者服用阿司匹林后出现胃出血”这样的自由文本。映射步骤如下。
步骤一:字段识别。 从原始记录中识别出患者信息、药品信息、事件信息、时间信息、报告者信息。例如药品名称“阿司匹林”、事件“胃出血”、时间“2024-03-15”、报告者“消化科医师”。
步骤二:术语归一。 把“阿司匹林”归一为 WHODrug 中的药品记录,把“胃出血”归一为 MedDRA 中的 LLT。归一过程中要处理同义词、商品名、缩写和拼写变体。例如“阿司匹林肠溶片”应映射到同一活性成分,但保留剂型差异。
步骤三:编码赋值。 为药品分配 WHODrug 代码和 ATC 分类,为事件分配 MedDRA LLT 代码和 PT 代码。若事件对应多个 PT,应记录主 PT 和次要 PT,并说明选择依据。
步骤四:结构映射。 把编码结果填入统一数据模型。例如报告表记录报告 ID、报告类型、接收日期;药品表记录报告 ID、WHODrug 代码、剂量、途径、开始结束时间;事件表记录报告 ID、MedDRA 代码、严重性、转归、发生时间。
步骤五:校验与回写。 校验必填字段、编码有效性、时间逻辑和版本一致性。例如事件发生时间不能晚于报告接收时间;MedDRA 代码必须存在于当前版本词典中。校验通过后,再生成 E2B(R3) 消息或写入分析数据集。
四、案例:从 EDC 到 E2B(R3) 的转换
在临床试验中,不良事件通常先记录在 CDASH 或 SDTM 的 AE 域中。要把 AE 域数据转换为 E2B(R3) ICSR,需要做三件事:一是把 SDTM 的 AETERM 映射到 MedDRA PT,把 AESTDTC 映射到事件开始时间;二是把 CM 域中的药品名称映射到 WHODrug;三是把受试者信息、研究信息、报告者信息组装成 E2B 的报告者模块和患者模块。
转换过程中最容易出问题的是“严重性判定”和“因果关系”。E2B(R3) 对严重性有明确分类:死亡、危及生命、住院、致残、先天异常、其他重要医学事件。SDTM 中的 AESER 只表示是否严重,不直接对应 E2B 的细分类型,因此需要额外字段或规则来补充。因果关系在 E2B 中通常用“相关”“可能相关”“不相关”等术语,而 SDTM 中可能用 SUPPAE 或自定义变量记录,映射时要统一到 E2B 的取值集。
另一个关键点是版本管理。MedDRA 和 WHODrug 每年更新,E2B(R3) 也有实施指南更新。数据模型应记录每条编码所使用的词典版本,并在版本升级时评估影响范围。例如 MedDRA 从 25.0 升级到 26.0,某些 PT 可能被拆分或合并,历史编码需要重新校验,而不是直接沿用。
五、落地建议
建设药物警戒数据平台时,建议先建立“标准字典表”和“映射规则表”。标准字典表存放 MedDRA、WHODrug、E2B 字段和 CDISC 变量的元数据;映射规则表存放原始字段到标准字段的对应关系、转换函数和校验条件。这样当标准升级或新增数据源时,只需调整规则表,而不必修改核心模型。
同时,应把映射过程做成可审计的流水线:每次映射记录输入、输出、规则版本、执行时间和校验结果。对于无法自动映射的记录,进入人工编码队列,由医学编码员处理并回写。这样既能保证效率,也能保证数据质量和监管可追溯性。
最后,不要试图用一个标准覆盖所有场景。E2B 负责传输,MedDRA 负责事件编码,WHODrug 负责药品编码,CDISC 负责临床数据交换,它们各自有边界。数据模型的价值,在于让这些标准在同一套语义下协同工作,而不是互相替代。