JMP临床11 年前发布,专门用于分析和审查以标准化和结构化数据为中心的正在进行的临床试验。 其目的是让审阅者定期(每周或每月)接收数据以供审阅,以使用预编程的报告寻找安全性和/或有效性信号,使审阅者能够自助服务并更深入地挖掘数据-要求。 希望加快审查过程,并发现在查看静态表格、列表和数字时可能会遗漏的异常情况。
此外,该软件的一个目标是减轻为审阅者生成所需数据和标准化报告的编程团队的负担。 这需要大量时间来频繁地运行程序或编辑程序/脚本/宏以满足审阅者的需要。 编程和生物统计学小组通常希望关注研究独有的数据和报告,而不是在不同研究之间非常一致的常用表格或图表,使他们能够对特定于研究的异常给予更强有力和不受干扰的关注需要更多的统计或算法知识。
在大多数情况下,JMP Clinical 实现了这些目标,除非我们谈论的组织有许多需要监测和/或频繁更新数据的研究。 这给数据管理和生物统计学团队带来了新的负担,以更新 JMP Clinical 内的研究,或者给不精通该过程或没有时间的审阅者带来负担。 同样令人感兴趣的是能够在 JMP Clinical 中修改一些报告和/或按计划运行相同的审查模板。 对 JMP Clinical 功能的自动化和扩展的需求成为一个常见的要求。
输入 JMP Clinical 的 API。 围绕 JMP Clinical 6,我们引入了框架和基础设施,使基于 API 的通用功能/流程以编程方式访问成为可能。 在 JMP Clinical 7 中,API 使用 JMP 脚本语言 (JSL) 发布并提供。 在版本 8(最新版本)中,发布了更多功能。 这篇文章不涉及 API 开发的细节。 相反,它侧重于它们的实际使用,以便您可以利用它们。
我将分享一系列关于如何调用和使用 API 的帖子。 我们从介绍基本语法及其用法开始。 然后我们在使用 JSL 时进入更复杂的用途。 最后,我们将在某些 JSL 中调用的两类 API 结合起来。
对于那些不熟悉 JMP Clinical 上下文中的术语“研究”、“审查”、“报告”和“审查模板”的人,请参阅此关联结识。 此外,那些不熟悉 JSL 的人应该阅读并了解更多信息关联. 了解 API 的使用需要两者的知识。
对于这篇文章,让我们从两个主要类别和可能的内容开始。 两个主要类别是:研究管理相关功能 (JMPClinicalStudyManagerAPI) 和审查相关功能 (JMPClinicalReviewAPI)。 这个想法是复制用户界面中可以完成的操作(主要是按钮点击),用户不需要做出决定(例如用新数据刷新研究的元数据或打开审查模板并为特定研究运行它)。 下面是一些突出显示与研究管理部分和审查部分相关的按钮的图像。
与 JMPClinicalStudyMangerAPI 相关的研究管理功能
查看/查看与 JMPClinicalReviewAPI 相关的构建器函数
该 API 旨在执行常规任务并将其自动化,例如使用新元数据刷新研究或从审查模板中的报告中添加/删除内容。 这是一个链接JMP临床研究管理器API功能和另一个链接JMPClinicalReviewAPI功能供参考。
那么,这个 JMPClinicalStudyMangerAPI API 能为我们做什么呢? 它为我们提供了两组函数:获取函数(获取研究信息的函数)和操作函数(添加、删除或更新研究的函数)。 下表列出了调用该函数的基本语法。 冒号 (:) 将 API 调用和函数调用分开。 一些函数具有输入和/或返回。 有关预期输入和返回内容的详细信息,请参阅上述链接。
学习管理 API
|
获取信息功能
|
操作研究函数
|
获取研究名称列表:
JMPClinicalStudyManagerAPI:getStudyList
|
添加研究:
JMPClinicalStudyManagerAPI:addStudy
|
获取 SDTM 文件夹路径:
JMPClinicalStudyManagerAPI:getSDTMFolder
|
刷新研究元数据:
JMPClinicalStudyManagerAPI:refreshStudies
|
获取 ADaM 文件夹路径:
JMPClinicalStudyManagerAPI:getADAMFolder
|
删除研究:
JMPClinicalStudyManagerAPI:deleteStudies
|
添加了获取日期研究:
JMPClinicalStudyManagerAPI:getInitialDate
|
使用新快照更新研究:
JMPClinicalStudyManagerAPI:updateSnapshot
|
获取日期研究持续更新:
JMPClinicalStudyManagerAPI:getLastUpdatedDate
|
更改研究数据文件夹:
JMPClinicalStudyManagerAPI:changeFolders
|
获取快照启用状态:
JMPClinicalStudyManagerAPI:getEnableSnapshot
|
预先计算患者资料数据:
JMPClinicalStudyManagerAPI:precomputeProfileData
|
获取快照编号:
JMPClinicalStudyManagerAPI:getSnapshotNumber
|
|
获取已识别域的列表:
JMPClinicalStudyManagerAPI:getDomainList
|
|
获取磁盘上的文件大小:
JMPClinicalStudyManagerAPI:getSizeOnDisk
|
|
获取创建/添加研究的 Windows 操作系统用户 ID:
JMPClinicalStudyManagerAPI:getCreatedBy
|
|
获取上次更新的 Windows 操作系统用户 ID 研究:
JMPClinicalStudyManagerAPI:getLastUpdatedBy
|
|
现在让我们看看第二个类别,Review 函数。 这个也有一组获取和操作函数,但用于评论和报告。
审核 API
|
获取信息功能
|
操作报告/审查功能
|
获取对 Review Builder 的引用:
JMPClinicalReviewAPI:getReviewBuilder
|
关闭评论生成器:
JMPClinicalReviewAPI:closeReviewBuilder
|
获取评论查看器/构建器 ID 和标题:
JMPClinicalReviewAPI:getReviewViewerIDsAndTitles
|
打开评论模板:
JMPClinicalReviewAPI:openReviewTemplate
|
获取对评论查看器的引用:
JMPClinicalReviewAPI:getReviewViewer
|
向 Review Builder 添加报告:
JMPClinicalReviewAPI:addReport
|
获取评论查看器/构建器的目录:
JMPClinicalReviewAPI:getReviewTableOfContents
|
按标题删除报告表单审核生成器:
JMPClinicalReviewAPI:removeReportByReportTitle
|
获取报告 ID 列表:
JMPClinicalReviewAPI:getReportIDList
|
按标题在 Review Builder 中运行报告:
JMPClinicalReviewAPI:runReportByReportTitle
|
获取报告标题列表:
JMPClinicalReviewAPI:getReportTitleList
|
在 Review Builder 中运行所有报告:
JMPClinicalReviewAPI:runAllReports
|
通过 ID 获取对报告的引用:
JMPClinicalReviewAPI:getReportByID
|
将评论生成器内容保存为评论:
JMPClinicalReviewAPI:saveReview
|
按标题获取对报告的引用:
JMPClinicalReviewAPI:getReportByTitle
|
在评论查看器中打开评论:
JMPClinicalReviewAPI:openReview
|
按标题获取报告详细信息:
JMPClinicalReviewAPI:getReportDetailsByTitle
|
在报告中插入部分:
JMPClinicalReviewAPI:insertSectionIntoReportByTitleAndSectionName
|
获取对报告结果的引用:
JMPClinicalReviewAPI:getReportResultsByTitle
|
从报告中删除部分:
JMPClinicalReviewAPI:removeSectionFromReportByTitleAndSectionName
|
获取对报告部分的引用:
JMPClinicalReviewAPI:getReportSectionByTitleAndSectionName
|
添加到报告部分的末尾:
JMPClinicalReviewAPI:appendDisplayObjectToReportSectionByTitleAndSectionName
|
获取报告中使用的数据表列表:
JMPClinicalReviewAPI:getDataTablesForSectionByTitleAndSectionName
|
添加到报告部分的开头:
JMPClinicalReviewAPI:prependDisplayObjectToReportSectionByTitleAndSectionName
|
所以现在我们列出了不同的功能以及它们可以做什么。 现在是展示它们使用的基本语法的时候了。 基本形式是这样的:
JMPClinical<CATEGORY>API:<FUNCTION> ({argument(s)}, {namespace}, completeListenerFunction());</FUNCTION></CATEGORY>
上面提到JMPClinicalStudyManagerAPI时,已经介绍了对Study Management相关API函数的基本调用。 因此,如果我想刷新已注册研究的元数据,它将如下所示:
JMPClinicalStudyManager:refreshStudies ({studyList},{},{});
我们将在下一组帖子中对此进行更多剖析并讨论常见用法。 现在,我想介绍可用的内容以及如何在 JSL 脚本中调用它。 下一篇文章将是关于 Study Management API 的一个示例,更多地讨论 API 调用的命名空间和 completeListener 部分,并开始将其包装在 JSL 中并在其中使用 JSL。
直到下一篇文章,保重!