程序包清单签名验证失败_临床试验数据人工审核清单的SAS宏实现

37eb2c1dc196ccf7b7e67885e0f720a4.png

作者:吴彩萍,赵杨(南京医科大学公共卫生学院,南京 211166,江苏)

来源:中国临药理学与治疗学 2019-01-30


摘要:目的 为了提高人工审核的准确性及工作效率。方法 本研究基于数据库系统中下栽的原始数据,通过SAS的宏功能和动态数据交换(DDE)语言将两次数据中同一数据集的同一数据点进行比较,并对更新的数据进行定位标记,自动输出数据清单。结果 本研究实现了快速准确地定位更新的数据,同时对不一致的数据点进行颜色标记,显著减少了人工审核的工作量,在本研究提供的实例中,至少减少了95%的工作量。结论 通过SAS编程,实现两次数据自动化比对,有利于数据审核人员准确地识别,有效避免了数据的遗漏或重复检查。同时,为提高数据清理的工作效率提供有效手段。本研究方法可被用于不同的临床试验数据清单的人工审核,具有较高的实际应用价值。

关键词:临床数据管理;人工审核;SAS宏

  ◆  ◆

临床研究的结论是以数据分析的结果为依据,所以试验数据的质量直接影响到研究结果的真实性,数据核查的重要性不言而喻。目前,CRO公司的数据核查规范中,主要包括计算机逻辑核查和人工核查两种方式。计算机逻辑核查主要是通过电子数据采集(electronic data capture,EDC)系统实现自动核查,当提交的录入数据存在预设的逻辑错误或疑似逻辑错误时,系统将即刻产生数据质疑;当更新之后的数据符合一致性逻辑时,系统产生的质疑将取消。人工核查主要用于检查EDC系统无法实现核查的内容,是实际的数据清理工作中十分必要的手段。现今的EDC系统中包含大量的、不断修正更新的逻辑核查程序、程序包,巳经能够覆盖大部分的核查类别,诸如对各类时间点、因果关系、简单相关关系等,但并不能检查出所有类型的临床数据问题,如复杂的方案违背,尚未编码的合并用药和既往病史、不良事件的关系等。

人工核查的主要流程是从数据库系统中导出所有受试者数据,形成多个数据清单,数据审核人员按照数据核查计划中定义的线下核查内容进行检查。在以往的工作流程中,由于临床数据在不断更新,仅仅通过目测无法准确识别出已经审核过的数据,且容易遗漏或重复检查,每次都需对所有数据进行重新审核,会浪费大晕的时间。本文基于从系统中下载的原始数据,通过SAS的宏功能和动态数据交换(dynamic data exchange,DDE)技术将两次数据清单进行比对,提供易于审核的新数据清单,以此来减少每次审核的工作录。

1 材料与方法

1.1 数据收集

本研究以某CRO公司的临床试验数据为例,从原始数据集中提取所需的数据,并进行一系列的预处理,为后期分析比较作准备。然后,对两次数据中每个数据集的变量分别按照统一的规则进行重命名,两两合并后进行逐条比对并标记比对结果,对有更改的数据点进行颜色标记。最后,验证本研究方法的优化效果。本文编制2个SAS宏程序来实现两次数据清单的自动化比对,具体流程图见Fig.1。

8caeed17d6c8f943181d63097599ccc4.png

1.2 SAS宏实现思路

宏程序1的实现思路:从原始数据集中提取所需的数据集,并进行预处理。具体步骤如下:

(1)设置3个宏变量&InLib、&OutLib和&DataList,分别表示原始数据、提取后的数据、需提取的数据集。

(2)利用循环语句和Scan函数提取原始数据中符合DataList的每个数据集,通过Data步剔除不需要的变量列,生成新的数据集保存在临时文件夹路径下,以便下一步使用。

宏程序2的实现思路:对两次数据中每个数据集的变量分别按照统一的规则进行重命名,两两合并后进行逐条比对并标记比对结果,对有更改的数据点进行颜色标记。具体步骤如下:

(1)在该宏程序中设宜2个宏变量&PreLib和&NowLib,分别表示上次的数据和本次的数据。

(2)通过SAS Proc SQL过程读取Sashelp.Vtable,获取宏程序l提取的所有数据集名称存储至宏变量中,再利用循环语句和Scan函数提取每个数据集。

(3)通过SAS Contents过程获取每个数据集中变量的名称、所在列位置,并按变量的所在列位置进行排序。读取每个数据集的变最信息,利用SAS Call Symput、Retain以及Last.语句,将两次数据的变星重命名规则赋值到相应的宏变量中。目的是将两次数据中的变量分别统一重命名成_VARi和VA.Ri的形式(i为变每所在的列位置),同时,定义变量DIFFi用来定位每个变量所在的列位置。这一步是后续实现自动化的关键,将所有变量进行统一重命名,使在比对时可以精确定位及区分每个变量。

通过Data Merge步将两次数据集合并,by变量为能唯一识别每条记录的变量。循环比对两个数据焦中的每个变量,若同一条记录的同一个观测值不一致时(_VAR&i·=VAR&i),标识为1,并将不一致观测值所在的列位置赋值给变量DIFFi(DIFF&i=cumpress("C"11&i);sign=l;),以便标色定义新变量Type用于判断每条记录的比对结果,并将记录的比对结果和观测值不一致的所在位置分别输出到两个独立的数据集中。

(5)将标记比对结果的SAS数据集导入到Excel表中,通过DDE语言和Array语句循环遍历数据集中的所有变量值,找出列位置变量DIFFi,然后通过观测所在行+1(因标签导入Excel表中占1行,故需+1)及列位置变量DIFFi=Ci来确定在表中需要标记颜色的范围。

通过上述步骤将两次数据清单进行了比对,在输出的新数据清单中,数据审核人员只需根据Type列筛选出"New"的记录和"Update"中标记颜色的数据点进行审核。

本研究完成了两次数据比对、辅助人工审核数据和扩展程序通用性的目的,利用SAS宏功能和DDE语言,实现了仅修改个别参数达到不同数据集的两次数据比对,并考虑了对不一致的数据点进行颜色标记的情况。

1.3 优化方法的验证

为验证本研究方法的优化效果,本文选取了实际工作中正在进行的某个试验项目(试验A)。试验A是一个生物等效性临床试验,试验周期短,需每周做一次人工核查。基于前后两次审核时下载的数据,运行程序后统计待审核的记录条数和观测值数械,与纯人工操作的方式进行比较,计算工作星的减少率来分析本研究方法对工作量的影响。

2 结果

2.1 比对后的数据清单

以试验A的两次不良事件数据比对为例,说明程序的运行结果。运行程序后得到比对后的数据清单AE,见Fig.2。

82804b740c4418d31671cc0b580119e1.png

在Fig.2中,第2、3、7、8、10条的Type值为"NoChange",表示是上次已经审核过的记录,没有更改的数据点,本次不需要重新审核;第9、11条的Type值为"Update",表示是上次已审核过的记录,标记蓝色的数据点有修改,需重新审核修改过的数据点;第4、5、6条的T}'Pe值为"New",表示是对比上次数据是新增的记录,需审核整条记录。

2.2 对工作量的影晌

针对试验A选取6个需审核的数据集,分别统计比对两次数据前后的工作量,计算工作量的减少率,结果见Tab.1。

da8f449c7cc8c16393302e655dff3362.png

由TaL.1可见,根据记录条数计算,纯人工操作的方式需审核3978条记录,通过比对两次数据后仅剩195条,从整体上看,工作量减少了95%;根据观测值数量计算,比对后减少了97.2%的工作量,工作量又进一步减少了2.2%。

3 讨论

使用本研究生成的数据清单,可以帮助人工快速准确地筛选出更新的数据,比如观察不同背景颜色的数据点,或根据一列新的变量"Type",进行审核。相比以往纯人工的操作方式,该方法可以显著减少人工审核的工作量,在本研究的例子中,减少了至少95%的工作量,相当于节省了相关部分95%的成本,优化效果显著。

在临床试验中,SAS系统已经被广泛应用于数据核查.包括数据库核对、数据逻辑核对、盲法及随机化实施审核、盲态审核等。同时也有通过SAS编程来辅助线下人工核查,如实验室数据,严重不良事件核查等。本研究介绍了两次数据清单比对的流程及SAS宏实现的基本思路,实现替代人工准确定位数据更新的位置,输出易于审核的数据清单,有效避免了数据的遗漏或重复检查。相比以往纯人工的操作方式,该方法可以显著减少人工审核的工作量,让数据审核人员可以提早发现有问题的数据,有更多的时间和精力处理更为复杂的数据。

本文通过SAS宏实现两次数据自动化比对的方法,可应用于不同的试验项目,具有一定的使用和推广价值。但本研究编制的SAS宏程序在实际运用中仍有一定的局限性,比如:因方案设计更新或其他操作原因对数据库设计进行了修改,会导致前后两次导出的数据结构不同,本研究还未考虑这种悄况,这是需要进一步完善的地方;另外,不同的数据库系统有不同的个性化设登,可能需要对宏程序的某些关键语句进行修改,同时,可能对结果的准确性有一定的影响。在未来的研究中,笔者希望可以将这套宏程序进行不断测试和完善,增强该程序的通用性和准确性。

参考文献(略)

46888838f74987c9dbb20c2acde46160.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值