3. 临床数据源与数据流解析

临床数据核查自动化的第一步,不是写规则,而是把“数据从哪来、以什么形态到达、在哪里落地、以什么键关联”搞清楚。同一个受试者在一次访视中产生的数据,可能同时来自 EDC 表单录入、ePRO 受试者自填、IWRS 随机发药、中心实验室的 LB 传输、影像中心的阅片结论,以及作为源文件的电子源数据(eSource)。这些来源的接口方式、格式特征、到达时延和可核查粒度差异极大,若不加区分地套用同一套核查逻辑,自动化规则会在错误的对象上触发,产生大量假阳性。

六类数据源的接口与格式特征

EDC(电子数据采集)是临床数据的主干。数据以“受试者—访视—表单—字段”四级结构组织,接口通常为 REST API 或数据库直连,格式以 JSON/XML 为主,字段带数据类型、编码列表(codelist)和编辑检查(edit check)状态。核查自动化最关心的是字段级元数据:字段 OID、数据类型、是否必填、关联的访视与表单、以及录入时间戳与修改审计轨迹。EDC 的核查优势在于结构稳定、键明确(SubjectID + Visit + FormOID + ItemOID),适合做跨表单一致性核查。

ePRO(电子患者报告结局)由受试者直接填写,接口多为厂商云平台的增量导出或 API 拉取,格式常见为带时间戳的条目级记录。其关键特征是“填写时间”与“访视窗口”可能不一致,且存在受试者漏填、补填、逻辑跳转导致的空值。核查时需区分“未填”与“不适用”,并关注填写时间是否落在访视窗口内。

IWRS(交互式网络应答系统)负责随机化与药物发放,接口通常为事务型 API 或定期对账文件,格式为随机号、受试者号、发药批次、发药日期等结构化记录。IWRS 数据量小但一致性要求极高,核查重点是随机号与受试者号的一一对应、发药记录与 EDC 中给药表单的一致性、以及随机化日期与知情同意日期的先后关系。

实验室数据(LB)通常由中心实验室以固定宽度的文本文件、CSV 或 SAS 传输文件(如 CDISC LAB 模型)批量送达,按“受试者—访视—采样时间—检验项目—结果—单位—参考范围”组织。其格式特征是长表结构、单位与参考范围随项目变化、存在低于检测限(如 <0.5)等非数值结果。核查需处理单位换算、参考范围区间判断和异常值标记。

影像数据分为影像文件(DICOM)与阅片结论(如 RECIST 评估)。DICOM 以患者 ID、检查日期、序列号标识,文件体积大,通常不进入 EDC,而是通过影像管理系统(如独立阅片中心)提供评估结果表。核查自动化主要针对阅片结论与 EDC 中肿瘤评估表单的一致性、评估日期与访视日期的匹配。

电子源数据与源文件核查是近年监管重点。电子源数据指在源系统(如医院 HIS、电子病历、eSource 平台)中直接生成的原始记录,接口常为只读 API 或数据抽取视图,格式多样且缺乏统一标准。源文件核查(SDV)要求核查者能追溯到原始记录,因此自动化需要保留源数据的定位信息(如病历号、记录时间、页面标识),并支持“EDC 值 ↔ 源值”的逐字段比对。

临床数据源接口与数据流:从采集到核查落地 数据源层 EDC REST/JSON · 字段级 ePRO API增量 · 条目级 IWRS 事务API · 随机发药 实验室 LB CSV/SAS · 长表 影像 DICOM · 阅片结论 电子源数据 只读API · 源文件 汇聚与标准化层 统一数据模型(SDTM 映射 / 键对齐) SubjectID · Visit · FormOID · ItemOID · 采样时间 · 随机号 · 检查序列 核查规则层 跨源一致性核查 随机号↔给药记录 EDC↔LB 单位/结果 时间逻辑核查 知情同意≤随机化 访视窗口内填写 源文件核查(SDV) EDC值↔源值比对 保留定位信息 异常与缺失核查 低于检测限处理 未填 vs 不适用 核查结果输出:Query 列表 / 差异报告 / 审计轨迹 每条结果携带:数据源标识 · 受试者 · 访视 · 字段 · 规则编号 · 触发值 · 源定位

数据流中的关键关联键

多源数据能否被自动化核查,取决于关联键是否稳定。实践中真正可用的主键组合是:SubjectID + Visit + 时间点。EDC 用 FormOID/ItemOID 定位字段,LB 用检验项目代码与采样时间定位结果,IWRS 用随机号与发药日期定位事务,影像用检查序列号与评估日期定位结论。当这些键在汇聚层被统一映射后,跨源核查才具备可执行性。例如核查“随机化日期是否早于首次给药日期”,需要从 IWRS 取随机化日期、从 EDC 给药表单取给药日期,两者通过 SubjectID 关联;若 IWRS 只提供随机号而未回传受试者号,则关联断裂,规则无法落地。

接口对接时优先确认三件事:主键字段名与取值格式是否一致、时间字段是日期还是日期时间、编码列表(如性别、访视名称)是否使用同一套受控术语。这三项不一致是跨源核查假阳性的主要来源。

格式差异带来的核查处理要点

实验室数据的长表结构意味着同一受试者一次访视会产生多行记录,核查规则需按“受试者+访视+检验项目”分组后再判断,而不能逐行独立判断。低于检测限的结果(如 <0.5)在数值比较前必须先识别为非数值,否则单位换算和区间判断都会出错。ePRO 的条目级时间戳需要与 EDC 访视日期做窗口比对,窗口定义应来自方案,例如“访视日 ±3 天”,超出即触发质疑。影像阅片结论与 EDC 肿瘤评估表单的比对,重点在评估日期与靶病灶测量值,而非影像文件本身。

电子源数据与源文件核查的特殊性在于:源数据往往不在 EDC 内,而在医院系统或 eSource 平台。自动化方案需要建立“EDC 字段 → 源系统查询条件”的映射,并保留源记录的定位信息(如病历号、记录时间、页面或接口返回标识),使核查结果可被追溯和复核。若源系统仅提供只读视图且无稳定主键,则应退化为人工抽样核查,而不是强行自动化。

一个可执行的源—目标映射示例

下表给出一个简化的映射配置示例,用于说明自动化核查前必须明确的字段对应关系。示例参数为教学假设,实际项目应按方案与传输规范填写。

数据源 源字段/定位 目标字段(统一模型) 关联键 核查用途
EDC DM.BRTHDTC BRTHDTC SubjectID 年龄计算与入排核查
IWRS RANDDT / RANDNO RANDDT / RANDNO SubjectID 随机化日期≤首次给药
LB LBTESTCD / LBORRES / LBORRESU TESTCD / ORRES / ORRESU SubjectID+Visit+采样时间 单位换算与参考范围判断
ePRO ItemOID / 填写时间戳 ITEM / FILLDT SubjectID+Visit 访视窗口内填写核查
影像 检查序列号 / 评估日期 / 靶病灶测量 IMGDAT / LESION SubjectID+评估日期 与 EDC 肿瘤评估一致性
电子源数据 病历号 / 记录时间 / 源值 SRCKEY / SRCDT / SRCVAL SubjectID+字段 SDV 逐字段比对

把这张映射表落到代码层面,核查规则才具备可执行形态。例如一条“随机化日期不得晚于首次给药日期”的规则,其伪代码逻辑为:从 IWRS 取 RANDDT,从 EDC 给药表单取 EXSTDTC,按 SubjectID 关联,若 RANDDT > EXSTDTC 则生成质疑,质疑内容携带两个日期值与来源标识。规则本身简单,难点在于两个日期字段的格式统一(日期 vs 日期时间)和缺失处理(任一为空时不触发,标记为待补)。

不要对缺失值直接触发质疑。跨源核查中,源数据尚未到达、字段未填、或该访视不适用,都会表现为空值。应先区分“未到达”“未填”“不适用”三种状态,再决定是否生成质疑,否则会产生大量无效 Query。

综上,六类数据源的接口与格式差异决定了核查自动化的分层设计:源层负责按各自接口稳定采集,汇聚层负责主键对齐与格式标准化,规则层负责跨源一致性与时间逻辑判断,输出层负责携带完整定位信息的结果交付。只有把“数据从哪来、以什么键关联、以什么格式落地”这三件事在工程上固定下来,后续的规则编写与批量核查才有可靠基础。