(57)【要約】【課題】データ処理の効率化を図る。【解決手段】時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、統合したデータの個数を保存する処理と、いずれかの時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出する処理と、更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、同時に更新処理を行なっている時系列データの更新前平均値とデータの個数とを乗算した値に差分を加算し、データの個数で除算することによって時系列データの更新後平均値を算出する処理と、算出した更新後平均値をデータベーステーブルに格納する処理と、を含む。【選択図】図１１Ａ
2014035591.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、
いずれかの前記時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出する処理と、
前記更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、
前記同時に更新処理を行なっている時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出する処理と、
前記算出した更新後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項２】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、
新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、
前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出する処理と、
前記算出した追加後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項３】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、
いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、
前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出する処理と、
前記算出した削除後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とするデータ処理プログラム。
【請求項４】
２以上の時系列データが更新された場合、更新された各時系列データを統合する統合時間粒度を計算する処理と、
前記統合時間粒度以上の時間粒度に対応するデータベーステーブルの時系列データを単一の値にまとめる処理と、を含むことを特徴とする請求項１記載のデータ処理プログラム。
【請求項５】
前記統合時間粒度では、更新された前記各時系列データの間隔が０であることを特徴とする請求項４記載のデータ処理プログラム。
【請求項６】
前記統合時間粒度は、更新されたいずれか２つの時系列データの間隔のうち、最大の間隔を有する２つの時系列データが統合される時間粒度であることを特徴とする請求項４記載のデータ処理プログラム。
【請求項７】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、
いずれかの前記時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出するステップと、
前記更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、
前記同時に更新処理を行なっている時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出するステップと、
前記算出した更新後平均値を前記データベーステーブルに格納するステップと、を少なくとも含むことを特徴とするデータ処理方法。
【請求項８】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、
新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、
前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出するステップと、
前記算出した追加後平均値を前記データベーステーブルに格納するステップと、の一連の処理をコンピュータに実行させることを特徴とするデータ処理方法。
【請求項９】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、
前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、
前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、
いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、
前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出するステップと、
前記算出した削除後平均値を前記データベーステーブルに格納するステップと、の一連の処理をコンピュータに実行させることを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で多段階に表示するために時系列データの処理を行なう技術に関し、特に、時系列データが更新、追加または削除された場合の時系列データの処理に関する。
【背景技術】
【０００２】
従来から、電子カルテシステムが知られている。例えば、特許文献１には、医療行為の相互間の関係を考慮し、効率よく医療情報を入力して電子カルテを構築する電子カルテシステムが開示されている。この電子カルテシステムは、医療行為およびその関連情報を含む医療行為情報と、この医療行為情報の適用時間情報とにより電子カルテ情報を構成する。また、その電子カルテ情報の医療行為情報を時間軸上に閲覧情報として表示する。また、編集中の電子カルテ情報における医療行為情報を時間軸上に表示させる。そして、ユーザの操作を受け付けて、電子カルテにおける医療行為情報を編集する。
【０００３】
図１２および図１３は、電子カルテシステムの画面表示例を示す図である。図１２に示すように、この電子カルテシステムは、上部に多段階の時間軸（例えば、年単位・月単位・日単位）を有する。また、その下に診療行為（オブジェクト）が表示される。この電子カルテシステムでは、左に並ぶ項目が医療行為（病名・投薬・診断・検査等）であって、その右側に実際の行為が、一定の時間幅をもって記録される。
【０００４】
ユーザは、図１３に示すように、上部の時間軸を選択することで、任意の尺度での情報俯瞰が可能であり、任意の時間にジャンプすることができる。任意の項目をピックアップし、それぞれを最適なタイムスケールで見ることにより、一見ランダムに見える時系列データである医療情報の因果関係の推定等をすることができる。このスケールの変換を、指の操作（例えばピンチイン・アウト）で行なうことで、より直感的にスケールを切り替えることが可能である。
【０００５】
このように、ユーザは、多段階のスケールを表示し、任意の項目をピックアップし、それぞれを指のピンチイン・アウト等の操作をすることによって最適なタイムスケールで見ることができる。これにより、直感的に操作をしながら、一見ランダムに見える時系列データである医療情報の因果関係の推定等をすることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９２００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらのデータについては、データ数が極めて量が多い。例えば、糖尿病患者であれば、毎日投薬や検査がなされるが、これらは年のスケールでは３５６個のデータを持つ。また、これらの投薬や検査の種類は数百もある。そのため、これらのデータを表すデータオブジェクトの数は、一般的には数千から数万へと膨れ上がる。サーバ・クライアントで構成されるシステムにおいて、これらのデータを表示するためにはデータ伝送および描画に多くの時間がかかり、ユーザレスポンスが落ちてしまう。
【０００８】
一方、図１３に示すように、タイムスケールを拡大することによって、プロット点の間隔が狭まって、複数のデータが統合されて見えるようになってしまう。その結果、統合されたデータは、表示の際にすべてのデータを表示する必要はなくなり、少なくとも一つのデータを抽出すれば足りることになる。従って、統合される倍率に応じて、データを間引くことが可能となり、間引いた分だけデータ量が少なくなり、処理速度の向上を図ることが可能である。このような場合、予めグラフを伝送する際の倍率を決めておき、その倍率においてグラフの描画に必要なデータを準備しておくことによって、高速にグラフを描画し、伝送することが可能となる。
【０００９】
図１４は、タイムスケールと倍率との関係を定めた図である。図１４に示す伝送番号１〜２０に相当する倍率において、グラフを描画する際に必要なデータのみをデータベーステーブルとして保持することで、不要なデータのサーチが必要なくなり、グラフ作成時間が短縮できる。
【００１０】
このような手法では、異なる時間粒度ごとに視認可能なデータのみを複数のデータベーステーブル上に保存するため、表示の際に、特定の時間粒度において表示に必要なデータのみを取り扱うことができ、データを閲覧する際には極めて効果的に動作する。
【００１１】
しかしながら、時系列データの入力が発生した場合、時系列データの更新をするためには上記複数段階全ての更新処理をしなければならない。このとき、視認できる時系列データのみを利用するために、オーバーラップするデータ同士の平均を計算して、新たなデータとする必要があるが、この処理に時間がかかる。また、上記２０段階のデータベーステーブルのデータを更新・追加する場合、通常は、図１４で示す伝送番号が低いデータベーステーブルから順番に更新をする。同時に時系列データの更新が発生した場合、上位のテーブルでそれら２つのデータがマージされる可能性があるため、無駄な更新が発生する可能性がある。
【００１２】
本発明は、このような事情に鑑みてなされたものであり、時系列データの新規追加・値の更新・削除のために、複数の時系列データがまとめられたデータについてオリジナルのデータ数を保持し、時系列データの更新の際に複数ある時系列データのマージタイミングを推定することによって、データ処理の効率化を図ることができるデータ処理プログラムおよびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
（１）上記の目的を達成するために、本発明は、以下のような手段を講じた。すなわち、本発明のデータ処理プログラムは、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、いずれかの前記時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出する処理と、前記更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、前記同時に更新処理を行なっている時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出する処理と、前記算出した更新後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とする。
【００１４】
このように、いずれかの前記時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出し、前記更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出し、前記同時に更新処理を行なっている抽出した時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出し、前記算出した更新後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの更新を行う際に、以前の手法では、該当する時間範囲のデータを全て取得して、平均化処理を行わなければならなかったが、本手法では、データベース上に予めデータ数を保存しておくことができるので、平均の計算が極めて簡単になる。
【００１５】
（２）また、本発明のデータ処理プログラムは、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出する処理と、前記算出した追加後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とする。
【００１６】
このように、新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出し、前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出し、前記算出した追加後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの追加を行う際に、追加の際の平均処理の時間を抑えて出来る限り多くの同時追加が可能となる。
【００１７】
（３）また、本発明のデータ処理プログラムは、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理プログラムであって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存する処理と、いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出する処理と、前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出する処理と、前記算出した削除後平均値を前記データベーステーブルに格納する処理と、の一連の処理をコンピュータに実行させることを特徴とする。
【００１８】
このように、いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出し、前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出し、前記算出した削除後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの削除を行う際に、削除の際の平均値の計算処理を抑えて出来る限り多くの同時削除が可能となる。
【００１９】
（４）また、本発明のデータ処理プログラムは、２以上の時系列データが更新された場合、更新された各時系列データを統合する統合時間粒度を計算する処理と、前記統合時間粒度以上の時間粒度に対応するデータベーステーブルの時系列データを単一の値にまとめる処理と、を含むことを特徴とする。
【００２０】
このように、２以上の時系列データが更新された場合、更新された各時系列データを統合する統合時間粒度を計算し、前記統合時間粒度以上の時間粒度に対応するデータベーステーブルの時系列データを単一の値にまとめるので、データ処理の効率化と処理速度の向上を図ることが可能となる。
【００２１】
（５）また、本発明のデータ処理プログラムにおいて、前記統合時間粒度では、更新された前記各時系列データの間隔が０であることを特徴とする。
【００２２】
このように、前記統合時間粒度では、更新された前記各時系列データの間隔が０であるので、視認不能となる時系列データを統合し、データ処理の効率化と処理速度の向上を図ることが可能となる。
【００２３】
（６）また、本発明のデータ処理プログラムにおいて、前記統合時間粒度は、更新されたいずれか２つの時系列データの間隔のうち、最大の間隔を有する２つの時系列データが統合される時間粒度であることを特徴とする。
【００２４】
このように、前記統合時間粒度は、更新されたいずれか２つの時系列データの間隔のうち、最大の間隔を有する２つの時系列データが統合される時間粒度であるので、視認不能となる時系列データを統合し、データ処理の効率化と処理速度の向上を図ることが可能となる。
【００２５】
（７）また、本発明のデータ処理方法は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、いずれかの前記時系列データの更新処理を行う際に、同時に更新処理を行なっている更新データとの差分を算出するステップと、前記更新処理を行なう時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、前記同時に更新処理を行なっている時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出するステップと、前記算出した更新後平均値を前記データベーステーブルに格納するステップと、を少なくとも含むことを特徴とする。
【００２６】
このように、いずれかの前記時系列データが更新された際に、更新前後の時系列データの差分を算出し、前記更新された時系列データが存在する時間範囲に属する時系列データを各データベーステーブルから抽出し、前記抽出した時系列データの更新前平均値と前記データの個数とを乗算した値に前記差分を加算し、前記データの個数で除算することによって時系列データの更新後平均値を算出し、前記算出した更新後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの更新を行う際に、更新の処理回数を抑えて出来る限り多くの同時更新が可能となる。
【００２７】
（８）また、本発明のデータ処理方法は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出するステップと、前記算出した追加後平均値を前記データベーステーブルに格納するステップと、の一連の処理をコンピュータに実行させることを特徴とする。
【００２８】
このように、新たに時系列データが追加された際に、前記追加された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出し、前記抽出した時系列データの追加前平均値と前記データの個数とを乗算した値に前記追加された時系列データの値を加算し、前記データの個数に１を加えた値で除算することによって時系列データの追加後平均値を算出し、前記算出した追加後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの追加を行う際に、追加の処理回数を抑えて出来る限り多くの同時追加が可能となる。
【００２９】
（９）また、本発明のデータ処理方法は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度を多段階に変化させて表示するために前記時系列データの処理を行なうデータ処理方法であって、前記時系列データを視覚化して表示する時間粒度の中の特定の時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、前記各時間粒度において視認できなくなる時系列データを平均化して、単一のデータに統合すると共に、前記統合したデータの個数を保存するステップと、いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出するステップと、前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出するステップと、前記算出した削除後平均値を前記データベーステーブルに格納するステップと、の一連の処理をコンピュータに実行させることを特徴とする。
【００３０】
このように、いずれかの前記時系列データが削除された際に、前記削除された時系列データを含む時間範囲に属する時系列データを各データベーステーブルから抽出し、前記抽出した時系列データの削除前平均値と前記データの個数とを乗算した値から、前記削除された時系列データの値を減算し、前記データの個数から１を減じた値で除算することによって時系列データの削除後平均値を算出し、前記算出した削除後平均値を前記データベーステーブルに格納するので、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの削除を行う際に、削除の処理回数を抑えて出来る限り多くの同時削除が可能となる。
【発明の効果】
【００３１】
本発明によれば、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの更新、追加または削除を行う際に、更新、追加または削除の処理回数を抑えて出来る限り多くの同時更新、追加および削除が可能となる。
【図面の簡単な説明】
【００３２】
【図１】ピンチイン・アウトによる拡大率の変更の様子を示す図である。
【図２】拡大率に応じてプロット点の間隔が変化する様子を示す図である。
【図３】本実施形態に係る画像表示装置の概略構成を示すブロック図である。
【図４】画面における隣り合う２つのデータプロットの一例を示す図である。
【図５】データ発生間隔と発生間隔を有するデータ数との関係が正規分布を示す様子を示す図である。
【図６】１ドットを表現するための秒数と、視認できるデータ数との関係を示す図である。
【図７】拡大率を横軸にとり、表示データ数を縦軸にとり、視認性が低下する区間と視認性が低下しない区間とを示す図である。
【図８】最小時間間隔を持つデータが重なる点と、最大時間間隔を持つデータが重なる点を示す図である。
【図９】倍率の配置を示す図である。
【図１０】本実施形態に係るデータベーステーブルを示す図である。
【図１１Ａ】本実施形態に係るデータ処理プログラムの動作を示すフローチャートである。
【図１１Ｂ】本実施形態に係るデータ処理プログラムの動作を示すフローチャートである。
【図１２】電子カルテシステムの画面表示例を示す図である。
【図１３】電子カルテシステムの画面表示例を示す図である。
【図１４】倍率を区分した例を示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の実施形態について説明する。まず、本明細書における「タイムスケールの拡大」について定義する。「タイムスケールの拡大」とは、小さいタイムスパンでデータを表示している状態から、大きいタイムスパンでデータを表示している状態へ遷移させることをいう。次に、「拡大率」について定義する。「拡大」が生ずる時、プログラム内部では、プロット点の書き換えを実行する。具体的には、隣り合うプロット点同士の間隔を縮める操作を実行する。このときの縮める割合を、「拡大率」と定義する。この「拡大率」は、実装に依存するが、例えば、タブレット端末の画面上で、ユーザがピンチイン・アウトを行なう場合のユーザの指の間隔の変化に基づいて、「拡大率」を変化させる。
【００３４】
図１は、ピンチイン・アウトによる拡大率の変更の様子を示す図である。図１において、紙面に対して上側の図がピンチイン前の画面表示例を示しており、ユーザの２本の指が触れている座標間距離をｍで表している。一方、紙面に対して下側の図がピンチイン後の画面表示例を示しており、ユーザの２本の指が触れている座標間距離をｌで表している。このとき、この指間隔の距離差分（ｍ−ｌ）に応じて、プロット点の間隔を縮めれば、表示上グラフが「拡大」したことになる。
【００３５】
ここで、任意の係数γを使って、「拡大率」をγ（ｍ−ｌ）と表わす。このγは任意であるため、適当な値にセットすることができる。ユーザが「拡大」したいと考える場合は、大きな値に設定する一方、ゆっくりと「拡大」したいと考える場合は、小さな値に設定すれば良い。
【００３６】
図２は、拡大率に応じてプロット点の間隔が変化する様子を示す図である。図２に示すように、「拡大」したときに、プロット点の間隔が、１／γ（ｍ−ｌ）倍になるように計算すると、拡大率に応じて、プロット点間隔が変化し、画面が「拡大」したように見える。
【００３７】
図３は、本実施形態に係る画像表示装置の概略構成を示すブロック図である。この画像表示装置１０では、表示部１１が、グラフ上に時系列に沿ってプロットされた複数のデータをドットで表示する。スケール変更部１２は、ユーザによって設定されたグラフの表示倍率に応じて、グラフのタイムスケールを拡大または縮小する。急勾配特定部１３は、１ドットを表現する時間数と視認できるデータ数との関係を示し、データ種別に対応するグラフにおいて、勾配が急激に減少する点を特定する。平均化処理部１４は、急勾配特定部１３が特定した点に対応するドット数と単位時間当たりのドット数とを乗算して得られる最小統合倍率よりも大きい倍率を複数の区分に分割し、各区分に対応する倍率で統合される複数のデータを平均化する。データベーステーブル１５は、平均化処理部１４で平均化された各データを区分毎に保持する。画面制御部１６は、ユーザによって設定されたグラフの表示倍率に対応するデータをデータベーステーブルから抽出し、グラフ化して画面に表示する。なお、上記の各構成要素は、制御バス１７によって接続され、相互に信号の送受信を行なうことができるように構成されている。
【００３８】
一般的に、自然界に存在するデータを時系列的にプロットする場合、その発生間隔には偏りが存在することが多い。医療で用いられるデータを例に取ると、例えば、糖尿病慢性疾患の患者の投薬発生イベントに関するデータは、血糖改善剤等を毎食後服用し、血糖検査を毎食後行なうため、３〜４時間に１回程度の発生間隔で発生することが多く、数分単位・数年単位での発生間隔はとらないことが多い。
【００３９】
さらに、医療で用いられるデータ以外の例をあげると、農業等では四季の移り変わりによって、種まき・収穫等が決定するため、ほぼ１年に１回程度の発生間隔で、イベントが発生することになる。
【００４０】
上述したように、小さいタイムスパンから大きいタイムスパンで表示するシステム、例えば、秒・分・時間・日・月・年・１０年の表現を持つシステムでは、このような様々なタイムスパンを持つデータをプロットして表現することができるため、時系列データの推移を俯瞰的に把握することに適している。
【００４１】
ところで、上記のようなデータを、システム上で時系列プロットをして表現する場合、上述したように、グラフの視認性低下が発生する。しかも視認性低下の発生する領域が、表示する時系列データの種類によって大きく偏る。すなわち、表示するデータの性質に応じて、データの発生間隔の平均周期が異なるため、平均周期によって決定されるタイムスパンに応じて、視認性低下の傾向が大きく変わる。このような偏りを、横軸にデータを表示するための時間幅、縦軸を表示可能なデータプロット数をとってグラフ化すると、シグモイド形状をとることが推測できる。以下、その理由について説明する。
【００４２】
図４は、画面における隣り合う２つのデータプロットの一例を示す図である。図４では、例えば、α番目と（α＋１）番目の隣り合う２つのデータプロットを考える。各データプロットの開始時刻を、それぞれｔｓα（秒）、ｔｓ（α＋１）（秒）と定義する。このとき、図４に示すように、これらのデータの間隔は、
｛ｔｓ（α＋１）−ｔｓα｝（秒）
と表わされる。ここで、システム上、１秒＝ａ（ｄｏｔ）で表わされるとすると、この間隔は、
ａ｛ｔｓ（α＋１）−ｔｓα｝（ｄｏｔ）
と表わされる。
【００４３】
次に、ユーザが画面上でピンチイン操作を行なったときにデータプロット間隔について考える。ピンチイン前のデータプロット間隔ａ｛ｔｓ（α＋１）−ｔｓα｝に対して、拡大操作１／γ（ｍ−ｌ）倍をすると、画面上のデータプロット間隔が変化する。つまり、ピンチイン後のデータプロット間隔は、
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／γ（ｍ−ｌ）
となる。
【００４４】
人間が視認できるサイズを、最も厳しい条件として、ディスプレイ上の１ドットとすると、データプロット間隔が、１ドットよりも小さければ、２つのデータを肉眼で区別することができず、両者が統合して見えることになる。そこで、２つのデータを単一のデータで代表することが可能となる。すなわち、次式を満たした時に、２つのデータが統合される。
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／γ（ｍ−ｌ）＜１
なお、人間が視認できるサイズを、最も厳しい条件である１ドットとすることによって、最も良い視認性を確保することが可能となる。
【００４５】
ここで、本発明者らは、データプロットを効率的に扱うため、様々な拡大率で表示されるグラフを生成する上で、必要最低限のデータを扱うようにシステムを組むと、システムが高速化されることに着目し、予めデータを特定の拡大率に応じて、マージした上でデータベース上に保持することによって、効率の良いグラフ作成が可能となることを見出し、本発明をするに至った。
【００４６】
拡大率γ（ｍ−ｌ）を、Ｅで表わすと、上記の式は、次のように簡略化される。
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／Ｅ＜１
ここで、拡大率Ｅに応じて、視認できるプロット数がどのように変化するかについて考える。式変形により、
ａ｛ｔｓ（α＋１）−ｔｓα｝＜Ｅ
が得られる。この式は、２つのデータ間のプロット間隔が、一定の拡大率以下であれば、マージ（統合）しても良いことを意味している。その結果、マージするときの拡大率Ｅは、データ発生間隔｛ｔｓ（α＋１）−ｔｓα｝に比例する、ということが理解できる。
【００４７】
次に、このデータ発生間隔について考える。データ発生間隔は、医療データの場合、一定の周期に従うことが多い。例えば、糖尿病患者は、食後にインスリンの注射をしたり、投薬をしたり、血糖値検査を食後２時間後にしたりする。このことは、概ね３、４時間という時間がデータ発生間隔に相当することを意味する。ただし、このようなデータは自然界のデータのため、“ゆらぎ”が必ず発生する。例えば、上記の例では、夕食を食べる時間は、昨日６時であったが、今日は７時だったということが生ずる。このような“ゆらぎ”が存在することを考えると、データ発生間隔は、平均周期を平均とする正規分布に従うと考えられる。
【００４８】
図５は、データ発生間隔と発生間隔を有するデータ数との関係が正規分布を示す様子を示す図である。上述したように、拡大率Ｅはデータ発生間隔に比例するため、図５の横軸のデータ発生間隔をＥに置き換えたとしても、正規分布が成立する。ここで、上記の正規分布において、最も小さい拡大率から徐々に拡大率を大きくしていったときの表示可能なデータ数の分布について考える。これは、上記の正規分布を累積させた累積正規分布関数により求めることができる。この累積正規分布関数は、シグモイド関数になることが知られている。シグモイド関数は、ある瞬間にグラフの傾きが急増するという特徴を有している。これは、拡大率が大きくなると、ある瞬間にディスプレイ上に表示できないデータが発生し始めるということを意味している。
【００４９】
図６は、１ドットを表現するための秒数と、視認できるデータ数との関係を示す図である。ここでは、一例として、患者に対してあるカプセル投与をした場合のデータをプロットしたものである。図６に示すように、このようなデータでは、年および１０年のスケールで視認性が大きく低下していることがわかる。これは投薬が、１月あるいは数日単位で行なわれることが多いため、このようなグラフになっていると考えられる。また、その他の例を考えると、健康診断などの検査は、１年に１回の頻度で行なわれることが多いため、１０年スケールよりも大きなスケールでは視認性低下が起こると予想される。また、心拍のようなデータであれば、数秒単位でのデータプロットになるため、時スケール等での視認性低下が激しいと予想される。さらにナノ秒単位での化学反応等をプロットすれば、秒スケールでの視認性低下が激しいと予想される。
【００５０】
図７は、拡大率を横軸にとり、表示データ数を縦軸にとり、視認性が低下する区間と視認性が低下しない区間とを示す図である。すなわち、視認性が低下する区間では、細かく区分けしてデータの伝送を行なう一方、視認性が低下しない区間では、おおまかにデータの伝送を行なえば良い。ここで、データを予めマージした形でデータベースに登録しておけば、処理速度を向上させることが可能となる。上記のような細かい伝送が必要な区間上では、細かく拡大率を区切ってデータを登録し、おおまかなデータの伝送が必要な区間では、データベース上のテーブル１つで済むこととなる。
【００５１】
すなわち、図６および図７に示すようなシグモイド形状において、シグモイド関数の急勾配が始まるタイムスパンを決定できれば、それよりも大きなタイムスパンにおけるデータテーブルにおいては、視認できなくなるデータプロットをそれぞれのデータプロットの間隔から計算により割り出す必要はなくなり、計算負荷を小さくすることが可能となる。また、急勾配を割り出した後は、急勾配において倍率を細かく設定し、視認性が低下するデータをまとめる計算を、倍率が低いテーブルから順次実行すれば良い。
【００５２】
上述したように、拡大率をＥとして、１秒あたりａドットで表されるとしたとき、以下の式を満たしたときに、２つのデータが統合される。
ａ｛ｔｓ（α＋１）−ｔｓα｝＜Ｅ
テーブルごとにＥが決まるから、各々のＥごとに上記を計算して、不等式を満たすものがあれば、２つをまとめたデータとすれば良い。この際、値が異なる２つのデータであった場合は、平均化処理等を行なう。
【００５３】
具体的な急勾配の検出方法として、下記に示す手法を用いる。図８は、最小時間間隔を持つデータが重なる点と、最大時間間隔を持つデータが重なる点を示す図である。
ステップ１：データの入力時に、入力されたデータの前のデータとの間隔を保持する。
ステップ２：保持された間隔のうち、最小間隔を取り出す。
ステップ３：最小間隔を縮めていったときに、それが見えなくなるタイムスパンを計算する。
ステップ４：上記ステップにて計算された、タイムスパンを視認性が低下する急勾配と推定し、該当する倍率のデータテーブルより上位の倍率を持つデータテーブルの作成を順次行なう。
【００５４】
上記のように、視認性低下区間で、細かく倍率を区切ってデータテーブルを作成することで、グラフの視認性低下を抑えることが可能である。図９は、倍率の配置を示す図である。図９に示すように、視認性の低下する区間で、２倍の倍率を設定し、低下しない区間で３や５の倍率を配置している。その上で、これらの倍率ごとにデータテーブルを作成し、グラフを描画する際に、ユーザのグラフの表示倍率指定に合わせてデータテーブルを使用する。
【００５５】
図１０は、本実施形態に係るデータベーステーブルを示す図である。図１０に示す倍率において、グラフ描画に必要なデータを予め作成することにより、最小限のデータ数でグラフを描画し、伝送を行なうことが可能となる。すなわち、図１０に示すように、伝送番号１〜２０に相当する倍率において、グラフを描画する際に必要なデータのみを１つの独立したテーブルであるデータベーステーブルとして保持することで、不必要なデータのサーチが必要なくなり、グラフ作成時間を短縮することが可能となる。
【００５６】
一般的に、ある種の時系列に従った知識を管理する場合、複数の時系列データを横断的に閲覧することが望ましい。例えば、医療情報については、投薬情報と検査情報は横断的に閲覧する必要がある。一方、これらのデータの発生間隔は様々に存在する。
【００５７】
上記のように、例えば、秒・分・時間・日・月・年・１０年といった、小さいタイムスパンから大きいタイムスパンで表示するシステムでは、このような様々なタイムスパンを持つデータをプロットして表現することができるため、時系列データの推移を俯瞰的に把握することに適している。
【００５８】
ところで、一般的に、自然界に存在するデータを時系列的にプロットする場合、その発生間隔には、データ固有の平均的な周期が存在することが多い。医療で用いられるデータを例に取ると、例えば、糖尿病慢性疾患の患者の投薬発生イベントに関するデータは、血糖改善剤等を毎食後服用し、血糖検査を毎食後行なうため、３〜４時間に１回程度の発生間隔で発生することが多く、数分単位・数年単位での発生間隔はとらないことが多い。
【００５９】
上記のようなデータを、従来技術のシステム上で時系列プロットをして表現する場合、時系列的に表示する時間スパンを変化させたとき、グラフ上の視認できるデータの数は特定の時間粒度付近（図１０では伝送番号）で大きく減少しはじめる。これは、表示するデータの性質に応じて決定される、平均周期が閲覧不能になる（１ドット以下になる）際の拡大率が存在するためである。これはデータによって大きく異なる。
【００６０】
これを直感的に理解するために、横軸にデータを表示するための時間幅、縦軸を表示可能なデータプロット数ととると、それらがシグモイド形状をとる。すなわち、視認できるデータ数が急激に低下する。このような場合、特に視認性が低下する領域で細かく倍率を設定し、視認できるデータのみを持つ複数段階のＤＢテーブルを準備することで、グラフを描画する際のデータ数を抑えることができ、レスポンススピードを向上させることが可能となる。このような手法は、上記のような平均周期を持つデータ発生間隔が正規分布のような、比較的なだらかな分布に従う場合は、極めて効率的に動作する。
【００６１】
時間粒度を大きくすることで、システムは端末の画面上に、より大きなタイムスパンのグラフ（データプロット）を表現できるようになる。ここでは、時間粒度が大きくなる、あるいは倍率が大きくなると表現する。このとき、解像度の限界からデータプロットの内、視認不可能なデータが必ず発生する。すなわち、データのオーバーラップが発生する。この際に、見えなくなったデータを複数１つのデータにマージすることで、システムが取り扱うデータ量を減らすことができる。上記のデータベースでは、特定の倍率（時間粒度）において視認可能なデータのみをデータベーステーブル上に保持することで、当該倍率に最低限必要なデータのみを取り扱うことを可能にし、データ取得と描画のスピードを向上させている。視認不可能なデータが発生した場合（すなわち複数のデータをマージする場合）オーバーラップするデータ同士の平均をとり、単一のデータにまとめる。
【００６２】
この際、データを追加・更新する場合には２０個あるデータベーステーブルを更新しなければならないが、上位の時間粒度におけるテーブルは既にデータがマージされているため、マージ処理のため新たに平均値等を計算しなければならず、この処理のためには、更新するデータに関連する全てのデータについて、再度の計算を全て行わなければならない。
【００６３】
また、複数のデータを同時に更新する時に、下位のレベルでは分離されていても、上位のレベルでは、同一のデータになる可能性がある。
【００６４】
そこで、本発明では、以下に示すステップをとる。
（１）データベースへのデータ登録の際、上位のデータに、マージされたデータの個数を記録する。
（２）最も下位のデータテーブルのデータを更新し、差分を保持する。
（３）順番にデータを更新する。更新の際には、マージされたデータ数と平均値をかけ合わせて合計値を出してから、上記差分を用いて計算することでデータを容易に更新できる。
（４）データの同時更新があった場合、当該データにつき上記（２）までのステップを完了する。
（５）先のデータとの時間間隔において、以下に示すマージタイミング推定ロジックを計算する。
（６）上記によって、マージタイミングの推定が完了したら、当該レベルのデータベースより上位のデータベースにおいては、双方のデータの差分を足しあわせ、データ数を２として更新する。
【００６５】
マージタイミング推定ロジックについては、以下2通りの手法を採ることができる。
【００６６】
（１）同時進行して更新されるデータの時間間隔を調べて、それらがマージされる時間粒度を持つデータデータテーブルを特定する。この方法では、データが新規に追加される場合には正確に動作する。また高速に計算が可能であるという利点があるが、更新される２つのデータの間に複数のデータが存在する場合、正確にどのタイミングでマージされるか予測できないという問題がある。しかし、少なくともこのタイミングでマージされるという時間粒度を得ることは可能である。
【００６７】
（２）同時進行して更新されるデータの時間間隔の間に存在するデータを取得して、最大のデータ間隔を取得する。この手法では時間はかかるが、正確なデータを得ることが可能である。
【００６８】
図１１Ａは、本実施形態に係るデータ処理プログラムの動作を示すフローチャートである。図１１Ａでは、データの同時更新が無かった場合の動作例を示す。まず、利用者によるデータの更新または新規の入力があると（ステップＳ１）、最下位レベルのデータベーステーブルから、当該時系列データを抽出し、データの差分を計算する（ステップＳ２）。次に、当該データ中のデータ数とデータの値とデータ差分から、平均値を再構成する（ステップＳ３）。次に、データ数と値を更新する（ステップＳ４）。次に、上位レベルのデータベーステーブルが存在するかどうかを判断し（ステップＳ５）、上位レベルのデータベーステーブルが存在しない場合は終了する。一方、ステップＳ５において、上位レベルのデータベーステーブルが存在する場合は、１段階レベルの高いデータベーステーブルに切り替えて（ステップＳ６）、ステップＳ３に遷移し、同じ操作を繰り返す。
【００６９】
図１１Ｂは、データの同時更新が発生した場合の動作例を示すフローチャートである。まず、利用者による時系列データの更新または新規の入力があると（ステップＴ１）、最下位レベルのデータベーステーブルから、当該データを抽出して、データの差分を計算する（ステップＴ２）。次に、複数データの同時更新を検出すると（ステップＴ３）、同時更新データ同士のデータ間の時間差分を計算し、データが統合されるレベルを決定する（ステップＴ４）。次に、上記レベルよりも上位のレベルについて、更新データの差分同士を足し合わせる（ステップＴ５）。上記レベル、差分、足し合わされたデータの数をセットにして、メモリ上に保存する（ステップＴ６）。次に、当該データ中のデータの数、データの値、データの差分から、平均値を再計算する（ステップＴ７）。そして、データ数と値を更新する（ステップＴ８）。次に、上位レベルのテーブルが存在するかどうかを判断し（ステップＴ９）、上位レベルのテーブルが存在する場合は、１段階レベルの高いテーブルに切り替えて（ステップＴ１０）、ステップＴ７に遷移する。一方、ステップＴ９において、上位レベルのテーブルが存在しない場合は、終了する。
【実施例１】
【００７０】
例えば、下記のような3つのデータプロットを考える。
(原点からの時刻、値)＝A(1,2)、B(3,4)、C(5,9)
これらのデータ間隔はA-B間：2、B-C間：2となっているため、同一のタイミングでデータがマージされる。これは上記データベーステーブルの内、特定の番号を持つテーブルで同時に1つのデータにマージされることを意味している。
【００７１】
ここで、A、B、Cの3つの値の平均をとって、5の値を持つ新しいデータaができる。ここで、マージしたデータ数を記録する。
(原点からの時刻、値、データの数)＝a(1-5、5、3)
【００７２】
次に、以下の４通りを考える
（１）Bのデータが、B(3,7)に修正された（値を変更）。
（２）新たにD(7,5)が入力された。
（３）Bのデータを削除した。
（４）BのデータがB(7,4)に修正された（時間を変更）。
【００７３】
まず、（１）の場合、差分データ3を得る。次に、データの更新について、最も時間粒度の低いデータベースから開始するため、まずBのデータを抜き出して、更新する。さらにBの時間範囲である3を含むデータを上位のデータベースから抽出する。この場合aが該当する。aのデータを抽出し、値とデータ数をかけ合わせる5×3=15となる。これは3つのデータの合計値であるから、これに3を足せば、新しいデータ3つの合計値となる。15+3=18。さらに全データ数は変わらないから、18/3=6をaの値として得る。新たにa(1-5、6、3)となる。そして、上記データをデータベーステーブルに登録する。
【００７４】
（２）の場合、上記の計算において、5×3=15の合計値に対して、5を足しあわせ、20を得たあと、3+1で除算する。20/4=5である。さらにタイムスタンプとデータの個数を更新し、a(1-7、5、4)を得る。
【００７５】
（３）の場合、差分を0-4=-4として合計値に足しあわせたあと、全データ数を1減らして除算すれば良い。15-4=11。11/(3-1)=5.5により、a(1-5、5.5、2)を得る
（４）の場合、aの時刻範囲1-5に新たなデータが入っているかどうかをまず判定する。入っている場合、データを特別更新する必要はない。入っていない場合、当該テーブルにおいてマージが行われるかどうかを計算する。行われない場合、3の削除処理を行う。行われる場合、データの時刻を計算する。この場合、時刻が7のため、a(1-7、5、3)を得る。
【００７６】
以上説明したように、本実施形態によれば、多段階の時間粒度で時系列データを保持して、グラフを表示するプログラムにおいて、時系列データの削除を行う際に、削除の処理回数を抑えて出来る限り多くの同時更新、追加および削除が可能となる。
【符号の説明】
【００７７】
１０  画像表示装置
１１  表示部
１２  スケール変更部
１３  急勾配特定部
１４  平均化処理部
１５  データベーステーブル
１６  画面制御部
１７  制御バス
【図１】
2014035591.tif 000003
【図２】
2014035591.tif 000004
【図３】
2014035591.tif 000005
【図４】
2014035591.tif 000006
【図５】
2014035591.tif 000007
【図６】
2014035591.tif 000008
【図７】
2014035591.tif 000009
【図８】
2014035591.tif 000010
【図９】
2014035591.tif 000011
【図１０】
2014035591.tif 000012
【図１１Ａ】
2014035591.tif 000013
【図１１Ｂ】
2014035591.tif 000014
【図１２】
2014035591.tif 000015
【図１３】
2014035591.tif 000016
【図１４】
2014035591.tif 000017