(57)【特許請求の範囲】
【請求項１】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散プログラムであって、
前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
前記時系列データの中の視認可能なデータ数が減少し始める時間粒度の重要度を高い値に設定することにより、前記各データベーステーブルの重要度を計算する処理と、
前記計算された重要度に基づいて、前記データベーステーブルを抽出する処理と、の一連の処理をコンピュータに実行させることを特徴とする処理分散プログラム。
【請求項２】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散プログラムであって、
前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
入力された全時系列データをサンプリングし、サンプリング後の時系列データに基づいて、前記時系列データの時間粒度と視認可能なデータ数との関係を示すグラフ上で、モデルから導かれる回帰曲線の推定を行ない、前記推定した回帰曲線のパラメータから、勾配が急激に減少する区間を特定する処理と、
前記区間の時間粒度に対応するデータベーステーブルの重要度を高く設定し、全時系列データについて計算した重要度に基づいて、前記データベーステーブルの重要度を決定する処理と、
前記決定した重要度に基づいて、前記データベーステーブルを抽出する処理と、の一連の処理をコンピュータに実行させることを特徴とする処理分散プログラム。
【請求項３】
ロジスティック関数であるシグモイド関数による回帰を用いて前記推定を行なうことを特徴とする請求項２記載の処理分散プログラム。
【請求項４】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散プログラムであって、
前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存する処理と、
前記時系列データの分散および視認可能なデータ数との関数によって決定される概要情報量と、予め指定された時間範囲内に実際に存在するデータ量の関数によって決定される詳細情報量とに基づいて、前記時間粒度における時系列データの情報量である時間粒度情報量を算出し、前記算出した時間粒度情報量に基づいて、前記各データベーステーブルの重要度を計算する処理と、
前記計算された各データベーステーブルの重要度に基づいて、前記データベーステーブルを抽出する処理と、の一連処理をコンピュータに実行させることを特徴とする処理分散プログラム。
【請求項５】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散方法であって、
前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、
前記時系列データの中の視認可能なデータ数が減少し始める時間粒度の重要度を高い値に設定することにより、前記各データベーステーブルの重要度を計算するステップと、
前記計算された重要度に基づいて、前記データベーステーブルを抽出するステップと、を少なくとも含むことを特徴とする処理分散方法。
【請求項６】
ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散方法であって、
前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データを１つの独立したデータベーステーブルとしてデータベースに保存するステップと、
入力された全時系列データをサンプリングし、サンプリング後の時系列データに基づいて、前記時系列データの時間粒度と視認可能なデータ数との関係を示すグラフ上で、モデルから導かれる回帰曲線の推定を行ない、前記推定した回帰曲線のパラメータから、勾配が急激に減少する区間を特定するステップと、
前記区間の時間粒度に対応するデータベーステーブルの重要度を高く設定し、全時系列データについて計算した重要度に基づいて、前記データベーステーブルの重要度を決定するステップと、
前記決定した重要度に基づいて、前記データベーステーブルを抽出するステップと、
を少なくとも含むことを特徴とする処理分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう技術に関する。
【背景技術】
【０００２】
従来から、電子カルテシステムなどの医療情報システムが知られている。例えば、特許文献１には、医療行為の相互間の関係を考慮し、効率よく医療情報を入力して電子カルテを構築する電子カルテシステムが開示されている。この電子カルテシステムは、医療行為およびその関連情報を含む医療行為情報と、この医療行為情報の適用時間情報とにより電子カルテ情報を構成する。また、その電子カルテ情報の医療行為情報を時間軸上に閲覧情報として表示する。また、編集中の電子カルテ情報における医療行為情報を時間軸上に表示させる。そして、ユーザの操作を受け付けて、電子カルテにおける医療行為情報を編集する。
【０００３】
図１２は、電子カルテシステムの画面表示例を示す図である。図１２に示すように、この電子カルテシステムは、多段階の時間軸（例えば、年単位・月単位・日単位）を有する。また、その下に診療行為（オブジェクト）が表示される。この電子カルテシステムでは、左に並ぶ項目が医療行為（病名・投薬・診断・検査等）であって、その右側に実際の行為が、一定の時間幅をもって記録される。
【０００４】
ユーザは、上部の時間軸を選択することで、任意の尺度での情報俯瞰が可能であり、任意の時間にジャンプすることができる。また、特定の行為項目のデータの詳細な情報を閲覧しようとする場合は、複数の行為項目をドラッグ操作で囲むことで、詳細情報を表示することが可能である。
【０００５】
このように、従来の電子カルテシステムでは、上記のような多段階のタイムスケールを表示し、ユーザは、任意のタイムスケールで時系列に沿って入力されたデータを俯瞰することができる。そして、任意のタイムスケール上で各行為項目の詳細情報を表示し、閲覧することができる。
【０００６】
このような電子カルテシステムにより、例えば、患者に対する投薬や検査の実施行為に関する医療情報のグラフ化を様々な時間粒度（ディスプレイの１ドットあたりの表示時間（msec/dot）であり、データを閲覧する際の時間幅とグラフ画像のサイズによって決定される。これは、特定サイズのディスプレイに時系列データを表示する際に、表示幅を変更することを考えたとき、プログラム上で表現できる最も小さい時間幅から、表示幅を拡大した際の倍率と同義である。）で表示することが可能となる。また、同時に複数の行為項目を表示することによって、さまざまな項目間の関係を種々の時間粒度で閲覧することが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１９２００２号公報
【特許文献２】特開２００９−１３４７１３号公報
【特許文献３】特開２００９−２８２５５７号公報
【非特許文献】
【０００８】
【非特許文献１】電子情報通信学会  Ｖｏｌ１００，ｐ５０−ｐ６０
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来のシステムが処理すべきデータの数は極めて多い。例えば、糖尿病患者であれば、毎日投薬や検査がなされ、これらは年のスケールでは３６５のデータ数を持つ。これに加え、これら投薬や検査の種類は数百に及ぶことが多い。そのため、これらを表すデータオブジェクト数は一般的には数千から数万へと膨れ上がる。サーバ・クライアントで構成されるシステムにおいて、これらのデータを表示するためにはデータ伝送および描画に多くの時間がかかり、ユーザレスポンスが落ちてしまう。
【００１０】
このような場合、予めグラフを伝送する際の倍率を決めておき、その倍率においてグラフ描画に必要なデータを準備しておくことによって、高速にグラフを描画し、伝送することが可能となる。図１３は、タイムスケールと表示倍率を示す図である。図１３に示す倍率において、グラフ描画に必要なデータを予め作成することにより、最小限のデータ数でグラフを描画し、伝送を行なうことが可能となる。すなわち、図１３に示すように、伝送番号１〜２０に相当する倍率において、グラフを描画する際に必要なデータのみを１つの独立したテーブルであるデータベーステーブルとして保持することで、不必要なデータのサーチが必要なくなり、グラフ作成時間を短縮することが可能となる。
【００１１】
しかしながら、図１３に示したシステムでは、データを保存するためのテーブル数が複数個（上記では２０）になってしまうため、例えば、図１４に示すＷＥＢ上のデータベースのみに上記テーブルを保存する構成を採ると、図１４の実線の矢印で示したように、端末から大量のアクセスがあった場合、処理負担が急増することが想定される。このため、データを複数の場所に保存しておくことで、処理の分散を図ることが可能となるが、単純に複数のデータベースを複数の場所に用意すると、極めて膨大なデータ量が必要になってしまうという問題がある。一方、これらの時系列データは、閲覧に際し、適した時間粒度（ディスプレイの１ドットあたりの表示時間（msec/dot）であり、データを閲覧する際の時間幅とグラフ画像のサイズによって決定される。倍率と同義である。）に偏りがあるのが一般的である。
【００１２】
例えば、時系列データとして医療データを扱う場合は、投薬や検査の実施情報が主なデータになるが、これらは日にち単位や月単位で実施されることが多いため、必然的に、（ａ）それらの周期を見るために日にち単位や月単位での閲覧、（ｂ）長期にわたる経過を見るために年単位や１０年単位などで見られることになる。つまり、実施行為が発生する時間間隔が表現できる時間粒度以上の時間粒度での閲覧のニーズが極めて高くなる。このため、図１４に示したように、例えば、Ａ〜Ｃ病院内のデータベースに重要なデータのみをキャッシュし、図中の点線の矢印で示したように、各端末がそれぞれのデータベースにアクセスするように構成することによって、処理分散を図ることが可能となる。また、図１５に示したように、ＷＥＢ上にデータベースを分散させても良い。そして、各データベースに全てのデータを保存する構成を採ると、コストが増大するため、重要なデータのみを保持するようにすることが望ましい。
【００１３】
本発明は、このような事情に鑑みてなされたものであり、ＤＢテーブルの数をレベルごとに、その重要度に応じて、キャッシュするデータを決定したり、冗長構成を変えたりすることによって、処理速度の向上を図り、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減らすことができる処理分散プログラム、画像表示システムおよび処理分散方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
（１）上記の目的を達成するために、本発明は、以下のような手段を講じた。すなわち、本発明の処理分散プログラムは、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散プログラムであって、前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データからなるデータベーステーブルを保存する処理と、前記時系列データを視認可能に表示する時間粒度の重要度に基づいて、前記各データベーステーブルの重要度を計算する処理と、前記計算された重要度に基づいて、前記データベーステーブルを抽出する処理と、の一連の処理をコンピュータに実行させることを特徴とする。
【００１５】
本発明において、ディスプレイの１ドットあたりの表示時間（msec/dot）を時間粒度と呼称する。時間粒度は、データを閲覧する際の時間幅とグラフ画像のサイズによって決定されるもので、倍率と同義である。）このように、時系列データを視認可能に表示する時間粒度毎に、時系列データからなるデータベーステーブルを保存し、時系列データを視認可能に表示する時間粒度の重要度に基づいて、各データベーステーブルの重要度を計算し、計算された重要度に基づいて、データベーステーブルを抽出するので、重要な時間粒度に相当するデータのみを複数準備することができ、処理速度の向上が図られると共に、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減少させることが可能となる。
【００１６】
（２）また、本発明の分散処理プログラムは、入力された全時系列データをサンプリングし、サンプリング後の時系列データに基づいて、前記時系列データの時間粒度と視認可能なデータ数との関係を示すグラフ上で、モデルから導かれる回帰曲線の推定を行ない、前記推定した回帰曲線のパラメータから、勾配が急激に減少する区間を特定する処理を更に含み、前記区間の時間粒度に対応するデータベーステーブルの重要度を高く設定し、全時系列データについて計算した重要度に基づいて、前記データベーステーブルの重要度を決定することを特徴とする。
【００１７】
このように、上記区間の時間粒度に対応するデータベーステーブルの重要度を高く設定し、全時系列データについて計算した重要度に基づいて、前記データベーステーブルの重要度を決定するので、処理速度の向上が図られると共に、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減少させることが可能となる。また、この構成により、データが入力された時間間隔を視認できる時間粒度（倍率）以上の時間粒度の重要度を高く設定することができる。
【００１８】
（３）また、本発明の分散処理プログラムは、ロジスティック関数であるシグモイド関数による回帰を用いて前記推定を行なうことを特徴とする。
【００１９】
このように、シグモイド関数による回帰を用いて前記推定を行なうので、急勾配点を迅速に特定することが可能となる。
【００２０】
（４）また、本発明の分散処理プログラムは、前記時系列データの分散および視認可能なデータ数との関数によって決定される概要情報量と、予め指定された時間範囲内に実際に存在するデータ量の関数によって決定される詳細情報量とに基づいて、前記時間粒度における時系列データの情報量である時間粒度情報量を算出し、前記算出した時間粒度情報量に基づいて、前記重要度を計算することを特徴とする。
【００２１】
このように、概要情報量と、詳細情報量とに基づいて時間粒度情報量を算出して、重要度を計算するので、データベーステーブルの抽出が効率的となり、処理速度の向上が図られると共に、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減少させることが可能となる。
【００２２】
（５）また、本発明の画像表示システムは、画像を表示する画面を備え、上記（１）から（４）のいずれかに記載の分散処理プログラムを実行する画像表示システムであって、前記抽出したデータベーステーブルに含まれる時系列データをグラフ化して画面に表示することを特徴とする。
【００２３】
この構成により、画像表示システムにおいて、時系列データを視認可能に表示する時間粒度毎に、時系列データからなるデータベーステーブルを保存し、時系列データを視認可能に表示する時間粒度の重要度に基づいて、各データベーステーブルの重要度を計算し、計算された重要度に基づいて、データベーステーブルを抽出するので、処理速度の向上が図られると共に、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減少させることが可能となる。
【００２４】
（６）また、本発明の分散処理方法は、ディスプレイ画面上に表示する複数の時系列データを、ディスプレイの１ドットあたりの表示時間である時間粒度で表示するために前記時系列データの処理を行なう処理分散方法であって、前記時系列データを視認可能に表示する時間粒度毎に、前記時系列データからなるデータベーステーブルを保存するステップと、前記時系列データを視認可能に表示する時間粒度の重要度に基づいて、前記各データベーステーブルの重要度を計算するステップと、前記計算された重要度に基づいて、前記データベーステーブルを抽出するステップと、を少なくとも含むことを特徴とする。
【００２５】
このように、時系列データを視認可能に表示する時間粒度毎に、時系列データからなるデータベーステーブルを保存し、時系列データを視認可能に表示する時間粒度の重要度に基づいて、各データベーステーブルの重要度を計算し、計算された重要度に基づいて、データベーステーブルを抽出するので、処理速度の向上が図られると共に、準備するテーブルの数を少なく抑えることができるため、全てのテーブルを減少させることが可能となる。
【発明の効果】
【００２６】
本発明によれば、時系列データを視認可能に表示する時間粒度毎に、時系列データからなるデータベーステーブルを保存し、時系列データを視認可能に表示する時間粒度の重要度に基づいて、各データベーステーブルの重要度を計算し、計算された重要度に基づいて、データベーステーブルを抽出するので、重要な時間粒度に相当するデータのみを特定することが可能となる。また、そのデータのみをキャッシュ等に利用してデータを分散保持すれば、処理速度の向上とストレージの量を減らすことが可能となる。また、大規模なタイムラインシステム、すなわち、医療行為等を表す複数の時系列データのグラフを少なくとも１個の時間粒度（あるいは時間範囲）でディスプレイ画面上に表示するシステムを実現するにあたって、大人数がアクセスを行なう場合においても、レスポンススピードを確保することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】シグモイド曲線を示す図である。
【図２】フィッティング関数の例を示す図である。
【図３】プロットされたデータを示す図である。
【図４】テーブル番号と重要度を示す図である。
【図５】必要なテーブル数を示す図である。
【図６】テーブル番号と重要度を示す図である。
【図７】テーブル番号とテーブル数を示す図である。
【図８】機能ブロックを示す図である。
【図９】第１の重要度計算部の概略構成を示す図である。
【図１０】第２の重要度計算部の概略構成を示す図である。
【図１１】本実施形態に係る分散処理の動作を示すフローチャートである。
【図１２】医療情報システムの画面表示例を示す図である。
【図１３】タイムスケールと表示倍率を示す図である。
【図１４】データベースへのアクセスの集中と分散の様子を示す図である。
【図１５】データベースへのアクセスの集中と分散の様子を示す図である。
【図１６】画面における隣り合う２つのデータプロットの一例を示す図である。
【図１７】データ発生間隔と発生間隔を有するデータ数との関係が正規分布を示す様子を示す図である。
【発明を実施するための形態】
【００２８】
一般的に、ある種の時系列に従った知識を管理する場合、複数の時系列データを横断的に閲覧することが望ましい。例えば、医療知識で言えば、投薬情報と検査情報は横断的に閲覧する必要がある。一方、これらのデータの発生間隔は様々である。例えば、糖尿病患者の投薬は毎日発生するが、検査は月に１回程度しか発生しない。このため、閲覧に適したデータ表示時間間隔が存在する。小さいタイムスパンから大きいタイムスパンで表示するシステムでは、例えば、秒・分・時間・日・月・年・１０年の表現を持つが、このような様々なタイムスパンを持つデータをプロットして表現するため、時系列データの推移を俯瞰的に把握することができる。
【００２９】
ところで、一般的に、自然界に存在するデータを時系列的にプロットする場合、その発生間隔には、データ固有の平均的な周期が存在することが多い。医療で用いられるデータを例に取ると、例えば、糖尿病慢性疾患の患者の投薬発生イベントに関するデータは、血糖改善剤等を毎食後服用し、血糖検査を毎食後行なうため、３〜４時間に１回程度の発生間隔で発生することが多く、数分単位・数年単位での発生間隔はとらないことが多い。このようなデータを、従来のシステム上で時系列プロットをして表現する場合、時系列的に表示する時間スパンを変化させたとき、グラフ上の視認できるデータの数は、特定の時間粒度で大きく減少し始める。これは、表示するデータの性質に応じて決定されるデータ間の平均周期が閲覧不能になる（１ドット以下になる）際の時間粒度が存在するためである。これはデータによって大きく異なる。
【００３０】
これを直感的に理解するために、横軸にデータを表示するための時間幅、縦軸を表示可能なデータプロット数にとってグラフ化すると、それらは後述するシグモイド形状をとる。すなわち、視認できるデータ数が急激に低下する部分がある。このような場合、特に視認性が低下する領域で細かく倍率を設定し、視認できるデータのみを持つ複数段階のＤＢテーブルを準備することで、グラフを描画する際のデータ数を抑えることができ、レスポンススピードを向上させることができる。
【００３１】
ここで、シグモイド形状について説明する。時系列データをグラフ上にプロットをして表現する場合、上述したように、グラフの視認性低下が発生する。しかも視認性低下の発生する領域が、表示する時系列データの種類によって大きく偏る。すなわち、表示するデータの性質に応じて、データの発生間隔の平均周期が異なるため、平均周期によって決定されるタイムスパンに応じて、視認性低下の傾向が大きく変わる。このような偏りを、横軸にデータを表示するための時間幅、縦軸を表示可能なデータプロット数をとってグラフ化すると、シグモイド形状をとることが推測できる。以下、その理由について説明する。
【００３２】
図１６は、画面における隣り合う２つのデータプロットの一例を示す図である。図１６では、例えば、α番目と（α＋１）番目の隣り合う２つのデータプロットを考える。各データプロットの開始時刻を、それぞれｔｓα（秒）、ｔｓ（α＋１）（秒）と定義する。このとき、図１６に示すように、これらのデータの間隔は、
｛ｔｓ（α＋１）−ｔｓα｝（秒）
と表わされる。ここで、システム上、１秒＝ａ（ｄｏｔ）で表わされるとすると、この間隔は、
ａ｛ｔｓ（α＋１）−ｔｓα｝（ｄｏｔ）
と表わされる。
【００３３】
次に、ユーザが、時間粒度の変更操作として、画面上でピンチイン操作を行なったときにデータプロット間隔について考える。ピンチイン前のデータプロット間隔ａ｛ｔｓ（α＋１）−ｔｓα｝に対して、拡大操作１／γ（ｍ−ｌ）倍をすると、画面上のデータプロット間隔が変化する。つまり、ピンチイン後のデータプロット間隔は、
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／γ（ｍ−ｌ）
となる。
【００３４】
人間が視認できるサイズを、最も厳しい条件として、ディスプレイ上の１ドットとすると、データプロット間隔が、１ドットよりも小さければ、２つのデータを肉眼で区別することができず、両者が統合して見えることになる。そこで、２つのデータを単一のデータで代表することが可能となる。すなわち、次式を満たした時に、２つのデータが統合される。
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／γ（ｍ−ｌ）＜１
なお、人間が視認できるサイズを、最も厳しい条件である１ドットとすることによって、最も良い視認性を確保することが可能となる。
【００３５】
ここで、本発明者らは、データプロットを効率的に扱うため、様々な時間粒度で表示されるグラフを生成する上で、必要最低限のデータを扱うようにシステムを組むと、システムが高速化されることに着目し、予めデータを特定の時間粒度に応じて、マージした上でデータベース上に保持することによって、効率の良いグラフ作成が可能となることを見出した。
【００３６】
時間粒度γ（ｍ−ｌ）を、Ｅで表わすと、上記の式は、次のように簡略化される。
ａ｛ｔｓ（α＋１）−ｔｓα｝・１／Ｅ＜１
ここで、時間粒度Ｅに応じて、視認できるプロット数がどのように変化するかについて考える。式変形により、
ａ｛ｔｓ（α＋１）−ｔｓα｝＜Ｅ
が得られる。この式は、２つのデータ間のプロット間隔が、一定の時間粒度以下であれば、マージ（統合）しても良いことを意味している。その結果、マージするときの時間粒度Ｅは、データ発生間隔｛ｔｓ（α＋１）−ｔｓα｝に比例する、ということが理解できる。
【００３７】
次に、このデータ発生間隔について考える。データ発生間隔は、医療データの場合、一定の周期に従うことが多い。例えば、糖尿病患者は、食後にインスリンの注射をしたり、投薬をしたり、血糖値検査を食後２時間にしたりする。このことは、概ね３、４時間という時間がデータ発生間隔に相当することを意味する。ただし、このようなデータは自然界のデータのため、“ゆらぎ”が必ず発生する。例えば、上記の例では、夕食を食べる時間は、昨日は６時であったが、今日は７時だったということが生ずる。このような“ゆらぎ”が存在することを考えると、データ発生間隔は、平均周期を平均とする正規分布に従うと考えられる。
【００３８】
図１７は、データ発生間隔と発生間隔を有するデータ数との関係が正規分布を示す様子を示す図である。上述したように、時間粒度Ｅはデータ発生間隔に比例するため、図１７の横軸のデータ発生間隔をＥに置き換えたとしても、正規分布が成立する。ここで、上記の正規分布において、最も小さい時間粒度から徐々に時間粒度を大きくしていったときの表示可能なデータ数の分布について考える。これは、上記の正規分布を累積させた累積正規分布関数により求めることができる。この累積正規分布関数は、シグモイド関数になることが知られている。シグモイド関数は、ある瞬間にグラフの傾きが急増するという特徴を有している。これは、時間粒度が大きくなると、ある瞬間にディスプレイ上に表示できないデータが発生し始めるということを意味している。
【００３９】
しかしながら、一般的にはデータによって特定の時間粒度付近に見るべき情報の量が偏る傾向があり、当該時間粒度の画像を生成するデータベーステーブルにアクセスが集中することが多いため、大人数がシステムを利用した際には、そのサーバ負荷が巨大になってしまうため、高速なレスポンスが担保できないという問題がある。
【００４０】
すなわち、図１４に示すＷＥＢ上のデータベースのみに上記テーブルを保存する構成を採ると、図１４の実線の矢印で示したように、端末から大量のアクセスがあった場合、処理負担が急増することが想定される。このため、データを複数の場所に保存しておくことで、処理の分散を図ることが可能となるが、単純に複数のデータベースを複数の場所に用意すると、極めて膨大なデータ量が必要になってしまうという問題がある。
【００４１】
そこで、本実施形態では、以下の２通りの手法により時間粒度ごとの情報量を推定し、どの時間粒度にアクセスが集中するかを推定し、アクセス分散を行なう。すなわち、図１４に示したように、例えば、Ａ〜Ｃ病院内のデータベースに重要なデータのみをキャッシュし、図中の点線の矢印で示したように、各端末がそれぞれのデータベースにアクセスするように構成することによって、処理分散を図ることが可能となる。また、図１５に示したように、ＷＥＢ上にデータベースを分散させる構成を採り、重要なデータのみを保持する。より具体的には、分散処理を実現するために、以下の２通りの手法によって、時間粒度ごとの重要度を決定する。［１］異なる時間粒度ごとに、視認可能なデータ数と時間粒度をプロットしたグラフから、視認可能なデータ数が減少し始める時間粒度を計算し、当該時間粒度を重要な時間粒度とする手法、［２］時間粒度ごとの重要度を、時系列データを閲覧する際の視点から、時系列データの情報量を定義して、決定する手法、である。
【００４２】
［１］異なる時間粒度ごとに、視認可能なデータ数と時間粒度をプロットしたグラフから、視認可能なデータ数が減少し始める時間粒度を計算し、当該時間粒度を重要な時間粒度とする手法
図１は、シグモイド形状を示す図である。図１に示すように、ある特定の時間幅と時間時間粒度（タイムスケール）の関係はシグモイド関数の形状を取ることが知られている。これについては上述した通りである。この手法では、時間粒度を十分に細かく分割して、複数のデータベーステーブルを準備することにより、取り扱うデータ数を必要最小限にまで減らす工夫を行なう。基本的には、シグモイド関数の急勾配近辺に細かい時間粒度を配置し、その他の部分に十分大きな時間粒度を配置する。
【００４３】
ここで、一般的に、時系列データを観察するときに、（ａ）短期的視点、（ｂ）長期的視点で閲覧するニーズが考えられる。（ａ）の短期的視点では、データの具体的な量や周期などを閲覧する一方で、（ｂ）の長期的視点では、データの概要（投薬で言えば、長期的診療がどのように進行しているか）などを閲覧することが行なわれる。このときの時間粒度を考えると、短期的視点では、１画面にできる限り多くのデータが同時に閲覧できることと、１つ１つのデータが閲覧できる時間粒度が必要である。長期的視点では、データ１つ１つが閲覧できることは必要ではないが、データがどのような推移をたどっていて、他のデータとどのような関係にあるかなどが閲覧できる時間粒度が必要である。
【００４４】
つまり、表示するデータの時系列データの周期が閲覧できる時間粒度以上の時間粒度での閲覧ができれば、これらのニーズを満たせると考えられる。これを上記のシグモイド関数にあてはめると、シグモイド関数の急勾配が発生する箇所に重要な情報が集中すると考えられることになる。つまり、データ形状を、ロジスティック関数であるシグモイド関数のフィッティングにより決定し、そのパラメータから急勾配近辺を保持するデータベーステーブルの割り振りを決定し、複数に分散することで目的を達する。
【００４５】
フィッティングは、例えば、以下のような手順で行なうことができる。次式は、ロジスティック関数の式である。
【００４６】
【数１】
0005946059.tif 000002
これを式変形すると次式が得られる。
【００４７】
【数２】
0005946059.tif 000003
次に、両辺のｌｏｇをとって、次式を得る。
【００４８】
【数３】
0005946059.tif 000004
ここで、Ｋのパラメータは、上部漸近線を表すことから、今回のシステムでは視認できるデータの上限すなわちデータ数そのものである。そのため、推定パラメータから除外して良い。ここで、次式を考える。
【００４９】
【数４】
0005946059.tif 000005
【数５】
0005946059.tif 000006
【００５０】
上記２式に基づいて、最小二乗法からＰとＱを推定することができる。「最小二乗法」とは、一般的に、測定で得られた数値の組を、適当なモデルから想定される１次関数、対数曲線など特定の関数を用いて近似するときに、想定する関数が測定値に対して、良い近似となるように、残差の二乗和を最小とするような係数を決定する方法のことである。このような最小二乗法を用いてＰ及びＱからｂとｃを推定し、ｙの値が十分Ｋに漸近する時のｘの値を求めれば良い。例えば、ｙの値として０．９９Ｋなどを代入し、そのときのｘの値を求めれば良い。
【００５１】
図２は、フィッティング関数の例を示す図であり、図３は、プロットされたデータを示す図である。図２の横軸は、図３に示す下記の倍率を１０２０に置き換えたものである。推定されたパラメータはｂ＝１１３２．２７１６８、ｃ＝１．４０２２９となり、ｙ＝０．９９Ｋとなる倍率を計算すると、上記番号が８．３になる点であり、８．３より大きい最小の整数は９であるから、９に相当する倍率は２９１６００倍となる。この番号に相当する倍率が視認性の低下する倍率と推定される。また、ｙ＝０．０１Ｋとなる点を計算すると、１．７４となる。この番号以下の最大の整数は１であり、１に相当する倍率７４６４９６００が視認性の低下する最大の倍率と推定される。つまり視認性が低下する区間が１−９であり、この区間において閲覧する際の情報が集中すると考えられる。
【００５２】
すなわち、当該データにおいては、１〜９に相当するテーブルの重要度が高いと推定される。当該操作を全データについて行ない、さらに全患者のデータについて実施して、各々のテーブルごとに重要度が高いと試算されるテーブルの度数のカウントを行なう。例えば、カウントの結果、図４に示すような重要度をテーブル番号ごとに算出できたとする。この上で、全体で４０のＤＢテーブルが作成可能とすると、全テーブルは必ず１つずつ作成するとして、余剰の２０テーブルをアクセス分散用に保持することが可能である。この２０の各々のテーブル番号へ再割り振りする。上記割合に対して、余剰ＤＢ数２０を掛け合わせ、四捨五入を行なう。この結果を図５に示す。図５に示す値が、必要なデータベースのテーブル数である。これらを足し合わせると１９となるので、残り１つのテーブルを割り当て可能である。
【００５３】
そこで、重要度をさらに上記の値で除算する。その結果を、図６に示す。図６に示すように、１テーブルあたりの重要度が算出される。この重要度できる限り減らすことが望ましいため、上記のうち、最も高い重要度を持つテーブル番号７のテーブルに残ったテーブルを配置すれば良い。最低限必要なテーブルを足しあわせて、テーブル数をまとめると図７に示すような結果が得られる。なお、上記の余剰テーブルはＷＥＢ上の別データサイトでも良いし、ローカルのキャッシュサーバ上に保存しても良い。
【００５４】
［２］時間粒度ごとの重要度を、時系列データを閲覧する際の視点から、時系列データの情報量を定義して、決定する手法
上記［１］の手法では、視認性低下区間のみが重要度の指標であったが、それ以外の指標を用いても良い。ここでは、以下に情報量の判定の一例を示す。特定の時間粒度のグラフの情報量を、「概要情報量」と「詳細情報量」の和に分けて考える。ここで、「概要情報量」とは、時系列グラフの推移などの概要を見るための情報量であり、データの値の分散が大きく、存在する潜在的なデータの数に関連すると考えられる。分散をｓとして、潜在的なデータ数をｘとすると、ｆ（ｓ，ｘ）として表すことが可能である。単純比例とした場合、任意定数ａを用いてａｓｘとなる。
【００５５】
「詳細情報量」とは、データを細かい時間単位で詳細に見る際の情報量であり、表示する際のＤＢ上の実際のデータ量ｙに関連すると考えられるためｇ（ｙ）として表すことが可能である。これも単純比例とした場合、任意定数ｂと実際のＤＢ上のデータ量ｙを用いて、ｂｙと表される。
【００５６】
従って、グラフの情報量は上記の和として、ｆ（ｓ，ｘ）＋ｇ（ｙ）となる。１画像に含まれるこの情報量を計算するためには、上記のレベルごとに必要な画像枚数で除算すれば良い。それぞれのレベルにおける時間データ密度（msec/dot）をｃとして、１画像ドット数をｄとすると、当該レベルにおける画像枚数は、ｃｄとなる。従って、当該時間粒度の１画像あたりの平均的な情報量は（ｆ（ｓ，ｘ）＋ｇ（ｙ））／ｃｄと計算できる。この情報量をそれぞれのレベルについて計算し重要度を判定すれば良い。上記のように単純比例とした場合は（ａｓｘ＋ｂｙ）／ｃｄとなる。
【００５７】
ここで、全データ数xを簡易的に求める場合、平均的には、(特定のレベルで表現できる時間幅/あるデータの全体の時間幅)*全データ数で表すことが可能である。このような指標は一例であるが、この指標を各々の拡大レベルについて計算することで、どの拡大レベルの情報量が大きいかを判定できる。
【００５８】
上記［１］または［２］の情報量に応じて、ＤＢテーブルを複数作成する。このようにすることで全体のアクセスが均一に分散されることになる。なお、アクセス分散のために各々のクライアント端末ごとにどのテーブルにアクセスするかを記述した、スクリプトを配布しても良い。また、上記のようなデータベース冗長化構成を取ることによって、データ更新の際に更新が完了したデータベースを優先的に表示するような構成を取ることも可能である。
【００５９】
図８は、上記各機能をモジュール化した場合の機能ブロックを示す図である。データベース１からデータ取得部３がデータを取得し、重要度計算部５が上記のような手法で重要度を計算する。重要度計算部５は、図９に示す第１の重要度計算部と、図１０に示す第２の重要度計算部から構成される。重要度統合部７は、重要度計算部５が計算した２種類の重要度を統合し、テーブル重要度計算部９は、データベーステーブルの重要度を計算する。そしてデータベース割り振り部１１は、重要度の高いデータベーステーブルを割り振る機能を有する。
【００６０】
図９は、第１の重要度計算部の概略構成を示す図である。フィッティング部１０１は、上記のように、シグモイド曲線を用いて、時系列データのフィティングを行なう。急勾配検出部１０３は、シグモイド曲線上の急勾配の区間を検出する。急勾配部分カウント部１０５は、シグモイド曲線上の急勾配の区間内にある時系列データをカウントする。図１０は、第２の重要度計算部の概略構成を示す図である。ここでは、上述したように、詳細情報量の計算と、概要情報量の計算が行なわれる。まず、詳細情報量の計算では、潜在データ量取得部２０１で潜在的な時系列データ量を取得し、詳細情報計算部２０３で詳細情報量の計算が行なわれる。すなわち、詳細情報量は、指定された時間範囲内に実際に存在するデータ量の関数によって決定される。次に、概要情報量の計算では、潜在データ量取得部２０５が潜在的な時系列データのデータ量を取得し、データ分散計算部２０７が時系列データの分散を計算する。そして、概要情報量計算部２０９が概要情報量の計算を行なう。すなわち、概要情報量は、時系列データの分散と視認できるデータ数との関数によって、決定される。集計計算部２１１は、上記のように計算した詳細情報量と概要情報量とに基づいて、集計を行なう。
【００６１】
図１１は、本実施形態に係る分散処理の動作を示すフローチャートである。まず、データをデータベースから取得し（ステップＳ１）、重要度を計算する（ステップＳ２）。次に、全データの重要度をカウントし（ステップＳ３）、カウントされた重要度からデータベーステーブル番号の重要度を計算する（ステップＳ４）。最後に、データベーステーブルの重要度に応じて、配分できるデータベース数を増やして（ステップＳ５）、終了する。
【００６２】
以上説明したように、本実施形態によれば、時系列データを視認可能に表示する時間粒度毎に、時系列データからなるデータベーステーブルを保存し、時系列データを視認可能に表示する時間粒度の重要度に基づいて、各データベーステーブルの重要度を計算し、計算された重要度に基づいて、データベーステーブルを抽出するので、重要な時間粒度に相当するデータのみを特定することが可能となる。また、そのデータのみをキャッシュ等に利用してデータを分散保持すれば、処理速度の向上とストレージの量を減らすことが可能となる。また、大規模なタイムラインシステム、すなわち、医療行為等を表す複数の時系列データのグラフを少なくとも１個の時間粒度（あるいは時間範囲）でディスプレイ画面上に表示するシステムを実現するにあたって、大人数がアクセスを行なう場合においても、レスポンススピードを確保することが可能となる。
【符号の説明】
【００６３】
１  データベース
３  データ取得部
５  重要度計算部
７  重要度統合部
９  テーブル重要度計算部
１１  データベース割振部
１０１  フィティング部
１０３  急勾配検出部
１０５  急勾配部分カウント部
２０１  潜在データ量取得部
２０３  詳細情報計算部
２０５  潜在データ量取得部
２０７  データ分散計算部
２０９  概要情報量計算部
２１１  集計計算部
【図１】
0005946059.tif 000007
【図２】
0005946059.tif 000008
【図３】
0005946059.tif 000009
【図４】
0005946059.tif 000010
【図５】
0005946059.tif 000011
【図６】
0005946059.tif 000012
【図７】
0005946059.tif 000013
【図８】
0005946059.tif 000014
【図９】
0005946059.tif 000015
【図１０】
0005946059.tif 000016
【図１１】
0005946059.tif 000017
【図１２】
0005946059.tif 000018
【図１３】
0005946059.tif 000019
【図１４】
0005946059.tif 000020
【図１５】
0005946059.tif 000021
【図１６】
0005946059.tif 000022
【図１７】
0005946059.tif 000023