(57)【特許請求の範囲】
【請求項１】
データをクレンジングする携帯型の装置であって、前記装置は、
クレンジングする電子データを収集する受信機と、
前記受信機に接続されたプロセッサであって、前記プロセッサは、前記受信機によって収集されたデータを受信するように構成され、かつ、サーバから第１のアプリケーションプログラムインタフェースおよび第２のアプリケーションプログラムインタフェースを格納するアプリケーションコンテナを受信するように更に構成される、プロセッサと、
前記プロセッサに接続されたメモリであって、前記メモリは、アプリケーションプログラム、設定ファイル、ならびに前記第１のアプリケーションプログラムインタフェースおよび前記第２のアプリケーションプログラムインタフェースを格納する前記アプリケーションコンテナを記憶するように構成され、前記設定ファイルは検証規則およびデータ構造を備え、前記アプリケーションコンテナは、いくつかのアプリケーション設定の使用をホストおよびサポートする、メモリと、
を備え、
前記第１のアプリケーションプログラムインタフェースである第１のインタフェースは、インスタンス化モジュールへのプログラムによるアクセスを提供し、前記インスタンス化モジュールは、前記第１のインタフェースによって必要とされるオブジェクトを前記メモリ内にビルドするために前記アプリケーションプログラムによって用いられ、前記アプリケーションプログラムは、前記第１のインタフェースによって提供される設定に従って前記収集されたデータのデータ構造を知るために、前記インスタンス化モジュールの発見機能を用いるように作動可能であり、
前記第２のアプリケーションプログラムインタフェースである第２のインタフェースは、設定マネージャモジュールへのプログラムによるアクセスを提供し、前記設定マネージャモジュールは、前記設定ファイルのデータ構造および検証規則を更新するように構成され、前記設定ファイルは、データを処理するために前記インスタンス化モジュールによって用いられ、前記アプリケーションプログラムのソースコードは不変であり、
前記第１のインタフェースおよび前記第２のインタフェースは、前記受信機によって収集されたデータをクレンジングするために前記アプリケーションプログラムから呼出し可能であり、データのクレンジングは、識別されたデータの特定および補正または除去を含む、装置。
【請求項２】
前記インスタンス化モジュールおよび前記設定マネージャモジュールは、前記装置によってホストされる、請求項１に記載の装置。
【請求項３】
前記インスタンス化モジュールおよび前記設定マネージャモジュールのうちの少なくとも１つは、前記装置の外部でホストされる、請求項１に記載の装置。
【請求項４】
前記装置は、前記インスタンス化モジュールに接続された構造マネージャモジュールを更に備え、前記構造マネージャモジュールは、自己参照規則を用いることによって、前記インスタンス化モジュールによって処理されたデータを検証するように構成される、請求項１に記載の装置。
【請求項５】
前記装置は、前記インスタンス化モジュールに接続された規則マネージャモジュールを更に備え、前記規則マネージャモジュールは、前記インスタンス化モジュールによって処理された１つのデータと別のデータとを比較するための規則を用いることによって、前記インスタンス化モジュールによって処理されたデータを検証するように構成される、請求項４に記載の装置。
【請求項６】
前記構造マネージャモジュールおよび前記規則マネージャモジュールは、前記アプリケーションプログラムに対して変更することなく設定可能である、請求項５に記載の装置。
【請求項７】
前記構造マネージャモジュールおよび前記規則マネージャモジュールのうちの少なくとも１つに対する設定変更は、前記アプリケーションプログラムを再起動することなく実施される、請求項６に記載の装置。
【請求項８】
前記構造マネージャモジュールおよび前記規則マネージャモジュールのうちの少なくとも１つに対する設定変更は、アルゴリズム的に決定される、請求項６に記載の装置。
【請求項９】
前記構造マネージャモジュールおよび前記規則マネージャモジュールは、リアルタイムでデータを検証するように作動する、請求項５に記載の装置。
【請求項１０】
データをクレンジングする方法であって、前記方法は、
メモリに接続されたプロセッサを備える携帯型の装置を提供する第１のステップであって、前記プロセッサは、サーバから第１のアプリケーションプログラムインタフェースおよび第２のアプリケーションプログラムインタフェースを格納するアプリケーションコンテナを受信するように構成され、前記メモリは、アプリケーションプログラム、設定ファイル、ならびに前記第１のアプリケーションプログラムインタフェースおよび前記第２のアプリケーションプログラムインタフェースを格納する前記アプリケーションコンテナを記憶するように構成され、前記設定ファイルは検証規則およびデータ構造を備え、前記アプリケーションコンテナは、いくつかのアプリケーション設定の使用をホストおよびサポートする、第１のステップと、
前記プロセッサに接続された受信機によって、クレンジングする電子データを収集する第２のステップであって、前記第１のアプリケーションプログラムインタフェースである第１のインタフェースは、インスタンス化モジュールへのプログラムによるアクセスを提供し、前記インスタンス化モジュールは、前記第１のインタフェースによって必要とされるオブジェクトを前記メモリ内にビルドするために前記アプリケーションプログラムによって用いられ、前記アプリケーションプログラムは、前記第１のインタフェースによって提供される設定に従って前記収集されたデータのデータ構造を知るために、前記インスタンス化モジュールの発見機能を用いるように作動可能である、第２のステップと、
前記プロセッサによって設定マネージャモジュールを実行するための前記第２のアプリケーションプログラムインタフェースである第２のインタフェースの使用によって、前記設定ファイルの前記データ構造および前記検証規則を更新する第３のステップであって、前記設定ファイルは、データを処理するために前記インスタンス化モジュールによって用いられ、前記アプリケーションプログラムのソースコードは不変である、第３のステップと、
を備え、
前記第１のインタフェースおよび前記第２のインタフェースは、前記受信機によって収集されたデータをクレンジングするために前記アプリケーションプログラムから呼出し可能であり、データのクレンジングは、識別されたデータの特定および補正または除去を含む、方法。
【請求項１１】
前記インスタンス化モジュールおよび前記設定マネージャモジュールは、前記装置によってホストされる、請求項１０に記載の方法。
【請求項１２】
前記インスタンス化モジュールおよび前記設定マネージャモジュールのうちの少なくとも１つは、前記装置の外部でホストされる、請求項１０に記載の方法。
【請求項１３】
前記第２のステップは、自己参照規則を用いることによって、前記インスタンス化モジュールによって処理されたデータを検証することを備える、請求項１０に記載の方法。
【請求項１４】
前記第２のステップは、１つのデータと別のデータとを比較するための規則を用いることによってデータを検証することを更に備える、請求項１３に記載の方法。
【請求項１５】
前記自己参照規則および前記１つのデータと別のデータとを比較するための規則は、前記アプリケーションプログラムに対して変更することなく設定可能である、請求項１４に記載の方法。
【請求項１６】
前記自己参照規則および前記１つのデータと別のデータとを比較するための規則のうちの少なくとも１つに対する設定変更は、前記アプリケーションプログラムを再起動することなく実施される、請求項１５に記載の方法。
【請求項１７】
前記自己参照規則および前記１つのデータと別のデータとを比較するための規則のうちの少なくとも１つに対する設定変更は、アルゴリズム的に決定される、請求項１５に記載の方法。
【請求項１８】
前記第２のステップは、データを検証するためにリアルタイムで行われる、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般にデータ収集に関し、特に、データ構造を動的に定義し、データソース付近で誤ったデータ収集を検出し、誤ったデータを補正する、または更なる使用を制限するためのシステムおよび方法に関する。
【背景技術】
【０００２】
モバイルヘルス（ｍＨｅａｌｔｈ）は、例えば携帯電話、患者監視装置、携帯情報端末（ＰＤＡ）、および他のモバイルデバイスやワイヤレスデバイスなどの通信端末によってサポートされる医療行為および公衆衛生活動に関する用語である。ｍＨｅａｌｔｈは、音声およびショートメッセージサービス（ＳＭＳ）の使用と同様、例えば移動体データ通信システム（例えば、３Ｇ、４Ｇ、４ＧＬＴＥなど）、全地球測位システム（ＧＰＳ）、およびブルートゥース技術といったより複雑な技術の使用にも関わる。
【０００３】
モバイルアプリケーション（すなわち、モバイルアプリ）は、スマートフォン、タブレットコンピュータ、および他のモバイルデバイスで実行するように設計されたソフトウェアアプリケーションである。いくつかのモバイルアプリは、例えば健康管理情報などのデリケートな個人情報を消費者に配信するため、または消費者から健康管理提供者へ健康状態情報を送信し、それらを収集するために用いられる。例えば医療分野で開発されてきたモバイルアプリなどの、デリケートな個人情報のやり取りに関するモバイルアプリの全てが消費者に市販されているわけではない。最新の医療アプリの一部は、必ずしも一般の消費者を対象として設計されていない。いくつかのモバイルアプリは医療従事者のために設計され、他のモバイルアプリは患者のために設計されているが処方箋を要し、また別のモバイルアプリは限られた一部の患者のみが意図される。本明細書で用いる場合、「モバイルアプリ」または「モバイルアプリケーション」という用語は、ＰＣ（例えば、デスクトップ、タワー、ラップトップ、ネットブックなど）や他の汎用消費者向けコンピューティングデバイスで実行するアプリケーションを含んでよく、記載される利益を移動性が提供しない限り、あるいは使用する文脈によって明確に制限されない限り、モバイルデバイスに限定されない。
【０００４】
例えば健康管理に用いられるシステムなどの情報システムは、例えばモバイルアプリケーション、デスクトップアプリケーション、ウェブアプリケーションなどの複数の情報源で収集された電子データを生成して使用する。電子データは、データが手動で入力されたかセンサ読取りによって入力されたかに関わらず、本質的にデータ入力エラーを前提とする。例えば、手動で入力された電子データは、タイプミス（例えば、誤数字入力、数字の入れ違い、抜け字、二重キー打ち、数字でないキー打ち、小数点の打ち間違いなど）を含み得る。電子センサ読取りは、センサの故障（例えば、全てゼロを出力、または他の何らかの無効なコードを出力）、センサの置き忘れや取り外し、通信ラインの不具合、環境による不当な影響（例えば、気温の影響、振動またはＲＦ干渉）、時間基準の誤りなどに影響され得る。信頼できるデータ、すなわちほぼエラーのない、無視してよい残差しかない電子データのみを用いて分析および判断がなされるように、データ入力エラーは、補正または除去されなければならない。データはまた、例えば統計的に有意なサンプリング、または基本処理の全サイクルなどを状況指示として含めることによって、有意、すなわち十分に詳細または包括的でなければならない。信用できる有意な電子データ、すなわちそれに基づいて行動するのに十分なほど信頼性があり詳細な情報が、判断を下し判断に役立つために分析および使用され得る実用的な情報である。
【０００５】
データを実用的な情報に変換するための現在既知であるプロセスは複数のステップを要し、費用および時間がかかり、しばしば不完全または不正確なデータを生じる。第１の問題点は、少なくともデータの一部が、例えば不完全である、不正確である、または不要データを含んでいるなど、何らかによって無効である場合（ほとんどの場合）、データを実用的な情報に変換するためには非常に費用がかかることである。収集されたデータは、例えば無効である疑いのあるデータを検出し、フラグ付けし、補正し、および／または無効である疑いのあるデータを除去するために手動または半自動システムが用いられ得る処理システムなどのクリーニングサイトへ送信される。それらの種類の欠陥を有するデータがクリーニングプロセスを経ると、その結果生じる情報は未だ、ギャップ、誤差、および／または無効な情報を含み得る。
【０００６】
第２の問題点は、従来のデータクリーニングプロセスは時間がかかり、通常、バッチ処理を用いて行われ、補正を提供するためにデータのソースが利用できないことである。例えば、データはまず収集されなければならず、その後、クリーニングのためにサーバへ送信される。バッチ処理は、例えばユーザサポートなどの他のタスクのために演算容量が必要となる可能性が少ないオフ期間にクリーニングプロセスが実行されるように、あるいは、プロセスに更に付随する情報源なしでクリーニングジョブが投入され得るように、用いられる。
【０００７】
従来技術の第３の問題点は、データのソースにおいて構造化データを処理しデータの単純な検証を実行することができるアプリケーションに関連する。そのようなアプリケーションは通常、ユーザが誤ったデータを入力することを防ぐため、またはユーザが非現実的な情報（例えば、５００ｍｍＨｇを上回る血圧）を入力することを防ぐ情報制限を提供するために、（コンピュータサイエンスの意味で知られるような）正規表現を用いる。この従来技術に伴う問題は、より複雑な相関データや依存データのシナリオが、正規表現によって容易に管理できない他の種類の検証を必要とするという点である。複雑なデータ検証の場合、アプリケーションは、品質制御処理および管理のためにバックエンドサーバへ収集されたデータを送信する必要があり、それは複雑かつ時間のかかる処理になるだろう。
【０００８】
従来技術の第４の問題点は、アプリケーション開発者は大抵、特定のユースケースについて自身のアプリケーションに特定のデータ構造や（データ整合性規則とも称される）検証規則をハードコードするという点である。後に、データ構造が変化したりデータ検証規則が変化したりすると、アプリケーションソースコードは変更されなければならず、アプリケーションの新たなバージョンがユーザベースに配布されなければならない。ユーザは、最新の変更にアクセスするためにアプリケーションの新たなバージョンをダウンロードおよびインストールすることが必要になる。アプリケーションの旧バージョンを使用し続けるユーザは、誤ったデータや、他の点で最新のデータ検証規則をパスしないデータを引き起こし得る。
【０００９】
既知の背景技術は、自身のデータ構造および品質規則をオンザフライで更新することができない。既知の背景技術は、更新の度にアプリケーションのソースコードに対する変更を必要とし、ユーザは更新された各バージョンをダウンロードする必要があるので、不便かつ不都合であり、ユーザがアプリケーションの更新されたバージョンのダウンロードおよびインストールを延期または辞退することができる場合、データ品質に関する継続的な問題が生じやすい可能性がある。
【００１０】
更に、既知の背景技術は通常、特に複雑なデータの場合、サーバ側でデータ品質処理（例えば、データクリーニング）を実行する。そのため、エンドユーザデータはアプリケーションで収集され、その後、バッチ処理のためにアプリケーションサーバへ送信される。これは時間および費用がかかり、かつインタラクティブモデルにあまり適していない。
【００１１】
従って、ソースでの判断、データクリーニングをサポートし、その結果改良および顧客満足度を提供するために、より信頼できる実用的な情報を提供するために、データのソース付近でのデータ検証を改良するためのニーズが存在する。
【発明の概要】
【発明の効果】
【００１２】
本開示に係る実施形態は、以下の特徴の１つまたは複数を用いることによってデータソースにおける高い品質のデータの収集を可能にする。実行時のデータ構造固着性、実行時のデータ品質制御固着性、実行時の規則エンジン設定、および適応性のある規則セット。実施形態は、背景技術の既知のシステムと比較して、データ収集に関する速度および正確性の増加、および費用の低減を提供する。
【課題を解決するための手段】
【００１３】
本開示に係る実施形態は、汎用オンライン設定可能プロセスの初期化中に設定可能なデータ構造およびデータ検証規則の管理を可能にするために、アプリケーションプログラムインタフェース（ＡＰＩ）モジュールとして実装される汎用オンライン設定可能プロセスのセットを提供および使用する。実施形態は、実行時プロセスの初期化中に設定されたデータ構造およびデータ検証規則に準拠する文書またはデータのみを検証する。
【００１４】
本開示に係る実施形態は、情報管理のためのデータ構造および規則を実施し、ソースにおいて入力されるデータの品質制御をもたらすことによって、データ変換プロセスを効率化する。
【００１５】
一実施形態において、データをクレンジングするための装置は、クレンジングするための電子データを収集するための受信機と、受信機に接続され、受信機によって収集されたデータを受信するように構成されたプロセッサと、プロセッサに接続され、アプリケーションプログラムを記憶するように構成されたメモリと、受信機によって収集されたデータを処理するための、インスタンス化モジュールに対する第１のインタフェースと、データを処理するためにインスタンス化モジュールによって用いられる構造および規則を制御するように構成された設定マネージャモジュールに対する第２のインタフェースとを含み、第１のインタフェースおよび第２のインタフェースは、受信機によって収集されたデータをクレンジングするためにアプリケーションプログラムからの呼出しが可能である。
【００１６】
一実施形態において、データをクレンジングするための方法は、アプリケーションプログラムを記憶するように構成されたメモリに接続されたプロセッサを備える装置を提供すること、プロセッサに接続された受信機によって、クレンジングするための電子データを収集すること、プロセッサによってインスタンス化モジュールを実行するために第１のインタフェースを用いることによって、受信機によって収集されたデータを処理すること、およびプロセッサによって設定マネージャモジュールを実行するために第２のインタフェースを用いることによって、データを処理するためにインスタンス化モジュールによって用いられる構造および規則を制御することを含み、第１のインタフェースおよび第２のインタフェースは、受信機によって収集されたデータをクレンジングするためにアプリケーションプログラムからの呼出しが可能である。
【００１７】
上記は、本開示のいくつかの態様の理解を提供するための、本開示の実施形態の簡略化された概要である。この概要は、本開示および本開示の様々な実施形態の広範な概観または包括的な概観のいずれでもない。上記は、本開示の要点や重要な要素を特定すること、あるいは本開示の範囲を表すことは意図されておらず、以下に提示するより詳細な説明への導入として本開示の選択された概念を簡略化した形式で示すことが意図される。理解されるように、上述した、あるいは以下で詳しく説明する特徴のセットの１または複数を用いて、それらと併用して、あるいは単独で、本開示の他の実施形態が可能となる。
【００１８】
本発明の上記特徴および利点および更なる特徴および利点は、本開示の実施形態の以下の詳細な説明を考慮すると、特に、様々な図面における同様の参照番号が同様の構成要素を示すために用いられる添付図面と併用されると、明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る典型的な設定ファイルを示す。
【図２】本開示の実施形態に係るシステムを比較的高いモジュラーレベルの概念で示す。
【図３Ａ】本開示の実施形態に係るシステムを比較的高いハードウェアレベルの概念で示す。
【図３Ｂ】本開示の別の実施形態に係るシステムを比較的高いハードウェアレベルの概念で示す。
【図４】本開示の実施形態に係る、サーバによってシステムを使用するためのプロセスを示す。
【図５】本開示の実施形態に係る、モバイルデバイスによってシステムを使用するためのプロセスを示す。
【発明を実施するための形態】
【００２０】
本明細書で用いられる見出しは、整理目的のためにすぎず、本説明や特許請求の範囲の範囲を限定するために用いられることは意味されていない。本出願を通して用いられる場合、「〜し得る」という言葉は、命令的な意味（すなわち、しなくてはならないという意味）ではなく、許容的な意味（すなわち、〜する可能性があるという意味）で用いられる。同様に、「含む（ｉｎｃｌｕｄｅ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、および「含む（ｉｎｃｌｕｄｅｓ）」という言葉は、含むが、それらに限定されないことを意味する。理解しやすいように、同様の参照番号は、可能であれば、図面に共通する同様の要素を示すために用いられている。図面の任意選択的な部分は、それを使用する文脈が例外を示さない限り、破線や点線を用いて示され得る。
【００２１】
本開示は、典型的な通信システムに関連して以下で説明される。本開示は、例えばサーバおよび／またはデータベースを用いるシステムと併用するために適しているが、任意の特定の種類の通信システムやシステム要素の設定と併用することに限定されない。当業者は、開示された技術が、より実用的なデータ収集を提供することが望ましいあらゆる通信アプリケーションにおいて使用され得ることを理解するであろう。
【００２２】
本開示の典型的なシステムおよび方法は、ソフトウェア、モジュール、および関連ハードウェアに関しても説明される。しかし、本開示を不必要に不明瞭化することを避けるために、以下の説明は、ブロック図の形式で示され得る、よく知られている、あるいは要約された、よく知られている構成、構成要素、およびデバイスを省略する。
【００２３】
以下の詳細な説明において、数々の具体的な詳細は、本明細書に記載される実施形態や他の例の完全な理解を提供するために説明される。いくつかの例において、よく知られている方法、手順、構成要素、および回路は、以下の説明を不明瞭にしないように詳しく説明されていない。更に、開示される例は、単に説明目的のためにすぎず、開示される例の代わりに、あるいは開示される例と伴に、他の例が用いられ得る。本明細書で提示される例は、本発明の実施形態の範囲を制限するものとして解釈されてはならず、他の等しく効果的な例が考えられ、起こり得ることにも留意すべきである。
【００２４】
本明細書で用いられる場合、「モジュール」という用語は、一般に、ステップ、プロセス、または構成要素の論理的シーケンスまたは関連付けを指す。例えばソフトウェアモジュールは、コンピュータプログラム内の関連するルーチンまたはサブルーチンのセットを備えてよい。あるいは、モジュールは、実質的に自己内蔵型のハードウェアデバイスを備えてよい。モジュールはまた、任意のソフトウェア実装またはハードウェア実装に関わらず、プロセスの論理セットを備えてよい。
【００２５】
本明細書で用いられる場合、「ゲートウェイ」という用語は、一般に、デバイス間でデータを送受信するあらゆるデバイスを備えてよい。例えばゲートウェイは、ルータ、スイッチ、ブリッジ、ファイアウォール、他のネットワーク要素など、それらのいずれかおよび組み合わせを備えてよい。
【００２６】
本明細書で用いられる場合、「送信機」という用語は、一般に、信号を送信することができる任意のデバイス、回路、または装置を備えてよい。本明細書で用いられる場合、「受信機」という用語は、一般に、信号を受信することができる任意のデバイス、回路、または装置を備えてよい。本明細書で用いられる場合、「トランシーバ」という用語は、一般に、信号を送受信することができる任意のデバイス、回路、または装置を備えてよい。本明細書で用いられる場合、「信号」という用語は、電気信号、無線信号、光信号、音響信号などの１または複数を含んでよい。
【００２７】
本明細書で用いられる場合、「アプリケーションコンテナ」という用語は、一般に、いくつかのアプリケーション設定の使用をホストおよびサポートすることができるモバイルアプリケーションを指してよい。各設定は、ＧＵＩ外観、アプリケーションフロー、アプリケーションに関連する論理およびデータを記述する。コンテナは、第１の設定として識別される１つの設定で開始してよい。第１の設定は、ユーザが他の設定を用いることを選択することを可能にし得る。
【００２８】
「コンピュータ可読媒体」という用語は、本明細書で用いられる場合、実行するためにプロセッサへ命令を提供することおよび／または命令を記憶することに関与する任意の有形非一時的記憶および／または送信媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および送信媒体を含むがそれらに限定されない様々な形態であってよい。不揮発性媒体は、例えばＮＶＲＡＭや、磁気ディスクまたは光学ディスクを含む。揮発性媒体は、例えばメインメモリなどのダイナミックメモリを含む。コンピュータ可読媒体の一般的な形状は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープまたは他の任意の磁気媒体、光磁気媒体、ＣＤ−ＲＯＭ、他の任意の光媒体、パンチカード、紙テープ、孔のパターンを有する他の任意の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、メモリカードなどのソリッドステート媒体、他の任意のメモリチップやカートリッジ、以下で説明するような搬送波、あるいはコンピュータが読み取ることができる他の任意の媒体を含む。ｅメールへのデジタルファイル添付や他の自己内蔵型情報アーカイブまたはアーカイブのセットは、有形記憶媒体と同等の配布媒体とみなされる。コンピュータ可読媒体がデータベースとして構成される場合、データベースは、例えば関係型、階層型、オブジェクト指向などの任意の種類のデータベースであってよいことを理解すべきである。従って、本開示は、本開示のソフトウェア実装が記憶される有形記憶媒体または配布媒体、および従来技術が認めた均等物および後継媒体を含むことが考慮される。
【００２９】
本開示に係る実施形態は、実行時に未知のデータ構造および検証規則の管理を可能にするために、アプリケーションプログラムインタフェース（ＡＰＩ）モジュールとして実装される汎用設定可能プロセスのセットを提供および使用する。実施形態を具現化するアプリケーションプログラムは、文書やデータが、初期化プロセス中に定められたデータ構造および検証規則セットに準拠している場合のみ、それらを承認する。
【００３０】
本開示に係る実施形態は、図３Ａおよび３Ｂに関連して以下で詳述される、様々なターゲットコンピューティングプラットフォーム（例えば、スマートフォン、タブレット、ラップトップ、ネットブック、他のモバイルデバイス、デスクトップなど）で実行するように適合し得る。例えばデータＡＰＩ、規則ＡＰＩ、規則エンジンなどの汎用設定可能プロセスは、ターゲットコンピューティングプラットフォームのためのネイティブコードで記述され得る。ネイティブコードは、特定のプロセッサおよびその命令のセット（例えば、機械コード）を用いて直接的に実行するようにコンパイルされたコンピュータプログラミングコードとして知られている。汎用設定可能プロセスは、汎用アプリケーション（「アプリ」）コンテナの構成要素、新たなデータ構造および規則、または既存のデータ構造および規則に対する変更として、ターゲットコンピューティングプラットフォームへの配布のためにパッケージされ得る。汎用設定可能プロセスは、汎用アプリコンテナのソースコードを変更または更新する必要なく実装され得る。
【００３１】
本開示に係る実施形態は、データ構造の共有型を用いて、様々なアプリケーションが、構造化情報セットをソースで収集することを可能にする。構造化情報セットは、より高い品質（例えば、より信頼でき、かつ有意義）であり、整然として（例えば、同様かつ矛盾のない構造を処理して）いながら、収集されたデータから実用的なデータを実現するために、収集されたデータをクレンジングするために必要なステップの数を低減する。データのクレンジングは、信頼できないデータ、例えば重大なエラーを含むデータや、未知の状況下で収集され、それらの状況の認識が正規化、補償、補正などの目的のために重要となる場合のデータの特定および補正または除去を指す。重大ではないとされ得るエラーの例は、センサやタイマの通常の許容差や精度の範囲内で変化する測定値、または統計サンプリングエラーである。重大とされ得るエラーの例は、環境（例えば、気温の影響、振動またはＲＦ干渉）の影響による、（通常の許容差、精度、またはサンプリングエラーと比べて）比較的大きな変化や系統的バイアスを含む測定値である。クレンジングされるべきエラーと、監視されている根本的プロセスにおける真の変化とを区別することは困難であり得る。データをクレンジングする必要を低減することによって、実施形態は、リソースを節約しつつ、生成される情報の品質を向上させる。
【００３２】
上述した背景技術の欠点、すなわち、何らかによって少なくとも一部のデータが無効である場合（ほとんどの場合）、データを実用的な情報に変換するために非常に費用がかかるという点に対して、本開示に係る実施形態は、より効率的に一貫してデータソースでデータを収集するために複数の情報源（例えば、スマートフォン、タブレット、ラップトップ、ネットブック、他のモバイルデバイス、デスクトップなど）によって使用され得る。実施形態は、収集されたデータが、期待されるものに準拠し、強制的な整合性を提供することを保証するために、データ構造、規則、および品質制御設定を用いることによって、この目的を達成する。この整合性は、データが入力されると発生するので、ユーザは、失われた情報、不正確な情報、矛盾した情報、または期待されるフォーマットに一致しない情報に対する注意を喚起され得る。整合性の判断は、階層型データおよび他のソースからのデータの使用を含んでよい。ユーザはその後、更なる使用および分析のために情報がサーバに提示される前に、情報を補正することができる。
【００３３】
上述した背景技術の別の欠点、すなわち、従来のデータクリーニングプロセスには時間がかかり、通常、バッチ処理を用いて行われるという点に対して、本開示に係る実施形態は、アプリケーション（例えば、ｍＨｅａｌｔｈ関連アプリ）が、アプリケーションとユーザとのインタラクション中に情報の入力を管理することを可能にする。このプロセスによって、情報の収集および管理は、インタラクティブであり、トランザクショナルであり、かつ迅速になり得る。
【００３４】
更に、アプリケーションのトランザクショナルかつインタラクティブな特性により、実施形態は、情報がほぼリアルタイムで処理されることを可能にする。実施形態は、データが実用的であるとみなされるので、サーバによって情報が受信されるとほぼ瞬間的に統計またはレポートを更新および管理することができることを容易にする。これは、時間が最も重要となり得る多くの種類のアプリケーション（例えば、広告キャンペーンの効果を評価するアプリケーション、深刻な病状を検出するアプリケーションなど）に関して非常に貴重となり得る。
【００３５】
上述した背景技術の別の欠点、すなわち、より複雑な相関データまたは依存データシナリオが、正規表現を用いて明記するには複雑すぎる、あるいは正規表現によって容易に管理できない種類の検証を必要とするという点に対して、実施形態は、データのソースが既に入手不可能であり得る場合、サーバ側で検証を構成する必要なく、ソースにおいてほぼすべての型のデータセット（例えば、単純なまたは複雑なデータセット）の構造化データ処理およびデータ品質制御の両方を可能にする。
【００３６】
上述した背景技術の別の欠点、すなわち、アプリケーション開発者は大抵、特定のユースケースに関して自身のアプリケーションにおける特定のデータ構造や検証規則をハードコードするという点に対して、実施形態は、開発者が、データ構造および検証規則のフォーマットに関して、あるいはデータ構造および検証規則に対する変更に関して、またはデータ品質の管理に関して案じる必要なく、ソフトウェアアプリを開発することを可能にする。実施形態は、実施形態が、ユーザによって提供された情報を情報のソースで管理できるようにすることによって、例えばｍＨｅａｌｔｈ用途に関して、既定の規格やイニシアチブにソフトウェアアプリが確実に準拠し得ることを保証する助けとなる。集められる情報のデータ構造（例えば、フィールド定義）や入力された情報の品質要件（例えば、数値情報の整合性検査およびエラー検査、データ間の相互関係の計算の度合いまたはレベル）に対する変更は、ソフトウェアアプリのソースファイルに対する変更を必要としない。実施形態は、正式な変更設定および制御方法を用いることによってデータ構造および検証規則のセット（それらに対する変更も含む）を管理してよい。実施形態は、データ構造および検証規則セットの設定が一貫した方法で管理され、ソフトウェア開発者に対しアクセス可能であるという理由から、例えばｍＨｅａｌｔｈアプリケーションなどに関して、ソフトウェアアプリ開発の複雑性を軽減する傾向がある。
【００３７】
本開示に係る実施形態は、ソースにおいて、データを収集し、そのデータを実用的な情報に変換するための柔軟なフレームワークを提供する。柔軟性は、収集されたデータに関するオンザフライのフォーマットおよび整合性要件の再設定、すなわち、アプリケーションプログラムを再配布または再起動する必要なくリアルタイムでの再設定が可能であることを含む。特定の疾病種類について必要なデータ構造および検証規則は重要であり、医療知識の進歩とともに継時的に変化し得る。特定の時点で、最先端の医療知識は、特定の要因や行動を、疾病に関する危険性増加の標識とみなし得る。例えば、一日にカップ４杯のコーヒーまたはグラス２杯の赤ワインは、ある年には健康的であるとみなされ得るが、後年に、新たな研究によって、健康に悪い、あるいは統計的に意義のある効果はないとみなされ得る。その結果、医療アプリは継時的に様々な患者データを収集すること、または収集されたデータを継時的に様々な方法で分析することが望ましい。実施形態は、医療アプリ自体を再配布する必要なく実用的な情報を集め続けるために、必要なデータ構造および検証規則に対する変更を可能にし、容易にすることによって、医療知識におけるそのような進歩に適合することができる。
【００３８】
本明細書で説明される実施形態は、医療関係での使用に制限されず、様々な状況や業界にわたって役立ち得る。実施形態は、異なる開発者によって記述された場合でも、同様のアプリケーションからの一貫したデータ収集および同様のアプリケーションの一貫した管理を容易にする。
【００３９】
他の技術（例えば、ＸＭＬおよびＸＭＬスキーマ）は情報の表示において限られた柔軟性を提供し得るが、それらの技術は、ソースにおいて正確性および整合性に関してデータを検査するため、および統合データ構造および検証規則エンジンを管理するための柔軟な能力を提供することに関して不十分である。実施形態は、向上したエラーおよび整合性検査を容易にする。
【００４０】
本開示に係る実施形態は、ネイティブレベルで直ちに符号化されるがソフトウェアアプリケーションの目的に関係する実用的な情報を生成するために実行時に再設定され得るデータＡＰＩおよび検証規則エンジンを用いてよい。従って実施形態は、ソフトウェアアプリケーションが、実用的な情報を生成するために、データ整合性、データ品質、およびプロセスフローに関して必要なデータ構造および検証規則セットをサポートすることを可能にする。
【００４１】
本開示に係る実施形態の別の利点は、データ構造および検証規則に対する変更が、アプリケーションソースコードレベルではなく設定レベルで実行され得る点である。例えば、設定レベルの実行は、初期化時、および任意選択的に、定期的に、あるいはその後の他の追加時点で、設定ファイルを読み取るアプリケーションプログラムに依存し得る。データ構造および検証規則に対する変更は、設定ファイルに符号化され得る。従って、アプリケーションワークフローに影響するオンザフライの変更（すなわち、リアルタイム変更）、ユーザ体験（ＵＸ）、またはユーザインタフェース（ＵＩ）、データ型、あるいは検証規則は、ソフトウェアアプリケーションを変更、更新、または再起動する必要を生じることなくサポートされ得る。
【００４２】
設定ファイルは、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）や拡張マークアップ言語（ＸＭＬ）、あるいはほぼ全ての他の特殊実装を用いるなど、様々な方法で実装され得る言語を用いることによって提供され得る。設定ファイルは、階層の詳述を含み、検証規則に関連付けられたデータフィールドおよび構造標識を有するデータ構造記述を備えてよい。ＪＳＯＮを用いる典型的な設定ファイルが図１に示される。図１は、設定ファイルがどのような様相であるかの一例を示すが、設定ファイルの他の実装が考慮される。
【００４３】
実装の観点から、設定はプラットフォームによって管理され、データＡＰＩおよび検証規則エンジンの構成要素は、例えば設定データ、初期化ファイルなどを用いることによってアプリコンテナに組み込まれることになる。データＡＰＩおよび検証規則エンジンは、設定を読み取り、それに従って必要な行動を管理する。アプリケーション（「アプリ」）コンテナは、いくつかのアプリケーション設定の使用を提供およびサポートすることができるモバイルアプリケーションであってよい。各設定は、ＧＵＩ外観、アプリケーションフロー、論理およびデータを記述する。コンテナは、第１の設定として識別される１つの設定で開始してよい。第１の設定は、ユーザが、他の設定を用いるために選択することを許可し得る。
【００４４】
例えば、薬物の用量が「ＩＵ」を単位にして記載されると仮定する。更に、（例えば、コンプライアンスを監視または実施するために）ユーザが薬物の計量値を「ｍｇｓ」の単位で提供すると仮定する。そのような状況では、検証規則エンジンがこのエラーを捕捉することになる。
【００４５】
しかし、後に、「ｍｇｓ」単位での計量値を許容するために検証規則を更新する必要性または所望があると更に仮定する。既知の技術のシステムの場合、そのような検証規則の更新は、アプリケーションソースコードを更新し、その後、コンパイルされたソフトウェアアプリケーションまたはソフトウェアアプリケーションの実行時バージョンをユーザに配布することを必要とせずに行うことはできない。それによってユーザは、ソフトウェアアプリケーションの更新された新バージョンによって自身のデバイスを更新することを強いられる。そのような更新は特にモバイルユーザにとって不便である。例えば、月ごとのデータ転送制限を超えているモバイルユーザに不都合が生じたり、モバイルユーザが頻繁な更新に慣れたり、あるいはソフトウェアアプリケーションがユーザによるダウンロードで入手可能になる前にソフトウェアアプリケーションを検証検査および承認へ提示する必要があることによって生じる、ソフトウェアアプリケーションが入手可能になるまでの遅延により不都合が生じ得る。ソフトウェアの更新が準備完了になる時間と、ユーザがソフトウェアアプリケーションを更新することを同意または選択する時間との間に遅延が生じ得る。
【００４６】
更に、本明細書で説明される実施形態がない場合、ユーザから収集されるデータは未だ、一般的に人やシステムによってレビューされ、何らかの欠陥がある場合、クリーニングされる必要がある。この処理の全てがおそらくバッチモードで実行され、長時間を要することになる。また、この処理は、データのクリーニングは少なくとも部分的に手動のプロセスであるため手動のエラーが付随しがちであるので、エラーを生じやすくなり得る。
【００４７】
対照的に、そのような検証規則を更新する要求がある場合、実施形態は、ソフトウェアアプリ自体の更新をエンドユーザに配布する必要なくソフトウェアアプリを再設定してよく、それによってエンドユーザはその後、自身の投薬量を「ｍｇｓ」単位で入力することができる。同様に、検証規則セットは、薬物の用量、繰り返しの回数、薬物の相互作用の検証や有害な相互作用の特定などにおける変更に対処するために更新されてもよい。
【００４８】
図２は、本開示の実施形態に係るシステム２００の概念を比較的高いモジュラーまたは機能レベルで示す。システム２００は、サーバ２０３と通信しているモバイルデバイス２０１を含む。モバイルデバイス２０１は、サーバ２０３と情報および／またはコマンドを交換する、例えば、データ測定の制御に関するサーバ２０３からのコマンドを受信し、測定したデータをアプリケーションプログラム２０５からサーバ２０３へ通信するために機能するアプリケーションプログラム２０５を含んでよい。
【００４９】
モバイルデバイス２０１は更に、発見およびインスタンス化モジュール２０７を含んでよい。発見およびインスタンス化モジュール２０７は、アプリケーションプログラム２０５が測定を行うことを必要とすると、アプリケーションプログラム２０５によって呼び出され得る。発見およびインスタンス化モジュール２０７のインスタンス化機能は、ＡＰＩによって機能することが必要とされる全てのオブジェクト（すなわち、実施形態）をメモリ内にビルドするためにアプリケーションプログラム２０５によって用いられる。アプリケーションプログラム２０５は、ＡＰＩに提供される設定に従って使用可能なデータ構造を知るために、発見およびインスタンス化モジュール２０７の発見機能を用いる。アプリケーションプログラム２０５は、ユーザから要求されるまたはユーザに提供される必要があるデータを知るために、発見およびインスタンス化モジュール２０７によって提供される情報の記述を用いることができる。アプリケーションプログラム２０５は、データ設定に従って対応するデータを提供するために、発見およびインスタンス化モジュール２０７によって提供されるＡＰＩを用いてもよい。発見およびインスタンス化モジュール２０７は、以下で説明される構造マネージャモジュール２０９にデータ検証を委任する。
【００５０】
モバイルデバイス２０１は更に、発見およびインスタンス化モジュール２０７と通信接続している構造マネージャモジュール２０９を含んでよい。発見およびインスタンス化モジュール２０７は、データ検証に関する特定のタスクを構造マネージャモジュール２０９に委任してよい。例えば、発見およびインスタンス化モジュール２０７が検証される必要のある１または複数の測定値を有する場合、発見およびインスタンス化モジュール２０７は、データを検証する要求と伴に構造マネージャモジュール２０９にデータを送信してよい。データ検証は、例えば、検証されている特定のデータのインスタンス化が範囲（例えば、最小および最大の限界値）内であり、データ入力エラー（例えば、非数値を有する測定値、小数点の欠如または余分な小数点、あるいはデータに適切ではない場合の負号、例えば厳密に「シンボルに」１つを有していないなどのｅメールアドレス内の不正文字、宛先内の不正文字など）を含んでいないこと、あるいはデータが必要な構造に準拠すること（例えば、血圧の測定値が心臓収縮期および拡張期両方の測定値を含むこと）を保証することを含んでよい。構造マネージャモジュール２０９によって実行されるデータ検証は、検証が、検証されるデータと他のデータとを必ずしも比較せずに特定のデータを独立して検査する限り、自己参照検証であると考えられ得る。発見およびインスタンス化モジュール２０７は、構造マネージャモジュール２０９が、データに適用するための正しい検証規則のセットを識別することができるように、データを識別する情報を送信してもよい。
【００５１】
モバイルデバイス２０１は更に、構造マネージャモジュール２０９と通信接続している規則マネージャモジュール２１１を含んでよい。構造マネージャモジュール２０９は、検証規則に関する特定のタスクを規則マネージャモジュール２１１に委任してよい。例えば、発見およびインスタンス化モジュール２０７が検証される必要のある１または複数の測定値を有する場合、検証の一部は、測定値が、その測定値と同じパラメータまたは異なるパラメータの他の測定値との関係性に関する規則に準拠するかを判定するために、検証される測定値のより包括的な検査を含み得る。例えば、継続的なブドウ糖の監視の結果である測定値は、（センサの問題を示し得る）既定の回数の連続した読取りについて変化していないか、あるいはデータが予想される日周パターンに従わないか、または例えば食事をとるなど他の外部的事象に関するパターンに従わないかを確認するために検査され得る。規則マネージャモジュール２１１によって実行されるデータ検証は、検証が、検証されるデータと他のデータとを比較することによって特定のデータを検査する限り、相対的検証であると考えられ得る。
【００５２】
モバイルデバイス２０１は更に、アプリケーションプログラム２０５と通信接続している設定マネージャモジュール２１３を含んでよい。設定マネージャモジュール２１３は、データ構造や検証規則の変更を容易にするために用いられ得る機能を提供する。例えば、一連の測定値のデータ構造が（例えば、許容可能な読取りの最小／最大限界値を変更することによって）変更される必要があること、あるいは規則が変更される必要があること（例えば、収縮期の血圧測定値と拡張期の血圧測定値との許容可能な比率に日周成分を含めること）が決定され得る。要求された変更は、（例えばサーバ２０３を介して）ユーザによってアプリケーションプログラム２０５へ入力されるか、（例えば、誤った警告を低減しようとする自動的な試みとして）アプリケーションプログラム２０５によってアルゴリズム的に決定されるかのいずれかであり得る。変更が、データ検証に対する変更、検証規則に対する変更、または両方に対する変更を含むかが判定される。いくつかの実施形態において、この判定は、アプリケーションプログラム２０５によって下され、変更自体と共に設定マネージャモジュール２１３へ通信され得る。他の実施形態において、アプリケーションプログラム２０５がこの判定を下す必要なく、設定マネージャモジュール２１３によって変更から独立して判定が下され得る。
【００５３】
設定マネージャモジュール２１３は、構造マネージャモジュール２０９および規則マネージャモジュール２１１と通信接続している。設定マネージャモジュール２１３は、要求がデータ構造または検証規則のいずれに対する変更を含むかを（通知されることによって、または自身の決定によってのいずれかで）認識してよい。変更がデータ構造に関する場合、設定マネージャモジュール２１３は、要求されたデータ構造を更新するために構造マネージャモジュール２０９と通信する。変更が検証規則に関する場合、設定マネージャモジュール２１３は、要求された検証規則を更新するために規則マネージャモジュール２１１と通信する。
【００５４】
データ検証が起こる時、２つのシナリオのいずれかが生じ得る。第１に、情報が検証規則に従ってよい、あるいは第２に、情報が検証規則に従わなくてよい。第２の場合、実施形態は、何らかが誤っていたことをアプリケーションプログラム２０５に通知し、また、何が誤っていたかをアプリケーションプログラム２０５に通知するであろう。実施形態は、例えば、重大度（例えば、エラー、警告）を示す、疑われるエラーの原因を示すなどのために、アプリケーションプログラム２０５への数種類の通知のうち１または複数を返送してよい。
【００５５】
図３Ａは、本開示の実施形態に係るシステム３００を比較的高いハードウェアレベルの概念で示す。システム３００は、ソースにおけるデータ収集およびクリーニングのワークフローサンプルを示すために役立ち得る。
【００５６】
システム３００は、通信ネットワーク３０４を介してサーバ３０３と通信しているモバイルデバイス３０１を含む。モバイルデバイス３０１は、当業者には既知であるようなハードウェアおよびプロトコルを用いて通信ネットワーク３０４と通信するために、通信インタフェース（例えば、有線イーサネット（登録商標）、無線Ｗｉ−Ｆｉまたはブルートゥーストランシーバなど）を含んでよい。モバイルデバイス３０１は、メモリ３０７に接続されたプロセッサ３０５を含んでよい。メモリ３０７は、プロセッサ３０５によって実行されると、情報および／またはコマンドをサーバ３０３と交換する、例えばデータ測定値や他の種類の情報などのユーザ入力の制御に関するサーバ３０３からのコマンドを受信し、測定されたデータをプロセッサ３０５からサーバ３０３へ通信するように機能する１または複数のアプリケーション（すなわち、アプリ）プログラム３０９ａ、３０９ｂなどを記憶するように構成され得る。特定のものではない個々のアプリケーションプログラムがアプリケーションプログラム３０９と称され得る。許可されたユーザ３０２は、サーバ３０３と通信し、例えば、規則セット、データ構造、および有効なデータを示す他の記述を定めることによってサーバ３０３を設定することができる。そのような設定は次に、モバイルデバイス３０１へ通信される。
【００５７】
通信ネットワーク３０４は、パケット交換型および／または回路交換型であってよい。典型的な通信ネットワーク３０４は、例えばインターネットなどの広域ネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、単純従来型電話サービス（ＰＯＴＳ）ネットワーク、セルラ通信ネットワーク、またはそれらの組み合わせを限定的ではなく含む。１つの構成において、通信ネットワーク３０４は、ＴＣＰ／ＩＰプロトコル一式をサポートする公衆ネットワークである。
【００５８】
モバイルデバイス３０１は更に、センサ３１３から測定値を受信するように構成される受信インタフェース回路、例えば受信機３１１ａを含んでよい。測定値は、クリーニングされるべき読取りまたは他の情報を含んでよい。受信機３１１ａは、センサ３１３からプロセッサ３０５へ測定値を渡すためにプロセッサ３０５に接続され得る。
【００５９】
モバイルデバイス３０１は更に、例えばキーボード、タッチスクリーンインタフェース、音声認識用マイクロフォンなどのユーザ入力／出力（Ｉ／Ｏ）デバイス３１４からデータを受信するように構成される受信インタフェース回路、例えば受信機３１１ｂを含んでよい。データは、クリーニングされるべき数値データまたは他の情報を含んでよい。受信機３１１ｂは、Ｉ／Ｏデバイス３１４からプロセッサ３０５へユーザＩ／Ｏを渡すためにプロセッサ３０５に接続され得る。
【００６０】
プロセッサ３０５は、アプリコンテナ３１５にアクセスするように構成され得る。アプリコンテナ３１５は、ソフトウェアにアクセスするために呼出し側（例えば、親）プロセスによって用いられるＡＰＩのセットと共に、本明細書で説明される方法を実行するために用いられるソフトウェアコードを含む。アクセスは、アプリケーションプログラム３０９によって呼び出される、またはアプリケーションプログラム３０９と通信している関数呼び出し、イベントハンドラなどを経由してよい。例えば、イベントハンドラは、受信機３１１ａおよび３１１ｂを介して読み取られた新たなデータの存在または可用性を検出し、その後、データを処理するためにアプリコンテナ３１５内でＡＰＩを呼び出してよい。データは、処理された後、更なる処理または分析のためにアプリケーションプログラム３０９へ供給され得る。アプリコンテナ３１５は、（例えば、メモリ３０７や異なるメモリを含む）モバイルデバイス３０１内のメモリにてホストされるか、あるいはリモートでホストされ、図３Ｂに示すように通信リンクを介してモバイルデバイス３０１へのアクセスが可能であるか、あるいはそれらの何らかの併用であってよい。
【００６１】
アプリコンテナ３１５は、例えば発見およびインスタンス化ＡＰＩ３１７、構造マネージャＡＰＩ３１９、規則マネージャＡＰＩ３２１、および設定マネージャＡＰＩ３２３などのＡＰＩを含んでよい。発見およびインスタンス化ＡＰＩ３１７は、発見およびインスタンス化モジュール２０７へのプログラムによるアクセスを提供する。構造マネージャＡＰＩ３１９は、構造マネージャモジュール２０９へのプログラムによるアクセスを提供する。規則マネージャＡＰＩ３２１は、規則マネージャモジュール２１１へのプログラムによるアクセスを提供する。設定マネージャＡＰＩ３２３は、設定マネージャモジュール２１３へのプログラム可能なアクセスを提供する。
【００６２】
サーバ３０３は、構造マネージャモジュール２０９および／または規則マネージャモジュール２１１に含まれる規則を変更するために、プロセッサ３０５および設定マネージャＡＰＩ３２３を介して設定マネージャモジュール２１３を用いるように構成され得る。変更は、例えば、規則セットに対する変更やデータ構造記述に対する変更を含んでよい。
【００６３】
図３Ｂは、本開示の実施形態に係るシステム３５０を比較的高いハードウェアレベルの概念で示す。図３のシステム３００と比較すると、システム３５０は、モバイルデバイス３５１からリモートなメモリ３５３内にアプリコンテナ３１５を記憶するが、通信リンク３５５を介してモバイルデバイス３５１と通信接続している。モバイルデバイス３５１は、当業者には既知であるハードウェアおよびプロトコルを用いて通信ネットワーク３０４および／またはメモリ３５３と通信するために、通信インタフェース（例えば、有線イーサネット（登録商標）、無線Ｗｉ−Ｆｉまたはブルートゥーストランシーバなど）を含んでよい。システム３５０の他の要素は、システム３００の同様の番号が付された要素の文脈で説明されている。
【００６４】
図４は、本開示の実施形態に係る、システム３００を用いるためのプロセス４００を示す。プロセス４００の少なくともいくつかのステップは、サーバ３０３によって実行され得る。プロセス４００はステップ４０１で開始し、ここで、（Ａ）規則マネージャモジュール２１１によって実施される規則セット、（Ｂ）構造マネージャモジュール２０９によって実施されるデータ構造記述、および（Ｃ）アプリケーションプログラム３０９のうちの１または複数に関する設定を、許可されたユーザ３０２がサーバ３０３に発行し、サーバ３０３がそれを受信してよい。
【００６５】
プロセス４００は次にステップ４０３に移り、ここで、発行された構造および規則設定がモバイルデバイス３０１と同期され得る。そのような同期は、ほぼどの時点でも起こり得る。例えば、新たな医学研究が、追加の型のデータを収集すべきであることを示す場合や、（例えば、以前は認識されていなかった日周バイアスを補償する、あるいは患者が受け得る新たな薬物治療を補償するなどのために）収集されたデータの追加のデータ検査を実行すべき場合、アプリケーションンプログラム３０９が既に実行している時にモバイルデバイスに対する更新が起こり得る。一実施形態において、サーバ３０３はその後、モバイルデバイス３０１へ送信するために、発行された情報をアプリコンテナ内に集めてよい。別の実施形態において、発行された情報は、例えば（以下で説明する）プロセス５００などの同期プロセス中にモバイルデバイス３０１へ転送され得る。モバイルデバイス３０１への情報の転送は、収集されるべきデータのセットや追加のデータごとに反復され得る。いくつかのデータ（例えば、血圧測定値）は、何らかの値を個々に有し得る構成要素（例えば、収縮期および拡張期の測定値）を含み得るが、このデータは、概ね同時に測定された全ての構成要素を含むセットとして更なる値を有してよい。データのセットは、同じプロセスで継時的に反復された測定値（例えば、身体運動中の心拍数モニタや食事中のブドウ糖モニタ）も含んでよい。
【００６６】
プロセス４００は次にステップ４０５に移り、ここで、サーバ３０３は、アプリケーションプログラム３０９へのアクセスが可能なメモリ記憶装置へ、発行された情報を送信する。いくつかの実施形態において、メモリ記憶装置は、図３Ａに示すようにモバイルデバイス３０１内にあってよい。他の実施形態において、メモリ記憶装置は、図３Ｂに示すようにモバイルデバイス３５１に外付けであってよい。プロセス４００が終わると、制御は、図５のプロセス５００へ移ってよい。
【００６７】
図５は、本開示の実施形態に係る、システム３００を用いるためのプロセス５００を示す。プロセス５００の少なくともいくつかのステップは、モバイルデバイス３０１および／またはモバイルデバイス３０１内のアプリケーションプログラム３０９によって実行され得る。プロセス５００は、モバイルデバイス３０１内のアプリコンテナ３１５の記憶に関して説明されるが、当業者には、モバイルデバイス３０１の外部に記憶装置を含むようにプロセス５００を適用する方法が分かるであろう。プロセス５００はステップ５０１で開始し、ここで、モバイルデバイス３０１は、サーバ３０３からアプリコンテナ３１５を受信する。アプリコンテナ３１５は、アプリコンテナ３１５内のソフトウェアにアクセスするために用いられるＡＰＩを含む。
【００６８】
プロセス５００は次にステップ５０３に移り、ここで、ステップ５０１で受信されたコンテナは、モバイルデバイス３０１内のアプリケーションプログラム３０９へのアクセスが可能なメモリに記憶される。
【００６９】
プロセス５００は次にステップ５０５に移り、ここで、アプリケーションプログラム３０９が起動する。アプリコンテナ３１５内の個々のＡＰＩは、データ構造を生成するため、更新されたデータを生成するため、および高い品質のデータを保証する助けとなるようにデータを検証するために、アプリケーションプログラム３０９によって使用することが可能である。例えば、アプリケーションプログラム３０９のソフトウェア開発者または許可されたユーザ３０２は、特定の種類のｍＨｅａｌｔｈアプリケーション（例えば、糖尿病アプリ）を開発または使用するために、構造マネージャＡＰＩ３１９および規則マネージャＡＰＩ３２１を介してアクセスが可能なデータ構造記述および規則セットを用いてよい。アプリコンテナ３１５の使用は、アプリケーションプログラム３０９が、他の同様のアプリケーションと同じようにデータ整合性およびデータ品質を確実に管理することができることを保証する助けとなる。個々のＡＰＩは、ユーザ体験の均一性を提供し、アプリケーションプログラム３０９にわたる開発時間を低減するために、複数のアプリケーションプログラム３０９によって用いられ得る機能インタフェースのライブラリを形成する。
【００７０】
アプリコンテナ３１５は、設定可能データＡＰＩ、規則マネージャＡＰＩ３２１、および（任意選択的に）規則構成要素を含む汎用アプリケーション（すなわち、ソースでのデータ収集およびクリーニングに直接関連しない、モバイルデバイス３０１で実行するソフトウェア）であってよい。規則構成要素は、実際の規則（例えば、収縮期＜１９０）を指すが、規則ＡＰＩは、検証を実行するために用いられる方法のセットを指す。アプリコンテナは、ＡＰＩによって強制されるデータ構造および関連規則の内容や設定の事前知識を有する必要はない、すなわち、アプリケーションプログラム３０９におけるデータ構造および関連規則のハードコーディングは存在しない。それによってアプリケーションプログラム３０９は、ほぼ全ての種類のアプリケーション設定を管理するように設計および使用することができる。
【００７１】
プロセス５００は次にステップ５０７に移り、ここで、アプリケーションプログラム３０９は、アプリケーションプログラム３０９によって用いられるデータ構造および検証規則をリフレッシュするために、自身をサーバ３０３と同期してよい。例えば、リフレッシュは、アプリコンテナ３１５が未だモバイルデバイス３０１内にない場合、アプリケーションプログラム３０９が初めに実行される際に必要になり得る。アプリケーションプログラム３０９ａにサービス提供するためにアプリコンテナ３１５が既に存在する場合、アプリケーションプログラム３０９ｂを操作するために別のアプリコンテナ３１５をインストールすることは必要ない。アプリコンテナ３１５が既に存在する場合、アプリケーションプログラム３０９は、アプリケーションプログラム３０９のアプリケーション型についてデータ構造設定、規則セット設定、およびユーザデータ情報にアクセスし、それらを更新してよい。
【００７２】
プロセス５００は次にステップ５０９に移り、ここで、アプリケーションプログラム３０９は、自身を初期化し、サーバ３０３から受信した設定を用いて規則マネージャモジュール２１１および構造マネージャモジュール２０９を初期化する。
【００７３】
プロセス５００は次にステップ５０９に移り、ここで、アプリケーションプログラム３０９は、受信した設定に従って通常通り実行し、例えばセンサ３１３やユーザＩ／Ｏ３１４を介してユーザからの情報を受け取る。アプリケーションプログラム３０９が、発見およびインスタンス化ＡＰＩ３１７を用いてデータ構造のオブジェクトを生成した後、オブジェクトは、構造マネージャＡＰＩ３１９および規則マネージャＡＰＩ３２１を用いてユーザ情報を検証するために用いられる。
【００７４】
更新されたデータ構造設定や規則セット設定がモバイルデバイス３０１へ配布されると、構造マネージャＡＰＩ３１９および規則マネージャＡＰＩ３２１は、新たな動作をサポートするために初期化され得る。その結果実施形態は、アプリケーションのソースコードを変更せずに、ソースにおける高い品質のデータ収集を提供する。唯一変更する必要があるのは、アプリケーションに関連する設定情報である。
【００７５】
本開示に係る実施形態は、本明細書で説明される実施形態が実行されない場合にはソースで収集されるデータの信頼性がないことから、データをクリーニングするために大量のリソースを消費し得るデータ収集系統において有用である。実施形態は、データクリーニングの費用を抑え、整合性を高めることでユーザの助けとなり、それによって、実用的なデータに依存するアプリケーションプログラムが、様々な情報の種類（例えば、データ型）についてデータソースでデータを収集および管理することができる。例えば、いくつかの健康管理関連アプリケーションの場合、情報は、分析および患者の関与のためにほぼリアルタイムであることが必要である。本開示に係る実施形態は、データがソースで収集されることを可能にし、それにより、データを有効にするためのより効率的な処理を提供し得る。
【００７６】
更に、本開示に係る実施形態は、複数のアプリおよび複数のユーザグループにわたり、より良い患者管理のためにアプリケーション使用量および健康情報を管理および追跡することを容易にする。
【００７７】
本発明の実施形態は、１または複数のメモリに接続された１または複数の処理ユニットを有するシステムを含む。１または複数のメモリは、１または複数の処理ユニットによって実行されると、少なくとも図４〜５および関連文書を含む本明細書で説明された処理を少なくとも用いることによって、本発明の実行を可能にするソフトウェアを記憶するように構成され得る。
【００７８】
開示された方法は、例えば様々なコンピュータやワークステーションプラットフォームで用いることができる持ち運び可能なソースコードを提供するオブジェクトまたはオブジェクト指向ソフトウェア開発環境を用いることなどによって、ソフトウェアに容易に実装され得る。あるいは開示されたシステムは、例えば標準的な論理回路やＶＬＳＩ設計を用いることなどによって、ハードウェアに完全にまたは部分的に実装され得る。本発明の様々な実施形態に係るシステムを実装するためにソフトウェアが用いられ得るかハードウェアが用いられ得るかは、例えばシステムの速度または効率性要件、特定の機能、および使用される特定のソフトウェアまたはハードウェアシステムなどの様々な配慮事項に依存し得る。
【００７９】
上記は本発明の実施形態に関するが、本発明の他の実施形態や追加の実施形態が、本発明の基本的範囲から逸脱することなく考案され得る。本明細書で説明される様々な実施形態は、本明細書に含まれる範囲から逸脱することなく、説明される他の任意の実施形態と併用され得る。更に、上記説明は、開示された具体的な形態に本発明を限定することや、包括的であることは意図されていない。改良例および変形例は、上記教示の観点から可能であり、あるいは本発明の実施によって得られ得る。特定の典型的な実施形態は、リスト項目が実施形態を表すこと、およびリストが更なる実施形態を制限する閉鎖的なリストを表すことは意図されないことを示す文言を含む変更可能なリストを用いることによって特定され得る。そのような文言は、「例えば（ｅ．ｇ．）」、「など（ｅｔｃ．）」、「例えば〜など（ｓｕｃｈ  ａｓ）」、「例えば（ｆｏｒ  ｅｘａｍｐｌｅ）」、「など（ａｎｄ  ｓｏ  ｆｏｒｔｈ）」、「など（ａｎｄ  ｔｈｅ  ｌｉｋｅ）」などや、前後の文脈に見られるような他の文言を含んでよい。
【００８０】
本出願の説明において用いられる要素、動作、または命令はいずれも、そうであると明記されない限り、本発明に不可欠なもの、または重大な意味を持つものとして解釈されてはならない。また、本明細書で用いられる限り、「ａ」という冠詞は、１または複数の項目を含むことが意図される。１つの項目のみが意図される場合は、「１つの」という用語や同様の言葉が用いられる。更に、複数の項目および／または複数の項目のカテゴリを列挙した後に続く「〜のいずれか」という用語は、本明細書で用いられる場合、項目および／または項目のカテゴリの「いずれか」、「任意の組み合わせ」、「いずれか複数」、および／または「任意の複数の組み合わせ」を個々に、あるいは他の項目および／または他の項目のカテゴリと共に含むことが意図される。
【００８１】
更に、特許請求の範囲は、記載される順序や要素が影響すると明記されない限り、記載される順序や要素に限定されるものとして解釈されてはならない。加えて、任意の請求項における「手段」という用語の使用は米国特許法第１１２条第６項を行使することが意図され、「手段」という言葉を含まない任意の請求項はそのように意図されない。
【図１】
0006723692.tif 000002
【図２】
0006723692.tif 000003
【図３Ａ】
0006723692.tif 000004
【図３Ｂ】
0006723692.tif 000005
【図４】
0006723692.tif 000006
【図５】
0006723692.tif 000007