2. 临床数据标准与管线设计约束

临床研究数据管线的本质,是把“原始记录”逐级加工成“可递交、可解释、可追溯”的监管级数据。CDISC 的 CDASH、SDTM、ADaM,以及 MedDRA、WHO Drug 等术语标准,并不是彼此独立的工具,而是分布在管线不同环节、承担不同职责的“接口契约”。理解它们之间的映射关系,是设计管线结构、校验规则和追溯链的前提。

各标准在管线中的位置与职责

从数据流方向看,管线大致经历采集、标准化、分析、递交四个阶段,标准也随之切换:

  • CDASH:面向数据采集,规定病例报告表(CRF)上字段的命名、编码与结构,目标是让不同中心、不同表单采集到的数据在进入数据库时就已经“同构”。例如“收缩压”在 CDASH 中对应 SYSBP,采集时即约定单位为 mmHg。
  • SDTM:面向递交,把采集数据整理为监管可读的域结构,如 DM(人口学)、VS(生命体征)、AE(不良事件)、LB(实验室)。SDTM 是“以受试者为中心”的原始数据标准化层,强调变量角色(标识、主题、时间、修饰)与受控术语。
  • ADaM:面向统计分析,在 SDTM 基础上派生分析变量与人群标志,如 ADSL(受试者水平分析数据集)、ADAE、ADTTE。ADaM 必须可追溯到 SDTM,且派生逻辑需在 Define-XML 中说明。
  • MedDRA:用于不良事件、病史等编码,提供 SOC、HLT、PT、LLT 五级层级,是 AE 域 AEDECOD、AEBODSYS 的取值来源。
  • WHO Drug:用于合并用药编码,提供药物名称、剂型、ATC 分类等字典,对应 CM 域的 CMDECOD、CMCLAS。

这些标准之间不是简单替换,而是“同一事实在不同粒度上的表达”。例如一次收缩压测量,在 CDASH 是采集字段,在 SDTM 是 VS 域一行记录,在 ADaM 可能成为基线值或变化值。管线设计的关键,就是保证这条链上每个转换都可被验证和回溯。

临床数据标准在管线环节中的映射与追溯链 ① 采集 CDASH ② 标准化 SDTM ③ 分析 ADaM ④ 递交与审评 CRF 字段 SYSBP / DBP AETERM(原始描述) CMTRT(合并用药) 单位、编码、必填约束 在采集端即统一 SDTM 域 VS:VSTESTCD=“SYSBP” AE:AEDECOD(MedDRA PT) CM:CMDECOD(WHO Drug) USUBJID 贯穿全链 受控术语 + 变量角色 ADaM 数据集 ADSL:TRT01P、SAFFL ADVS:BASE、CHG ADAE:TRTEMFL 派生变量 + 人群标志 须可回溯至 SDTM 递交包 SDTM + ADaM + Define-XML cSDRG / aSDRG 受控术语版本声明 审评可复现 逐变量可追溯 术语字典支撑层 MedDRA(AE/病史编码) · WHO Drug(合并用药编码) · CDISC CT(受控术语) 可追溯性硬性要求(监管递交) ① 每个分析结果可回溯到 SDTM 变量 → ② SDTM 变量可回溯到采集字段 → ③ 编码值可回溯到字典版本 ④ 派生规则写入 Define-XML → ⑤ 任何转换不得丢失 USUBJID、VISIT、时间点等关键标识

映射关系带来的管线设计约束

标准之间的映射不是“转换一次就结束”,而是要在管线中固化三类约束。

第一,标识贯通约束。 USUBJID 必须从采集端生成,贯穿 SDTM、ADaM 直至递交包。若在 SDTM 阶段才拼接中心号与受试者号,一旦中心号规则变更,整条链的追溯就会断裂。因此管线应在 CDASH 到 SDTM 的转换层设置唯一性校验:同一 USUBJID 在 DM 域只能出现一次,且所有域中的 USUBJID 必须能在 DM 中找到。

第二,术语版本约束。 MedDRA 与 WHO Drug 每年更新,SDTM 中的 AEDECOD、CMDECOD 必须绑定明确的字典版本。管线设计时应在转换配置中记录 MedDRA_VERSION 与 WHODRUG_VERSION,并在 Define-XML 中声明。若同一研究跨版本编码,需在 SDRG 中说明处理方式,否则审评时无法判断编码一致性。

第三,派生可解释约束。 ADaM 的派生变量必须能由 SDTM 变量和明确的算法推出。例如 ADVS.BASE 通常定义为“治疗前最后一次非缺失测量”,其实现依赖 VS.VISIT、VS.VSDTC 与治疗开始日期 DM.RFSTDTC 的比较。管线中应把这类规则写成可执行配置,而不是散落在人工脚本里。

一个可落地的追溯检查示例

下面给出一段用于检查 SDTM 到 ADaM 追溯完整性的伪代码配置,重点不是语法,而是它固化了哪些约束:

trace_check:
  source_domain: VS
  target_dataset: ADVS
  key: [USUBJID, VSTESTCD, VISITNUM]
  required_source_vars: [USUBJID, VSTESTCD, VSORRES, VSDTC]
  derived_vars:
    BASE: "last non-missing VSSTRESN where VSDTC < RFSTDTC"
    CHG:  "VSSTRESN - BASE"
  fail_if:
    - target_row_without_source_match
    - BASE_missing_when_baseline_exists
    - CHG_computed_without_BASE

这段配置表达了三层含义:ADVS 的每一行必须能匹配到 VS 的源记录;基线存在时 BASE 不得为空;CHG 不能在 BASE 缺失时被计算。把这类规则前置到管线中,可以在生成 ADaM 的同时输出追溯报告,而不是等到递交前才发现断链。

术语编码建议在 SDTM 层完成,而不是在 ADaM 层补做。因为 MedDRA 的 PT 与 SOC 层级关系会影响 AE 汇总表,若在分析层才编码,ADAE 的派生逻辑会与 SDTM 不一致,审评时容易被质疑。

监管递交对可追溯性的硬性要求

监管机构对可追溯性的要求可以概括为“三个可回答”:任一分析结果能否回答它来自哪个 SDTM 变量;任一 SDTM 变量能否回答它来自哪个采集字段;任一编码值能否回答它来自哪个字典版本。Define-XML 与 SDRG 就是回答这三个问题的正式载体。

因此管线设计时,不应把 Define-XML 当作递交前才补的文档,而应让它在管线运行过程中自动生成或同步更新。具体做法是:在 SDTM 与 ADaM 的转换配置中,为每个变量维护 origin(采集、派生、赋值)、source(来源域或算法)与 comment(派生说明),管线执行时汇总为 Define-XML 的 ItemDef 与 ItemGroupDef。这样,追溯链不是事后人工梳理,而是管线运行的副产品。

把标准映射、标识贯通、术语版本和派生规则这四件事在管线中固化下来,后续的 SDTM 生成、ADaM 派生和递交包组装才能稳定复现,也才能在审评问询时快速给出证据链。