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 表中 預處理宏指令 的任何一個選項。