SAS/AF模块在临床试验统计分析计划书自动化输出中的应用

2017-07-18 11:08东南大学公共卫生学院流行病与卫生统计学系210009
中国卫生统计 2017年3期
关键词:宏程序计划书临床试验

东南大学公共卫生学院流行病与卫生统计学系(210009)

潘俊霞 罗 栎 王诗远 杨嘉莹 刘 沛△



SAS/AF模块在临床试验统计分析计划书自动化输出中的应用

东南大学公共卫生学院流行病与卫生统计学系(210009)

潘俊霞 罗 栎 王诗远 杨嘉莹 刘 沛△

统计分析系统(statistical analysis system,SAS)因其编程方式灵活、模块齐全、数据加工及统计分析能力强大,在医药、金融、理工科等诸多领域广泛运用,但对于利用SAS/AF模块开发界面并编制成屏蔽复杂代码仅通过点击操作即可完成一系列复杂功能的研究在国内报道较少。统计分析计划书是临床试验中的重要文件,手工制作统计分析计划书不仅容易出错,还难以做到标准化。 本文以开发临床试验统计分析计划书自动化输出软件为例,介绍运用SAS 9.3中的AF模块结合SAS宏程序构建特定功能的统计工具,从而实现统计分析计划书的自动化输出。

原理与方法

SAS/AF(applications facility,AF)作为一个开发和屏幕展示工具,以界面化操作实现数据分析和报表输出功能。AF文件与其他SAS文件一样储存于SAS目录中,可以在SAS环境中调用。SAS/AF模块主要由两大部分组成:框架(frame)和SAS组件语言(SAS component language/SAS screen control language,SCL)。框架和SCL语言既可以独立实现各自不同的简单功能,也可以相互联系而实现复杂功能。

1.在SAS/AF中创建框架

AF模块的启用可以通过两种方式实现,第一种打开SAS系统后在命令栏输入如:build macro.plan.ss.frame,可以在macro逻辑库的plan目录下建立一个名为ss的框架[1]。或者可以通过编写程序proc build c=macro.plan.ss.frame;run;同样也能实现上述操作。

2.SAS/AF构建环境

SAS/AF构建环境主要由创建窗口、组件窗口、属性窗口、SCL源窗口四部分组成。

3.SCL语言以及和宏程序的结合

SCL语言是AF界面中与Frame配套的语言,其语法与SAS程序语言相似,但也有init、term等框架特有的语言。在Frame中新建一个组件时,组件本身没有功能,但在利用其属性调整组件名称、模型应用和初始值后,SCL编辑界面可对该组件进行功能编辑,如给组件内的文本或指向的对象进行赋值传递、宏程序的执行、其他框架调用等[2]。由于篇幅所限,本文不对SCL语言进行全面介绍,仅以构建临床试验统计分析计划书自动化输出中的一些关键语句进行介绍。如本软件中所用的关键SCL语言如下:

dcl char(200)case;

next:

call display(“macro.soft.vaccine.frame”);

return;

case=newcase.text;

Pushbutton2:

Pushbutton1.enabled=“No”;

submit continue;

%Total_PLANBYVAR1(dataset=vaccine_general);

endsubmit;

return;

上述程序执行过程为定义一个长度为200的字符型宏变量&case,规定名为next按钮组件的功能,即点击该按钮后界面执行后续程序,令文本输入组件newcase内的text文本的信息赋值给宏变量&case,规定名为Pushbutton2的按钮组件的功能为名为Pushbutton1的按钮在按钮Pushbutton2被点击时灰化,随后使界面的程序运行在SAS程序语言下,在后台执行宏程序%Total_PLANBYVAR1以配置基本情况的参数表,再回到SCL语言中,最后Pushbutton2按钮的功能结束。这段SCL语言与Frame相连,使Frame中的两组件实现了从一个界面跳转到另一个界面以及执行下一步操作的Frame功能并且实现和SAS语言中宏程序的结合。

SAS宏程序是SAS的编程工具,通过编写SAS宏可以扩展SAS系统的功能,可以命名一个变量、一段程序或一个文本,以后只需要调用其名称就可以实现这些代码的功能。宏的使用不仅能对程序进行批量化重复调用、减少重复编写,更能实现一些普通程序编写无法实现的功能,是连接SAS/AF与后台程序的纽带,是实现临床试验统计分析计划书自动化输出的核心[2-3]。如前文所述SCL语言部分宏程序%Total_PLANBYVAR1在编写时相对复杂,但在调用时却非常简单且能在相似的部分被重复调用(如后文所述5大模块的参数配置),很大程度上节省了程序编写的时间,提高了程序调用的效率,拓展了SCL语言的功能。

SAS/AF构建软件基本步骤

1.建立Frame

建立界面,第一步是新建一个空白框架(具体步骤见上文),然后在组件窗口中用鼠标选择所需组件拖放入框架中。用右键选择组件属性,对其属性进行设定。如果有些控件需要和数据相连,则需选择相应模块放入控件中,并对其属性进行设定。

2.对各个Frame添加SCL

框架SCL是将SCL条目与特定的Frame相连,用于控制Frame及其中的组件。虽然Frame可以通过设定其属性来完成一些功能,但是为了完成更多复杂功能,Frame必须与SCL相连[4]。如图1所示。

图1 SAS/AF构建软件基本步骤图示

3.编译与测试

Frame与框架SCL建立完成后,需要进行编译,成功生成代码也就是编译成功后就可以进行测试。编译的方法有两种,第一种是点击创建环境窗口上方编译的按钮,第二种是在SAS资源管理器中右击后编译,两者的区别在于SCL中有Submit语句时只能使用第二种方法。反复修改与测试之后可以将成型的界面制成安装包以便使用。

实例分析

本次临床试验统计分析计划书自动化软件是基于SAS/AF模块开发的界面化操作软件,利用AF模块强大的结果呈现功能,通过界面操作和后台宏程序的连接实现屏蔽复杂代码的目的,并方便实际工作者的使用。下面以某疫苗临床试验统计分析计划书自动化输出软件中的部分界面和结果为例,说明SAS/AF的功能。根据疫苗临床试验的特点和要求设计了5大模块,分别是封面参数配置、基本情况、安全性评估、免疫原性评价和自定义模块,其中自定义模块是为不同的统计分析计划书而预留的特定模块以实现特定的参数配置。

由图2可知,界面功能由6个按钮执行,点击每个按钮将运行后台程序而执行相应功能。例如点击封面参数配置按钮,将会在界面中显示出一张CSV格式的参数表,根据计划书的要求对参数表进行相应的修改即可在相对应的文件夹产生统计分析计划书的封面,随后依次点击基本情况、安全性评估、免疫原性评价的按钮,操作同前面的封面参数配置;然后点击保存即产生RTF表单并保存在相应路径下。当上述各按钮都执行后会产生出全部需要的RTF文件,点击返回主界面按钮即可出现图3所示界面。在图3所示界面中进行RTF表单的合并,将需要合并的表单全部选入图3所示第二栏中,在计划书名称下输入所完成项目的名称后点击合并输出就可以在指定路径下生成以计划书名称命名的包含所有RTF表单的统计分析计划书(如图4所示)。

图2 疫苗临床试验统计分析计划书自动化输出界面

图3 选择并追加RTF文件界面

年龄组(岁)组别例数均值±标准差最小值-最大值置信区间F值P值3~试验对照118~试验对照160~试验对照1合计试验对照1

表1.1.2 受试者性别均衡性分析

图4 RTF文件合并后结果显示(节选)

实现合并RTF输出按钮的SCL程序如下:

ExcuteControl:

if FileOutControl.text ne “” then do;

item=FileOutControl.text;

submit continue;

%combinertffile(datain=__select,outfilename=%str(&item),combinetargetfold=%str(&rtf0& planname));/*输出文件名*/

endsubmit;

end;

return;

上述程序主要实现提取计划书名称栏的文本为合并后的文件名,并将合并后的RTF文件保存在预先指定的路径下。这样一来,一段复杂的代码就可以通过一个按钮来实现其功能,既屏蔽了复杂的代码,又可以在界面中更加直观地展示并能够实现临床试验中统计分析计划书的自动化输出,从而方便实际工作者的使用。

讨 论

SAS/AF模块是面向使用者的软件界面开发工具,它利用交互式开发环境和一组丰富的面向对象的类,充分利用SAS/AF应用程序的可移植性与SAS软件其他产品的特点进行快速开发和部署,整个过程都可以通过具有可视化的框架基础的方式完成。SAS/AF不是一个独立的模块,它的性能在与SAS/EIS、SCL等SAS其他模块间的协调上才能真正体现它的优势,具有良好的应用前景。当然从界面开发角度看SAS/AF,其模块本身的性能并不是最好的,存在一些瑕疵,如界面画面不够优美,但SAS/AF存在于强大的SAS母体下,与SAS无缝连接的优势则是其他任何软件无法比拟的。有研究者曾提出基于SAS/AF模块创建死因数据分析工具[5],不过整体来看,国内关于SAS/AF模块的研究相对较少,具体的学习材料也很少,除了SAS官方的英文材料外,未见中文的学习材料。SAS编程的灵活性和专业性决定了其使用上的难度,所以实现临床试验统计分析计划书自动化输出必须创建一个操作简单易懂、参数配置直观清晰的软件包,而必不可少的就是运用SAS的宏功能和AF模块。这两项技术的衔接本质是对宏参数的配置和传递,将复杂的程序语言通过可视化模块进行转化[4,6]。不仅能显示SAS强大的功能,还可以将复杂的程序在后台运行,仅通过点击式操作就能实现文件的自动化输入输出的强大功能。可见AF界面显著降低了SAS的使用门槛,大大方便了实际工作者的应用。

[1]SAS Institute Inc.Getting Started with SAS/AF and Frames.USA:Cary,NC:SAS Institute Inc,2006,87.

[2]金昊.疫苗临床试验电子化数据管理软件开发研究.东南大学,2015,1-76.

[3]陈召青.疫苗临床试验标准化数据库构建及自动化盲态核查软件开发.东南大学,2014,1-74.

[4]李靖欣,陈炳为,王灿楠,等.SAS/AF及其在开发中国膳食暴露评估模型软件中的应用.中国卫生统计,2008,25(6):642-644.

[5]王骏,李洪兴,王黎君,等.基于用户层级的死因监测数据分析解决方案.中国卫生统计,2012,29(3):369-371.

[6]陈宇术.面向对象的SAS/AF程序设计语言的研究.微机发展,2001(4):11-14.

(责任编辑:郭海强)

△通信作者:刘沛,E-mail:liupeiseu@126.com

猜你喜欢
宏程序计划书临床试验
椭球槽宏程序编制及其Vericut仿真
美国特战司令部参与抗衰药临床试验 合成一百余种新型NAD+增强剂
品管圈在持续改进医疗器械临床试验全周期质量控制中的应用
参加临床试验,也要“顺道”
创业计划书对大学生创业的指导性探析
做事如做药
天骄联盟之商业计划书培训成功举办
数控车编程教学中宏程序嵌套的应用
通用类宏程序在数控铣床加工中的实践运用
保持简单,不断前进