(57)【要約】例えば、医療画像に遠隔からアクセスしているクライアントデバイスが、画像データのクライアント側描画から画像データのサーバー側描画、およびこの反対にシームレスに切り替わることを可能にする、遠隔アクセス環境内のシステムおよび方法。分散画像処理が提供されてもよく、それによって画像データがクライアントデバイスにストリーミングされ、クライアントデバイスによって処理されてもよい（クライアント側描画）、またはサーバーで遠隔から処理され、表示するためにクライアントデバイスにダウンロードされてもよい（サーバー側描画）。２つのモードの間の切り替えは、ネットワーク帯域幅、クライアントデバイスの処理能力、表示される画像のタイプ等、既定の条件に基づいてもよい。環境は、複数のクライアントデバイスのうちの少なくとも１つがクライアント側描画を実行する、複数のクライアントデバイスの間の協働も提供する。【選択図】なし
2015534160.tif 000002
【特許請求の範囲】
【請求項１】
クライアント側画像データ描画中の画像データのビューのクライアントとサーバーとの同期方法であって、
前記画像データのクライアント側描画を実行し、前記クライアントデバイス上に表示されている最新ビューの態様を示すようにアプリケーション状態を更新することと、
前記クライアントデバイスでメモリ内に最新ビューの表現を維持することと、
前記最新ビューを前記アプリケーション状態に書き込むことと、
前記アプリケーション状態を前記クライアントデバイスからサーバーへ通信することと、を含む、方法。
【請求項２】
前記サーバーに通信された前記アプリケーション状態を利用することによって、前記画像データのサーバー側描画に切り替えることをさらに含む、請求項１に記載の方法。
【請求項３】
前記切り替えが、ユーザーの制御装置との相互作用の結果として実行される、請求項２に記載の方法。
【請求項４】
前記切り替えが、既定の条件に従って自動的に実行され、前記既定の条件が、ＣＰＵタイプ、ＧＰＵタイプ、メモリ合計、最新ＣＰＵ利用状況、最新ＧＰＵ利用状況、最新メモリ利用状況、バッテリ寿命、動作温度、表示サイズ、および伝送／受信ビットレートのうちの１つである、請求項２または３のいずれか１項に記載の方法。
【請求項５】
前記切り替えが実行されると、既定数の画像が前記クライアントデバイスでローカルに利用可能であるように、前記クライアントデバイスで前記画像データをキャッシュすることをさらに含む、請求項２〜４のいずれか１項に記載の方法。
【請求項６】
前記最新ビューが、前記クライアントデバイスでの最新表示の最新可視境界、オフセット、スライスインデックス、およびウィンドウ／レベルのうちの少なくとも１つを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記サーバー側で描画されたビューのオフセット、スライスインデックス、およびウィンドウ／レベルのうちの少なくとも１つを、前記クライアントデバイスで表示されている前記最新ビューと同期することをさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
切り替えを実行する前に、前記最新表示の前記最新可視境界、前記オフセット、前記スライスインデックス、および前記ウィンドウ／レベルのうちの少なくとも１つのメモリ内表現を維持することをさらに含む、請求項７に記載の方法。
【請求項９】
前記画像データのサーバー側描画を最初に実行することと、
前記クライアントデバイスを、前記画像データの前記クライアント側描画に切り替えることであって、
前記サーバーから前記アプリケーション状態を通信することと、
前記画像データの前記クライアント側描画が、前記サーバーによって提供された最後に描画されたビューと同期するように、前記画像データのクライアント側の描画を開始するために、前記クライアントデバイスで前記アプリケーション状態の差を利用することと、を含む、切り替えることと、をさらに含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記切り替えが、ユーザーの制御装置との相互作用の結果として実行される、請求項９に記載の方法。
【請求項１１】
前記切り替えが、既定の条件に従って自動的に実行され、前記既定の条件が、ＣＰＵタイプ、ＧＰＵタイプ、メモリ合計、最新ＣＰＵ利用状況、最新ＧＰＵ利用状況、最新メモリ利用状況、バッテリ寿命、動作温度、表示サイズ、および伝送／受信ビットレートのうちの１つである、請求項９または１０のいずれか１項に記載の方法。
【請求項１２】
前記クライアント側で描画されたビューのオフセット、スライスインデックス、およびウィンドウ／レベルのうちの少なくとも１つを、前記クライアントデバイスで表示されている前記最後に描画されたビューと同期することをさらに含む、請求項９〜１１のいずれか１項に記載の方法。
【請求項１３】
前記切り替えが実行されると、前記サーバーで描画されている前記画像と関連する前記画像がローカルで利用可能であるように、前記サーバーで描画されている前記画像と関連する画像を、前記クライアントデバイスでキャッシュすることをさらに含む、請求項９〜１２のいずれか１項に記載の方法。
【請求項１４】
前記最新ビューが、協働セッションにおいて、複数のクライアントデバイスの各々によって表示される協働モードを提供することと、
前記協働セッションにおいて、前記複数のクライアントデバイスの間で、前記アプリケーション状態を連続的に通信することと、をさらに含む、請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
前記複数のクライアントデバイスのうちの１つで、ユーザー入力を受信することと、
更新された最新ビューを描画するように、前記ユーザー入力に応答して、前記最新ビューを更新することと、
前記更新された最新ビューを含めるために、前記アプリケーション状態を更新することと、
前記更新されたアプリケーション状態を、前記複数のクライアントデバイスのうちの他のデバイスに通信することと、
前記複数のクライアントデバイスのうちの他のデバイスの各々で、前記更新された最新ビューを描画すること、または前記複数のクライアントデバイスの他のデバイスの各々で前記更新された表示画像を表示するために前記更新された最新ビューの画像表現を受信することと、をさらに含む、請求項１４に記載の方法。
【請求項１６】
クライアントとサーバーとの同期の方法であって、これによりクライアントデバイスが、画像データのクライアント側描画から画像データのサーバー側描画に、またはこの反対にシームレスに切り替わり、前記画像データの少なくとも一部が、サーバーから前記クライアントデバイスにダウンロードされ、
前記クライアントデバイス上で表示されている最新ビューの態様を示すようにアプリケーション状態を更新することと、
前記クライアントデバイスでメモリ内に最新ビューの表現を維持することと、
クライアント側描画を実行するとき、前記クライアントデバイスを、前記画像データの前記クライアント側描画に切り替えることであって、
前記最新ビューを前記アプリケーション状態に書き込むことと、
前記最新ビューと同期された前記画像のサーバー側描画を開始するように、前記サーバーで前記アプリケーション状態を利用するために、前記クライアントデバイスからサーバーへ前記アプリケーション状態を通信することと、を含む、切り替えることと、
サーバー側描画を実行するとき、前記クライアントデバイスを、前記画像データのクライアント側描画に切り替えることであって、
前記サーバーから前記アプリケーション状態を通信することと、
前記画像データのクライアント側描画が、前記サーバーによって提供された最後に描画されたビューと同期するように前記画像データの前記クライアント側描画を開始するために、前記クライアントデバイスで前記アプリケーション状態の差を利用することと、を含む、切り替えることと、を含む、方法。
【請求項１７】
前記切り替えが、既定の条件に従って自動的に実行され、前記既定の条件が、ＣＰＵタイプ、ＧＰＵタイプ、メモリ合計、最新ＣＰＵ利用状況、最新ＧＰＵ利用状況、最新メモリ利用状況、バッテリ寿命、動作温度、表示サイズ、および伝送／受信ビットレートのうちの少なくとも１つを含む、請求項１６に記載の方法。
【請求項１８】
前記最新ビューが、前記クライアントデバイスでの最新表示の最新可視境界、オフセット、スライスインデックス、およびウィンドウ／レベルのうちの少なくとも１つを含む、請求項１６または１７のいずれか１項に記載の方法。
【請求項１９】
協働セッションにおいて複数のクライアントデバイスの各々によって表示された画像の同期の方法であって、前記画像データの少なくとも一部が、サーバーから前記クライアントデバイスへダウンロードされ、
前記複数のクライアントデバイスの各々で表示するために、前記複数のクライアントデバイスの各々で画像データを描画することと、
前記複数のクライアントデバイスの各々で表示されている画像と関連する表示状態を示すように前記複数のクライアントデバイスの各々でアプリケーション状態を更新することと、
前記複数のクライアントデバイスおよび前記サーバーの間で、前記アプリケーション状態を連続的に通信することと、
前記表示状態に従って、前記複数のクライアントデバイスの各々で現在表示された画像を前記複数のクライアントデバイスのうちの１つで同期することと、を含む、方法。
【請求項２０】
前記複数のクライアントデバイスのうちの１つで、ユーザー入力を受信することと、
更新された表示画像を描画するために、前記ユーザー入力に応答して、前記現在表示された画像を更新することと、
前記ユーザー入力に応答して、前記アプリケーション状態を更新することと、
前記更新されたアプリケーション状態を前記複数のクライアントデバイスおよび前記サーバーに通信することと、
前記複数のクライアントデバイスのうちの他のデバイスの各々で前記更新された表示画像を表示するために、前記複数のクライアントデバイスのうちの他のデバイスの各々で前記画像データを描画することと、をさらに含む、請求項１９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
クライアント・サーバーアーキテクチャにおいて、サーバー側描画は、サーバーでの画像生成を提供し、描画された画像が、表示および閲覧のためにクライアントデバイスへ伝送される。サーバー側描画は、相対的に低い演算能力を有するモバイルデバイス等のデバイスが、かなり複雑な画像を表示することを可能にする。これに反して、クライアント側描画は、クライアントデバイスがサーバーから通信されたデータを処理して、クライアントデバイス上に存在するリソースを使用して画像を描画して、表示を更新する。
【０００２】
複雑な画像生成アプリケーションにおいて、描画は典型的にはサーバーによって実行されるが、帯域幅の可用性がこのような動作の拡張性を制限する可能性がある。したがって、モバイルクライアントがＣＰＵ能力を高めてきたため、ダウンロードされたデータのクライアント側描画をある程度提供することがもっと実際的になっている。しかしながら、クライアント側描画とサーバー側描画との間を切り替えるシステムにおいて、しばしば、この切り替えは視覚的アーチファクトや表示の一時停止を生じさせたり、他のユーザーがユーザー体験を損なう結果を認識することになったりする。
加えて、画像生成アプリケーションセッション中の複数のクライアントデバイス間の協働は典型的に、サーバーが描画した画像によって生成されたビューを同期することによって達成される。このような協働セッションは、クライアントデバイスまたはネットワーク接続の能力を最適に利用していない場合がある。
【発明の概要】
【０００３】
本明細書において、サーバー側描画とクライアント側描画との間をシームレスに切り替えるためのシステムおよび方法を開示する。本開示の一態様に従い、クライアント側の画像データ描画中の画像データのビューのクライアントとサーバーとの同期の方法を開示する。方法は、画像データのクライアント側描画を実行し、クライアントデバイス上で表示されている最新ビューの態様を示すようにアプリケーション状態を更新することと、クライアントデバイスでメモリ内に最新ビューの表現を維持することと、最新ビューをアプリケーション状態に書き込むことと、アプリケーション状態をクライアントデバイスからサーバーへ通信することとを含むことができる。
【０００４】
他の態様に従い、クライアントとサーバーとの同期の方法を提供し、それによりクライアントデバイスが、画像データのクライアント側描画から画像データのサーバー側描画へ、またはこの反対にシームレスに切り替える。方法において、画像データの少なくとも一部は、サーバーからクライアントデバイスへダウンロードされる。方法は、クライアントデバイス上で表示されている最新ビューの態様を示すようにアプリケーション状態を更新することと、クライアントデバイスでメモリ内に最新ビューの表現を維持することとを含むことができる。クライアント側描画を実行するとき、クライアントデバイスを画像データのサーバー側描画へ切り替えることは、最新ビューをアプリケーション状態に書き込むことと、最新ビューと同期された画像のサーバー側描画を開始するようにサーバーでアプリケーション状態を利用するために、クライアントデバイスからサーバーへアプリケーション状態を通信することとを含むことができる。サーバー側描画を実行するとき、クライアントデバイスを画像データのクライアント側描画へ切り替えることは、サーバーからアプリケーション状態を通信することと、画像データのクライアント側描画が、サーバーによって提供された最後に描画されたビューと同期するように画像データのクライアント側描画を開始するために、クライアントデバイスでアプリケーション状態の差を利用することとを含むことができる。
【０００５】
さらに他の態様に従い、複数のクライアントデバイスの各々による画像の動的同期の方法を開示する。方法は、複数のクライアントデバイスの各々で表示するために、複数のクライアントデバイスの各々によって描画されている画像データを、サーバーから複数のクライアントデバイスの各々へ転送することと、複数のクライアントデバイスの各々で表示されている画像と関連する表示状態を示すように複数のクライアントデータの各々でアプリケーション状態を更新することと、複数のクライアントデバイスおよびサーバーの間でアプリケーション状態を連続的に通信することと、複数のクライアントデバイスのうちの１つでの表示状態に従って、複数のクライアントデバイスの各々で現在表示された画像を同期することと、を含むことができる。
【０００６】
以下の図面および詳細な説明を検討することによって、当業者には他のシステム、方法、特徴および／または利点が明らかとなる、あるいは明らかになり得る。すべてのそのような追加のシステム、方法、特徴および／または利点は、この説明に含まれ、添付のクレームによって保護されることが意図される。
【０００７】
図面における構成要素は、必ずしも互いに対して一定の縮尺であるとは限らない。同様の参照番号は、いくつかの図面を通して対応する部分を示している。
【図面の簡単な説明】
【０００８】
【図１】コンピュータネットワークを介する画像データの閲覧および協働のための環境を例示する簡易ブロック図である。
【図２】状態モデルと連携する遠隔アクセスプログラムの動作を図示する簡易ブロック図である。
【図３】図１および２の環境において、クライアント側描画からサーバー側描画へシームレスに切り替えることができる動作フローを示す。
【図４】クライアントデバイスが、図１および２の環境において、サーバー側描画からクライアント側描画へシームレスに切り替えることができる動作フローを示す。
【図５】クライアントデバイスのうちの少なくとも１つがクライアント側描画を実行している複数のクライアントデバイス間の協働の動作フローを示す。
【図６】画像データ閲覧および協働環境の代替実装を示す。
【図７】例示的デバイスを示す。
【発明を実施するための形態】
【０００９】
特に定義されない限り、本明細書において使用されるすべての技術的および科学的な用語は、当業者によって一般的に理解されるものと同一の意味を有する。本明細書において説明されるものと類似または同等とみなされる方法および用具は、本開示の実施または実験において使用され得る。実施態様は、アプリケーションに遠隔的にアクセスすることについて説明されることになるが、実施態様はそれに限定されるものではなくて、遠隔デバイスを介して任意の種類のデータまたはサービスに遠隔的にアクセスすることに適用可能であることが、当業者に明らかになるであろう。
【００１０】
概要
【００１１】
本開示の態様に従い、遠隔アクセス環境において、画像に遠隔からアクセスしているクライアントデバイスに、画像データのクライアント側描画から、画像データのサーバー側描画、およびこの反対にシームレスに切り替えるための機構を提供することができる。本開示は、分散画像処理を提供し、それにより、画像データがクライアントデバイスにストリーミングされ、クライアントデバイスによって処理されてもよい（クライアント側描画）、またはサーバーで遠隔から処理され、表示するためにクライアントデバイスにダウンロードされてもよい（サーバー側描画）。２つのモード間の切り替えは、ユーザーによって手動で実装されてもよく、または、ネットワーク帯域幅、クライアントデバイスの処理能力、表示される画像のタイプ（例えば、２Ｄ、３Ｄ、最大値投影法（ＭＩＰ）／多断面再構成（ＭＰＲ））等、既定の条件に基づいてもよい。本開示はさらに、クライアントデバイスのうちの少なくとも１つがクライアント側描画を実行している、クライアントデバイス間の協働を提供する。
【００１２】
例示的環境
【００１３】
上記の概要を導入として、ここで、コンピュータネットワークを介する画像データの閲覧および協働のための環境１００が例示される図１を参照する。環境１００は、画像データ閲覧および協働を提供することができる。画像生成および遠隔アクセスサーバー１０５は、データベース（図示せず）内に存在する画像データにアクセスするための機構を提供することができる。画像生成および遠隔アクセスサーバー１０５は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのうちの１つを使用する１人以上のエンドユーザーが閲覧するために画像データを処理する画像生成アプリケーションを含むことができる。
【００１４】
画像生成および遠隔アクセスサーバー１０５は、例えば、コンピュータネットワーク１１０を介して、クライアントデバイス１１２Ａ、１１２Ｂに接続される。本開示の実装に従い、画像生成および遠隔アクセスサーバー１０５は、多様なクライアントデバイス（以下に説明）を、画像生成および遠隔アクセスサーバー１０５によって提供される医療アプリケーション等のアプリケーションへ接続するために使用されるサーバー遠隔アクセスプログラムを含むことができる。
【００１５】
上述のサーバー遠隔アクセスプログラムは任意選択的に、環境１００にわたって接続配置およびアプリケーションプロセス管理を提供してもよい。サーバー遠隔アクセスプログラムは、画像生成および遠隔アクセスサーバー１０５からの接続、および画像生成および遠隔アクセスサーバー１０５によって提供される画像生成アプリケーションを処理することができる。
【００１６】
クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、および１１２Ｎは、例えば、ＩＰＨＯＮＥ、ＡＮＤＲＯＩＤベースのデバイス、タブレットデバイス、またはデスクトップ／ノートブック型パーソナルコンピュータ等、通信ネットワーク１１０によってサーバー１０２へ接続される、ワイヤレスハンドヘルドデバイスであってもよい。通信ネットワーク１１０への接続は、例えば、Ｗｉ−Ｆｉ（ＩＥＥＥ  ８０２．１１ｘ）、ＷｉＭａｘ（ＩＥＥＥ  ８０２．１６）、イーサネット、３Ｇ、４Ｇ等、任意のタイプの接続であってもよいことに注意されたい。
【００１７】
図１は、４つのクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃおよび１１２Ｎを図示する。本開示は、４つのクライアントデバイスに制限されず、図７でさらに説明されるように、任意の数のクライアントデバイスが環境１００内で動作することができることに注意されたい。
【００１８】
さらに、本開示の態様に従い、２つ以上のクライアントデバイスは、協働セッションにおいて、画像生成および遠隔アクセスサーバー１０５から通信される画像データと協働的に相互作用することができる。画像データは、画像生成および遠隔アクセスサーバー１０５で描画されてもよく、または、画像データは、クライアントデバイスで描画されてもよい。このように、協働セッションに参加しているクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの各々の間で状態モデル２００を通信することによって、参加しているクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの各々は、画像データの表示の同期されたビューを提示することができる。クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、および１１２Ｎのうちの２つ以上の間の協働のさらなる詳細は、図５を参照して以下に説明する。
【００１９】
図２に図示されるように、状態モデル２００は、ユーザーインターフェースプログラムから受信されたユーザー入力データに従って更新されるアプリケーション状態情報、またはクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎによって現在表示されている画像を含む。サーバー遠隔アクセスプログラムも、画面またはアプリケーションデータに従って状態モデル２００を更新し、更新された状態モデルに従って提示データを生成し、これを表示するためにクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎに提供する。本開示の環境において、状態モデルは、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのユーザーによって閲覧されている画像、すなわち、最新ビューについての情報を含むことができる。この情報は、画像データの描画をサーバー側とクライアント側の間でおよびこの反対に切り替える際に使用されてもよい。具体的には、最新ビューに関する情報は、サーバー側描画へ／から切り替えるとき、クライアント側描画を開始するために、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎによって使用される。同様に、最新ビューに関する情報は、サーバー側描画へ切り替えるとき、画像生成および遠隔アクセスサーバー１０５によって使用されるので、画像生成および遠隔アクセスサーバー１０５は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎで描画された最後の画像から、描画を開始することができる。このように、環境１００は、画像データのクライアント側描画から画像データのサーバー側描画へおよびこの反対にシームレスに切り替えるために、クライアントとサーバーとの同期の機構として状態モデルを利用する。
【００２０】
描画がクライアント側で実行されるとき、画像データは、例えば、画像生成および遠隔アクセスサーバー１０５から、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎへストリーミングされる。クライアントデバイスは、次いで、表示するために画像データをローカルで描画することができる。描画がサーバー側で実行されるとき、画像は、サーバー１０２で描画され、サーバー遠隔アクセスプログラム１１１Ｂによって、クライアント遠隔アクセスプログラム１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｎを介して、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎへ通信される。
【００２１】
例示的医療画像環境
【００２２】
いくつかの実装において、画像データは、クライアントによって受信される医療画像データ（例えば、ＣＴまたはＭＲスキャン）であってもよい。ＣＴまたはＭＲスキャンは典型的には、一群の数１０から数１００の画像または「スライス」である、３Ｄデータセットを含む。スライスは、データセットを形成する際に、正規パターン（例えば、単位距離毎に１つのスライス）で取得される。スライスは、視野角を定義し、定義された視野角周囲に各ピクセルを描画することによって、画像に描画される。画像は、次いで、表示するためにクライアントに提供される。エンドユーザーは、ユーザーインターフェースアプリケーションを通じて、画像がクライアントデバイスの表示領域に合致しない場合、特定の領域に拡大、または特定領域の周囲でパンするために、表示された画像を縮小拡大またはパンすることができる。
【００２３】
図３は、クライアントとサーバーとの同期の例示的な動作フロー３００を示し、これによって、クライアントが、医療画像のクライアント側描画からサーバー側描画へシームレスに切り替えることができる。３０１で、クライアントデバイスによって描画される画像データの少なくとも一部の転送後、プロセスが開始する。このように、クライアントデバイスは、画像のクライアント側描画を開始している。クライアントが、クライアント側描画からサーバー側描画に切り替えると、現在表示されたスライスに隣接するスライスがローカルで利用可能であるように、スライスがメモリにキャッシュされてもよい。これによって、以下に説明するように、移行中にリクエストが行われた場合、クライアントデバイスが画像データを描画し、ユーザーに画像を提示することを可能にすることができる。３０２で、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのうちの１つのユーザーは、１つの動作を実行することができ、ユーザーは、クライアントが描画したビュー内でスライスをパン、拡大縮小、スクロール、またはウィンドウ／レベルを調整する。クライアント遠隔アクセスプログラムは、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの現在のビューの態様、および／あるいは状態を示すようにアプリケーション状態を更新することができる。
【００２４】
３０４で、クライアントデバイスは、可視境界、スライスインデックス、およびウィンドウ／レベルを含む、最新状態の表現をメモリ内に維持する。３０６で、クライアントデバイスは、サーバーが描画したビューに切り替える。これは、ユーザーによる手動切り替えの結果であってもよく、これによりユーザーはクライアントデバイス上の制御装置を有効にする。例えば、画像データは、例えば、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎ等で描画することが複雑で困難な場合がある。ユーザーは、描画モードを変更するために、クライアントデバイスの表示上の制御ボタンを押すことができる。代替として、または追加で、３０２の動作は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの機能の範囲外である、または上記のように、何らかの他のパラメータが、既定の閾値範囲外であると自動的に判断されてもよい。したがって、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、サーバーが描画したビューに自動的に切り替えることができる。このような事例において、最新可視境界、スライスインデックス、およびウィンドウ／レベル（画像表示状態）は、対応するサーバーが描画したビューにおいて、画像生成および遠隔アクセスサーバー１０５によって使用されるアプリケーション状態に書き込まれる。
【００２５】
３０８で、クライアント遠隔アクセスプログラムは、更新されたアプリケーション状態の差をサーバー遠隔アクセスプログラムへ通信する。例えば、状態モデル２００は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎでの最新アプリケーション状態をサーバー遠隔アクセスプログラムに伝達するために、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎと、画像生成および遠隔アクセスサーバー１０５との間で通信されてもよい。
【００２６】
３１０で、サーバー遠隔アクセスプログラムは、更新された状態モデルをパースしてアプリケーション状態を判断し、状態変更ハンドラは、サーバーが描画したビューの同期概要、オフセット、スライスインデックス、およびウィンドウ／レベルをクライアントデバイスの最新状態のそれぞれで更新する。
【００２７】
図４は、サーバーとクライアントとの同期の動作フロー４００を示し、これによって、クライアントが、サーバー側描画からクライアント側描画へシームレスに切り替えることができる。動作フロー４００において、クライアントが、サーバー側描画からクライアント側描画へ切り替えることができるいくつかの事例が存在する場合がある。各事例において、プロセスは４０１で開始し、描画された画像の少なくとも一部のクライアントデバイスへのダウンロードが開始しており、ユーザーが、クライアントデバイスで画像を閲覧している。このように、画像生成および遠隔アクセスサーバー１０５は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのために画像を描画しており、描画された画像がユーザーに表示されている。いくつかの実装において、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、現在表示されたスライスに隣接して描画されたスライスをキャッシュすることができるので、隣接して描画されたスライスは、クライアントがサーバー側描画からクライアント側描画へ切り替えると、ローカルで利用可能である。これによって、以下に説明するように、移行中にリクエストが行われた場合、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎが、画像データをユーザーに提供することを可能にすることができる。
【００２８】
例えば、第１の事例において、４０２で、ユーザーは、サーバーが描画したビューでパンまたは縮小拡大し、ＯｐｅｎＧＬカメラズームおよび／またはオフセットに変更を発生させる。クライアント遠隔アクセスプログラムは、ユーザーの相互作用を示すように状態モデル２００内のアプリケーション状態を更新することができ、状態モデル２００をサーバー遠隔アクセスプログラムに通信する。４０４で、サーバーは、新しい可視ビューポートの範囲を判断し、可視スライスのサイズに合わせてそれらを正規化する。４０６で、正規化されたビューポート境界は、状態モデル２００内のアプリケーション状態に書き込まれる。
【００２９】
４１６で、アプリケーション状態の差が、サーバーからクライアントへ送信される。アプリケーション状態の差は、状態モデル２００内で、サーバー遠隔アクセスプログラムから、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎへ通信される。４１８で、クライアントデバイスが、クライアントが描画したビューに切り替わると、クライアント遠隔アクセスプログラムは、更新されたアプリケーション状態の新しい可視範囲、スライスインデックス、またはウィンドウ／レベルをパースすることができる。画像データは、サーバー遠隔アクセスプログラムから、クライアント遠隔アクセスプログラムへ通信されるので、次いで、クライアントが描画したビューをサーバー状態に一致することができる。
【００３０】
４１８の切り替えは、ユーザーによる手動切り替えの結果であってもよく、これによりユーザーはクライアントデバイス上の制御装置を有効にする。例えば、ユーザーは、画像データの配信の信頼性が低くなる等、ネットワーク障害を経験している場合があり、ユーザーは、画像生成および遠隔アクセスサーバー１０５から画像データをダウンロードして描画するために、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの表示上の制御ボタンを押す場合がある。代替として、または追加で、実行される動作は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの機能の範囲内である、あるいは上記のように、何らかの他のパラメータが、既定の閾値範囲内であると自動的に判断されてもよい。したがって、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、クライアントが描画したビューに自動的に切り替えることができる。また、ユーザーがリクエストした動作はクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎで実行できると判断される場合もあり、このため、動作がクライアント側描画に切り替わる場合がある。
【００３１】
第２の事例において、４０８で、ユーザーは、サーバーが描画したビュー内のスライスをスクロールし、可視スライスに変更を発生させる場合がある。４１０で、状態モデル２００内のアプリケーション状態の可視スライスインデックスが更新される。プロセスは、次いで、４１６および４１８に進み、クライアントが描画したビューをサーバー状態と一致させる。
【００３２】
第３の事例において、４１２で、ユーザーは、サーバーが描画したビュー内のウィンドウ／レベルを変更する。４１４で、アプリケーション状態のウィンドウ／レベルが更新される。また、ユーザーがリクエストした動作はクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎで実行できると判断される場合もあり、このため、動作がクライアント側描画に切り替わる場合がある。プロセスは、次いで、４１６および４１８に進み、クライアントが描画したビューをサーバー状態と一致させる。
【００３３】
図５は、クライアントデバイスのうちの少なくとも１つがクライアント側描画を実行している複数のクライアントデバイス間の協働の動作フロー５００を示す。５０２で、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのうちの２つ以上が、協働セッションに入る。したがって、参加しているクライアントデバイスは、協働セッションにおいて、画像生成および遠隔アクセスサーバー１０５から通信される画像データと協働的に相互作用することを開始する。５０４で、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの参加しているクライアントデバイスのうちの少なくとも１つが、画像生成サーバーからの画像データをクライアント側で描画する。他のクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、画像データをクライアント側で描画、あるいは画像生成および遠隔アクセスサーバー１０５から画像を受信してもよい。
【００３４】
５０６で、状態モデル内のアプリケーション状態情報は、協働セッションに参加しているクライアントデバイスの各々の間で通信される。アプリケーション状態情報は、ユーザーインターフェースプログラムから受信されたユーザー入力データに従って、あるいはクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎによって現在表示されている画像内で更新される。
【００３５】
５０８で、状態モデル２００内に表現された変更があるかが決定される。例えば、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのうちの１つが、表示された画像に変更を生じさせる入力を受信した場合、その変更は、アプリケーション状態内に捕捉され、協働セッション内のクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの他のデバイス、ならびに画像生成および遠隔アクセスサーバー１０５に通信される。協働セッションの他のクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの各々は、５０４で、画像データを描画してそのそれぞれの表示を更新して画像データの表示の同期したビューを提示するか、あるいは画像生成および遠隔アクセスサーバー１０５から画像を受信して、画像データの表示の同期したビューを提示するかのいずれかである。ステップ５０４〜５０８を含む動作ループは、協働セッション全体で継続する。
【００３６】
５０８で、本開示に従い、２つ以上の変更が状態モデル２００に反映された場合、競合解決が実装されてもよい。例えば、最も直近の変更を優先することができる。いくつかの実装において、動作変換が使用されてもよい。
【００３７】
このように、本開示は、例示的な動作フロー５００を通じて、協働セッションのクライアントデバイスの間に協働を提供し、参加しているクライアントデバイスの各々が画像をクライアント側で描画する。
【００３８】
図６は、コンピュータネットワークを介する画像データの閲覧および協働のための環境１００の別の実装を図示する。図６に示されるように、図１の画像生成および遠隔アクセスサーバー１０５の機能は、いくつかのサーバー間、より具体的には、画像生成機能を実行する画像生成サーバー１０９、および遠隔アクセス機能を実行する別の遠隔アクセスサーバー１０２の間に分散されてもよい。例として、画像生成サーバーコンピュータ１０９は、例えば、ＰＡＣＳ（Ｐｉｃｔｕｒｅ  Ａｒｃｈｉｖｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｙｓｔｅｍｓ）データベース１０３内にある患者画像ファイル（研究）等のデータファイルにアクセスするための機構を提供するように、医療撮像アプリケーションの一部として、既存のネットワーク内の施設１０１Ａ（例えば、病院または他の医療施設）に提供されてもよい。ＰＡＣＳ技術を使用して、ＰＡＣＳデータベース１０３内に記憶されたデータファイルは、例えば、医療従事者による閲覧のために処理されるダイコム（ＤＩＣＯＭ：Ｄｉｇｉｔａｌ  Ｉｍａｇｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｉｎ  Ｍｅｄｉｃｉｎｅ）通信プロトコルを使用して診断ワークステーション１１０Ａに呼び出され、転送されてもよい。診断ワークステーション１１０Ａは、例えば、病院内ネットワーク等のローカルエリアネットワーク（ＬＡＮ）１０８を介して、ＰＡＣＳデータベース１０３に接続されてもよい。メタデータは、ＤＩＣＯＭクエリプロトコルを使用してＰＡＣＳデータベース１０３からアクセスされてもよく、ＬＡＮ１０８上のＤＩＣＯＭ通信プロトコルを使用して、情報が共有されてもよい。サーバー１０９は、カナダのアルバータ州カルガリーのＣａｌｇａｒｙ  Ｓｃｉｅｎｔｉｆｉｃ，Ｉｎｃ．から入手可能なＲＥＳＯＬＵＴＩＯＮＭＤサーバーを含むことができる。
【００３９】
サーバー１０２は、コンピュータネットワーク１１０に接続され、多様なクライアントデバイス（以下に記載）を、サーバーコンピュータ１０９によって提供される医療撮像アプリケーション等のアプリケーションに接続するために使用されるサーバー遠隔アクセスプログラム１１１Ｂを含む。例えば、サーバー遠隔アクセスプログラム１１１Ｂは、カナダのアルバータ州カルガリーのＣａｌｇａｒｙ  Ｓｃｉｅｎｔｉｆｉｃ，Ｉｎｃ．から入手可能なＰＵＲＥＷＥＢアーキテクチャの一部であってもよく、協働機能を含む。
【００４０】
クライアント遠隔アクセスプログラム１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｎは、人間が理解可能な様式でデータおよび／または画像を表示するためにユーザー相互作用を提供するため、ならびに例えば、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃまたは１１２Ｎのそれぞれ、タッチ画面１１４Ａを含むグラフィカル表示またはグラフィカル表示１１４Ｂ／１１４Ｎおよびキーボード１１６Ｂ／１１６Ｃを使用して、アプリケーションプログラムと相互作用するためのユーザー命令を受信することに依存してユーザー入力データを判断するために設計されてもよい。
【００４１】
本開示の環境において、状態モデル２００は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎ、サーバー１０９、およびサーバー１０２の間で連続的に渡される情報を含むことができ、ユーザーがＭＲまたはＣＴ画像を閲覧している場合にユーザーによって閲覧されている最新スライス等の情報を含むことができる。状態モデル２００は、ＣＰＵタイプ、ＧＰＵタイプ、総メモリ、現在のＣＰＵ利用状況、現在のＧＰＵ利用状況、現在のメモリ利用状況、バッテリ寿命、動作温度、表示サイズ、伝送／受信ビットレート等、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの能力および動作条件に関する他の情報を含むことができる。この情報および上述の最新スライス情報は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎ、あるいは遠隔アクセスサーバー１０２で、動作中にクライアント側描画からサーバー側描画へ、およびこの反対に自動的に切り替えることを判断するために使用されてもよい。例えば、クライアント遠隔アクセスプログラム１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｎ、および／またはサーバー遠隔アクセスプログラム１１１Ｂは、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎがクライアント側描画を現在実行可能であるかを判断するために、状態モデル内の能力および動作条件を検証してもよい。実行可能である場合、画像はクライアントデバイス上で描画される。実行可能でない場合、画像は画像生成サーバー１０９上で描画される。別の例では、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎのユーザーは、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎの能力を超える動作（例えば、パン、縮小拡大、スクロール）を要求する場合がある。このような場合、要求された動作に基づいて得られる画像は、画像生成サーバー１０９上で描画されてもよい。
【００４２】
代替として、またはこれに加えて、ユーザーインターフェースプログラムが、例えば、クライアントデバイス１１２Ａ、１１２Ｂ上で稼動されたウェブブラウザ等の汎用クライアントアプリケーションによって、ＵＲＬを介してその後アクセスされる、２イメージングサーバー１０９上で稼動されてもよい。ユーザーインターフェースは、例えば、ハイパーテキストマークアップ言語のＨＴＭＬ５を使用して実装されてもよい。代替として、またはこれに加えて、遠隔アクセスサーバー１０２は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、および１１２Ｎとの協働セッションに参加することができる。画像生成サーバー１０９、遠隔アクセスサーバー１０２、およびクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、図７の汎用デバイスに示されるようなハードウェアを使用して実装されてもよい。
【００４３】
サーバー側ＤＩＣＯＭキャッシング
【００４４】
クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎと画像生成サーバーコンピュータ１０９との間の接続が、画像生成サーバーコンピュータ１０９とＰＡＣＳデータベース１０３との間の接続よりも遅い場合、ユーザーがデータセット全体をスクロールすることができるには、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎにすべてのスライスが伝送されるまでユーザーが待機しなければならない場合がある。この事例に対応するため、いくつかの実装において、ＤＩＣＯＭデータは、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎに直接ストリーミングされるのではなく、キャッシュ１４０にキャッシュされてもよい。このように、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、インスタンスを受信する順番に関してさらに高い制御を発揮することができる。これによって、ユーザーが、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎにまだダウンロードされていないデータセットの一部をスクロールすること、およびクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎが、ユーザーが獲得するスライスをリクエストすることを可能にすることが可能になる。このように、ユーザーは、ユーザーがＰＡＣＳデータベース１０３から受信した最後のスライスまでスクロールしてから、次いで、ＰＡＣＳデータベース１０３からクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎに転送される１つのスライスを待機しなければならない場合にのみ、遅延を経験する可能性がある。
【００４５】
いくつかの実装は、サーバーコンピュータ１０９が、サービスプロセスを開始し、ユーザーが閲覧しているＤＩＣＯＭデータをロードすることを要求することができる。ＤＩＣＯＭデータはまた、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎに転送されてもよい。このように、キャッシュすることなく、ＤＩＣＯＭデータは、サービスプロセスにロードされるときに１回、およびクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎにロードされるときに１回、の合計２回、ＰＡＣＳデータベース１０３から移動する。このように、上述のようにキャッシュすると、ＰＡＣＳデータベース１０３上のロードを削減することができる。具体的には、キャッシュを利用する場合、上述のロード動作のいずれか最初に実行される動作で、サーバーコンピュータ１０９は、ＤＩＣＯＭデータをキャッシュすることができる。２番目のロード動作が実行されるとき、サーバーコンピュータ１０９は、ＰＡＣＳデータベース１０３からＤＩＣＯＭデータを２回目にロードする必要がなく、キャッシュ１４０からＤＩＣＯＭデータを呼び出すことができる。
【００４６】
いくつかの実装に従い、キャッシュ１４０は、ロードされるデータとして、演算結果を記憶するために使用することができる。可能性がある演算結果として、一連の画像が２Ｄ閲覧のためにどのような順番であるべきか、一連の画像が３ＤおよびＭＩＰ／ＭＰＲ閲覧のための容量にどのようにグループ分けされるべきか、およびサムネイルがスクロール中にデータセットのどこでユーザーに示されるかを記述する文書を含むが、これらに限定されない。
【００４７】
キャッシュ１４０の上記の機能を提供するため、ＤＩＣＯＭデータのキャッシュを実装するために、リファクタリングが使用されてもよい。例えば、インターフェースは、ＤＩＣＯＭデータのインターセプトをより効率的にキャッシュするために、ＰＡＣＳデータベース１０３からのデータをリファクタリングするように定義されてもよい。インターフェースはまた、キャッシュ１４０のデータが利用可能であることを示すために使用されてもよい。
【００４８】
いくつかの実装において、キャッシュ１４０は、Ｊａｖａで実装されるオープンソースで標準ベースの広範に使用されているキャッシュシステムである、Ｅｈｃａｃｈｅであってもよい。キャッシュ整合性チェックは、要求されたインスタンスがキャッシュ１４０内のインスタンスに一致することを保証するために実行されてもよい。要求されたインスタンスが見つからない場合、それらはロードされる。
【００４９】
代替として、またはこれに加えて、キャッシュ１４０は整合性を提供することができる。例えば、１つのクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎがロードされ、別のクライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎが最初のロードが完了する前に同じロードを開始すると、ＰＡＣＳデータベース１０３への接続はオープンしない場合があり、２番目のロードは、利用可能になると同時にキャッシュ１４０キャッシュ内のデータを使用して実行されてもよい。
【００５０】
代替として、またはこれに加えて、キャッシュ１４０は、キャッシュ１４０に記憶された他のデータから派生したデータの記録システムになることができるデータストアを提供する。このデータは、ソースデータもまたキャッシュ１４０内にある限り、有効かつ有用である。
【００５１】
オンデマンドのスライスロード／バッファ機構
【００５２】
いくつかの実装において、データがサーバーコンピュータ１０９上でコード変換され、サーバー側バッファ１５０内に記憶される、データバッファ／ロード機構が提供されてもよい。いったんロードされると、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１１２Ｎは、ロードするための特定のインスタンスを要求する能力を有する。このような実装は、不足しているクライアント側のスライスを呼び出し、ユーザーが閲覧することに関心がある可能性があるクライアント側スライスをプルすることを可能にし、例えば、サーバーコンピュータ１０９がキャッシュするとユーザーがクライアントでスクロールする場合、サーバーコンピュータ１０９は最近接のスライスを優先することができる。
【００５３】
代替として、またはこれに加えて、コード変換した画像のクライアント側のバッファ実行は、１つのデータセットの複数のビューのためにＰＡＣＳデータベース１０３またはサーバーコンピュータ１０９上のロードを削減するために実行されてもよい。
【００５４】
いくつかの実装において、解析は、クライアントデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、または１２１Ｎで、クライアント遠隔アクセスプログラム１２１Ａ、１２１Ｂ、１２１Ｃ、１２１Ｎにおいて提供されてもよい。例えば、ページビューは、データがバッファ１５０またはＰＡＣＳデータベース１０３からプルされていることの指標を提供するために、ビューコントローラがトリガされると必ずトリガされてもよい。
【００５５】
いくつかの実装において、ＨＩＰＡＡコンプライアンスを提供するために、ログ書き込みが追加されてもよい。例えば、アプリケーションの活動、認証、ＰＡＣＳデータベース１０３への問い合わせ、および転送されたインスタンスがログに書き込まれてもよい。ログの書き込みは、フラットファイルまたはデータベースに対して実行されてもよい。
【００５６】
多くの他の汎用または特別目的のコンピューティングシステム環境または構成が、使用され得る。使用に適するであろう周知のコンピューティングシステム、環境、および／または構成の例は、限定されるものではないが、パーソナルコンピュータ、サーバーコンピュータ、手持ち型またはラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、埋め込み型システム、上記システムまたはデバイスのいずれかを含む分散型コンピューティング環境、および同様のものを含む。
【００５７】
コンピュータによって実行される、例えばプログラムモジュールなどのコンピュータで実行可能な命令が、使用され得る。一般的に、プログラムモジュールは、特定のタスクを機能させるまたは特定の抽象データ種類を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。分散型コンピューティング環境が、使用され得、そこでは、タスクは、通信ネットワークまたは他のデータ伝送媒体を通してつなげられる遠隔処理デバイスによって機能される。分散型コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶デバイスを含むローカルおよび遠隔の両方のコンピュータ記憶媒体内に位置し得る。
【００５８】
図７は、例示的な実施形態および態様が実装されてもよい、例示的なコンピューティング環境を示す。このコンピューティングシステム環境は、適切なコンピューティング環境の一例に過ぎず、使用または機能の範囲の何らかの制限を示唆することを目的としない。
【００５９】
図７を参照にして、本明細書において説明される態様を実装するための例示的なシステムは、デバイス７００などのデバイスを含む。それの最も基本的な構成において、デバイス７００は、典型的には少なくとも１つの処理部７０２およびメモリ７０４を含む。正確な構成およびデバイスの種類次第で、メモリ７０４は、揮発性（例えば、ランダムアクセスメモリ（ＲＡＭ）など）、不揮発性（例えば、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリなど）、またはその２つのいくつかの組み合わせとすることができる。これの最も基本的な構成は、破線７０６によって図７に例示される。
【００６０】
デバイス７００は、付加的な特徴／機能を有し得る。例えば、デバイス７００は、限定されるものではないが、磁気もしくは光学ディスクまたはテープを含む付加的な（取り外し可能および／または取り外し不可能な）記憶装置を含み得る。そのような付加的な記憶装置は、取り外し可能な記憶装置７０８および取り外し不可能な記憶装置７１０によって、図７に例示される。
【００６１】
デバイス７００は、典型的には、種々のコンピュータで読み取り可能な媒体を含む。コンピュータで読み取り可能な媒体は、デバイス７００によってアクセスされ得る任意の可用な媒体とすることができ、揮発性と不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
【００６２】
コンピュータ記憶媒体は、例えばコンピュータで読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性の、ならびに取り外し可能および取り外し不可能な媒体を含む。メモリ７０４、取り外し可能な記憶装置７０８、および取り外し不可能な記憶装置７１０は、すべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定されるものではないが、ＲＡＭ、ＲＯＭ、電気的に消去可能なプログラム読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用され得るおよびデバイス７００によってアクセスされ得る任意の他の媒体を含む。任意のそのようなコンピュータ記憶媒体は、デバイス７００の一部とすることができる。
【００６３】
デバイス７００は、デバイスが他のデバイスと通信することを可能にする（複数の）通信接続７１２を含み得る。デバイス７００はまた、例えばキーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの（複数の）入力デバイス７１４を含み得る。ディスプレイ、スピーカ、プリンタなどの（複数の）出力デバイス７１６もまた、含まれ得る。すべてのこれらのデバイスは、当技術分野において周知であり、ここで長々と記述される必要はない。
【００６４】
本明細書において説明される様々な技法は、ハードウェアまたはソフトウェアに関して、あるいは適切な場合には両者の組み合わせに関して実装され得ることが理解されるべきである。それ故、現在開示された主題の方法および装置、あるいはそれらの一定の態様または部分は、例えばフロッピーディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または任意の他の機械で読み取り可能な記憶媒体などの具体的な媒体に具現化されたプログラムコード（すなわち、命令）の形態を取り得、プログラムコードがコンピュータなどの機械にロードされ、その機械によって実行されると、機械は、現在開示された主題を実践するための装置になる。プログラム化できるコンピュータ上のプログラムコードの実行の場合には、デバイスは、一般的に、プロセッサ、プロセッサによって読み取り可能な（揮発性および不揮発性メモリならびに／あるいは記憶要素を含む）記憶媒体、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含む。１つ以上のプログラムは、例えば、アプリケーションプログラミングインターフェース（ＡＰＩ）、再使用可能な制御装置、または同様のものの使用を通して、現在開示された主題に関して説明される処理を実装し得るまたは利用し得る。そのようなプログラムは、コンピュータシステムと通信するための高レベル手順またはオブジェクト指向プログラミング言語で実装され得る。しかしながら、（複数の）プログラムは、必要に応じて、アセンブリまたは機械言語で実装され得る。いずれの場合においても、言語は、コンパイルされたまたは解釈された言語であり得、それは、ハードウェア実装と組み合わされ得る。
【００６５】
主題は、構造的特徴および／または方法の動作に特有の言語で説明されたが、添付の特許請求の範囲において定義された主題は、必ずしも上記特有の特徴または動作に限定されないことが理解されることになる。むしろ、上記特有の特徴または動作は、特許請求の範囲を実施する形態例として開示される。
【図１】
2015534160.tif 000003
【図２】
2015534160.tif 000004
【図３】
2015534160.tif 000005
【図４】
2015534160.tif 000006
【図５】
2015534160.tif 000007
【図６】
2015534160.tif 000008
【図７】
2015534160.tif 000009
【国際調査報告】
2015534160.tif 000010
2015534160.tif 000011