苹果公司于上月宣布发布其开源框架 ResearchKit ,目的是将手持移动设备构建成一个用于医疗研究的传感器网络。
ResearchKit 在 GitHub 的代码库中不仅包含该框架的全部源代码和文档,还包括苹果开发的一个示例app,以及之前由其他医疗研究机构发布在AppStore 的4 个app。
InfoQ 曾经报道过,ResearchKit 提供三类定制模块来满足医疗研究的常见需求:情况调查、知情同意、活跃任务。从设计角度来看,这三个模块的设计基于同样的原则:
- 每个操作就是一次收集步骤 ( ORKStep ),比如一个 ORKQuestionStep 、一个 ORKFormStep 、或者 ORKActiveStep 。
- 多个步骤集合成一个任务 ( ORKTask 协议),比如一个 ORKOrderedTask 就表示一系列的步骤。
- 任务与一个视图控制器 ( ORKTaskViewController ) 相关联以展示给用户。
- 用户每完成一个任务,视图控制器就生成一个结果对象 ( ORKStepResult ),其中包含该步骤返回的结果与操作执行时的时间戳。特殊情况下,有的步骤会从设备传感器端或移动健康平台 HealthKit 获取数据,此时系统提供两个类: ORKRecorder 和 ORKRecorderConfiguration ,用于收集数据并配置成序列化格式。
ResearchKit 框架中大部分代码用 Objective-C 编写,而苹果提供的示例 ORKCatalog 则是用 Swift 写的。
代码库里包含的 4 个 app 是:
- GlucoSuccess :研究糖尿病的 app,由马萨诸塞州综合医院开发。
- AsthmaHealth :研究哮喘病的 app,由纽约西奈山医院开发。
- ShareTheJourney :研究乳腺癌的 app,由赛智生物网络开发。
- mPower :研究帕金森症的 app,由赛智生物网络和罗彻斯特大学共同开发。
这 4 个 app 共享同一个框架叫 AppCore ,随着时间推移,其中的功能特性“会移植到 ResearchKit 中”,这些特性包括:
- 展示进度图表的白板;
- 后台数据存储;
- Json 串行化和解串;
- 与赛智生物网络的桥接服务集成。
基于未来长期研究的目的,你可以复制该框架的 GitHub 源码,阅读总览文档或 API 手册。另外,为了遵循起源于 Swift 博客的传统,ResearchKit 也有它自己的博客和一个邮件列表。
评论