耿辉,贺海蓉,马茂,王亚军,曾宪涛,吕军
开放共享是目前软件发展的大趋势,越来越多的Web应用面向开发者开放了API(Application Programming Interface,应用程序编程接口),API能够基于某软件或硬件提供应用程序与开发人员访问一组程序的能力,避开需要长时间学习的生硬繁琐的源码,REDCap系统作为一款优秀的承载多中心研究的网络应用,提供了多种模块化的API,使用方便易行,研究人员只需简单更改代码,就可进行各种复杂数据的操作。
通过前几篇REDCap系统系列论文的介绍[1-4],相信读者对这款网络化的研究数据采集系统具有一定程度的了解,能够在前文的基础上快速搭建起一套高效的多中心临床研究项目,本文将着重该系统灵活的可扩展性而在世界范围内广泛使用的情况作以介绍。
2015年Timothy Tuti等使用REDCap系统API接口调用R软件实施了CDM框架以支持其捕获临床信息网络(CIN)数据,本研究的目的是用于从多家医院儿科病房的病例记录中收集标准化数据,利用REDCap系统开发了低成本研究环境,开发出了高效儿科数据收集系统,该系统跨越14个医院站点并在线进行严格的数据质量检查,系统已收集了37 000多个录取事件,观察到的入院、临床记录等均有相当大的改进[5]。优良的信息系统是医学研究和医疗保健的关键成功因素,但目前这些系统中的大多数都属于应用异构和专有的数据模型,这些特立独行的模型结构阻碍了数据交换和用于大数据科研目的的集成数据分析。2016年Martin Dugas等建立了医疗数据模型门户网站(MDM,https://medical-data-models.org),目标是促进医疗数据模型的共享,本文提到REDCap系统提供了标准化的CRF库,在全球拥有超过1500家机构合作伙伴,MDM网站亦可以通过REDCap系统API接口直接链接到它[6]。临床研究中心的数据库依赖于一些临时数据捕获系统包括Microsoft Access和Excel,随时间推移,这些数据最终难以维持现状进行研究并限制其作为大数据的研究潜力,REDCap系统是一个能够改善数据捕获和组织的实用型解决方案。2016年William等设计了一个工作流程和工具集,用以将数据迁移至REDCap系统并进行临床研究,他们将存储在神经心理学测试中的4000个Excel工作簿,经过数据提取,规范评分,转换为REDCap系统兼容格式,通过REDCap系统API接口导入数据库,并在Python中执行了系统的临床报告生成功能[7]。2017年Dufendach等利用REDCap系统的结构化接口应用,设计了一个基于Web交互式模块化平台的随机试验,该平台允许基于用户视觉偏好和采集用户界面上的响应进行会议界面的远程定制和设计反馈,会议界面有多个可供选择的动态HTML模板,实时响应用户偏好。实验完成后,设计团队通过管理员界面查看用户的设计反馈,允许用户自定义会议界面并通过REDCap接口下载个性化的会议新界面。新生儿临床医生使用该平台成功地设计和定制了新生儿转换界面,医生们没有经过具体的培训,但能够很容易地使用该软件,并报告了平台的高可用性[8]。2017年Andrea Paulson等使用RedCap软件开展了一项关于儿科医生在手术中使用注射用肉毒杆菌毒素的调查,该调查于2017年4月1日~5月22日通过电子邮件发送给307名儿科医师,通过REDCap系统的电子邮件系统提醒以提高回复率,本调查获得了所有儿科医生签写的知情同意书,所有回复均以匿名方式记录,无法确定任何受访者。该研究由匹兹堡大学审查委员会审查和批准。调查中包含了几个关于医生对肉毒杆菌毒素注射经验的问题,包括:要求医生报告使用的肉毒杆菌毒素详细信息,定位的作用及肉毒杆菌毒素在手术中的镇静作用[9]。2017年Jonatan Eriksson等进行为期5年的纵向临床研究,选择使用REDCap系统构建基础架构,使其研究能够有效地收集和分析研究数据,REDCap系统允许用户根据现有模板轻松设计数据收集模块,它提供了两个允许用户导入批量数据的功能:通过API(应用程序接口)以及上传CSV文件。Jonatan团队创建了一个软件DART,将生物标记数据转换为适合上传REDCap系统的CSV模板格式[10]。在人口健康医疗保健系统中,以往需要医护人员手动收集数据,因而存在较高的错误率,2017年Pittman等实施了生物学和床边信息学框架与电子数据采集REDCap系统整合,实现无纸化办公的同时,高效收集临床登记的数据,提高患者的满意度。随机化作为实验设计的基本原则,在临床试验中起着至关重要的作用,美国各地的学术医疗机构的初级临床教师和研究员通常希望积极从事和进行随机临床试验,然而他们往往缺乏足够的资源和研究能力来适当地设计和实施这些试验。因此,Chengcheng等在2017年开发了一个免费的鲁棒模型控制随机化APP(RAPP),为初级临床研究人员提供一个方便的工具,为临床试验产生严格的随机化方案,RRApp是在R3.3.2中开发的,使用方便,它的几个包(即XLSX、XLSXJARS、XLCONNECT、XLCONTCONJARS)可通过REDCap系统的API接口调用生成随机化方案输出。
API接口是一系列预先定义的函数,目的是不用理解内部工作机制,直接使用函数调用应用程序生成结果,它提供给用户便捷的编程路径,代码不用深究或者不可见,以往是操作系统的基础,构成操作系统的内核环境,通过调用API进行系统最底层的编程,实现对计算机硬件操作,目前互联网应用变得越来越普及,在这个呈几何形增长发展的过程中,越来越多的网站将自身资源开放给开发者来调用,它们提供这种API接口使得站点之间的内容关联性更强,开放的平台为用户、开发者和中小网站带来了高价值体验的同时,为自己迎来更广阔的发展空间。
REDCap系统的API接口允许外部应用程序连接到系统内部,以编程方式检索或修改系统中的数据或设置,例如为指定项目执行自动数据导入/导出。程序员可以使用REDCap系统的 API接口来创建与其交互的应用程序、网站或其他项目,但只能通过HTTP协议与REDCap系统的API进行通信,因为用户用来访问网页的浏览器与交互网页需要遵从协议,而HTTP协议是基础协议。REDCap系统的API和用户之间有多种链接方式,它可以与几乎任何语言进行交互通讯,如:Python、R、SAS、bash等。
需要使用REDCap系统API接口进行科研的用户,首先需向REDCap系统管理员申请用户对应项目的API接口,通过审核后,系统管理员会分配给用户相应的权限。
开放的信息时代造就了开放的网络,在这一时代背景下具备共享、标准、去中心化、模块化的众多Web 2.0网站,在为使用者带来价值的同时,通过开放API提供出色的服务或应用,吸引了大量的用户群和服务访问数量,其他站点将主动开放API提供的服务或应用整合到自己的应用之中,同时,这种整合API带来新型服务或应用,随着参与站点和应用人群的不断增多会激发更多富有创意的应用产生。REDCap系统能够对外提供统一标准化的API接口,帮助临床科研者使用多种语言函数包,实现某些特殊功能。下面,以REDCap系统R语言的API接口为例,说明其工作方式和流程:要使用REDCap系统API用于指定项目,必须首先为申请用户提供特定于该项目的用户令牌,REDCap系统的API使用令牌作为安全身份验证的手段,而不是使用用户名和密码,其中必须在每个API请求中包含令牌,需要注意的是,每个用户都有权使用不同的API令牌访问不同的REDCap项目,因此,每个REDCap项目对应独一无二的令牌用来响应API请求。
用户拥有了使用该项目的API接口权限后,还需要获取项目的API令牌才能使用API,从REDCap系统首页导航到该项目,然后单击“应用程序”侧栏中的“API”链接。在该页面上,用户就能够看到从REDCap管理员处请求到的该项目的API令牌,如图1所示。
要开始学习使用REDCap 系统的API,首先点击左侧菜单中的“API Playground”按钮,进入“API Playground”页面,在本页面里允许用户试用REDCap系统API的简单功能并查看其功能范围,无需编写任何代码,如图2所示。
在API Playground界面里,可看到API Method复选框,下拉菜单里包含了许多示例程序包,尝试API调用R语言输出REDCap系统的版本号,格式本文选择JSON(JavaScript Object Notation,JS对象简谱),复选框里选择“Export REDCap Version”,Raw Request Paramters框里会自动生成token和content,token冒号后面就是本项目的API令牌,content冒号后面是本次函数查询的内容“Version”版本号,点击“Execute Request”按钮,会执行选择的函数命令,具体R语言函数代码在下方的文本框里显示,生成结果见图3。
图1 用户API令牌示意图
图2 API Playground示意图
图3 “Export REDCap Version”执行结果
图3的执行结果会显示在“Execute Request”按钮下的文本框里,结果为:6.10.2。通过上述API应用方法介绍,科研人员能够实现从Web开发语言(如R、Python、PHP、Java)及其客户端调用REDCap系统API便捷的进行科研数据操作。
REDCap系统的API接口为用户带来了高价值体验,基于此本文详细阐述REDCap系统的API与R语言之间的通信方法,以期为临床研究人员免去阅读晦涩难懂的代码,只需使用API便可实现复杂数据操作,整合语言函数型的API不仅带来全新的应用体验,且使REDCap系统与其他应用或站点之间的关联性更强,随着时间的推移参与人群不断增多,众多富有想象力的应用会不断产生,使REDCap系统这种开放型平台在激烈的竞争中更有富有生命力。