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 可能成为基线值或变化值。管线设计的关键,就是保证这条链上每个转换都可被验证和回溯。
映射关系带来的管线设计约束
标准之间的映射不是“转换一次就结束”,而是要在管线中固化三类约束。
第一,标识贯通约束。 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 变量;任一 SDTM 变量能否回答它来自哪个采集字段;任一编码值能否回答它来自哪个字典版本。Define-XML 与 SDRG 就是回答这三个问题的正式载体。
因此管线设计时,不应把 Define-XML 当作递交前才补的文档,而应让它在管线运行过程中自动生成或同步更新。具体做法是:在 SDTM 与 ADaM 的转换配置中,为每个变量维护 origin(采集、派生、赋值)、source(来源域或算法)与 comment(派生说明),管线执行时汇总为 Define-XML 的 ItemDef 与 ItemGroupDef。这样,追溯链不是事后人工梳理,而是管线运行的副产品。
把标准映射、标识贯通、术语版本和派生规则这四件事在管线中固化下来,后续的 SDTM 生成、ADaM 派生和递交包组装才能稳定复现,也才能在审评问询时快速给出证据链。