ResearchKit 是一个由 Apple
推出的开源框架,它可以让研究人员和开发人员创建用于医疗研究的强大应用。您可以轻松地使用各种各样的可定制模块,您还可以在这些模块的基础上创建可视化授权工作流、实时的动态活动任务,以及调查报告,然后将它们与社区一同分享。由于
ResearchKit 能够与 HealthKit
无缝衔接,因此研究人员可以在他们的研究中获取更多有关的数据——例如日常步数、消耗的卡路里,以及心率等信息。
框架
核心的 ResearchKit 框架提供的核心模块包括了调查引擎、可视化授权工作流,以及活动任务。
核心框架中自带有 Swift 和 Objective-C 的示例、完整概念以及 API 文档。它同样已经翻译为了多种语言。
ResearchKit™ 框架是一个开源的软件框架,这个框架是为了让开发者和研究人员来更简单的创建研究型软件。这个新的框架利用了 iPhone
的传感器和能力来记录运动轨迹,采取措施以及记录数据。使用者可以实现在任何地方实现自己的想法和收集数据。
链接
模块
ResearchKit
框架提供了可以被调整的模块,这些模块中有一些最基本的研究必要元素:调研,许可和活动任务。你可以原封不动的去使用这些模块,在这基础上做开发,甚至可以完全创建属于你自己的新模块。
调研
通过科学且明确的设置问题和答案,在用户使用界面预定义好的调研模块可以让你快速的建立起一次调研。调研模型是已经确定化了的,所以你所需要做的一切事情只是明确你的问题。
授权
研究中的参与者常常不得不被要求说出一些与他们所参与的研究相关的敏感信息。所以完全明确什么使用者信息要被收集以及谁会接触到他们的信息是至关重要的。
ResearchKit 框架提供了模板,你可以参考这个模板去修改你自己的,以此来解释你研究的细节同时获取研究参与者的授权。
活动任务
一些研究也许会需要有调查问题所提供的数据或者 iOS 中的 HealthKit 和 CoreMotion 这样的 API
收集的数据。活动任务邀请使用者在部分受控的情况下来使用 iPhone 上的传感器来动态的收集数据。 任务与步骤
ResearchKit
框架中的任务可以是一系列被安排好的行动序列,也可以是是动态的,也就是之前的结果会影响现在显示的步骤。视图控制器支持在一个很长的任务中保存每一步的结果,同时支持稍后重新储存数据,与
UI 显示状态一并重新存储。这是为了防止使用者在用任务进行中退出了你的应用。
无论你的应用是否给出指导,展示调查表,包含授权,亦或运行活动任务,ResearchKit 中所有东西都是一系列步骤的集合 (ORKStep
对象),这是从任务中汇聚而来的(一个 ORKTask 对象)。 为了展示任务,需要将任务依附到任务视图控制器对象上
(ORKTaskViewController)。当使用者完成了任务中规定的步骤的时候,任务的视图控制器会生成一个记录了步骤开始和结束时间的以及步骤中所有结果的步骤结果对象
(ORKStepResult)。
在一个简单的应用中,你可有创建你的直接用代码创建你的任务,收集结果同时将之序列化之后存入硬盘以便之后人工的去收集,分析。一次大规模的部署也行会动态的从服务器上下载预定义的调查,同时将其解序列化来生成
ResearchKit 对象层级。与之前一样,任务结果可以被序列化同时上传到服务器以便之后的分析。
目前的限制
ResearchKit 框架的特性表将始终不断的增长,如同开源社区贡献的很有用的模块一样。记住 ResearchKit
框架目前没有包含这些功能:
背景传感器数据收集。诸如iOS 中的 HealthKit 和 CoreMotion 这样的 API 们已经可以实现这样的功能了。
你的应用和服务器之间安全的通信机制,你需要自己去提供这个。
为你的参与者规划调查和活动任务。
可以被 ResearchKit 框架使用来构建数据的数据的定义好的数据格式必须是序列化的。所有 ResearchKit 框架对象都遵从
NSSecureCoding协议,示范代码的结果在离开框架之后将被序列化成 JSON 。
你对你应用内所有适用于法律的内容都有法律责任。
日志记录上的错误和警告
ResearchKit 框架支持4种日志级别,由四种预处理宏指令以及他们对应的 NSLog()-like 日志宏指令:
ORK_LOG_LEVEL_NONE
ORK_LOG_LEVEL_DEBUG, ORK_Log_Debug()
ORK_LOG_LEVEL_WARNING, ORK_Log_Warning()
ORK_LOG_LEVEL_ERROR, ORK_Log_Error()
设置 ResearchKit 框架的 ORK_LOG_LEVEL_NONE 宏指令为 1 会完全让所有
ResearchKit的日志沉默,优先于其他任何特定的日志级别。设置ORK_LOG_LEVEL_DEBUG, ORK_LOG_LEVEL_WARNING, 或者
ORK_LOG_LEVEL_ERROR 为 1 则会在那个等级或者更高的等级开启日志。
如果你不明确的设置日志等级, ORK_LOG_LEVEL_WARNING=1 被当做默认值使用。
你必须在你的 ResearchKit 子项目中设置你预处理宏指令,而不是在你的主任务中。在 Xcode 中,你可以通过设置在 ResearchKit
框架目标的Build Settings 表中 预处理宏指令 的任何一个选项。