米アップルは2015年4月14日（現地時間）、医療の研究調査用に設計されたソフトウエアフレームワーク「ResearchKit」を研究者や開発者向けに提供開始したと発表した。iPhoneやApple Watchなどのモバイル端末を使っているユーザーからデータを収集することで、研究調査の頻度と精度の向上を狙い、医師や研究者を支援することを目的としている。

ResearchKitを使ったアプリは調査参加者の許可を得て、UIを使った質問などの調査データに加え、モバイル端末の加速度計、ジャイロスコープ、マイク、GPSといったセンサーのデータを活用し、参加者の活動レベル、運動障害、記憶などに関する情報を収集する。アップルがiOS 8で導入したソフトウエアフレームワークの「HealthKit」とシームレスに連動し、健康／フィットネスアプリとの相互通信も可能だ。

iOS 8では、サードパーティーデバイスと、そのアプリで測定した体重、血圧、血糖値、ぜんそくの吸入器使用といったデータは「ヘルスケア」アプリに集約されるが、そのデータはResearchKitアプリからもアクセスできる。

ResearchKitを使って開発された最初の研究用アプリは、ぜんそく、乳がん、パーキンソン病、糖尿病、心臓血管系疾患を研究の対象としたもので、3月9日に米国App Storeで提供を開始してからわずか数週間で6万人を超すiPhoneユーザーが登録したという。

ResearchKitアプリは米国のApp Storeでしか入手できないが、米国以外の国でもいずれ公開される予定だ。

これらに加え、4月14日からは世界中の医療研究者がResearchKitを使って独自のアプリを開発できるようになり、開発者は新しい研究モジュールをオープンソースフレームワークとして提供できる。

同フレームワークは「ResearchKit BSD」ライセンスのオープンソースでGitHub上で提供されている。

ResearchKitのプロジェクトでは、ResearchKitフレームワーク以外にも、ResearchKitのアプリテンプレート「AppCore」や、それを基に開発された下記四つのアプリのソースコードが公開されている。現在のところ、いずれもObjective-Cのコードとなっているが、サンプルアプリの「ORKCatalog」のみSwiftで作られている。

ビルドするには、Xcode 6.3／iOS SDK 8.0以降が必要で、ResearchKitアプリはiOS 8.0以降搭載のiPhone 5、iPhone 5s、iPhone 6、iPhone 6 Plusで動作する。

以降、「ResearchKit Technical Overview 1.0」（PDF）（アップル）やResearchKit Framework Programming Guide（GitHub）の内容を中心に、ResearchKitの機能や、現時点でできないこと、どのようなアプリが作れるかについて紹介する。

ResearchKitの三つのモジュール

ResearchKitは、モバイル端末のセンサーと調査用のユーザーインターフェース（以下、UI）を活用して動作を追跡・測定し、データを記録する。調査参加者はどこにいてもデータを生成可能で、より客観的な情報を提供できるという。

ResearchKitのモジュールは今のところ、さまざまな種類の臨床研究に共通する最も一般的な要素として、「Surveys」（UIを使った調査）、「Informed Consent」（調査参加者への説明と同意）、「Active Tasks」（センサーを使ったデータ生成）の三つに対応する。

モジュールは、そのまま使うこともできれば、カスタマイズすることも可能。アップルは「私たちは共に、医療における真の突破口追求を後押しできる」として、開発者に新しいモジュールを開発してコミュニティで共有することを奨励している。

Surveys（UIを使った調査）

ResearchKitの調査モジュールでは既定のUIを提供し、質問の内容を具体化して回答の種類を指定するだけで調査を設定できる。参加者が回答を終えるとすぐに研究者と共有できる。

調査モジュールはローカライズされているので、質問項目をローカライズするだけでよいという。

詳細は、プログラミングガイドの「Creating Surveys」を参照してほしい。

Informed Consent（調査参加者への説明と同意）

調査参加者は、医療研究調査に協力する一環としてセンシティブな健康情報の共有を求められることがある。そのため、調査参加者に提供を求める情報と、その情報に誰がアクセスできるのかをはっきりさせて、調査参加者の同意を得ることが重要となる。

ResearchKitでは、研究者がインフォームドコンセントのテンプレートを利用できる。同テンプレートをカスタマイズして研究について詳しく説明したり、調査参加者に署名をもらったりすることも可能。研究について解説した映像や、調査参加者の理解度を試すインタラクティブなテストといった要素も盛り込める。

必要とされるインフォームドコンセントの程度は研究内容によって異なるので、ResearchKitは下記のように柔軟性を備えているという。

インフォームドコンセントが免除されている研究の場合でも、署名を求めずに視覚化された同意の流れを示して詳しい情報を提供できる

インフォームドコンセントを必要とする研究の場合、倫理審査委員会の文言を使って同意モジュールをカスタマイズでき、ResearchKit署名モジュールを活用してインフォームドコンセントを得ることができる

署名された様式のPDFを作成して参加者に渡せるオプションもある。例えば、アプリからサーバーにPDFをアップロードし、参加者に電子メールで送信したり、アプリ内に表示したりすることが可能

参加者がインフォームドコンセントフローの内容を理解しているかどうかを確認したい場合、参加を認める前に理解度を試すテストを挿入できる

アップルは、治験審査委員会（IRB）の承認を得た同意モジュールは、他の研究者も利用できるよう、ResearchKitコミュニティに提供することを奨励している。

詳細は、プログラミングガイドの「Obtaining Consent」を参照してほしい。

Active Tasks（センサーを使ったデータ生成）

Active Tasksでは、半ば管理された状況の下、iPhoneのセンサーを使ってデータを生成するアクティビティを参加者に実行してもらうことにより、研究者がよりターゲットを絞ったデータを収集できる。これにより、調査での質問や、HealthKitおよびCoreMotion APIで受動的に収集されるデータよりも多様なデータを必要とする研究に役立てることができるという。

ResearchKitではまず、スタンフォード大学医学部、オックスフォード大学、セージ・バイオネットワークス社、ロチェスター大学と共同開発した五つのActive Tasksモジュールを提供する。これらのモジュールは、モーターアクティビティ、フィットネス、認知、音声の4カテゴリに分類される（表参照）。

表 ResearchKitで利用できるActive Tasksモジュール 種類 タスク センサー 収集されるデータ モーターアクティビティ 歩行とバランス 加速度計

ジャイロスコープ デバイスの動き

歩数計 タップの速さ マルチタッチディスプレー

加速度計（オプション） タッチ動作 フィットネス フィットネス 加速度計 デバイスの動き

歩数計

位置情報

心拍数 認知 空間的な記憶 マルチタッチディスプレー タッチ動作

正確な実際の順序 音声 持続した発声 マイク 圧縮されない音声

「タスク」の内容に応じて、これらのアクティビティから収集したデータは構造化されたデータとして、あるいはディスク上のファイルとして保存される。研究者／開発者は、このデータをアプリからサーバー／クラウド環境に転送して分析可能だ。

詳細は、プログラミングガイドの「Active Tasks」を参照してほしい。

ステップとタスク

指示出し、様式や調査の提示、同意の取得、Active Tasksの実行など、いずれについてもResearchKitでは全て「ステップ」（ORKStepオブジェクト）の組み合わせによって「タスク」（ORKTaskオブジェクト）を形成する。タスクを提示するには（一般的にはモーダル形式で）、タスクビューコントローラー（ORKTaskViewController）にタスクを結び付ける必要がある。

ユーザーがタスク内のステップを終了すると、そのステップの開始時間と終了時間、および関連データを記録したステップ結果（ORKStepResult）オブジェクトが生成される。各ステップの結果は、タスクビューコントローラーの結果プロパティに蓄積される（図を参照）。

ResearchKitのタスクはステップを単純に順番に並べたり、動的に並び換えたりすることもできる。タスクビューコントローラーは、長いタスクを実行している間に継続的にデータを保存する。また、タスクの途中でユーザーとアプリとの接続が途切れた場合のデータ損失を防ぐためのUI状態復元をサポートする。

単純なアプリにResearchKitを導入するの場合は、タスクをコードに直接組み込んで、タスクの結果（ORKTaskResult）を収集し、後のデータ収集や分析のためにディスクにシリアル化することができる。大規模なシステムに導入する場合は、事前に準備したSurveysをサーバーから動的にダウンロードして再シリアル化し、ResearchKitオブジェクト階層を生成できる。同様に、タスクの結果はシリアル化して、後の分析のためサーバーにアップロードできる。

ResearchKitでできないこと

コミュニティからのモジュールの提供を受け、ResearchKitの機能リストは拡大する予定だが、現時点で以下の機能は含まれないので、注意が必要だ。

ResearchKitの構造化されたデータをシリアル化するデータフォーマット（ResearchKitオブジェクトは全てNSSecureCodingプロトコルを順守する。ResearchKitオブジェクトをJSONへシリアル化するために、サンプルコードはフレームワークの外に存在している）

調査参加者のためにSurveysとActive Tasksのスケジュールを組む機能

受動的なバックグラウンドでのデータ収集（HealthKitやCoreMotionなどのAPIでは、すでにこの機能をサポート済み）

アプリとサーバー間のセキュアな通信の仕組み

また、データを格納するサーバー環境は、開発者が自ら用意する必要がある。この点については、米IBMが4月13日（現地時間）に「IBM Watson Health Cloud」を発表。「HealthKit」「ResearchKit」を利用するiOSアプリの開発者にサーバー環境を支援するとしている。

米アップルと米IBMは2014年7月にエンタープライズ向けモバイルサービスにおいて提携を発表しているが、それがさらに進んだ形だ。

推奨される研究調査の作成手順

アップルが「ResearchKit Technical Overview 1.0」（PDF）で推奨している研究調査の作成手順は以下の通り。

調査の目標を定義する 自分の組織の検討委員会や倫理委員会に意見を聞き、調査参加者の安全性を確保するために必要なアプリの条件について理解する インフォームドコンセントの流れの一環として、調査に関心のある参加者が知っておかなければならない内容を把握する 必要な質問項目を計画する センサーデータを活用して研究に則した量的情報を収集するためのActive Tasksを作成する アプリが従う必要のある国際研究規定やHIPAA（Health Insurance Portability and Accountability Act of 1996；医療保険の携行性と責任に関する法律）のガイドラインについて組織に相談する