EDC 详解:临床数据采集系统的核心设计
本系列第四篇。MES / LIMS / ELN / EDC(本篇)/ BI / PMS。
一句话定位
临床试验中,研究者把受试者数据录进 CRF(病例报告表),申办方在另一端看数据——中间这个系统就是 EDC。
先摆清楚行业链条:申办方(药企)出钱 → CRO 组织执行 → 中心医院的研究者收治受试者。数据在研究者手里产生,但证据要归申办方所有。EDC 是申办方的眼睛。
纸时代的临床数据是”双份录入 + 人工核对”,EDC 把这个过程变成在线录入 + 自动校验 + 疑问流转。
核心领域模型
| 概念 | 说明 |
|---|---|
| Study 研究 | 一个临床试验,全局上下文 |
| Protocol 方案 | 试验的设计蓝图(谁、多久、测什么) |
| Visit 访视 | 受试者按计划来医院的时间点(D0、W2、W4…) |
| Form / CRF 表单 | 一个访视要填的一组表(生命体征、血常规…) |
| Item 字段 | 表单里一个数据点 |
| Edit Check 逻辑校验 | 跨字段、跨表单的一致性规则 |
| Query 疑问 | 数据有疑问?发起 → 回答 → 关闭,全程留痕 |
| SDV 源数据核查 | 监查员核对 EDC 数据与医院原始记录 |
| Coding 医学编码 | 不良反应术语 → MedDRA 标准词典 |
| Lock 锁库 | 数据定稿,锁定后只读 |
数据的一生:
方案 → eCRF 设计 → 录入 → 自动校验 → Query 往来
→ 监查核查 → 医学编码 → 锁库 → 导出 CDISC → 统计分析
关键模块
- 研究设计器 —— eCRF 拖拽设计、访视计划、字段字典(CDASH 命名)
- 受试者管理 —— 筛选号/随机号、访视窗(超出访视窗自动提醒)
- 数据录入 —— 表单、单位、正常值范围提示
- Edit Check 规则引擎 —— 核心中的核心,见下文
- Query 管理 —— 系统自动/人工发起,中心回答,数据管理员关闭
- 权限模型 —— 研究者 / CRA 监查员 / DM 数据管理员 / 开发者各司其职;盲法试验下角色权限是安全设计
- 导出与对接 —— CDISC SDTM 数据集、SAS 传输文件
技术挑战(架构师视角)
一:规则引擎。 Edit Check 是 EDC 的灵魂:
规则示例:
IF 年龄 < 18 AND 用药剂量 > 500mg THEN 发起 Query "未成年受试者剂量超标"
IF 表单A.末次月经日期 > 表单B.知情同意日期 THEN 发起 Query
设计要点:
- DSL:规则用领域语言描述(字段引用、条件、动作),不是写死在代码里
- 跨表单字段引用:
Visit(D0).Form(血常规).Item(WBC)这样的寻址,需要研究元数据(研究定义本身是一套数据) - 执行时机分级:保存时同步校验(体验,<500ms)+ 夜间批量校验(重规则、跨受试者规则)
- 研究设计器产出的”研究定义”和规则共用同一套元数据——这是架构上最值得做对的一件事
二:方案修订带来的 eCRF 变更。 临床试验的方案一定会修订(Protocol Amendment),CRF 跟着变。难的不是改表单,是已录入的数据怎么办:
- 新增字段:历史数据回填策略
- 删除字段:数据保留还是归档
- 改变选项枚举:旧值的映射
版本化 + 数据迁移策略,是 EDC 领域独有的复杂度,比想象中难十倍。EDC 要为”变”而生。
三:稽查痕迹。 每个值的完整变更历史(旧值、新值、时间、人、原因)。和 ELN 一样:没有 UPDATE,只有事件流。
四:盲法与紧急破盲。 双盲试验里,任何人都不能看到分组信息;紧急破盲是高权限、留痕、即通知的特殊操作——安全设计做到”想偷看的人看不着,该看的人随时看得了”。
五:锁库不可逆。 锁库后数据只读,解锁需要审批链。技术上容易(状态 + 权限),流程上要庄严——这是数据的”定稿”时刻。
法规与标准
- GCP(药物临床试验质量管理规范)
- 21 CFR Part 11 / Annex 11:电子记录与签名
- CDISC(CDASH 采集标准 / SDTM 提交标准):不是可选项,是监管递交的入场券
几点体会
- EDC 项目 70% 的架构精力应该花在”研究元数据 + 规则引擎”上,表单渲染反而是简单的那部分
- Query 状态机的顺滑度决定研究者的配合度——别人家系统点两下,你家点四下,中心就怨声载道
- 导出标准要第一天就按 CDISC 设计,事后补是灾难