4. ADSL受试者水平分析数据集
ADSL(Subject-Level Analysis Dataset)是CDISC ADaM中唯一一个“每受试者一行”的结构化数据集,也是所有后续分析数据集(如ADAE、ADLB、ADTTE)的“主表”。它的核心价值在于:把分散在SDTM各域中的受试者属性、分组信息、关键日期、治疗暴露和人群标志,经过一次性的工程化整合,形成一份稳定、可追溯、可校验的分析基线。本节围绕ADSL的五大核心变量族——人口学(DM)、分组(TRT/ARM)、关键日期(RFSTDTC/RFENDTC等)、治疗变量(TRTSDT/TRTEDT/TRTDUR等)和人群标志(SAFFL/ITTFL/PPROTFL等)——展开工程化生成与一致性校验的讲解。
一、ADSL的定位与结构约定
ADSL的每一行代表一个受试者,唯一标识为USUBJID。它不承载纵向观测,而是承载“受试者是谁、被分到哪组、何时开始治疗、是否纳入某个人群”这类静态或半静态属性。因此,ADSL的生成本质上是“以DM为骨架,横向拼接各域汇总信息”的过程。工程上通常遵循三条约定:第一,ADSL必须覆盖所有随机化或入组的受试者,不能因缺失某域数据而丢行;第二,所有派生变量必须可追溯到SDTM源变量或明确的派生规则;第三,日期类变量统一使用ISO 8601格式(YYYY-MM-DD),部分场景可保留时间部分。
二、人口学与分组变量的工程化生成
人口学变量主要来自SDTM DM域,包括AGE、AGEU、SEX、RACE、ETHNIC等。工程化处理的关键点在于:AGE通常需要按方案定义计算为随机化时年龄或知情同意时年龄,而非直接取DM.AGE;RACE和ETHNIC需按CDISC受控术语映射,并保留原始文本变量(如RACEOTH)以便追溯。分组变量TRT01P(计划治疗)、TRT01A(实际治疗)、ARM和ACTARM则来自随机化系统和实际给药记录。一个常见的工程陷阱是:TRT01P与ARM可能因随机化编码差异而不一致,必须在ADSL中同时保留并增加一致性校验。
三、关键日期与治疗变量的派生
关键日期包括RFSTDTC(参考起始日期)、RFENDTC(参考结束日期)、RFXSTDTC(首次研究药物给药)、RFXENDTC(末次研究药物给药)等。RFSTDTC通常定义为首次研究药物给药日期,若未给药则取随机化日期。治疗变量TRTSDT、TRTEDT、TRTDUR则基于暴露域(EX)汇总:TRTSDT为首次给药日期,TRTEDT为末次给药日期,TRTDUR为两者之差加1(天)。工程实现时需注意:若EX存在多次给药记录,需按USUBJID分组取最小和最大日期;若存在剂量中断,TRTDUR仍按首末日期计算,不扣除中断天数,但可在派生变量中增加TRTDURD(实际给药天数)作为补充。
四、人群标志的派生逻辑
人群标志是ADSL中最具分析意义的变量族,常见包括SAFFL(安全性人群)、ITTFL(意向性治疗人群)、PPROTFL(符合方案人群)和COMPLFL(完成者人群)。SAFFL通常定义为“至少接受过一次研究药物”,即EX域存在给药记录;ITTFL通常定义为“随机化且至少接受一次给药”,部分方案定义为“随机化即纳入”;PPROTFL则需结合方案偏离(PD)域,排除重大偏离后确定。工程化生成时,建议为每个人群标志单独编写派生程序,并输出派生逻辑说明文档,确保可审计。
五、一致性校验的工程实现
ADSL生成后,必须进行系统化的一致性校验。校验可分为四类:第一类是日期逻辑校验,例如TRTSDT不能晚于TRTEDT,RFSTDTC不能晚于RFENDTC,且所有日期应落在合理的研究时间窗内;第二类是分组一致性校验,例如TRT01P与ARM应一致(若不一致需记录原因),TRT01A与ACTARM应一致;第三类是人群标志互斥与包含关系校验,例如SAFFL=Y的受试者必须在EX域有给药记录,ITTFL=Y的受试者应同时满足SAFFL=Y(若方案如此定义),PPROTFL=Y的受试者不应存在重大方案偏离;第四类是缺失与唯一性校验,例如USUBJID不能重复,关键变量(如TRT01A、SAFFL)不能缺失。
工程实现上,建议使用SAS或R编写独立的校验程序,输出异常清单(Exception Listing),每条异常记录包含USUBJID、变量名、异常值、校验规则编号和严重程度。校验规则应版本化管理,与ADSL派生程序同步更新。以下是一个简化的校验规则示例表:
| 规则编号 | 校验对象 | 校验逻辑 | 严重程度 |
|---|---|---|---|
| CHK-001 | USUBJID | 唯一性:COUNT(USUBJID) = COUNT(DISTINCT USUBJID) | 高 |
| CHK-002 | TRTSDT / TRTEDT | TRTSDT ≤ TRTEDT | 高 |
| CHK-003 | TRT01P / ARM | TRT01P = ARM(允许方案定义的映射差异) | 中 |
| CHK-004 | SAFFL | SAFFL=Y 时 EX域存在至少一条给药记录 | 高 |
| CHK-005 | ITTFL / SAFFL | ITTFL=Y 时 SAFFL=Y(若方案定义ITT为给药人群) | 中 |
| CHK-006 | PPROTFL | PPROTFL=Y 时 PD域无重大偏离记录 | 中 |
六、常见工程陷阱与规避策略
在实际项目中,ADSL生成最常见的陷阱包括:第一,日期缺失处理不当,例如RFSTDTC缺失时未按方案规则回退到随机化日期,导致后续TRTSDT计算错误;第二,分组变量映射错误,例如TRT01P使用了随机化编号而非计划治疗名称,导致与ARM不一致;第三,人群标志重复计数,例如SAFFL和ITTFL同时为Y但未检查包含关系,导致分析人群重叠;第四,多域拼接时产生笛卡尔积,例如EX域多次给药记录未先汇总就直接连接,导致ADSL行数膨胀。规避策略是:在拼接前对每个源域按USUBJID进行汇总(取最小/最大日期、计数等),确保每个受试者只有一行汇总结果;在派生人群标志时,先明确方案定义,再编写独立程序,最后通过校验规则验证互斥与包含关系。
综上所述,ADSL的工程化生成不是简单的变量搬运,而是以受试者为主键、以方案定义为规则、以可追溯为原则的系统性数据整合过程。人口学、分组、关键日期、治疗变量和人群标志五大变量族各有其派生逻辑和校验要点,只有将派生与校验同步设计、同步实现,才能保证ADSL作为分析基线的可靠性和可审计性。