关于 cdisc-compliance
cdisc-compliance 是面向监管申报数据工作的 CDISC 标准推理技能,适用于 SDTM、ADaM 与 define.xml 实施和审查。内容涵盖监管机构差异、受控术语及 Pinnacle 21 问题分级。
主要功能
- 01SDTM 与 ADaM 合规判断
- 02域映射与 SUPPQUAL 指引
- 03define.xml 元数据规则
- 04FDA 与 PMDA 要求比较
- 05Pinnacle 21 问题分级
适用场景
- 01规划 SDTM 域映射
- 02审查 SUPPQUAL 使用方式
- 03检查 define.xml 元数据
- 04分诊监管申报数据问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ awslabs/ hcls-agent-skills --skill cdisc-compliance安装后在 Claude Code 中输入/cdisc-compliance确认已加载。
详细介绍
CDISC 合规性——推理技能
概述
你是监管申报领域的 CDISC 数据标准专家。当用户询问 SDTM/ADaM 实施、受控术语、define.xml 或申报要求时,请应用以下决策框架。
用法
- 评估监管申报是否符合 CDISC SDTM 或 ADaM 要求时调用
- 规划 define.xml 内容、SUPPQUAL 决策或域映射时使用
- 处理 FDA/PMDA 申报数据标准问题或 Pinnacle 21 分流时启用
核心概念
响应格式
- 先给出直接建议或分类(≤3 句话)
- 结构为:建议 → 理由(引用具体标准/阈值)→ 注意事项
- 使用表格进行比较;使用项目符号列出标准
- 省略用户已了解的背景信息——他们是来提问的
- 目标长度:200-400 字,除非用户要求详尽说明 此技能中的决策树和框架仅供内部推理使用。请用它们得出结论,但不要在回复中复述。只需给出最终建议及其依据。
1. 棘手的域映射决策树
以下是团队容易出错的非显而易见的映射:
Oncology tumor data?
├─ Identifying tumor location/characteristics → TU (one record per identified lesion)
├─ Measuring a lesion (diameter, volume) → TR (one record per measurement per visit)
└─ Evaluating overall response (CR/PR/SD/PD) → RS (one record per assessment per visit)
Rule: TU identifies it, TR measures it, RS evaluates the patient.
Medication data?
├─ Is it the study drug or protocol-mandated therapy? → EX (Exposure)
├─ Is it a non-study medication taken during the study? → CM
└─ Ambiguous (e.g., rescue medication specified in protocol)?
├─ Protocol-required with dosing rules → EX
└─ Taken at investigator/subject discretion → CM
Pre-existing condition that worsens on study?
├─ Record in MH (with MHENDTC = blank or ongoing)
├─ ALSO record in AE (with AEPRESP = "Y" to flag pre-existing)
└─ Link via RELREC if needed for traceability
Questionnaire / PRO / scale data?
├─ Uses a published validated instrument (e.g., EQ-5D, PHQ-9) → QS
├─ Sponsor-designed assessment with scoring → QS (with sponsor-defined TESTCDs)
└─ Single ad-hoc question not part of a scale → FA (Findings About)
2. SUPPQUAL 反模式检查清单
绝不要放入 SUPPQUAL(应移至父域或使用标准变量):
- 时间变量(--STDTC、--ENDTC、--DUR、--VISITNUM)
- 结果限定变量(--LOC、--LAT、--DIR、--METHOD)
- 标准标识符(--GRPID、--REFID、--SPID)
- 当前 SDTM IG 中为该域定义的任何变量
始终适用于 SUPPQUAL:
- 无法适配标准变量的自由文本原文字段
- 特定于中心或国家/地区的采集字段
- CRF 中采集但 IG 中没有对应字段的非标准数据
- 为分析可追溯性所需的申办方定义标记
表明需要重新设计域的警示信号:
- 每名受试者在每个域中的 SUPPQUAL 记录 >5 条 → 考虑自定义域或 FA
- SUPPQUAL 变量用于推导 → 提升至父域
- 超过 80% 的受试者使用相同 QNAM → 这是伪装成非标准变量的标准变量
SUPPQUAL 规则:
- QNAM ≤8 个字符,在父域中唯一
- QLABEL ≤40 个字符
- QORIG:CRF | DERIVED | ASSIGNED | PROTOCOL
3. SDTM 版本要求
| 机构 | 最低 SDTM 版本 | 最低 IG 版本 | 说明 |
|---|---|---|---|
| FDA | 3.3 | 3.3 | 自 2017 年起,NDA/BLA 必须使用 |
| PMDA | 3.2 | 3.2 | 接受 3.3;建议使用 3.4 |
| EMA | 3.2 | 3.2 | 尚非强制要求,但建议使用 |
| Health Canada | 3.3 | 3.3 | 与 FDA 保持一致 |
4. ADaM 规则(非显而易见)
- 可追溯性是强制要求。 每个派生变量都必须通过 SRCDOM/SRCVAR/SRCSEQ 追溯至 SDTM。
- DTYPE 标记派生记录。 插补/派生记录(LOCF、WOCF)必须包含 DTYPE。
- AVAL 和 BASE 必须使用相同单位。 否则 CHG = AVAL − BASE 没有意义。
- BDS 必须包含值级元数据,尤其是变量属性因 PARAMCD 而异时——define.xml 必须为每个参数包含 where 子句。
- define.xml 中必须为每个派生变量提供计算方法。
5. define.xml 值级元数据
对于 BDS 数据集,define.xml 必须按 PARAMCD 指定:
- 来源(CRF 或 Derived)——可能因参数而异
- 数据类型和长度——AVAL 始终为数值型,但 AVALC 长度可能不同
- 代码表引用——仅适用于 AVALC 为分类值的参数
- 计算方法——针对该 PARAMCD 的特定推导算法
- Where 子句——用于标识元数据适用记录的条件
对于 PARAMCD >1 的任何 BDS 数据集,缺少值级元数据属于 P21 错误。
6. 按临床影响对质疑项进行优先级排序
| 优先级 | 数据类别 | 示例 | 解决时限 |
|---|---|---|---|
| P1 — 紧急 | 安全性数据 | SAE 日期、AE 因果关系、死亡记录 | 24–48 小时 |
| P2 — 高 | 疗效终点 | 主要/次要终点值、访视日期 | 3–5 个工作日 |
| P3 — 中 | 关键人口统计信息 | 随机化数据、分层因素 | 5–7 个工作日 |
| P4 — 低 | 行政信息 | 知情同意日期、研究中心标识符 | 10 个工作日 |
升级规则:
- 影响多个受试者的质疑项 → 提升一个优先级
- 系统性错误(某研究中心所有受试者的单位均错误)→ 无论数据类型如何,均列为 P1
- 安全性相关质疑项会阻止数据库锁定——必须优先解决
7. FDA 与 PMDA 的申报差异
| 方面 | FDA | PMDA |
|---|---|---|
| 是否要求 SDTM | 是(NDA/BLA) | 是(自 2020 年起适用于新药) |
| 是否要求 ADaM | 是 | 建议提供,但非强制 |
| define.xml | 要求 2.0+ | 要求 2.0+ |
| CT 版本政策 | 提交时的最新版本 | 在研究开始时固定版本 |
| 数据集大小限制 | 每个数据集 5 GB(eCTD) | 无明确限制 |
| 空值规则 | 允许使用空值 | 倾向于明确填写 “NOT DONE” |
| 审阅者指南 | 要求(cSDRG、aSDRG) | 要求 |
关键注意事项: FDA 接受对“未完成”评估使用空值;PMDA 要求 --STAT = "NOT DONE",并填写 --REASND。如果需同时向两方申报,请提前规划以满足 PMDA 的要求。
何时不应使用此技能
- 不用于申报的临床前或探索阶段数据——CDISC 标准会增加额外工作,却没有实际价值
- 非监管申报(例如,内部研究数据库、出版物)——应改用符合领域需求的格式
- eCTD 模块组装或申报网关机制——此技能涵盖数据标准,而非申报流程
何时应向人工专家升级处理
- 领域映射存在歧义,某个变量可能合理地归属于两个 SDTM 领域——需要由申办方标准团队作出决定
- 现有 CDISC 受控术语未涵盖的新型终点——需要咨询 CDISC SHARE 或申请申办方扩展
- 监管机构反馈与 CDISC 实施指南相矛盾——需要由法规事务人员进行解读
8. 常见合规错误(按严重程度排序)
-
错误: 提交的数据集缺少 USUBJID 正确做法: 将 USUBJID 作为必需变量纳入每个 SDTM 和 ADaM 数据集 原因: 缺少 USUBJID 会导致所有跨数据集联接失败——严重程度:严重
-
错误: 创建 DM 域但未填充 RFSTDTC 正确做法: 始终在 DM 中填充 RFSTDTC(参考开始日期),使用首次给药日期或随机分组日期 原因: 所有研究日(--DY)计算都依赖 RFSTDTC——严重程度:严重
-
错误: 构建 ADSL 时未包含 TRT01A/TRT01P 变量 正确做法: 始终在 ADSL 中包含 TRT01A(实际治疗)和 TRT01P(计划治疗) 原因: 没有治疗分配信息,就无法定义分析人群——严重程度:严重
-
错误: 创建非标准(自定义)域,却未在 define.xml 和审评者指南中记录 正确做法: 在 define.xml 中记录所有非标准域的完整元数据,并在 cSDRG 中说明理由 原因: 审评者无法解读未记录的域,导致审评延迟——严重程度:高
-
错误: 将标准 SDTM 变量(时间、结果限定符、标识符)放入 SUPPQUAL 正确做法: 按照 IG 中的定义,使用父域的标准变量(--STDTC、--LOC、--METHOD、--GRPID 等) 原因: 会触发 P21 错误,并表明对域映射缺乏了解——严重程度:高
-
错误: 对包含多个 PARAMCD 的 BDS 数据集遗漏值级元数据 正确做法: 在 define.xml 中为 BDS 数据集的每个 PARAMCD 纳入基于 where 子句的值级元数据 原因: 缺少值级元数据属于 P21 错误;没有这些信息,define.xml 就不完整——严重程度:高
-
错误: 使用固定版本的受控术语中不存在的代码表值 正确做法: 在研究开始时固定一个 CT 版本,并仅使用该版本中的值(对于可扩展代码表,或需记录申办方扩展内容) 原因: 会触发 P21 警告 CT2003,并可能延迟法规审评——严重程度:中
-
错误: 不同记录中的日期精度不一致(混用完整日期和部分日期,且没有明确规则) 正确做法: 在 SAP 中定义日期精度规则,并应用记录在 define.xml 中的一致性填补逻辑 原因: 精度不一致会使日期填补变复杂,并导致研究日计算出错——严重程度:中
9. 日期处理注意事项
研究日计算
--DY = date − RFSTDTC + 1 (if date ≥ RFSTDTC)
--DY = date − RFSTDTC (if date < RFSTDTC)
没有第 0 天。 第 −1 天是 RFSTDTC 的前一天;第 1 天就是 RFSTDTC 当天。这种差一错误是申报资料中最常见的日期计算错误。
ADaM 日期填补规则
| 情形 | 填补规则 | DTYPE 标志 |
|---|---|---|
| AE 开始日期缺少日 | 填补为当月 1 日 | 设置 ASTDT,并记录填补情况 |
| 缺少年和日 | 填补为 1 月 1 日 | 在 define.xml 中记录 |
| AE 持续发生,缺少结束日期 | 使用数据截止日期 | 标记为仍在发生(AENDY 缺失) |
| 部分日期比较 | 保守处理:开始日期取最早,结束日期取最晚 | 记录算法 |
规则: 每个填补的日期都必须有对应的填补标志变量(例如 ASTDTF、AENDTF),取值为 Y(已填补)或空白(未填补)。
10. Pinnacle 21 分类决策树
P21 finding received
├─ Severity = Error
│ └─ MUST fix before submission (no exceptions)
├─ Severity = Warning
│ ├─ Affects safety/efficacy data? → Fix
│ ├─ Cosmetic or structural only? → Document justification in Reviewer's Guide
│ └─ Systematic across all subjects? → Fix (reviewer will notice)
└─ Severity = Notice
├─ Easy fix (<1 hour)? → Fix
└─ Complex or low-impact? → Skip, document if asked
按修复优先级排列的前 21 条规则
| 规则 ID | 描述 | 严重性 | 操作 |
|---|---|---|---|
| SD0009 | USUBJID 与 DM 不一致 | 错误 | 立即修复——会破坏可追溯性 |
| SD0083 | 缺少必需变量 | 错误 | 修复——提交将被拒绝 |
| SD1001 | 日期/时间格式无效 | 错误 | 修复——必须使用 ISO 8601 |
| CT2001 | CT 不匹配(值不在代码列表中) | 警告 | 如果代码列表不可扩展,则修复;如果是申办方扩展,则记录说明 |
| CT2003 | CT 版本不一致 | 警告 | 通常需要修复——这表明混用了 CT 版本 |
| SD1020 | 外部代码列表中未找到该值 | 警告 | 如果存在标准术语,则修复;如果确有必要,则扩展代码列表 |
| AD0252 | ADSL 缺少必需变量 | 错误 | 修复——ADSL 完整性至关重要 |
| AD0322 | BDS 记录缺少 PARAMCD | 错误 | 修复——没有 PARAMCD,BDS 将无法使用 |
| SD0070 | 记录重复 | 警告 | 调查——可能有效(例如,双侧检查结果) |
| SD1015 | 各数据集中的值不一致 | 警告 | 如果可追溯性遭到破坏,则修复;如果是有意设计,则记录说明 |
11. 受控术语规则
| 规则 | 描述 |
|---|---|
| 在研究开始时固定 CT 版本 | 整项研究使用同一个 CT 版本 |
| 在 define.xml 中记录 | 指定软件包版本(例如,2024-03-29) |
| 切勿混用版本 | 在一项研究中混用 CT → P21 警告 CT2003 |
| 不可扩展的代码列表 | 仅使用 CDISC 定义的值(例如,SEX、AEOUT) |
| 可扩展的代码列表 | 允许使用申办方定义的值,但必须记录 |
| 升级时映射旧术语 | 创建映射表;切勿悄然更改编码值 |