本発明の実施形態の原理の理解を促進する目的で、以後、図面に示された例が参照され、それらの例を説明するために特定の言葉が使用される。しかしながら、本発明の範囲の限定はそれによって意図されておらず、本発明が関連する分野の当業者が通常思いつく、示される実施形態の任意の変更およびさらなる修正ならびにそれらの実施形態に示される本発明の原理の任意のさらなる応用が本明細書において考慮されていることは、理解されるであろう。
本発明の実施形態は、改善された糖尿病管理システム(DMS)のためのシステム、装置、および方法を提供する。自身の糖尿病を管理するために、多くの場合、糖尿病の人(それぞれ「PWD」)は、自身の血糖値を1日に複数回検査し、自身の炭水化物の摂取量、運動、およびインスリン投与量の経過を記しておく。これらの測定基準を記録し、PWDが自身の検査計画を遵守することを保証するために、PWDは、紙、コンピュータ、またはスマートデバイスに情報を手動で残すことができる。しかし、PWDが自身の健康をよりうまく管理するのを助けるために、経時的な血糖の示度に関連する多くのパターンを特定することが役立つ。そのようなパターンの例は、危険な低い測定器示度、危険な高い測定器示度、少ない検査頻度、まずまずの検査頻度、良い検査頻度、ほぼ同じ時間に検査(testing mostly same time)、時刻の高(high for the time of day)、時刻の低(low for the time of day)、最も良い時刻、空腹時の高、空腹時の低、昼食前の高、昼食前の低、夕食前の高、夕食前の低、夕食後の高、夕食後の低、連続した高、連続した低、曜日の低、曜日の高などを含む。有用なパターンの数の多さおよびこれらのパターンを認識することに関連するデータは、手に負えないほどであり、ユーザがパターンの発生を特定するために必要とされるすべての情報を手動で残すことは現実的でなく、ましてや実際に発生をリアルタイムで検出することは現実的でない。したがって、本発明の実施形態は、データの捕捉および記憶ならびにパターン認識を自動化する。さらに、多くのパターンが、比較的短い期間内に発生し、検出される可能性があり、これは、手に負えない数の通知およびリマインダがユーザに対して提示するために利用可能である結果となり得る。本発明の実施形態は、ユーザが通知およびリマインダを管理し、フィルタリングし、優先順位付けするのを助けるためのインターフェースの機構および特徴を提供する。
本発明の実施形態は、糖尿病を管理するための強化されたシステムを提供するように適合されたソフトウェアアプリケーションおよびシステムを含む。たとえば、血糖測定器(BG測定器またはBGM)と通信するスマートフォンなどのポータブルワイヤレスデバイスを使用して、本発明の実施形態は、血糖測定値を受け取り、測定値をユーザの活動およびパターンと相互に関連付けるために測定値をDMSデータベースに記憶するように動作可能なソフトウェアアプリケーション(たとえば、DMSアプリ)を含む。本発明の一部の実施形態は、DMSアプリからリマインダを受け取ることを可能にすることによって、PWDがそれらのPWDの糖尿病管理においてより活発になることを可能にする。一部のPWDは、忘れっぽいかまたはやる気がないために自身の管理においてあまり活発でない可能性がある。自身の血糖を検査するか、自身の薬を服用するか、またはその他の糖尿病管理に関連するタスクを実行するためのリマインダを受け取るための機構を提供することは、PWDが自身の健康管理においてより活動的になり、自身の健康管理により関与するようになるのを助けることができる。
本発明の実施形態によれば、ユーザは、トリガされるときにユーザに自身の血糖値を検査するように、自身の薬を服用するように、自身の活動を記録するように、自身の炭水化物の摂取量を記録するように、および/または任意のその他の糖尿病に関連するタスクを行うようにユーザに促すリマインダをDMSアプリ内で設定することができる。リマインダは、BGMデータがユーザのDMSデバイスにおいて受け取られることに応じてDMSアプリケーションによってパターンが認識されることに基づいて自動的にトリガされ得る。言い換えると、DMSアプリケーションがBGMデータ内の1つまたは複数のパターン(たとえば、症状の特定のステータスを集合的に示す1組のパターン)を認識することに応じて、DMSアプリケーションは、推薦、リマインダ、および/または警告を生成し、ユーザに提示することができ、一部の実施形態においては、提示されるリマインダが、ユーザ定義のおよび/または医学的な優先度に基づいて優先順位付けされ得る。より高い優先度のリマインダは、より低い優先度のリマインダよりも前に、より強く(たとえば、より大きなテキストで、より鮮やかな強調表示で、異なる色で、音によってなど)、および/またはより頻繁に提示され得る。一部の実施形態において、特定のリマインダがユーザに提示される頻度が、制約されるかまたは制限され得る。たとえば、ユーザが3日間いかなる運動も記録しないことに応じて、運動を記録するためのリマインダがユーザに提示される場合、同じ理由で3日後にトリガされる後続のリマインダが抑制される可能性がある。このようにして、重複するリマインダによってユーザに負担をかけ過ぎることが防止される。
ここで図1に目を向けると、DMS 100の例が示される。DMS 100は、DMSデバイス104(たとえば、DMSアプリ110を実行するように動作可能なスマートフォン、タブレット、スマートウォッチなど)および/またはDMSプログラム112を実行するように動作可能なコンピュータ106に結合するように適合されるBGM 102を含む。BGM 102およびDMSデバイス104は、自身の糖尿病の自身の管理を改善するのを助けるためにDMS 100を使用するユーザ(たとえば、PWD)によって操作される。DMSデバイス104およびコンピュータ106は、ワイヤレスで(たとえば、Bluetooth(登録商標)などのワイヤレス信号プロトコル108によって)または有線接続によって(たとえば、ユニバーサルシリアルバス(USB)接続によって)BGM 102に結合され得る。
一部の実施形態においては、ヘルスケア提供者(HCP: health care provider)またはユーザが、BGM 102からグルコース示度データを受け取り、ネットワーク114(たとえば、インターネット)を介してDMSデバイス104からその他のデータを受け取るためにコンピュータ106を操作することができる。一部の実施形態において、コンピュータ106は、有線の、ワイヤレスの、または任意のその他の実用的な手段(たとえば、メモリカードのやりとり)によってBGM 102から直接グルコース示度データを受け取る可能性がある。コンピュータ106は、有線接続によって(たとえば、イーサネット(登録商標)116によって)または任意のその他の実用的な手段によってネットワーク114に結合することができる。同様に、DMSデバイス104は、ワイヤレス信号プロトコル108(たとえば、Wi-Fi)によってまたは任意のその他の実用的な手段によってネットワーク114に結合することができる。
ここで図2に目を向けると、例示的なDMSデバイス104の詳細が示される。一部の実施形態において、DMSデバイス104はコンピュータ106上に実装されることが可能であり、コンピュータ106はポータブルワイヤレスデバイス(たとえば、ラップトップ、タブレットPCなど)であることが可能であることに留意されたい。DMSデバイス104は、プロセッサ202上で実行可能な命令を記憶するためにメモリ204に結合されたプロセッサ202を含み得る。また、メモリ204は、データストレージデバイス214から取り出されたデータまたはデータストレージデバイス214に記憶されるデータをキャッシュするために使用され得る。プロセッサ202は、BGMと連携するための日付およびタイムスタンプデータならびに/またはその他のデータを生成するためのクロック206(たとえば、クロックジェネレータモジュール、発振器など)に結合され得る。
プロセッサ202は、ディスプレイ208に結合されることが可能であり、ディスプレイ208は、任意の数の出力デバイス(たとえば、そのようなディスプレイ、オーディオスピーカ、触覚デバイス、バイブレータ、発光ダイオード(LED)、プリンタ、オーディオ出力、USBおよびLANポートなど)を含み得る。ディスプレイ208は、リマインダを提示するためにおよび通常の出力機能のためにユーザとコミュニケーションするために使用され得る。
プロセッサ202は、セルラ通信機構と、Wi-Fi、Bluetooth(登録商標)、およびその他の通信モジュールなどの双方向無線信号通信機構とを含み得るワイヤレストランシーバ210に結合され得る。言い換えると、ワイヤレストランシーバ210は、ネットワーク114を介して通信することができる任意の種類のデバイスおよび/またはソフトウェアを含み得る。たとえば、ワイヤレストランシーバ210は、ほんのいくつか例を挙げるとすれば、セルラ通信型のデバイス、Wi-Fi型のデバイス、および/または赤外線ポートを含み得る。
プロセッサ202は、たとえば、(たとえば、タッチスクリーン、「ソフト」プログラマブルボタン/キー、ハードウェアボタンおよびスイッチ、キーボード、光学式および磁気式リーダ/スキャナ、カメラ、センサー、トランスデューサ、加速度計、マイクロフォン、オーディオ入力、USBおよびLANポートなどの)任意の数の入力デバイスを含み得る入力デバイス212に結合され得る。入力デバイス212は、リマインダまたはその他のパラメータを設定するためにおよび通常の入力機能のためにユーザとコミュニケーションするために使用され得る。
プロセッサ202は、プロセッサ202による使用/実行のためにメモリ204にロードされ得るデータ構造、データ、および命令の永続的記憶を可能にする不揮発性メモリなどのデータストレージデバイス214に結合され得る。データストレージデバイス214は、1つまたは複数のソリッドステートドライブ、ハードドライブ、メモリカードなどを使用して実装され得る。データストレージデバイス214は、(一部の実施形態においては統合されたパターン認識エンジン218を含む)DMSアプリ216を含み得るデータ構造、DMSデータベース220、およびDMSインターフェースデータ構造222を含む。
DMSアプリ216は、本明細書において説明される方法およびプロセスを実装する。パターン認識エンジン218は、有用なまたは有害なイベント(たとえば、良好なまたは不十分な血糖の制御)をもたらす振る舞いの検出を(たとえば、捕捉されたBGMデータ、ユーザによって入力されたデータ、およびその他のデータ内のパターンを認識することによって)実施するためにDMSアプリ216によって使用される。パターン認識システムの例が、Rayらの米国特許第8,758,245号に開示されており、この米国特許は、あらゆる目的で本明細書に組み込まれる。DMSデータベース220の例が、図3に関連して下で説明される。DMSインターフェースデータ構造222は、表示の間の使用フロー(use flow)によって関連付けられる複数のユーザインターフェースの表示を含み得る。言い換えると、それぞれのユーザインターフェースの表示は、少なくとも1つのその他のユーザインターフェースの表示にリンクされるおよび/または少なくとも1つのその他のユーザインターフェースの表示を介して到達可能であるか、またはパターンが検出されることもしくは何らかのその他の関連するトリガイベントの結果として提示される。ユーザインターフェースの表示の例が、図4から図6Bに示され、下で説明される。
ここで図3に目を向けると、DMSデータベース220の例が表形式で示される。示される特定の例のフォーマットは、1つの可能性を示すに過ぎないことに留意されたい。多くの代替的なデータ構成およびデータベースの種類が使用される可能性がある。示されるデータ構造および関係を実装するために実用的な任意のフォーマットまたはデータベースの種類が使用される可能性がある。限られた数のエントリだけが例に示されることと、実際の実装においてはずっと多くのエントリ(たとえば、数千行)が存在する可能性があることとにさらに留意されたい。
示されるDMSデータベース220の各エントリは、時間フィールド302、日付フィールド304、血糖値フィールド306、および備考フィールド308を含み得る。時間フィールド302は、エントリに関連する血糖の示度が発生した時間を示すタイムスタンプを表すデータを記憶するように適合される。日付フィールド304は、エントリに関連する血糖の示度が発生した日付を示す日付スタンプを表すデータを記憶するように適合される。
血糖値フィールド306は、エントリに関連する血糖の示度の血糖値を表すデータを記憶するように適合される。備考フィールド308は、ユーザによって与えられた、エントリに関連する情報を表すデータを記憶するように適合される。
一部の実施形態においては、多くの追加的なフィールドが、DMSデータベース220に含まれ得る。たとえば、投薬量フィールド、食物摂取フィールド、消費炭水化物フィールド、行われた運動フィールドなどが含まれ得る。
図4は、パターンの種類を選択するための例示的なインターフェースの表示400のスクリーンショットである。ユーザは、インターフェースの表示400上の示された領域を押すことによって選択され得るパターンの種類のリストを提示される。情報が記憶され、パターンの選択された種類が、DMSアプリによって後で検出されるときにどのパターンがユーザに提示されるかを決定するために使用される。
図5Aは、検査頻度の目標を選択するための例示的な表示インターフェース500Aのスクリーンショットである。スクロール可能なウィンドウ502は、DMSアプリがユーザに行うように勧める1週間当たりの検査の回数をユーザが選ぶことを可能にする。たとえば、ユーザは、ユーザが選択された検査頻度に達しなくなることを示すパターンが検出される場合、より頻繁に検査することを思い出させられる。
図5Bは、本発明の実施形態による検出されたパターンを提示し、管理するための例示的なパターンマネージャ表示インターフェース500Bのスクリーンショットである。パターンマネージャ表示インターフェース500Bは、Active 504、Additional 506、およびArchived 508の検出されたパターンのインタラクティブなリストのための領域を含む。検出されたパターンのこれらのカテゴリは、下でより詳細に検討される。
図6Aは、検出された「改善済み」パターンの詳細を提示するための例示的な表示インターフェース600Aのスクリーンショットであり、図6Bは、検出された「改善中」パターンの詳細を提示するための例示的な表示インターフェース600Bのスクリーンショットである。これらの表示インターフェース600A、600Bは、ユーザが図5Bのパターンマネージャ表示インターフェース500Bから検出されたパターンを選択するときに提示される詳細の例である。表示インターフェース600A、600Bは、概要領域602、グラフ領域604、ステータス領域606、説明領域608、および「さらなるリンク」領域610を含む。
代替的な実施形態において、DMSアプリケーションは、図7に示される統合されたシステムアーキテクチャ700の一部として実装され得る。ミドルウェアアプリケーションプログラムインターフェース702内に存在して、情報および動機付け行動(IMB)マネージャ704は、上述の機能を実施することができる。図8の流れ図800に示されるように、IMBマネージャ704は、ユーザインターフェースマネージャ802を通じて手動でか、またはBGM通信マネージャ804を介して(たとえば、ワイヤレスで)かのどちらかでBG情報を受け取ることができる。IMB実行が、IMB(たとえば、リマインダ)メッセージの生成(806)から始まり、記憶されたIMBパターンを更新する(808)。初期セットアップステータス(810)に基づいて、IMBマネージャは、セットアップの完了を待つ(812)か、またはユーザインターフェースマネージャ802のIMBユーザインターフェース表示814に更新通知を送る(816)かのどちらかである。
図9は、IMBワークフロー900を示すブロック図である。BG測定器902は、BG測定器902が接続されるときにアプリケーション内の通信マネージャ904に(たとえば、Bluetooth(登録商標)低エネルギー(BLE: Bluetooth Low Energy)プロトコルによって)BGの示度を提供することができる。BGレコードマネージャ906モジュールは、BLEデータ(たとえば、到着するデータがBGの示度を特定するのか、食事マーカ(meal marker)を特定するのか、または設定データを特定するのか)を特定し、データを解析し、対応するレコード(たとえば、BG/食事マーカレコードなど)として再形成し、データベースに記憶されるようにそのレコードをデータベースマネージャ908に送る。データベースマネージャ908は、BG/食事マーカ/デバイス設定データをデータベース(たとえば、SQLiteデータベース)に記憶し、データベースからのデータ読み取り動作を実行する。IMBマネージャ704は、新しいBGの示度が到着するときにはいつもIMBモジュールを実行し、IMBデータが、IMBパターンマネージャを通じてデータベースに記憶され、IMB通知が、表示するためにIMBユーザインターフェース802に送られる。ユーザインターフェースマネージャ802は、ミドルウェア702へのすべてのユーザインターフェースの動作(たとえば、データの読み取り/書き込み)がこのモジュールを通じて起こるので、ミドルウェア702のためのゲートウェイである。一部の実施形態において、IMB通知は、JSONフォーマットでこのモジュールを通じてHTMLレベルに送られ得る。このモジュールは、データベースからデータを取得し、データを(たとえば、JSONに)フォーマットし、フォーマットされたデータをユーザインターフェースに送る。手動BGレコードモジュール916が、BG測定器のレコードと同様であるBGデータレコードを(たとえば、BGデータストレージアプリケーションから)生成することもできるが、BG測定器がストリップ測定(strip measurement)からBGの示度を決定する代わりに、データレコードが、アプリケーションから「生成される」。手動入力の場合、手動BGレコードモジュール916は、ユーザインターフェースマネージャ802を通じて(たとえば、データベースに手動入力を記憶するために)データベースマネージャ908と直接インタラクションする。
図10は、IMBマネージャ704の構造および構成要素をより詳細に示す。一部の実施形態において、IMBマネージャ704は、IMBモジュール1002およびパターンマネージャモジュール1004を含む。IMBマネージャ704は、リマインダトリガモジュール1006ともインタラクションする。
IMBモジュール1002は、3つのサブモジュール、すなわち、IMBデータセットアップ/確認サブモジュール1008、IMBアルゴリズム実行サブモジュール1010、およびIMBキャッシュサブモジュール1012を含む。IMBデータセットアップ/確認サブモジュール1008は、BG測定器に由来するのかまたは手動入力に由来するのかにかかわらず、新しいBGの示度が受け取られるときにはいつも使用される。IMBモジュール1002は、セットアップモードになり、データを確認し、IMBアルゴリズムが実行されるべきか否かの判断を行う。セットアップまたは確認は、まず、目標範囲の値を取得することと、次に、IMBキャッシュ1012をリセットすることと、現在の/最後の実行されたBGタイムスタンプに基づいてIMB実行適格性ステータスを調べることと、そして、パターンマネージャモジュール1004内の既に検出されたIMBパターンに関するパターン「タイムアウト」ステータスを調べ、更新することとによって行われる。IMBアルゴリズム実行サブモジュール1010は、IMBアルゴリズムの実行、UI通知のためのIMBキャッシュ1012の更新、および新しい検出されたパターンの更新/パターンマネージャモジュール1004への挿入を担う。IMBキャッシュサブモジュール1012は、ローカルバッファとして機能し、現在検出されているIMBパターンについての情報を保持する。情報は、IMB IDと、パターンが遅延されたパターン(delayed pattern)であるか否かとを含み得る。
パターンマネージャモジュール1004は、3つのサブモジュール、すなわち、IMBステータス更新サブモジュール1014、UI更新サブモジュール1016、およびIMBリマインダ更新サブモジュール1018を含む。IMBステータスは、IMBパターンの重要なプロパティである。パターンマネージャモジュール1004は、IMBパターンステータスを更新する。IMBステータス更新サブモジュール1014は、いくつかのステータス情報を含み得る。たとえば、情報は、新パターン検出情報、パターンカテゴリ更新(たとえば、Active/Archive)、パターン状態更新(たとえば、Read/Unread)、およびパターンステータス更新(たとえば、New/Started/On-Hold Int/Working/On-Hold Cau/Rem-Setup/Dismissed_Rem/Finished/Dismissed_Setup/Improved/Invalid/Followed/Needs Improvement/Overcorrected/Timed-Out)を含み得る。一部の実施形態において、Newステータスは、ユーザがパターンインターフェース画面を提示される前に新しく検出されたパターンに割り振られる可能性があり、Startedステータスは、ユーザがパターン検出画面上でIMBフロー(IMB Flow)によって前に進むことを選択する場合にパターンに割り振られる可能性があり、On-Hold Intステータスは、ユーザがパターンインターフェース画面を閉じる場合にパターンに割り振られる可能性があり、Workingステータスは、ユーザがあり得る原因画面上でIMBフローによって前に進むことを選択する場合にパターンに割り振られる可能性があり、On-Hold Cauステータスは、ユーザがあり得る原因画面を閉じる場合にパターンに割り振られる可能性があり、Rem-Setupステータスは、ユーザが要リマインダ画面上でIMBフローによって前に進むことを選択する場合にパターンに割り振られる可能性があり、Dismissed_Remステータスは、ユーザが「要リマインダ」画面においてIMBフローによって前に進まないことを選択する場合にパターンに割り振られる可能性があり、Finishedステータスは、ユーザがすべてのその他のパターンに関するIMBフロー中にリマインダのセットアップを終わらせ、確定する場合にパターンに割り振られる可能性があり、Dismissed_Setupステータスは、ユーザがリマインダのセットアップを確定しない(つまり、「リマインダセットアップ」画面を閉じる)場合にパターンに割り振られる可能性があり、Improvedステータスは、以下の2つの場合、つまり、(1)追跡調査(follow-up)後に肯定的なフィードバックを得た後、および(2)新しいまたは変更されたレコードがパターンの解決に寄与する場合にパターンに割り振られる可能性があり、Followedステータスは、追跡調査後に否定的なフィードバックを得た後にパターンに割り振られる可能性があり、Needs Improvementステータスは、パターンの改善前またはパターンのタイムアウト前にCriticalパターンに割り振られる可能性があり、Overcorrectedステータスは、それぞれ、BGレコードの値の再検査が危険なほど低または危険なほど高である結果となった後に危険な高または危険な低パターンに割り振られる可能性があり、Timed-Outステータスは、タイムアウトステータスが割り振られる所定の時間期間を有する各パターンに関連する可能性がある。パターンがタイムアウトすると、そのパターンは、(下で説明される)Archiveセクションに移動する。Activeパターンは、パターンに固有の期間に改善されない場合、タイムアウトする可能性がある。
UI更新サブモジュール1016は、UI内に検出されたIMBパターンを提示することを担う。リマインダがIMBパターンフロー中に生成された場合、IMBリマインダ更新サブモジュール1018は、対応するIMBパターンに関するリマインダIDの更新およびIMBリマインダトリガ状態の更新を実行する。リマインダトリガモジュール1006は、リマインダの生成を開始し、リマインダをトリガし、リマインダのステータスを更新するUI 1020またはネイティブ1022(たとえば、AndroidもしくはIOS)通知センターを表す。
IMBモジュール1002は、任意の数のパターンを認識し、管理するように構成され得る。以下の21個のパターン、すなわち、危険な高い測定器示度、危険な低い測定器示度、少ない検査頻度、まずまずの検査頻度、良い検査頻度、ほぼ同じ時間に検査、時刻の高、時刻の低、最も良い時刻、空腹時の高、空腹時の低、昼食前の高、昼食前の低、夕食前の高、夕食前の低、夕食後の高、夕食後の低、連続した高、連続した低、曜日の低、および曜日の高が、下で詳細に説明される。
IMBモジュール1002は、ユーザのBGMデータの履歴(たとえば、DMSデータベース220からのレコード)から検出されたパターンをユーザに知らせ、より良い糖尿病管理のために使用されるメカニズムを提供する。一部の実施形態において、IMBパターン検出は、概して、14日間のBGMデータの履歴を見る。しかし、パターンの一部は、最大で21日間の履歴を考慮し、一部は、単一のBGの示度を使用することに留意されたい。適宜、IMBインターフェース画面のいずれかにおいてユーザによって備考が入力される場合、その備考は、DMSデータベースに保存され、関連するBGの示度に関する編集ビュー/備考タブにおいて利用可能である。
DMSアプリ216は、1つもしくは複数の新しいBGレコードがDMSアプリ216によって獲得されるときまたは既存の(たとえば、前に獲得された)BGレコードが修正されるときにIMBアルゴリズム実行サブモジュール1010によるIMBアルゴリズムの実行(たとえば、IMBパターンのトリガ)を開始する。IMBアルゴリズムの各々は、それぞれが血糖示度値(本明細書においてはアルゴリズムの説明の際にBGRecordValueと呼ばれる)および血糖示度タイムスタンプ(本明細書においてはBGRecordTimeStampと呼ばれる)を有する1組のBGレコードを含む同様の入力を受け付ける。さらに、IMBアルゴリズムの各々は、たとえば、閾値および/または目標値などの追加的な入力を受け付ける。本明細書において説明される例示的なIMBアルゴリズムの各々は、BGの示度および時間に基づいて対応するパターンをトリガするために使用される。
アルゴリズムの各々は、同じ出力の種類、すなわち、関連するパターンが検出されなかった場合は「0」、関連するパターンが検出された場合は「1」のブール値を有する。上で検討されたように、IMBアルゴリズムの出力は、パターンマネージャモジュール1004のための入力のうちの1つである。特定のパターンが検出される場合、パターンマネージャモジュール1004は、新しいパターンの通知をトリガする。この通知を承認した後、IMBパターンマップと呼ばれる一連のUIメッセージ(たとえば、画面表示)が、ユーザが各画面上で行う選択のレベルに応じて次々とユーザに提示される。IMBパターンは、危険なIMBパターンおよび危険でないIMBパターンに分けられ得る。
危険な低いパターンを認識するためのアルゴリズムまたは方法1100の例が、図11に流れ図として示される。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、BGレコードがCriticalLowThresholdとして指定された値未満である場合、このパターンをトリガする。方法1100は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1102)。最新のBGレコードが取り出され(1104)、BGの値が記憶されたパラメータCriticalLowThreshold未満であるかどうかが判定される(1106)。そうである場合、危険な低いパターンがトリガされ(つまり、検出され)、パターンマネージャモジュール1004はIMBアルゴリズム実行サブモジュール1010によってそのように通知され(1108)、方法1100が完了する(1110)。そうでない場合、方法1100は単に完了する(1110)。
危険な高いパターンを認識するためのアルゴリズムまたは方法1200の例が、図12に流れ図として示される。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、BGレコードがCriticalHighThresholdとして指定された値を超えている場合、このパターンをトリガする。方法1200は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1202)。最新のBGレコードが取り出され(1204)、BGの値が記憶されたパラメータCriticalHighThresholdよりも大きいかどうかが判定される(1206)。そうである場合、危険な高いパターンがトリガされ(つまり、検出され)、パターンマネージャモジュール1004はそのように通知され(1208)、方法1200が完了する(1210)。そうでない場合、方法1200は単に完了する(1210)。
少ない検査頻度のパターンを認識するためのアルゴリズムまたは方法1300の例が、図13に流れ図として示される。方法1300は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1302)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、以下のアルゴリズムに基づいてユーザの検査頻度がTestFreqLow3DayThreshold(またはユーザが検査頻度の目標を設定した場合はTestFreqLow7DayThreshold)として指定された閾値未満であることをそのDMSアプリが検出する場合、このパターンをトリガする。ユーザが検査頻度の目標を設定したかどうかが、まず判定される(1304)。TestFreqGoalSet=0である場合、3日間のBGレコードの履歴(たとえば、現在の時間から72時間前まで)が取り出され(1306)、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1308)。それから、3日間の履歴の中の1日当たりのBGの示度の数(Count3Day)が数えられ(1310)、7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1312)。そして、Count3Day<=TestFreq3DayLowThresholdかまたはCount7Day<=TestFreq7DayLowThresholdかのどちらかであるかどうかが判定される(1314)。そうである場合、パターンがトリガされる(1316)。そうでない場合、方法1300は、パターンをトリガせずに単に終了する(1324)。TestFreqGoalSet=1である場合、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1318)。7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1320)。Count7Day<TestFreqGoalの50%であるかどうかが判定される(1322)。そうである場合、パターンがトリガされ(1316)、方法1300は終了する(1324)。そうでない場合、方法1300は、パターンをトリガせずに単に終了する(1324)。
まずまずの検査頻度のパターンを認識するためのアルゴリズムまたは方法1400の例が、図14に流れ図として示される。方法1400は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1402)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、以下のアルゴリズムに基づいて、ユーザの検査頻度がTestFreqFair3DayMinThreshold(たとえば、6)より大きく、TestFreqFair3DayMaxThreshold(たとえば、12)未満(またはユーザが検査頻度の目標を設定した場合、TestFreqFair7DayMinThreshold(たとえば、14)より大きく、TestFreqFair7DayMaxThreshold(たとえば、28)未満)であると指定された目標の値の範囲内であることをそのDMSアプリが検出する場合、このパターンをトリガする。ユーザが検査頻度の目標を設定したかどうかが、まず判定される(1404)。TestFreqGoalSet=0である場合、3日間のBGレコードの履歴(たとえば、現在の時間から72時間前まで)が取り出され(1406)、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1408)。それから、3日間の履歴の中の1日当たりのBGの示度の数(Count3Day)が数えられ(1410)、7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1412)。そして、(Count3Day>=TestFreqFair3DayMinThresholdおよびCount3Day<TestFreqFair3DayMaxThreshold)かまたは(Count7Day>=TestFreqFair7DayMinThresholdおよびCount7Day<TestFreqFair7DayMaxThreshold)かのどちらかであるかどうかが判定される(1414)。そうである場合、パターンがトリガされる(1416)。そうでない場合、方法1400は、パターンをトリガせずに単に終了する(1424)。TestFreqGoalSet=1である場合、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1418)。7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1420)。Count7Day<TestFreqGoalの50%であるかどうかが判定される(1422)。そうである場合、パターンがトリガされ(1416)、方法1400は終了する(1424)。そうでない場合、方法1400は、パターンをトリガせずに単に終了する(1424)。
良い検査頻度のパターンを認識するためのアルゴリズムまたは方法1500の例が、図15に流れ図として示される。方法1500は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1502)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、以下のアルゴリズムに基づいてユーザの検査頻度がTestFreqGood3DayThreshoId(たとえば、12)(またはユーザが検査頻度の目標を設定した場合はTestFreqGood7DayThreshold(たとえば、28))として指定された閾値を超えていることをそのDMSアプリが検出する場合、このパターンをトリガする。ユーザが検査頻度の目標を設定したかどうかが、まず判定される(1504)。TestFreqGoalSet=0である場合、3日間のBGレコードの履歴(たとえば、現在の時間から72時間前まで)が取り出され(1506)、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1508)。それから、3日間の履歴の中の1日当たりのBGの示度の数(Count3Day)が数えられ(1510)、7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1512)。それから、Count3Day>=TestFreq3DayGoodThresholdかまたはCount7Day>=TestFreq7DayGoodThresholdかのどちらかであるかどうかが判定される(1514)。そうである場合、パターンがトリガされる(1516)。そうでない場合、方法1500は、パターンをトリガせずに単に終了する(1524)。TestFreqGoalSet=1である場合、7日間のBGレコードの履歴(たとえば、現在の時間から168時間前まで)が取り出される(1518)。7日間の履歴の中の1日当たりのBGの示度の数(Count7Day)が数えられる(1520)。Count7Day>=TestFreqGoalであるかどうかが判定される(1522)。そうである場合、パターンがトリガされ(1516)、方法1500は終了する(1524)。そうでない場合、方法1500は、パターンをトリガせずに単に終了する(1524)。
ほぼ同じ時間に検査のパターンを認識するためのアルゴリズムまたは方法1600の例が、図16に流れ図として示される。方法1600は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1602)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、(最新のBGの示度のタイムスタンプから遡った2週間のデータに関して)示度の50%以上が予め定義された「日仕切り(day divider)」時間ブロック内のタイムスタンプを有することをそのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(1604)。示度の総数(TotalNumberBGReadings)が、最新のBGの示度のタイムスタンプから始まって過去14日間に関して数えられる(1606)。そして、日仕切り時間ブロック毎の示度の数が、最後の14日間に収集された示度の組全体から計算される(NumberBGReadingsPerDayDivider(i)、i=1,2,..,4)(1608)。それから、次の比、すなわち、(NumberBGReadingsPerDayDivider(i), i=1,2,..,4)/TotalNumberBGReadings)のいずれかが50%以上であるかどうかが判定される(1610)。そうである場合、パターンがトリガされ(1612)、パターンが検出された日仕切り時間ブロックがパターンマネージャモジュール1004に特定され、方法1600が完了する(1614)。そうでない場合、方法1600は、パターンをトリガせずに単に終了する(1614)。
高い時刻のパターンを認識するためのアルゴリズムまたは方法1700の例が、図17に流れ図として示される。方法1700は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1702)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、(最新のBGの示度のタイムスタンプから遡った1週間のデータに関して)示度の50%以上がHighTimeTargetと呼ばれる予め定義されたパラメータよりも高い「日仕切り」時間ブロックが存在することをそのDMSアプリが検出する場合、このパターンをトリガする。最近1週間のBGの示度が取り出される(1704)。日仕切り毎の示度の数(NumberBGReadingsPerDayDivider(i)、i=1,2,..,4)が、最新のBGの示度のタイムスタンプから始まって過去7日間に関して数えられる(1706)。そのとき、HighTimeTargetよりも高い日仕切り時間ブロック毎の示度の数(NumberBGReadingsPerDayDividerHigh(i)、i=1,2,..,4)(1708)。次の比、すなわち、NumberBGReadingsPerDayDividerHigh(i)/(NumberBGReadingsPerDayDivider(i)、i=1,2,..,4)のいずれかが50%以上であるかどうかが判定される(1710)。そうである場合、パターンがトリガされ(1712)、パターンが検出された日仕切り時間ブロックがパターンマネージャモジュール1004に特定され、方法1700が完了する(1714)。そうでない場合、方法1700は、パターンをトリガせずに単に終了する(1714)。
低い時刻のパターンを認識するためのアルゴリズムまたは方法1800の例が、図18に流れ図として示される。方法1800は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1802)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、(最新のBGの示度のタイムスタンプから遡った1週間のデータに関して)示度の50%以上がLowTimeTargetと呼ばれる予め定義されたパラメータよりも低い「日仕切り」時間ブロックが存在することをそのDMSアプリが検出する場合、このパターンをトリガする。最近1週間のBGの示度が取り出される(1804)。日仕切り毎の示度の数(NumberBGReadingsPerDayDivider(i)、i=1,2,..,4)が、最新のBGの示度のタイムスタンプから始まって過去7日間に関して数えられる(1806)。そのとき、LowTimeTargetよりも低い日仕切り時間ブロック毎の示度の数(NumberBGReadingsPerDayDividerLow(i)、i=1,2,..,4)(1808)。次の比、すなわち、NumberBGReadingsPerDayDividerLow(i)/(NumberBGReadingsPerDayDivider(i)、i=1,2,..,4)のいずれかが50%以上であるかどうかが判定される(1810)。そうである場合、パターンがトリガされ(1812)、パターンが検出された日仕切り時間ブロックがパターンマネージャモジュール1004に特定され、方法1800が完了する(1814)。そうでない場合、方法1800は、パターンをトリガせずに単に終了する(1814)。
最も良い時刻のパターンを認識するためのアルゴリズムまたは方法1900の例が、図19に流れ図として示される。方法1900は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(1902)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、最も多くの範囲内の示度(たとえば、予め定義されたパラメータInRangeLowTargetとInRangeHighTargetとの間の値)を有する(最新のBGの示度のタイムスタンプから始まって1週間のデータの中の)日仕切り時間ブロックをそのDMSアプリが発見するときにこのパターンをトリガする。最近1週間のBGの示度が取り出される(1904)。最新のBGの示度から最近7日間に収集された示度の組全体からの日仕切り毎の示度の数(NumberBGReadingsPerDayDivider(i)、i=1,2,.,,4)が計算される(1906)。そして、各日仕切りに関して、InRangeHighTargetの値以下であるが、InRangeLowTargetの値以上である示度の数(NumberBGReadingsPerDayDividerlnRange(i)、i=1,2,..,4)が計算される(1908)。次に、次の比、すなわち、InRangePercentage(i)=NumberBGReadingsPerDayDividerlnRange(i)/NumberBGReadingsPerDayDivider(i)、i=l,2,..,4が計算される(1910)。そして、上で計算された比の最大(InRangePercentageMax)がパターンマネージャモジュール1004のために特定され(1912)、パターンがトリガされ(1914)、方法1900が完了する(1916)。
空腹時の高のパターンを認識するためのアルゴリズムまたは方法2000の例が、図20に流れ図として示される。方法2000は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2002)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、予め定義されたパラメータFastingTargetHighよりも高い「空腹時」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2004)。BGレコードインデックス「Current」がゼロに初期化され(2006)、カウンタ「NumCons」がゼロに初期化される(2008)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2010)。そうである場合、方法2000は、パターンをトリガせずに終了する(2024)。そうでない場合、現在のBGレコードの値が、FastingTargetHighと比較される(2012)。現在のBGレコードの値がFastingTargetHigh未満である場合、インデックスが、インクリメントされ(2014)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2008)。そうでない場合、NumConsがインクリメントされ(2016)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2018)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2020)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2010)。そうでない場合、空腹時の高のIMBパターンがトリガされ(2022)、方法2000が完了する(2024)。言い換えると、FastingTargetHighを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する空腹時の高の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がFastingHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、FastingTargetHighよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2000が初めから繰り返す。前のBGの示度がFastingHighTargetよりも高い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2000は、FastingHighTargetよりも低い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2000は、最後のBGレコードが到達されるまで、初めから継続する。
空腹時の高のパターンを認識するためのアルゴリズムまたは方法2000の例が、図20に流れ図として示される。方法2000は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2002)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、予め定義されたパラメータFastingTargetHighよりも高い「空腹時」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2004)。BGレコードインデックス「Current」がゼロに初期化され(2006)、カウンタ「NumCons」がゼロに初期化される(2008)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2010)。そうである場合、方法2000は、パターンをトリガせずに終了する(2024)。そうでない場合、現在のBGレコードの値が、FastingTargetHighと比較される(2012)。現在のBGレコードの値がFastingTargetHigh未満である場合、インデックスが、インクリメントされ(2014)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2008)。そうでない場合、NumConsがインクリメントされ(2016)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2018)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2020)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2010)。そうでない場合、空腹時の高のIMBパターンがトリガされ(2022)、方法2000が完了する(2024)。言い換えると、FastingTargetHighを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する空腹時の高の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がFastingHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、FastingTargetHighよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2000が初めから繰り返す。前のBGの示度がFastingHighTargetよりも高い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2000は、FastingHighTargetよりも低い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2000は、最後のBGレコードが到達されるまで、初めから継続する。
空腹時の低のパターンを認識するためのアルゴリズムまたは方法2100の例が、図21に流れ図として示される。方法2100は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2102)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、予め定義されたパラメータFastingTargetLowよりも低い「空腹時」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2104)。BGレコードインデックス「Current」がゼロに初期化され(2106)、カウンタ「NumCons」がゼロに初期化される(2108)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2110)。そうである場合、方法2100は、パターンをトリガせずに終了する(2124)。そうでない場合、現在のBGレコードの値が、FastingTargetLowと比較される(2112)。現在のBGレコードの値がFastingTargetLowよりも大きい場合、インデックスが、インクリメントされ(2114)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2108)。そうでない場合、NumConsがインクリメントされ(2116)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2118)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2120)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2110)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、空腹時の低のIMBパターンがトリガされ(2122)、方法2100が完了する(2124)。言い換えると、FastingTargetLow未満の値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する空腹時の低の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がFastingLowTargetよりも高い場合、カウンタがリセットされ(NumCons=0)、FastingTargetLowよりも低い(時間を遡って)第1の次の示度が見つけられ、方法2100が初めから繰り返す。前のBGの示度がFastingLowTargetよりも低い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2100は、FastingLowTargetよりも高い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2100は、最後のBGレコードが到達されるまで、初めから継続する。
昼食前の高のパターンを認識するためのアルゴリズムまたは方法2200の例が、図22に流れ図として示される。方法2200は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2202)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、昼食日仕切り内で発生し、予め定義されたパラメータPreMealHighTargetよりも高い「食事前」と食事マーカを付けられたNumConsThreshold(たとえば、3)個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2204)。BGレコードインデックス「Current」がゼロに初期化され(2206)、カウンタ「NumCons」がゼロに初期化される(2208)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2210)。そうである場合、方法2200は、パターンをトリガせずに終了する(2224)。そうでない場合、現在のBGレコードの値が、PreMealHighTargetと比較される(2212)。現在のBGレコードの値がPreMealHighTarget未満である場合、インデックスが、インクリメントされ(2214)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2208)。そうでない場合、NumConsがインクリメントされ(2216)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2218)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2220)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2210)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、昼食前の高のIMBパターンがトリガされ(2222)、方法2200が完了する(2224)。言い換えると、PreMealHighTargetを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する昼食前の高の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPreMealHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、PreMealHighTargetよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2200が初めから繰り返す。前のBGの示度がPreMealHighTargetよりも高い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2200は、PreMealHighTargetよりも低い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2200は、最後のBGレコードが到達されるまで、初めから継続する。
昼食前の低のパターンを認識するためのアルゴリズムまたは方法2300の例が、図23に流れ図として示される。方法2300は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2302)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、昼食日仕切り内で発生し、予め定義されたパラメータPreMealLowTargetよりも低い「食事前」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2304)。BGレコードインデックス「Current」がゼロに初期化され(2306)、カウンタ「NumCons」がゼロに初期化される(2308)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2310)。そうである場合、方法2300は、パターンをトリガせずに終了する(2324)。そうでない場合、現在のBGレコードの値が、PreMealLowTargetと比較される(2312)。現在のBGレコードの値がPreMealLowTargetよりも大きい場合、インデックスが、インクリメントされ(2314)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2308)。そうでない場合、NumConsがインクリメントされ(2316)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2318)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2320)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2310)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、昼食前の低のIMBパターンがトリガされ(2322)、方法2300が完了する(2324)。言い換えると、PreMealLowTarget未満の値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する昼食前の低の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPreMealLowTargetよりも高い場合、カウンタがリセットされ(NumCons=0)、PreMealLowTargetよりも低い(時間を遡って)第1の次の示度が見つけられ、方法2300が初めから繰り返す。前のBGの示度がPreMealLowTargetよりも低い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2300は、PreMealLowTargetよりも高い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2300は、最後のBGレコードが到達されるまで、初めから継続する。
夕食前の高のパターンを認識するためのアルゴリズムまたは方法2400の例が、図24に流れ図として示される。方法2400は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2402)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、夕食日仕切り内で発生し、予め定義されたパラメータPreMealHighTargetよりも高い「食事前」と食事マーカを付けられたNumConsThreshold(たとえば、3)個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2404)。BGレコードインデックス「Current」がゼロに初期化され(2406)、カウンタ「NumCons」がゼロに初期化される(2408)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2410)。そうである場合、方法2400は、パターンをトリガせずに終了する(2424)。そうでない場合、現在のBGレコードの値が、PreMealHighTargetと比較される(2412)。現在のBGレコードの値がPreMealHighTarget未満である場合、インデックスが、インクリメントされ(2414)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2408)。そうでない場合、NumConsがインクリメントされ(2416)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2418)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2420)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2410)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、夕食前の高のIMBパターンがトリガされ(2422)、方法2400が完了する(2424)。言い換えると、PreMealHighTargetを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する夕食前の高の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPreMealHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、PreMealHighTargetよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2400が初めから繰り返す。前のBGの示度がPreMealHighTargetよりも高い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2400は、PreMealHighTargetよりも低い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2400は、最後のBGレコードが到達されるまで、初めから継続する。
夕食前の低のパターンを認識するためのアルゴリズムまたは方法2500の例が、図25に流れ図として示される。方法2500は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2502)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、夕食日仕切り内で発生し、予め定義されたパラメータPreMealLowTargetよりも低い「食事前」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2504)。BGレコードインデックス「Current」がゼロに初期化され(2506)、カウンタ「NumCons」がゼロに初期化される(2508)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2510)。そうである場合、方法2500は、パターンをトリガせずに終了する(2524)。そうでない場合、現在のBGレコードの値が、PreMealLowTargetと比較される(2512)。現在のBGレコードの値がPreMealLowTargetよりも大きい場合、インデックスが、インクリメントされ(2514)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2508)。そうでない場合、NumConsがインクリメントされ(2516)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2518)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2520)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2510)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、夕食前の低のIMBパターンがトリガされ(2522)、方法2500が完了する(2524)。言い換えると、PreMealLowTarget未満の値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する夕食前の低の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPreMealLowTargetよりも高い場合、カウンタがリセットされ(NumCons=0)、PreMealLowTargetよりも低い(時間を遡って)第1の次の示度が見つけられ、方法2500が初めから繰り返す。前のBGの示度がPreMealLowTargetよりも低い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2500は、PreMealLowTargetよりも高い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2500は、最後のBGレコードが到達されるまで、初めから継続する。
夕食後の高のパターンを認識するためのアルゴリズムまたは方法2600の例が、図26に流れ図として示される。方法2600は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2602)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、夕食日仕切り内で発生し、予め定義されたパラメータPostMealHighTargetよりも高い「食事前」と食事マーカを付けられたNumConsThreshold(たとえば、3)個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2604)。BGレコードインデックス「Current」がゼロに初期化され(2606)、カウンタ「NumCons」がゼロに初期化される(2608)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2610)。そうである場合、方法2600は、パターンをトリガせずに終了する(2624)。そうでない場合、現在のBGレコードの値が、PostMealHighTargetと比較される(2612)。現在のBGレコードの値がPostMealHighTarget未満である場合、インデックスが、インクリメントされ(2614)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2608)。そうでない場合、NumConsがインクリメントされ(2616)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2618)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2620)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2610)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、夕食後の高のIMBパターンがトリガされ(2622)、方法2600が完了する(2624)。言い換えると、PostMealHighTargetを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する夕食後の高の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPostMealHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、PostMealHighTargetよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2600が初めから繰り返す。前のBGの示度がPostMealHighTargetよりも高い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2600は、PostMealHighTargetよりも低い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2600は、最後のBGレコードが到達されるまで、初めから継続する。
夕食後の低のパターンを認識するためのアルゴリズムまたは方法2700の例が、図27に流れ図として示される。方法2700は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2702)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、夕食日仕切り内で発生し、予め定義されたパラメータPostMealLowTargetよりも低い「食事前」と食事マーカを付けられたNumConsThreshold個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2704)。BGレコードインデックス「Current」がゼロに初期化され(2706)、カウンタ「NumCons」がゼロに初期化される(2708)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2710)。そうである場合、方法2700は、パターンをトリガせずに終了する(2724)。そうでない場合、現在のBGレコードの値が、PostMealLowTargetと比較される(2712)。現在のBGレコードの値がPostMealLowTargetよりも大きい場合、インデックスが、インクリメントされ(2714)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(2708)。そうでない場合、NumConsがインクリメントされ(2716)、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2718)。NumConsがNumConsThreshold以上でない場合、インデックスがインクリメントされ(2720)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(2710)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、夕食後の低のIMBパターンがトリガされ(2722)、方法2700が完了する(2724)。言い換えると、PostMealLowTarget未満の値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する夕食後の低の示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がPostMealLowTargetよりも高い場合、カウンタがリセットされ(NumCons=0)、PostMealLowTargetよりも低い(時間を遡って)第1の次の示度が見つけられ、方法2700が初めから繰り返す。前のBGの示度がPostMealLowTargetよりも低い場合、カウンタが1インクリメントされ(NumCons=NumCons+1)、方法2700は、PostMealLowTargetよりも高い第1の示度が見つけられるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2700は、最後のBGレコードが到達されるまで、初めから継続する。
連続した高のパターンを認識するためのアルゴリズムまたは方法2800の例が、図28に流れ図として示される。方法2800は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2802)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、互いにMinTimeInterval(たとえば、2つの連続するBGの測定値が相関があるとみなされないためのそれらのBGの測定値の間の最小時間間隔)以内で発生し、予め定義されたパラメータRunHighTargetよりも高いNumConsThreshold(たとえば、3)個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2804)。BGレコードインデックス「Current」がゼロに初期化され(2806)、カウンタ「NumCons」がゼロに初期化される(2808)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2810)。そうである場合、方法2800は、パターンをトリガせずに終了する(2826)。そうでない場合、現在のBGレコードの値が、RunHighTargetと比較される(2812)。現在のBGレコードの値がRunHighTarget以上である場合、インデックス(Current)がインクリメントされる(2814)。それから、現在のBGレコードが前のBGレコードのMinTimeInterval以内で発生したかどうかを判定するためのチェックが行われる(2816)。現在のBGレコードが前のBGレコードのMinTimeInterval以内で発生しなかった場合、フローは、インデックスが最後のBGレコードに到達したかどうかのチェックに戻る(2810)。そうでない場合、カウンタ「NumCons」がインクリメントされ(2818)、フローは、インデックスが最後のBGレコードに到達したかどうかのチェックに戻る(2810)。現在のBGレコードの値がRunHighTarget未満である場合、インデックス(Current)がインクリメントされ(2820)、それから、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2822)。NumConsがNumConsThreshold以上でない場合、フローは、NumConsをゼロにリセットすることに戻る(2808)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、連続した高のIMBパターンがトリガされ(2824)、方法2800が完了する(2826)。言い換えると、RunHighTargetを超える値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する高い示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がRunHighTargetよりも低い場合、カウンタがリセットされ(NumCons=0)、RunHighTargetよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2800が初めから繰り返す。前のBGの示度がRunHighTargetよりも高い場合、および現在の示度と前の示度との間の時間がMinTimeInterval未満である場合、方法2800は、RunHighTargetよりも低い第1の示度が見つかるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2800は、最後のBGレコードが到達されるまで、初めから継続する。前のBGの示度がRunHighTargetよりも高い場合、および現在の示度と前の示度との間の時間がMinTimeInterval以上である場合、カウンタが、1インクリメントされ(NumCons=NumCons+1)、方法2800は、RunHighTargetよりも低い第1の示度が見つかるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2800は、最後のBGレコードが到達されるまで、初めから継続する。
連続した低のパターンを認識するためのアルゴリズムまたは方法2900の例が、図29に流れ図として示される。方法2900は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(2902)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、互いにMinTimeInterval(たとえば、2つの連続するBGの測定値が相関があるとみなされないためのそれらのBGの測定値の間の最小時間間隔)以内で発生し、予め定義されたパラメータRunLowTargetよりも低いNumConsThreshold(たとえば、3)個以上の連続するBGの示度を(最新のBGの示度のタイムスタンプから始まって2週間のデータ内で)そのDMSアプリが検出する場合、このパターンをトリガする。最近2週間のBGの示度が取り出される(2904)。BGレコードインデックス「Current」がゼロに初期化され(2906)、カウンタ「NumCons」がゼロに初期化される(2908)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(2910)。そうである場合、方法2900は、パターンをトリガせずに終了する(2926)。そうでない場合、現在のBGレコードの値が、RunLowTargetと比較される(2912)。現在のBGレコードの値がRunLowTarget以下である場合、インデックス(Current)がインクリメントされる(2914)。それから、現在のBGレコードが前のBGレコードのMinTimeInterval以内で発生したかどうかを判定するためのチェックが行われる(2916)。現在のBGレコードが前のBGレコードのMinTimeInterval以内で発生しなかった場合、フローは、インデックスが最後のBGレコードに到達したかどうかのチェックに戻る(2910)。そうでない場合、カウンタ「NumCons」がインクリメントされ(2918)、それから、フローは、インデックスが最後のBGレコードに到達したかどうかのチェックに戻る(2910)。現在のBGレコードの値がRunLowTargetよりも大きい場合、インデックス(Current)がインクリメントされ(2920)、それから、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(2922)。NumConsがNumConsThreshold以上でない場合、フローは、NumConsをゼロにリセットすることに戻る(2908)。そうでない(つまり、NumConsがNumConsThreshold以上である)場合、連続した低のIMBパターンがトリガされ(2924)、方法2900が完了する(2926)。言い換えると、RunLowTarget未満の値を有する14日間の履歴からの第1の(最新の)BGの示度が見つけられる。連続する低い示度の数を数えるカウンタが1インクリメントされる。前のBGの示度が調べられる。前のBGの示度がRunLowTargetよりも高い場合、カウンタがリセットされ(NumCons=0)、RunLowTargetよりも高い(時間を遡って)第1の次の示度が見つけられ、方法2900が初めから繰り返す。前のBGの示度がRunLowTargetよりも低い場合、および現在の示度と前の示度との間の時間がMinTimeInterval未満である場合、方法2900は、RunLowTargetよりも高い第1の示度が見つかるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2900は、最後のBGレコードが到達されるまで、初めから継続する。前のBGの示度がRunLowTargetよりも低い場合、および現在の示度と前の示度との間の時間がMinTimeInterval以上である場合、カウンタが、1インクリメントされ(NumCons=NumCons+1)、方法2900は、RunLowTargetよりも高い第1の示度が見つかるまで同じようにして進行する。見つけられると、カウンタの値が調べられる。NumCons>=NumConsThresholdである場合、パターンがトリガされ、このパターンがトリガされる時間範囲がパターンマネージャモジュール1004に特定される。方法2900は、最後のBGレコードが到達されるまで、初めから継続する。
曜日の高のパターンを認識するためのアルゴリズムまたは方法3000の例が、図30に流れ図として示される。方法3000は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(3002)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、NumConsThreshold個の連続する曜日に関するBGレコードの平均値がDayOfWeekHighTarget(たとえば、食事後/無印の最高(After Meal/No Mark High)の110%)よりも高かったことを(最新のBGの示度のタイムスタンプから時間を遡った3週間のデータ内で)アプリが検出する場合、このパターンをトリガする。このパターンに関しては、15日間(3週間目にかかる)から21日間のBGレコードの履歴からのデータが、このパターンがトリガされるために使用されることに留意されたい。過去15日間の各曜日に関する1日当たりの平均が既に計算され、記憶されていると仮定することにさらに留意されたい。新しい1つの示度または複数の示度が入ってくるとき、新しい(新しい示度が複数の日に拡散する場合)1日当たりの平均が計算されるか、または最後の1日当たりの平均が更新され(新しい示度が履歴の最後の1日にだけ影響を与える場合)、DayOfWeekHighTargetよりも高い平均BG値を有する3日以上の連続する曜日(たとえば、「連続3日以上の金曜日」)が存在するかどうかを調べるためのチェックが行われる。最近15日間から3週間のBGの示度が取り出される(3004)。曜日の各々に関して平均BG値が計算される(AVGday)(3006)。BGレコードインデックス「Current」がゼロに初期化され(3008)、カウンタ「NumCons」がゼロに初期化される(3010)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(3012)。そうである場合、パターンはトリガされず(3014)、方法3000は終了する(3028)。そうでない場合、現在の曜日に関する平均の値が、DayOfWeekHighTargetと比較される(3016)。現在の曜日に関する平均の値がDayOfWeekHighTarget未満である場合、カウンタ「Current」が、インクリメントされ(3018)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(3010)。そうでない場合、NumConsがインクリメントされ(3020)、それから、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(3022)。NumConsがNumConsThreshold以上でない場合、「Current」がインクリメントされ(3024)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(3012)。そうでない(NumConsがNumConsThreshold以上である)場合、曜日の高のIMBパターンがトリガされ(3026)、方法3000は終了する(3028)。
曜日の低のパターンを認識するためのアルゴリズムまたは方法3100の例が、図31に流れ図として示される。方法3100は、新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるときに始まる(3102)。新しいBGレコードが獲得されるかまたは前に獲得されたレコードが修正されるとき、DMSアプリは、NumConsThreshold個の連続する曜日に関するBGレコードの平均値がDayOfWeekLowTarget(たとえば、全体の低(Overall Low)の値の80%)よりも低かったことを(最新のBGの示度のタイムスタンプから時間を遡った3週間のデータ内で)アプリが検出する場合、このパターンをトリガする。このパターンに関しては、15日間(3週間目にかかる)から21日間のBGレコードの履歴からのデータが、このパターンがトリガされるために使用されることに留意されたい。過去15日間の各曜日に関する1日当たりの平均が既に計算され、記憶されていると仮定することにさらに留意されたい。新しい1つの示度または複数の示度が入ってくるとき、新しい(新しい示度が複数の日に拡散する場合)1日当たりの平均が計算されるか、または最後の1日当たりの平均が更新され(新しい示度が履歴の最後の1日にだけ影響を与える場合)、DayOfWeekLowTargetよりも低い平均BG値を有する3日以上の連続する曜日(たとえば、「連続3日以上の金曜日」)が存在するかどうかを調べるためのチェックが行われる。最近15日間から3週間のBGの示度が取り出される(3104)。曜日の各々に関して平均BG値が計算される(AVGday)(3106)。BGレコードインデックス「Current」がゼロに初期化され(3108)、カウンタ「NumCons」がゼロに初期化される(3110)。インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックが行われる(3112)。そうである場合、パターンはトリガされず(3114)、方法3100は終了する(3128)。そうでない場合、現在の曜日に関する平均の値が、DayOfWeekLowTargetと比較される(3116)。現在の曜日に関する平均の値がDayOfWeekLowTargetよりも大きい場合、カウンタ「Current」が、インクリメントされ(3118)、フローが、カウンタ「NumCons」をゼロにリセットすることに戻る(3110)。そうでない場合、NumConsがインクリメントされ(3120)、それから、NumConsがNumConsThreshold以上であるかどうかを調べるためのチェックが行われる(3122)。NumConsがNumConsThreshold以上でない場合、「Current」がインクリメントされ(3124)、フローは、インデックスが最後のBGレコードに到達したかどうかを判定するためのチェックに戻る(3112)。そうでない(NumConsがNumConsThreshold以上である)場合、曜日の低のIMBパターンがトリガされ(3126)、方法3100が終了する(3128)。
IMBマネージャ704内で、パターンマネージャモジュール1004は、(IMBアルゴリズム実行サブモジュール1010によって)上述のIMBアルゴリズムを呼び出し、検出されたパターンを処理し、特定されたパターンに関する通知を生成し、スケジューリングし、IMBパターンマップ(たとえば、ユーザインターフェースの表示およびインタラクティブなメニュー)の実行をスケジューリングし、ユーザがパターンの目標をセットアップすることを可能にし、パターンの通知に関する制約およびフィルタ(たとえば、バンド(Band)/検査頻度の目標/クアランティン(Quarantine))を始め、取り下げ、通知およびリマインダを通じてパターンを管理することに関してユーザの進捗を追跡調査し、情報を提供する、動機付けをする、および行動に関するメッセージを提供し、関連するトリガされたパターンおよび関連するパターンに関連するBGレコード(妥当な場合)についてのユーザの備考を記録することを担う。
パターンマネージャモジュール1004は、パターンが新たに検出されたことをユーザに異なる方法で伝達する。特定のパターンの検出の通知と、(ユーザの判断に応じて)それに続く対応するIMBパターンマップとがユーザに提示され得る。検出された2つ以上のIMBパターンがある場合、DMSアプリは、ユーザがパターンを容易に吟味するために、検出されたパターンの複数の名前を優先順位付けされたリストに含む単一の通知に通知を制限し得る。加えて、ユーザは、組織化され、優先順位付けされた方法でパターンを提示するパターンビュワーを介して検出されたパターンにアクセスすることができる。DMSアプリがアクティブである場合、パターンマネージャが、スマートデバイスの画面を引き継ぎ、「パターン検出画面」--検出されたパターンの通知--を提示し、その中で、ユーザは、パターンマップフローに目を通し、検出されたパターンの詳細および説明を案内されるオプションを与えられる。
パターンマネージャの動作は、パターンの各々を定義する以下のパラメータ、すなわち、バンド、タイプ、ランク、クアランティン(抑制(Embargo))期間、潜伏(Incubation)期間、および最小時間間隔に基づく。バンドパラメータは、「パターンフィードバック」のレベルを表し、ユーザは、パターンマネージャが検出した可能性があるすべてのパターンについて通知されないことを選択することができる。言い換えると、たとえパターンマネージャが特定のパターンを検出したとしても、「バンド内」パターンと同様に、ユーザが選択したバンドがその特定のパターン(たとえば、「バンド外」パターン)を含まない場合、イベントは、新パターン検出通知としてユーザに伝達されない。
下の表は、パターンをバンドに編成するための例示的な配列を与える。ユーザは、通知を受け取るべきパターンのバンドを選択することができる。
タイプパラメータは、パターンをトリガするイベントの種類に基づくすべてのパターンのグループ分けを表す。これは、複数のパターンが同時に検出されるときに適切である。たとえば、一貫して高いグルコースが、いくつかの異なる方法で評価される。これは、同様の性質のパターンに関する見たところ重複する別々のアラートによってユーザを攻め立てることをDMSが防止することを可能にする。
ランクパラメータは、特定のパターンの優先度のレベルを表す。ランクパラメータは、グループ(タイプ)内の各パターンに割り振られ、タイプ内のその特定のパターンに関して一意である(一部の実施形態においては、同じタイプ内のどの2つのパターンも同じランクを持たない)。各タイプからの1つのパターンのみが、パターンマネージャによって自動的に「Active」ステータスに設定される。それは、最も高い優先度を有するパターンである。たとえば、「連続した高」のパターンおよび「夕食後の高」のパターンが、同時にトリガされる可能性がある。「連続した高」は、根本的な急性の異常の徴候である可能性があり、一方、「食事後の高」は、投薬の調整の必要を示す可能性がある。急性の異常の考慮は、ユーザに警告するためのより高い優先度のパターンである。
また、クアランティン(抑制)期間パラメータは、ユーザが通知によって圧倒されることを防止する。ユーザが時間インスタンス(time instance)「now」に特定のパターンを通知された場合、パターンマネージャは、クアランティン期間が過ぎるまでユーザが同じパターンを再び通知されないことを保証する。これは、この特定のパターンが再びトリガすることを許される最も速い時間が時間インスタンス「now」+クアランティン期間であることを意味する。また、この特徴は、思い出させられる前にユーザが特定のパターンを改善するかまたは特定のパターンに対処しようと行動する時間を持つことを保証する。下の表は、例示的なクアランティン期間を示す。
潜伏期間(MinReqBGhistory)パラメータは、DMSアプリの開始に関連する。正確さを保証するために、アプリは、パターンを特定し、調整することに関連する信頼性を高めるために十分なBGデータが受け取られるまで何らかのトリガされたパターンに答えることを遅らせる。したがって、アプリは、何らかのグループに属するトリガされたパターンが無視される「猶予期間」(MinReqBGhistory)を使用する。
最小時間間隔(MinReqBGrecordTimeDiff)パラメータは、特定のIMBパターンを検出するか、取り下げるか、または改善することに対するアルゴリズムの計算に含まれるための2つの連続するBGレコードのタイムスタンプの間の最小の許容可能な差を表す。この特徴は、同じ頃に取得された複数の示度がパターンとして数えられることを防止する。
パターンは、3つの異なるカテゴリ、すなわち、Active、Additional、およびArchivedに特徴付けられ、提示される。アクティブなパターンは、ユーザが警告されるべき最も高い優先度の情報であると考えられるデータを現在処理している既読であるかまたは未読であるかのどちらかの新たに認識されたパターンである。「Active」パターンは、ユーザが情報によって圧倒されることを防止するために常に最小限に抑えられる。「Active」パターンの目標は、特定のパターンマップフロー(ユーザインターフェース)を通じてユーザを動かすことであり、その特定のパターンマップフローの終わりに、ユーザは、「Improved」かまたは「Followed」かのどちらかのステータスに到達し得る。Activeパターンは、優先度のレベル(「ランク」)および「タイプ」の考慮によって決定される。さらに、ユーザは、ユーザがより多くのパターンマップフローに対処する試みに関与したい場合、アクティブになるべきAdditionalパターンのいずれかを選択することができる。可能なActiveパターンの数は、パターンの「タイプ」、たとえば、1つの種類としての危険なパターン(危険な高および危険な低)および危険なパターン以外のパターンに関する3つのその他の種類の数と同じであることが可能である。Activeカテゴリは、Additionalカテゴリが一杯になり始める前に一杯になる。パターン詳細ページは、パターンを選択することによってアクセスされる。Unreadパターンは、パターンマップフローに目を通すようにユーザに促す。Unreadパターンを選択することは、そのステータスを「Opened」(Read)に変更する。Criticalパターンが検出される場合、そのパターンは、トリガされるときにアクティブリストの一番上に格上げされ、そのパターンが解決される--同じ末端の範囲(extreme range)内の危険でないパターンが取得されるかまたはシーケンスが「完了される」までただそこに残る。「Active」パターンの「タイムアウト」タイマーが、パターンがActiveにされるときに開始する。一部の実施形態において、DMSアプリは、アクティブなパターンの総数に関係なく、同じタイプからの2つ以上のパターンが同時にアクティブになることを防止する。
「Additional」パターンは、ポストされる既読であるかまたは未読であるかのどちらかの認識されたパターンであり、収集データではなく、「改善済み」ステータスに自動的に変わらない。Additionalカテゴリのパターンは、それらのパターンがタイムアウトする前に(ユーザに行動するためのより多くの時間を与えるために)Activeよりも多くの時間を与えられ、パターンビュワーのArchivedセクションに移動する。Additionalカテゴリのパターンは、優先度のレベル(ランク)、タイプ、および検出の日付によって決定される。パターンビュワーにおいて提示されるAdditionalパターンの数に制限はない。Additionalパターンを調べるために、ユーザは、そのパターンを選択し、パターンの詳細(パターン詳細ページの上半分)および質問「このパターンについてもっと知り、このパターンの改善に取り組み、このパターンをあなたのActiveパターンに移動させたいですか」を示される。はいと答えることは、それらをそのパターンに関するパターンマップフローに持ち込み、そのパターンをActiveに移動させる。「いいえ」と答えることは、パターンをAdditionalに保ち、質問を利用可能なままにする。AdditionalパターンをActiveに変えるために、ユーザは、そのユーザがパターンに取り組みたいことを示す質問に答えることができる。AdditionalパターンをActiveパターンに移動させることによって、パターンは、パターンビュワー画面のActiveセクションに追加される。
「Archived」パターンは、それらが以下のステータス、すなわち、Dismissed_Reminder、Finished、Dismissed_Setup、Improved、Followed、Improved-Rework、Improved-Completed、Improved-Modified、Followed-Rework、Followed_Completed、Good_Int、Good_Note、Good_Add、またはTimed-Outのうちの1つに到達するときにDMSアプリによってこのカテゴリに割り振られる。
一部の実施形態において、パターンマネージャは、新しいBGレコードに応じてまたは所定の量の時間が過ぎた後に、検出されたパターンを別のカテゴリ、状態、および/またはステータスに自動的に遷移させる可能性がある。たとえば、下に示される以下の条件が満たされる場合、パターンマネージャは、Activeカテゴリに属するパターンのカテゴリをArchivedカテゴリに変更し、Improvedステータスを割り振る。
一部の実施形態において、Activeパターンが追跡調査時間の前に(新しいBGレコードの受け取りに基づいて)改善する場合、パターンマネージャは、「改善済み追跡調査」画面を提示し、パターンを「改善済み」ステータスを付けてArchivedカテゴリに移動させる可能性がある。一部の実施形態において、Activeパターンが追跡調査時間の前に(新しいBGレコードの受け取りに基づいて)改善する場合、パターンマネージャは、(パターンマップフローによって)定期的にスケジューリングされた「追跡調査」通知と、パターンマップフロー中に関連するリマインダがセットアップされた場合はそれらの関連するリマインダとを取り消す可能性がある。
一部の実施形態において、パターンマネージャは、「Active」カテゴリに属するパターンのカテゴリを「Archived」カテゴリに変更し、下の表に規定された時間間隔以内にこれらのイベントのいずれも発生しなかった場合、「タイムアウト」ステータスを割り振る可能性がある。
・パターンが改善されなかったか、または
・ユーザが追跡調査をセットアップするためにパターンマップフロー全体に目を通さなかったか、または
・パターンが読まれなかった。
一部の実施形態において、タイムアウト期間は、パターン登録の瞬間からカウントダウンを開始する可能性がある。Activeパターンが(時間に基づいて)タイムアウトする場合、パターンマネージャは、パターンを、ユーザに通知することなくタイムアウトステータスを付けてArchivedカテゴリに移動させる可能性がある。
一部の実施形態においては、パターンマップフロー内の遷移が発生する可能性がある。たとえば、パターンマップフロー中に、パターンマネージャは、以下のパターンに関して、図32の流れ図に示される、トリガ後のパターンマップフロー内の遷移のためのアルゴリズムまたは方法3200に従って、ならびに図33の流れ図に示される、パターンマネージャからアクセスされるときのパターンマップフロー内の遷移のためのアルゴリズムまたは方法3300に従って、カテゴリ、状態、および/またはステータス(ActiveカテゴリUn-Openedステータス)を割り振る可能性がある。
空腹時の高
空腹時の低
昼食前の高
昼食前の低
夕食前の高
夕食前の低
夕食後の高
夕食後の低
最近の高
最近の低
曜日の低
曜日の高
図32に示されるように、応答3201において、方法3200は、結果がパターンの遷移3203または3204をもたらす可能性がある検出画面判断ブロック3202に進む可能性がある。パターンの遷移3204から、方法3200は、結果がパターンの遷移3206または3207をもたらす可能性がある解釈画面判断ブロック3205に進む可能性がある。パターンの遷移3207から、方法3200は、結果がパターンの遷移3209または3210をもたらす可能性があるあり得る原因判断ブロック3208に進む可能性がある。パターンの遷移3210から、方法3200は、結果がパターンの遷移3212または3213をもたらす可能性がある要リマインダ?判断ブロック3211に進む可能性がある。パターンの遷移3213から、方法3200は、結果がパターンの遷移3215または3216をもたらす可能性があるリマインダセットアップ判断ブロック3214に進む可能性がある。パターンの遷移3216から、方法3200は、結果がパターンの遷移3218または3219をもたらす可能性がある追跡調査フィードバック判断ブロック3217に進む可能性がある。
図33に示されるように、プロセスブロック3301においてパターンマネージャからアクセスされたActive(Un-Read)パターンに応じて、方法3300は、結果がパターンの遷移3303または3304をもたらす可能性がある解釈画面判断ブロック3302に進む可能性がある。パターンの遷移3304から、方法3300は、結果がパターンの遷移3306または3307をもたらす可能性があるあり得る原因判断ブロック3305に進む可能性がある。パターンの遷移3307から、方法3300は、結果がパターンの遷移3309または3310をもたらす可能性がある要リマインダ?判断ブロック3308に進む可能性がある。パターンの遷移3310から、方法3300は、結果がパターンの遷移3312または3313をもたらす可能性があるリマインダセットアップ判断ブロック3311に進む可能性がある。パターンの遷移3313から、方法3300は、結果がパターンの遷移3315または3316をもたらす可能性がある追跡調査フィードバック判断ブロック3314に進む可能性がある。
一部の実施形態においては、パターンマップフロー内のその他の遷移が、追加的にまたは代替的に発生する可能性がある。たとえば、パターンマップフロー中に、パターンマネージャは、以下のパターンに関して、図34の流れ図に示されるアルゴリズムまたは方法3400に従ってカテゴリ、状態、および/またはステータスを割り振る可能性がある。
危険な低
危険な高
図34に示されるように、Criticalパターンがプロセスブロック3401においてトリガされることに応じて、方法3400は、結果がパターンの遷移3403または3404をもたらす可能性がある通知承認/解釈画面表示判断ブロック3402に進む可能性がある。パターンの遷移3404から、方法3400は、結果がパターンの遷移3406または3407をもたらす可能性がある解釈画面判断ブロック3405に進む可能性がある。パターンの遷移3407から、方法3400は、いいえの結果がパターンの遷移3409をもたらす可能性があるタイムアウト間隔終了前再検査判断ブロック3408に進む可能性がある。判断ブロック3408におけるはいの結果は、方法3400が範囲内BG値?判断ブロック3410に進むことをもたらす可能性があり、範囲内BG値?判断ブロック3410において、はいの結果は、パターンの遷移3411をもたらす可能性があり、いいえの結果は、方法3400が判断ブロック3412に進むことをもたらす可能性がある。判断ブロック3412において、次の判断、すなわち、危険な高に関して、BG値が全体の低未満であるか、および/または危険な低に関して、BG値が食事後の高よりも大きいかの判定が行われる可能性がある。どちらかの判定の結果がはいである場合、方法3400は、パターンの遷移3413に進む可能性がある。どちらかの判定の結果がいいえである場合、方法3400は、タイムアウト間隔終了?判断ブロック3414に進む可能性がある。結果がいいえである場合、方法3400は、判断ブロック3408に戻る可能性がある。結果がはいである場合、方法3400は、判断ブロック3415に進む可能性がある。判断ブロック3415においては、以下の判定、すなわち、危険な高に関して、最後のBG値が危険な高よりも大きいか、および/または危険な低に関して、最後のBG値が危険な低未満であるかの判定が行われる可能性がある。結果に応じて、方法3400は、パターンの遷移3416または3417に進む可能性がある。
一部の実施形態において、パターンマップフロー内の遷移は、パターンマネージャビュワー内のユーザの行為が原因で発生する可能性がある。つまり、パターンマネージャは、一部の実施形態においては、図35の流れ図に示される、トリガ後のパターンマップフロー内の遷移のためのアルゴリズムまたは方法3500に従ってパターンマネージャビュワー内のユーザのインタラクションに基づいてActiveパターンのカテゴリ、状態、および/またはステータスを変更する可能性がある。ユーザがプロセスブロック3501においてActiveパターンを選択するとき、パターンマネージャは、判断ブロック3502を経由して、プロセスブロック3503において「元パターン解釈」画面を表示するかまたはプロセスブロック3504において「修正されたパターン解釈」画面を表示する可能性がある。
一部の実施形態において、「修正されたパターン解釈」画面は、通常の「パターン解釈」画面において提供される情報に加えて、ユーザが(1)(パターンが検出されることに寄与する第1の示度から始まり、パターンをトリガした示度で終わる)このパターンが検出されることに寄与したレコードを見る、(2)備考を記録する、(3)パターンマップフロー中にセットアップされた関連リマインダを見る、および/または(4)パターンをアーカイブすることを可能にする可能性がある。
一部の実施形態においては、ユーザがActiveパターンを選択し、「修正されたパターン解釈」画面において「パターンをアーカイブする」ことを選択するとき、パターンマネージャは、パターンビュワーにおいてこのパターンに「Dismissed」ステータスを割り振り、その実際のステータスを「Finished_Dismissed」に変更する可能性がある。パターンマネージャは、一部の実施形態において、「Archived」パターンがそのステータスをUnopenedからOpenedに変更することを可能にする可能性がある(パターンビュワーにおいてではなくパターンマネージャにおいてのみ)。一部の実施形態において、パターンマネージャは、「Archived」パターンがカテゴリおよび状態を変更することを可能にしない可能性がある。
一部の実施形態においては、ユーザが「Dismissed」(「Dismissed_Rem」、「Dismissed_Seutp」)かまたは「Timed-Out」かのどちらかのステータスであるArchivedパターンを選択するとき、パターンマネージャは、プロセスブロック3504において「修正されたパターン解釈」画面を表示する可能性がある。「修正されたパターン解釈」画面は、通常の「パターン解釈」画面において提供される情報に加えて、ユーザが(1)パターンの状態を見る、ならびに(2)以下のオプション、すなわち、(a)(パターンが検出されることに寄与する第1の示度から始まり、パターンが取り下げられるかまたはタイムアウトする前のパターンに関連する最後の示度で終わる)このパターンが検出されることに寄与したレコードを見ること、および(b)備考を記録することから選択することを可能にする可能性がある。
一部の実施形態においては、ユーザが「Improved」かまたは「Followed」かのどちらかのステータスであるArchivedパターンを選択するとき、パターンマネージャは、通常の「パターン解釈」画面において提供される情報に加えて、ユーザが(1)ステータスを見る、ならびに(2)以下のオプション、すなわち、(a)このパターンが検出され、改善されるかまたは改善されない(追跡される)ことに寄与したすべてのレコード、つまり、パターンが検出されることに寄与する第1の示度から始まり、追跡調査間隔が終わる前のパターンに関連する最後の示度で終わるこの特定のパターンに関連するすべてのレコードを見ること、(b)備考を記録こと、および(c)パターンマップフロー中にセットアップされた関連リマインダを見ることから選択することを可能にする可能性がある「修正されたパターン解釈」画面を表示する可能性がある。
一部の実施形態においては、ユーザがCriticalパターンのグループに属するArchivedパターンを選択するとき、パターンマネージャは、通常の「パターン解釈」画面において提供される情報に加えて、ユーザが(1)詳細なステータスの説明を見る、(2)備考を記録する、および(3)パターンマップフロー中にセットアップされた関連示度(たとえば、パターンをトリガした示度から始まり、パターン改善の瞬間またはパターンタイムアウト間隔の終了の前に記録されたパターンに関連する最後の示度で終わるすべての示度)を見ることを可能にする可能性がある「Criticalパターン追跡調査」画面を表示する可能性がある。
一部の実施形態において、危険なパターンは、危険でないパターンに優先する可能性があり、パターンマネージャは、任意のActiveまたはArchivedパターンを記憶し、任意のActiveまたはArchivedパターンの手動削除を許さない可能性がある。一部の実施形態において、50個の最新のActiveおよびArchivedパターン(つまり、先入れ先出し)のうちの最大が、記憶され、最大90日間保持される可能性があり、90日よりも古いパターンは削除される可能性がある。
図35に戻って、方法3500は、プロセスブロック3503かまたは3504かのどちらかから、上述のように新しいパターンがパターンマネージャによって検出される可能性がある新パターン検出行動(New Pattern Detection Behavior)プロセスブロック3505に進む可能性がある。
多くの実施形態が、本開示において説明され、説明を目的として提示される。説明される実施形態は、いかなる意味でも限定であるように意図されていない。ここに開示される発明は、本開示から非常に明白であるように、多数の実施形態に広く適用され得る。当業者は、開示される発明が構造的な、論理的な、ソフトウェアの、および電気的な修正などの様々な修正および変更をして実施され得ることを認識するであろう。開示される発明の特定の特徴が1つまたは複数の特定の実施形態および/または図面を参照して説明される可能性があるが、そのような特徴は、別途明確に指定されない限り、1つまたは複数の特定の実施形態またはそれらの実施形態が参照して説明される図面における用途に限定されないことを理解されたい。
本開示は、すべての実施形態の厳密な説明ではなく、すべての実施形態に存在しなければならない本発明の特徴の列挙でもない。
(本開示の最初のページの始めに記載された)発明の名称は、開示される発明の範囲をいかなる意味でも限定すると受け取られるべきでない。
用語「製品」は、別途明確に指定されない限り、合衆国法典第35編(米国特許法)第101条によって考慮された任意の機械、生産物、および/または組成物を意味する。
各プロセス(メソッドと呼ばれるのか、クラスビヘイビアと呼ばれるのか、アルゴリズムと呼ばれるのか、またはその他の名前で呼ばれるのかにかかわらず)は、本質的に、1つまたは複数のステップを含み、したがって、プロセスの「1つのステップ」または「複数のステップ」へのすべての言及は、用語「プロセス」または同様の用語の単なる記載に固有の先行詞(antecedent basis)を有する。したがって、プロセスの「1つのステップ」または「複数のステップ」への請求項におけるすべての言及は、十分な先行詞を有する。
(「第1の」、「第2の」、「第3の」などの)序数が用語の前に形容詞として使用されるとき、その序数は、特定の特徴を同じ用語によってまたは同様の用語によって説明される別の特徴と区別するためになど、特定の特徴を示すためにだけ(別途明確に指定されない限り)使用される。たとえば、「第1のウィジェット」は、そのウィジェットをたとえば「第2のウィジェット」と区別するためにだけそのように名付けられる可能性がある。したがって、用語「ウィジェット」の前に序数「第1の」および「第2の」を単に使用することは、2つのウィジェットの間のいかなるその他の関係も示さず、同様に、どちらかのまたは両方のウィジェットのいかなるその他の特徴も示さない。たとえば、用語「ウィジェット」の前に序数「第1の」および「第2の」を単に使用することは、(1)どちらかのウィジェットが他方のウィジェットの前のまたは後の順序または位置に来ることを示さず、(2)どちらかのウィジェットが時間的に他方のウィジェットの前または後に発生するまたは活動することを示さず、(3)どちらかのウィジェットが他方のウィジェットよりも重要性または質の点で上または下のランクであることを示さない。さらに、序数を単に使用することは、序数によって特定される特徴に対する数値的限定を定義しない。たとえば、用語「ウィジェット」の前に序数「第1の」および「第2の」を単に使用することは、2つ以下のウィジェットが存在しなければならないことを示さない。
単一のデバイス、構成要素、構造、または製品が本明細書において説明されるとき、2つ以上のデバイス、構成要素、構造、または製品が、(それらが協力するか否かにかかわらず)説明される単一のデバイス、構成要素、または製品の代わりに代替的に使用される可能性がある。したがって、デバイスによって所有されるものとして説明される機能は、2つ以上のデバイス、構成要素、または製品によって(それらが協力するか否かにかかわらず)代替的に所有される可能性がある。
同様に、2つ以上のデバイス、構成要素、構造、または製品が本明細書において説明される場合(それらが協力するか否かにかかわらず)、単一のデバイス、構成要素、構造、または製品が、説明される2つ以上のデバイス、構成要素、構造、または製品の代わりに代替的に使用される可能性がある。たとえば、複数のコンピュータに基づくデバイスが、単一のコンピュータに基づくデバイスによって置き換えられる可能性がある。したがって、2つ以上のデバイス、構成要素、構造、または製品によって所有されるものとして説明される様々な機能は、単一のデバイス、構成要素、構造、または製品によって代替的に所有される可能性がある。
説明される単一のデバイスの機能および/または特徴は、説明されるが、そのような機能および/または特徴を有するものとして明示的に説明されない1つまたは複数のその他のデバイスによって代替的に具現化される可能性がある。したがって、その他の実施形態は、説明されるデバイス自体を必ずしも含まず、むしろ、それらのその他の実施形態においてそのような機能/特徴を有する1つまたは複数のその他のデバイスを含み得る。
互いに通信するデバイスは、別途明確に指定されない限り、互いに連続的に通信するとは限らない。反対に、そのようなデバイスは、必要に応じてまたは要望に応じて互いに送信しさえすればよく、実際は、ほとんどの時間、データをやりとりすることを控える可能性がある。たとえば、インターネットを介して別のマシンと通信するマシンは、一度に数週間、別のマシンにデータを送信しない可能性がある。さらに、互いに通信するデバイスは、直接、または1つもしくは複数の媒介物を通じて間接的に通信する可能性がある。
いくつかの構成要素または特徴を有する実施形態の説明は、そのような構成要素および/または特徴のすべてまたはいずれかでさえも必要とされることを示唆しない。反対に、様々な任意の構成要素が、本発明の多種多様な可能な実施形態を示すために説明される。別途明確に指定されない限り、構成要素および/または特徴は必須でないまたは必要とされない。
さらに、プロセスのステップ、アルゴリズムなどが順番に説明される可能性があるが、そのようなプロセスは、異なる順序で働くように構成される可能性がある。言い換えると、明示的に説明される可能性があるステップの任意のシーケンスまたは順序は、ステップがその順序で実行されるという要件を必ずしも示さない。本明細書において説明されるプロセスのステップは、任意の実用的な順序で実行される可能性がある。さらに、一部のステップは、(たとえば、1つのステップが別のステップの後に説明されるので)同時に行われないものとして説明されるかまたは示唆されるにもかかわらず同時に実行される可能性がある。さらに、図面におけるプロセスの描写によるそのプロセスの図示は、示されるプロセスがそのプロセスに対するその他の変更および修正を除外することを示唆せず、示されるプロセスまたはそのプロセスのステップのいずれかが本発明に必須であることを示唆せず、示されるプロセスが好ましいことを示唆しない。
プロセスが複数のステップを含むものとして説明される可能性があるが、それは、ステップのすべてまたはいずれかでさえも必須であるまたは必要とされることを示さない。説明される発明の範囲内の様々なその他の実施形態は、説明されるステップの一部またはすべてを省略するその他のプロセスを含む。別途明確に指定されない限り、ステップは必須でないまたは必要とされない。
製品は複数の構成要素、態様、品質、特性、および/または特徴を含むものとして説明される可能性があるが、それは、複数のすべてが必須であるまたは必要とされることを示さない。説明される発明の範囲内の様々なその他の実施形態は、説明される複数の一部またはすべてを省略するその他の製品を含む。
(付番される可能性がありまたはされない可能性がある)項目の列挙されたリストは、別途明確に指定されない限り、項目のいずれかまたはすべてが互いに排他的であることを示唆しない。同様に、(付番される可能性がありまたはされない可能性がある)項目の列挙されたリストは、別途明確に指定されない限り、項目のいずれかまたはすべてが任意のカテゴリのすべてを包含することを示唆しない。たとえば、列挙されたリスト「コンピュータ、ラップトップ、PDA」は、そのリストの3つの項目のいずれかまたはすべてが互いに排他的であることを示唆せず、そのリストの3つの項目のいずれかまたはすべてが任意のカテゴリのすべてを包含することを示唆しない。
本開示において与えられる節の見出しは、便宜的なものに過ぎず、いかなる形でも本開示を限定するものと受け取られるべきでない。
何かを「判定すること」は、様々な方法で実行されることが可能であり、したがって、用語「判定すること」(および同様の用語)は、計算すること、算出すること、導出すること、(たとえば、表、データベース、またはデータ構造内を)検索すること、突き止めること、認識することなどを含む。
「ディスプレイ」は、その用語が本明細書において使用されるとき、情報を閲覧者に伝える領域である。情報は、動的である可能性があり、その場合、LCD、LED、CRT、デジタル光処理(DLP: Digital Light Processing)、背面投射、前面投射などが、ディスプレイを形成するために使用される可能性がある。
本開示は、「制御システム」、アプリケーション、またはプログラムに関連する可能性がある。制御システム、アプリケーション、またはプログラムは、その用語が本明細書において使用されるとき、制御システムに関して説明される機能を提供するための命令を有するオペレーティングシステム、デバイスドライバ、および適切なプログラム(集合的に「ソフトウェア」)と結びつけられたコンピュータプロセッサである可能性がある。ソフトウェアは、関連するメモリデバイス(コンピュータ可読媒体と呼ばれることがある)に記憶される。適切にプログラミングされた多目的コンピュータまたはコンピューティングデバイスが使用される可能性があると考えられるが、配線された回路またはカスタムハードウェア(たとえば、特定用途向け集積回路(ASIC))が、様々な実施形態のプロセスの実装のためのソフトウェア命令の代わりにまたはそれと組み合わせて使用される可能性があることも考えられる。したがって、実施形態は、ハードウェアとソフトウェアとの任意の特定の組合せに限定されない。
「プロセッサ」は、任意の1つまたは複数のマイクロプロセッサ、中央演算処理装置(CPU)デバイス、コンピューティングデバイス、マイクロコントローラ、デジタル信号プロセッサ、または同様のデバイスを意味する。例示的なプロセッサは、INTEL PENTIUM(登録商標)またはAMD ATHLONプロセッサである。
用語「コンピュータ可読媒体」は、コンピュータ、プロセッサ、または同様のデバイスによって読まれる可能性があるデータ(たとえば、命令)を提供することに参加する任意の法律によって定められた媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および特定の法律によって定められた種類の送信媒体を含むがこれらに限定されない多くの形態を取る可能性がある。不揮発性媒体は、たとえば、光または磁気ディスクおよびその他の永続的メモリを含む。揮発性媒体は、概してメインメモリを構成するDRAMを含む。法律によって定められた種類の送信媒体は、プロセッサに結合されたシステムバスを含む配線を含む同軸ケーブル、銅線、および光ファイバを含む。コンピュータ可読媒体のよくある形態は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意のその他の磁気式媒体、CD-ROM、デジタルビデオディスク(DVD)、任意のその他の光学式媒体、パンチカード、紙テープ、穴のパターンによる任意のその他の物理媒体、RAM、PROM、EPROM、FLASH-EEPROM、USBメモリスティック、ドングル、任意のその他のメモリチップもしくはカートリッジ、搬送波、またはコンピュータが読むことができる任意のその他の媒体を含む。用語「コンピュータ可読メモリ」および/または「有形の媒体」は、信号、波、および波形、またはコンピュータによってやはり読まれ得る可能性があるその他の無形のもしくは非一時的な媒体をはっきりと除外する。
様々な形態のコンピュータ可読媒体が、命令のシーケンスをプロセッサに運ぶことに関与する可能性がある。たとえば、命令のシーケンスは、(i)RAMからプロセッサに届けられる可能性があり、(ii)ワイヤレス送信媒体上で運ばれる可能性があり、および/または(iii)多くのフォーマット、規格、もしくはプロトコルによってフォーマットされる可能性がある。プロトコルのより網羅的なリストに関して、用語「ネットワーク」が下で定義され、本明細書において適用可能でもある多くの例示的なプロトコルを含む。
本明細書において説明される様々な方法およびアルゴリズムが制御システムによって実装される可能性があり、ならびに/またはソフトウェアの命令が本発明のプロセスを実行するように設計される可能性があることは容易に明らかになるであろう。
データベースおよび/またはデータ構造が説明される場合、(i)説明されたデータベース構造の代替データベース構造が容易に使用される可能性があり、(ii)データベース以外のその他のメモリ構造が容易に使用される可能性があることが、当業者によって理解されるであろう。本明細書において提示されるすべてのサンプルデータベース/データ構造のすべての図示または説明は、情報の記憶された表現に関する説明のための構成である。たとえば、図面またはその他の箇所に示される表によって提案される構成に加えて、任意の数のその他の構成が使用される可能性がある。同様に、データベースのすべての示されるエントリは、例示的な情報を表すに過ぎず、当業者は、エントリの数および内容が本明細書において説明される数および内容と異なり得ることを理解するであろう。さらに、表としてのデータベースのいかなる描写にもかかわらず、(リレーショナルデータベース、オブジェクトに基づくモデル、階層的な電子ファイル構造、および/または分散型データベースを含む)その他のフォーマットが、本明細書において説明されるデータタイプを記憶し、操作するために使用される可能性がある。同様に、データベースのオブジェクトのメソッドまたはビヘイビアが、本明細書において説明されるプロセスなどの様々なプロセスを実装するために使用され得る。さらに、データベースは、そのようなデータベース内のデータにアクセスするデバイスのローカルにまたは遠隔に、知られている方法で記憶される可能性がある。さらに、統一されたデータベースが考えられる可能性があるが、データベースは様々なデバイスの間に分散されるおよび/または複製される可能性があることもあり得る。
本明細書において使用されるとき、概して、「ネットワーク」は、1つまたは複数のコンピューティングデバイスが互いに通信する可能性がある環境を提供するために使用され得る情報またはコンピューティングネットワークを指す。そのようなデバイスは、インターネット、LAN、WAN、またはイーサネット(登録商標)(もしくはIEEE 802.3)、トークンリングなどの有線またはワイヤレス媒体を介して、あるいは任意の適切な通信手段または通信手段の組合せを介して直接的にまたは間接的に通信する可能性がある。例示的なプロトコルは、Bluetooth(商標)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、移動体通信用グローバルシステム(GSM(登録商標): Global System for Mobile communications)、GSM(登録商標)の進化のための高速化されたデータレート(EDGE: Enhanced Data rates for GSM(登録商標) Evolution)、汎用パケット無線サービス(GPRS)、広帯域CDMA(WCDMA(登録商標))、高度モバイル電話システム(AMPS: Advanced Mobile Phone System)、デジタルAMPS(D-AMPS)、IEEE 802.11(Wi-Fi)、IEEE 802.3、SAP、ベストオブブリード(BOB: the best of breed)、システムツーシステム(S2S)などを含むがこれらに限定されない。映像信号または大きなファイルがネットワーク上で送信されている場合、ブロードバンドネットワークが、そのような大きなファイルの転送に関連する遅延を軽減するために使用される可能性があるが、そのようなことは、厳格に必要とされないことに留意されたい。デバイスの各々は、そのような通信手段上で通信するように適合される。任意の数および種類のマシンが、ネットワークを介して通信する可能性がある。ネットワークがインターネットである場合、インターネットを介した通信は、リモートサーバ上のコンピュータによって維持されるウェブサイトによるか、または商業オンラインサービスプロバイダ、掲示板システムなどを含むオンラインデータネットワークを介する可能性がある。さらにその他の実施形態において、デバイスは、RF、ケーブルTV、衛星回線などを介して互いに通信する可能性がある。そうした場合、適切な暗号化、またはログインおよびパスワードなどのその他のセキュリティ対策が、所有者のまたは機密の情報を保護するために提供される可能性がある。
コンピュータおよびデバイスの間の通信は、プライバシーを保証し、当技術分野においてよく知られている様々な方法のいずれかでの詐欺行為を防止するために暗号化される可能性がある。システムセキュリティを強化するための適切な暗号プロトコルは、参照によりその全体が組み込まれるSchneier、APPLIED CRYPTOGRAPHY, PROTOCOLS, ALGORITHMS, AND SOURCE CODE IN C、John Wiley & Sons, Inc.、第2版、1996年に記載されている。
本明細書において説明される様々な方法およびアルゴリズムが、たとえば、適切にプログラミングされた多目的コンピュータおよびコンピューティングデバイスによって実装されることは、容易に明らかになるであろう。概して、プロセッサ(たとえば、1つまたは複数のマイクロプロセッサ)は、メモリまたは同様のデバイスから命令を受け取り、それらの命令を実行し、それによって、それらの命令によって定義された1つまたは複数のプロセスを実行する。さらに、そのような方法およびアルゴリズムを実装するプログラムは、いくつかの方法で様々な媒体(たとえば、コンピュータ可読媒体)を使用して記憶され、送信される可能性がある。一部の実施形態において、配線された回路またはカスタムハードウェアが、様々な実施形態のプロセスの実装のためのソフトウェア命令の代わりにまたはそれと組み合わせて使用される可能性がある。したがって、実施形態は、ハードウェアとソフトウェアとの任意の特定の組合せに限定されない。したがって、プロセスの説明は、プロセスを実行するための少なくとも1つの装置を同様に記載し、プロセスを実行するための少なくとも1つのコンピュータ可読媒体および/またはメモリを同様に記載する。プロセスを実行する装置は、プロセスを実行するために適切な構成要素ならびにデバイス(たとえば、プロセッサ、入力および出力デバイス)を含み得る。コンピュータ可読媒体は、方法を実行するために適切なプログラム要素を記憶し得る。
本開示は、いくつかの実施形態および/または発明の可能にする説明を当業者に提供する。これらの実施形態および/または発明の一部は、本出願において請求されない可能性があるが、しかしながら、本出願の優先権の利益を主張する1つまたは複数の継続的出願において請求される可能性がある。出願人は、開示され、可能にされたが、本出願において請求されなかった対象の特許を求めるために追加の出願をするように意図する。
上述の説明は、本発明の例示的な実施形態を開示するに過ぎない。本発明の範囲内に入る上で開示された装置および方法の修正は、当業者に容易に明らかになるであろう。たとえば、上で検討された例は医療デバイス市場のために示されるが、本発明の実施形態はその他の市場のために実装され得る。
したがって、本発明がその例示的な実施形態に関連した開示されたが、その他の実施形態が、添付の請求項によって定義される本発明の精神および範囲内に入る可能性があることを理解されたい。