以下、本発明による電子ノモグラムについて、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による電子ノモグラムについて、図面を参照しながら説明する。
図1は、本実施の形態による電子ノモグラム1の構成を示すブロック図である。本実施の形態による電子ノモグラム1は、画像データ記憶部11と、指示受付部12と、数値取得部13と、計算部14と、画像生成部15と、画像表示部16と、関数値受付部17と、グラフ生成部18と、境界値受付部19と、境界変更部20と、差異情報生成部21とを備える。なお、本実施の形態では、これらの構成を有する装置を単に「電子ノモグラム」と呼ぶことにするが、この装置は、電子ノモグラム装置や、電子ノモグラム表示装置とも呼びうるものである。
画像データ記憶部11では、ノモグラムの画像データであるノモグラム画像データが記憶される。本実施の形態では、ノモグラムは、例えば、図4で示されるように、第1の軸31と、第2の軸32とを有する座標平面である。本実施の形態による電子ノモグラム1は、このノモグラム30上に後述するポイント図形41を表示するものである。そして、そのポイント図形41の位置に対応する第1及び第2の軸31,32の値が取得されることになる。図4では、座標平面において、第1及び第2の軸31,32は直線であり、また両者が直交している直交座標系である場合について示しているが、そうでなくてもよい。例えば、斜交座標系であってもよい。ノモグラム画像データは、結果として平面座標系のノモグラムの画像を表示することができるデータであればよく、例えば、ラスタデータのように画像そのものであってもよく、ベクタデータのようにラスタライズされることによって画像となるデータであってもよい。
本実施の形態では、ノモグラムがBMIのノモグラムである場合について説明する。したがって、第1の軸31は、変数である身長(cm)を示す軸であるとする。また、第2の軸32は、変数である体重(kg)を示す軸であるとする。また、第2の軸32は、第1の軸に直交している。なお、図4では、身長を横軸にとり、体重を縦軸にとっているが、その逆であってもよいことは言うまでもない。また、第1の軸31の近傍に、図4で示されるように、その軸で示している変数が身長であることを示す情報、例えば、「身長」の文字列が表示されていてもよい。また、その第1の軸31に、図4で示されるように、目盛と数値が表示されていてもよい。第2の軸32についても同様であり、第2の軸32の近傍に、その軸で示している変数が体重であることを示す情報、例えば、「体重」の文字列が表示されていてもよい。また、その第2の軸32に、目盛と数値が表示されていてもよい。
なお、電子ノモグラム1が表示するノモグラムは、BMIのノモグラムでなくてもよいことは言うまでもない。例えば、HOMA−Rのノモグラム(例えば、実用新案登録第3144622号公報参照)であってもよく、eGFRのノモグラムであってもよく、その他のノモグラムであってもよい。また、医療の分野のノモグラムについて例示したが、医療以外の分野のノモグラムであってもよいことは言うまでもない。
ノモグラム画像データは、第1及び第2の軸31,32の値を引数とする所定の関数の計算結果の値に応じて複数の領域に分割されていてもよく、そうでなくてもよい。所定の関数の計算結果の値に応じて複数の領域に分割されるとは、例えば、図4で示されるように、所定の関数の計算結果の値の範囲ごとに複数の領域に分割されることであってもよい。また、この領域は、例えば、面状の領域であってもよく、線状の領域であってもよく、点状の領域であってもよい。本実施の形態では、図4で示されるように、第1の領域境界線33と、第2の領域境界線34とによって、ノモグラムが3個の領域に分割されているものとする。第1の領域境界線33は、BMIが第1の値となる場合の身長と体重との関係を示す放物線である。また、第2の領域境界線34は、BMIが第2の値となる場合の身長と体重との関係を示す放物線である。ここで、BMIは、次式で表されるものである。
BMI=体重(kg)/{身長(m)}2
この式から明らかなように、BMIが一定の値である曲線は、放物線となる。また、本実施の形態では、第1の値は「25」であり、第2の値は「18.5」であるとする。なお、これらの値は、それらと別の適切な値であってもよいことは言うまでもない。
ノモグラム画像データに対応する図4のノモグラム30では、第1及び第2の領域境界線33,34によって座標平面が3個の領域と、2個の領域境界線とに分けられている。すなわち、第2の軸32と、第1の領域境界線33とによって区切られる領域(この領域を「第1の領域」と呼ぶことにする)と、第2の軸32と、第1の領域境界線33と、第2の領域境界線34とによって区切られる領域(この領域を「第2の領域」と呼ぶことにする)と、第1の軸31と、第2の軸32と、第2の領域境界線34とによって区切られる領域(この領域を「第3の領域」と呼ぶことにする)と、第1及び第2の領域境界線33,34に分けられている。なお、第1の領域境界線33は、BMIが25の領域境界線であり、第2の領域境界線34は、BMIが18.5の領域境界線であるため、第1の領域は、BMIが25より大きい領域となり、第2の領域は、BMIが18.5より大きく25より小さい領域となり、第3の領域は、BMIが18.5より小さい領域となる。
第1の領域はBMIが25より大きいため、「肥満」の領域となる。また、第2の領域はBMIが18.5より大きく25より小さいため、「正常」の領域となる。また、第3の領域はBMIが18.5より小さいため、「やせ」の領域となる。なお、図4で示されるように、各領域を特徴付ける文言「肥満」「正常」「やせ」を領域ごとに表示していてもよい。
なお、ノモグラム30では、図5で示されるように、第1の軸31や第2の軸32に平行な格子線が表示されてもよい。また、ノモグラム30では、図6で示されるように、第1から第3の領域ごとに、異なる網掛けをすることによって、各領域を視覚的に容易に区別することができるようにしてもよい。なお、網掛けの代わりに、異なる色で着色してもよく、その他の方法によって、各領域を視覚的に区別可能にしてもよい。
画像データ記憶部11にノモグラム画像データが記憶される過程は問わない。例えば、記録媒体を介してノモグラム画像データが画像データ記憶部11で記憶されるようになってもよく、通信回線等を介して送信されたノモグラム画像データが画像データ記憶部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたノモグラム画像データが画像データ記憶部11で記憶されるようになってもよい。画像データ記憶部11での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。画像データ記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
指示受付部12は、ポイント図形41の位置を指定する指示を受け付ける。このポイント図形41は、ノモグラム30上に表示される図形であって、ノモグラム30上の位置を示す図形である。例えば、図4のBMIのノモグラム30において、ある被験者(ユーザ)の身長と体重に対応する位置にポイント図形41が表示される。指示受付部12は、例えば、マウスやトラックパッド、タッチパネル、矢印キー等でノモグラム30上におけるポイント図形41の位置に関する指示を受け付けてもよい。ポイント図形41の位置に関する指示は、例えば、ポイント図形41の位置を決定する指示(例えば、ポイント図形41の位置をクリックすることなど)であってもよく、あるいは、ポイント図形41の位置を移動させる指示(例えば、あらかじめ表示されているポイント図形41をドラッグすることなど)であってもよい。
また、指示受付部12は、ノモグラム30上に表示される所定の関数のグラフが通過する位置を指定する指示をも受け付けてもよい。また、指示受付部12は、ノモグラム30上に表示される領域の境界に対応する所定の関数のグラフが通過する位置を指定する指示をも受け付けてもよい。また、ノモグラム30上に複数のポイント図形41を表示可能な場合には、指示受付部12は、複数のポイント図形41の位置を指定する指示を受け付けてもよい。また、指示受付部12は、後述する差異情報を表示する旨の指示を受け付けてもよい。なお、指示受付部12は、受け付けた情報がポイント図形41の位置の指定の指示であるのか、関数のグラフの位置の指定の指示であるのか、境界の位置の指定の指示であるのか等を区別可能であることが好適である。例えば、ノモグラム30が表示されているウィンドウや、別のウィンドウにおいて、どの入力を行うのかをラジオボタン等によって指定可能なようになっていてもよい。
指示受付部12は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された情報を受信してもよい。なお、指示受付部12は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、指示受付部12は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
数値取得部13は、ノモグラム30上のポイント図形41の位置に対応する第1の軸31の値である第1の数値と、第2の軸32の値である第2の数値とを取得する。ポイント図形41の位置に対応する軸の値とは、例えば、第1の軸31の場合には、ポイント図形41から第2の軸32に平行に直線を引き、その直線と第1の軸31との交点に対応する値であってもよい。同様に、第2の軸32の場合には、ポイント図形41から第1の軸31に平行に直線を引き、その直線と第2の軸32との交点に対応する値であってもよい。数値取得部13は、例えば、表示画面上のポイント図形41の位置を検出し、その位置をノモグラム30上の位置に換算することによって第1及び第2の数値を取得してもよい。
また、数値取得部13は、指示受付部12が受け付けた指示で指定される位置(ポイント図形41とは関係のない位置)に対応する第1及び第2の軸31,32の値を取得してもよい。この第1及び第2の軸31,32の値の取得は、例えば、後述する関数のグラフの生成や、ノモグラム30の領域の境界の変更などの際に行われてもよい。また、数値取得部13が取得した第1及び第2の数値は、図示しない記録媒体において記憶されてもよい。
計算部14は、数値取得部13が取得した第1及び第2の数値を引数とする所定の関数の計算結果の値を計算する。本実施の形態では、所定の関数がBMIの式である場合について説明する。この所定の関数は、図示しない記録媒体において記憶されていており、計算部14は、その所定の関数を読み出すことによって、第1及び第2の数値から関数の計算結果の値を算出してもよい。また、計算部14によって計算された所定の関数の計算結果の値は、図示しない記録媒体において記憶されてもよい。
また、計算部14は、数値取得部13によって取得された、指示受付部12が受け付けた指示で指定される位置に対応する第1及び第2の軸31,32の値を引数とする所定の関数の計算結果の値をも計算してもよい。
画像生成部15は、ポイント図形画像データと、第1のドロップライン図形画像データと、第2のドロップライン図形画像データと、第1の数値画像データと、第2の数値画像データと、計算結果画像データと、差異情報画像データとを生成する。なお、これらのデータについて、図4を参照しながら説明する。
ポイント図形画像データは、ポイント図形41の画像データである。ポイント図形41は、ノモグラム画像データの示すノモグラム30上の位置を示す図形である。このポイント図形41がノモグラム30上に表示され、そのポイント図形41がどの領域に存在するのかを見ることによって、肥満であるのかどうかなどを判断することができる。ポイント図形41は、図4で示されるように、点の図形(丸の図形)であってもよく、あるいは、その他の十字や三角、四角等の図形であってもよい。
なお、画像生成部15は、指示受付部12がポイント図形41の位置を指定する指示を受け付けた場合には、その指示によって指定された位置に対応するポイント図形画像データを生成する。すなわち、画像生成部15は、指示受付部12が受け付けた指示によって指定された位置にポイント図形41を移動させるように、ポイント図形画像データを生成してもよい。したがって、指示受付部12がポイント図形の位置を指定する指示を受け付けた場合には、それまでに表示されていたポイント図形41に対応するポイント図形画像データは消去され、新たに指示された位置に対応するポイント図形画像データが生成されてもよい。なお、指定された位置に対応するポイント図形画像データを生成するとは、指定された位置にポイント図形41を表示するためのポイント図形画像データを生成することである。
また、画像生成部15は、単一のポイント図形41に対応する単一のポイント図形画像データを生成してもよく、複数のポイント図形41に対応する複数のポイント図形画像データを生成してもよい。複数のポイント図形のそれぞれは、例えば、第1及び第2の軸31,32の値で特徴付けられる異なる対象に対応するものであってもよく、あるいは、第1及び第2の軸31,32の値で特徴付けられる同一の対象の履歴に対応するものであってもよい。ここで、「対象」とは、例えば、第1及び第2の軸31,32の値が測定された被験者や物であってもよく、あるいは、その他の対象であってもよい。
また、ポイント図形画像データは、ポイント図形の画像データであり、最終的にポイント図形を表示することができる画像データであれば、例えば、ラスタデータのように画像そのものであってもよく、ベクタデータのようにラスタライズされることによって画像となるデータであってもよい。また、このポイント図形画像データは、ノモグラム画像データの示すノモグラム30上に生成されてもよく、ノモグラム30とは別途、生成されてもよい。後者の場合には、ノモグラム30上の表示位置を示す情報をポイント図形画像データが有していることが好適である。また、このポイント図形画像データは、図示しない記録媒体において一時的に記憶されてもよく、あるいは、画像データ記憶部11において一時的に記憶されてもよい。この段落に記載したことは、画像生成部15が生成する他の図形データについても同様であるとする。
第1のドロップライン図形画像データは、第1のドロップライン図形32の画像データである。第1のドロップライン図形32は、ポイント図形41から、そのポイント図形41に対応する第1の軸31の位置に引いたドロップライン(落下線)の図形である。この第1のドロップライン図形32と第1の軸31との交点によって、ポイント図形41の位置に対応する第1の軸31の値を容易に知ることができるようになる。
第2のドロップライン図形画像データは、第2のドロップライン図形33の画像データである。第2のドロップライン図形33は、ポイント図形41から、そのポイント図形41に対応する第2の軸32の位置に引いたドロップラインの図形である。この第2のドロップライン図形33と第2の軸32との交点によって、ポイント図形41の位置に対応する第2の軸32の値を容易に知ることができるようになる。
なお、第1及び第2のドロップライン図形42,43は、通常、ポイント図形41から第1及び第2の軸31,32に平行に引かれることになるが、結果として、ポイント図形41に対応する第1及び第2の軸31,32の値を示すことができるのであれば、それに限定されるものではない。また、第1及び第2のドロップライン図形42,43は、通常、線状の図形である。
第1の数値画像データは、第1の数値の画像データである。第1の数値は、数値取得部13によって取得された、ポイント図形41の位置に対応する第1の軸31の値である。この第1の数値44が表示されることによって、ユーザは、ポイント図形41に対応する第1の軸31の値を知ることができる。なお、この第1の数値44は、例えば、第1の数値に対応する第1の軸31の位置の近傍に表示されてもよく、あるいは、そうでなくてもよい。前者の場合には、ポイント図形41の移動に応じて、第1の数値44の表示位置も移動することになりうる。後者の場合には、あらかじめ決められた位置に第1の数値44が常に表示されてもよい。第1の数値画像データは、通常、数値のテキストを示す画像データである。
第2の数値画像データは、第2の数値の画像データである。第2の数値45は、数値取得部13によって取得された、ポイント図形41の位置に対応する第2の軸32の値である。この第2の数値45が表示されることによって、ユーザは、ポイント図形41に対応する第2の軸32の値を知ることができる。なお、この第2の数値45は、表示する数値が異なる以外は、前述した第1の数値44と同様のものであり、その詳細な説明を省略する。
計算結果画像データは、後述する計算部14によって計算された所定の関数の計算結果の値の画像データである。この計算結果46が表示されることによって、ユーザは、ポイント図形41によって、ポイント図形41に対応する第1及び第2の軸31,32の値を引数とする関数の計算結果の値を知ることができる。具体的には、ポイント図形41によって入力した身長、体重に対応するBMIの値を知ることができるようになる。この計算結果46が表示される位置は問わないが、例えば、図4で示されるように、ポイント図形41の近傍であってもよく、あるいは、あらかじめ決められた位置であってもよい。計算結果画像データは、通常、数値のテキストを示す画像データである。
差異情報画像データは、後述する差異情報生成部21が生成した差異情報の画像データである。この差異情報が表示されることによって、ユーザは、ポイント図形41の位置から目標とする領域に到達するまでの第1の軸31の値及び/または第2の軸32の値に関する情報を知ることができる。例えば、ユーザは、どれぐらい体重を減らせば、目標とする目標とするBMIの領域に到達することができるのかを知ることができる。なお、差異情報画像データが生成される場合には、ノモグラム画像データは、所定の関数の計算結果の値に応じて複数の領域に分割されているものであり、また、その複数の領域のうちの少なくとも一の領域は目標とする領域であるとする。
また、画像生成部15は、ポイント図形画像データ等を生成する際に、図示しない記録媒体であらかじめ記憶されている元画像データを用いて、その生成を行ってもよい。元画像データは、例えば、ポイント図形として用いられる図形(例えば、丸の形の図形など)の画像データであってもよく、第1及び第2の数値画像データや計算結果画像データの生成の際に用いられる枠の画像データであってもよく、その他の画像データであってもよい。
なお、画像生成部15は、生成した画像データを、後述する画像表示部16が画像データを読み出す記録媒体に順次、蓄積していってもよい。この場合に、あらかじめノモグラム画像データもその記録媒体に蓄積しておくことによって、画像表示部16は、その記録媒体から画像データを読み出して表示するのみで、画像データの表示をおこなうことができるようになる。その場合には、その記録媒体が画像データ記憶部11であってもよい。
画像表示部16は、画像データ記憶部11から読み出したノモグラム画像データと、画像生成部15が生成したポイント図形画像データ等の各画像データとを表示する。画像表示部16は、ノモグラム画像データ等に関する画像表示が最終的に行われるための表示出力を行うものであるとする。したがって、画像表示部16は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)に対して画像データ等を送信する送信部であってもよい。また、画像表示部16は、それらの表示を行う表示デバイスを含んでもよく、あるいは含まなくてもよい。また、画像表示部16は、ハードウェアによって実現されてもよく、あるいは表示デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
関数値受付部17は、所定の関数に関する値である関数値を受け付ける。この関数値は、ノモグラム30上のグラフを生成するためのものである。このグラフの生成は、新たなグラフの生成であってもよく、既存のグラフの位置を変えることであってもよい。例えば、図4で示されるようなBMIのノモグラム30の場合には、この関数値はBMIの値となる。この関数値は、例えば、テキスト入力されることによって受け付けられてもよく、あるいは、ノモグラム30上の点が指定されることによって受け付けられてもよい。ここで、その後者の場合について説明する。まず、ユーザがポインティングデバイス等を用いてノモグラム30上に表示される所定の関数のグラフが通過する位置を指定したとする。この指定は、例えば、マウス等でその位置をクリックすることや、既存のグラフをドラッグすることなどによって行われる。マウスでクリックされた位置や、グラフがドラッグされてマウスのボタンがオフになった位置が、指定された位置となる。その位置の指定は、指示受付部12によって受け付けられる。そして、数値取得部13は、その指定された位置に対応する第1及び第2の軸31,32の値を取得する。また、計算部14は、その取得された第1及び第2の軸31,32の値を引数とする所定の関数の計算結果の値を計算する。この計算結果の値は所定の関数の値(例えば、BMIの値)であるので、その値が関数値受付部17で受け付けられることになる。したがって、関数値受付部17は、指示受付部12が受け付けた指示で指定される位置に対応する計算結果の値である関数値を受け付けることになる。このようにして、関数値がテキスト入力される場合と同様にして、関数値をGUIで入力することもできる。本実施の形態では、関数値がGUIで入力される場合について説明する。
関数値受付部17は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された関数値を受け付けてもよく、有線もしくは無線の通信回線を介して送信された関数値を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された関数値を受け付けてもよく、他の構成要素から関数値を受け付けてもよい。なお、関数値受付部17は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、関数値受付部17は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
グラフ生成部18は、所定の関数が関数値受付部17で受け付けられた関数値となるグラフを生成し、そのグラフがノモグラム上に表示されるようにノモグラム画像データを変更する。例えば、BMIのノモグラムの場合には、BMIが関数値となるグラフを生成して、ノモグラム画像データに追加する。なお、グラフは、通常、1次元の線状のものであるが、場合によっては、2次元の面状のもの、0次元の点状のものであってもよい。また、既存のグラフが移動される場合には、グラフ生成部18は、既存のグラフが消去され、新たなグラフが表示されるようにノモグラム画像データを変更してもよい。また、グラフ生成部18が生成するグラフは、1個でもよく、2個以上であってもよい。
境界値受付部19は、領域の境界に対応する値である境界値を受け付ける。この境界値は、ノモグラムが所定の関数の計算結果の値に応じて複数の領域に分割されている場合における、その領域の境界に対応する値である。例えば、図4で示されるようなBMIのノモグラム30の場合には、第1及び第2の領域境界線33,34によって、座標平面が3個の領域に分割されている。そして、例えば、その第1の領域境界線33を変更する場合の変更後の第1の領域境界線33に対応する所定の関数の値(この場合には、BMIの値)が境界値受付部19で受け付けられる境界値である。この境界値も、前述の関数値と同様に、テキスト入力されることによって受け付けられてもよく、あるいは、ノモグラム30上の点が指定されることによって受け付けられてもよい。後者については、関数値の場合と同様であり、その説明を省略する。ただし、この境界値の受け付けは、通常、既存の境界線を新たな境界線に変更するために行われるものであるため、変更の対象となる境界線を特定するための情報も、境界値と一緒に境界値受付部19で受け付けられることが好適である。既存の境界線を特定するための情報は、例えば、その境界線に対応する所定の関数の値(例えば、BMIの値)であってもよい。本実施の形態では、境界値がGUIで入力される場合について説明する。なお、ノモグラムが複数の領域に分割されていない場合に、新たな境界を設定する場合には、その境界線を特定するための情報が受け付けられなくてもよい。
境界値受付部19は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された境界値を受け付けてもよく、有線もしくは無線の通信回線を介して送信された境界値を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された境界値を受け付けてもよく、他の構成要素から境界値を受け付けてもよい。なお、境界値受付部19は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、境界値受付部19は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
境界変更部20は、所定の関数が境界値受付部19で受け付けられた境界値となるグラフが領域の境界となるようにノモグラム画像データを変更する。受け付けられた境界値に対応するグラフの生成については、グラフ生成部18の説明と同様である。また、既存の境界が移動される場合には、境界変更部20は、既存の境界が消去され、新たな境界が表示されるようにノモグラム画像データを変更してもよい。
差異情報生成部21は、ポイント図形41の位置と、目標とする領域との間の第1の軸の値及び/または第2の軸の値の差異に関する情報である差異情報を生成する。この差異情報は、ポイント図形41の位置から、目標とする領域に到達するまでの第1の軸31の値や、第2の軸32の値、その両方であってもよい。また、差異情報は、ポイント図形41の位置から、目標とする領域に到達するまでの第1の軸31の値に関連した情報や、目標とする領域に到達するまでの第2の軸32の値に関連した情報、あるいは、目標とする領域に到達するまでの第1及び第2の軸31,32の値の両方に関連した情報であってもよい。例えば、BMIのノモグラムの場合には、差異情報は、ポイント図形41の位置から、目標とする領域に到達するまでの身長の値、体重の値、その両方、あるいは、体重の値に対応する運動量や消費エネルギー量などであってもよい。なお、身長の場合のように、通常、変化させることが困難である変数については、その変数の変化に関する情報が差異情報に含まれないようにしてもよい。このようにすることで、差異情報に無意味な情報(例えば、身長を10センチメートルだけ伸ばす旨、あるいは、縮める旨の情報)が含まれることを回避することができる。また、ポイント図形41の位置から、目標とする領域に到達するまでの経路が複数存在することもある。例えば、第1の軸31の値だけを変化させる経路や、第2の軸32の値だけを変化させる経路、第1及び第2の軸31,32の値の両方を変化させる経路などがありうる。
次に、本実施の形態による電子ノモグラム1の動作について、図2、図3のフローチャートを用いて説明する。
(ステップS101)画像表示部16は、ノモグラム画像データ等を表示するかどうか判断する。そして、表示する場合には、ステップS102に進み、そうでない場合には、表示すると判断するまでステップS101の処理を繰り返す。なお、画像表示部16は、例えば、ノモグラム画像データ等を表示する旨の指示を受け付けた場合に、ノモグラム画像データ等を出力すると判断してもよく、その他のタイミングでノモグラム画像データ等を表示すると判断してもよい。
(ステップS102)画像表示部16は、画像データ記憶部11から読み出したノモグラム画像データや、画像生成部15が生成した画像データを表示する。なお、初めてノモグラム画像データ等を表示する場合には、あらかじめ決められている位置のポイント図形41や、それに対応する第1及び第2のドロップライン図形42,43、第1及び第2の数値44,45、計算結果46等を表示してもよく、それらを表示しなくてもよい。
(ステップS103)指示受付部12は、ポイント図形41の位置を指定する指示を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS104に進み、そうでない場合には、ステップS109に進む。
(ステップS104)画像生成部15は、指示受付部12が受け付けたポイント図形41の位置を指定する指示に応じて、ポイント図形画像データを生成する。例えば、受け付けられた指示がポイント図形41を移動する旨の指示である場合には、画像生成部15は、その時点でのポイント図形画像データを削除して、移動先の位置にポイント図形画像データを生成する。また、例えば、受け付けられた指示がポイント図形41を新たに表示する旨の指示である場合には、画像生成部15は、指定された位置にポイント図形画像データを生成する。また、ポイント図形画像データの生成は、例えば、図示しない記録媒体であらかじめ記憶されているポイント図形41を用いてなされてもよい。また、ポイント図形画像データの生成は、例えば、ポイント図形41の表示位置を決定する処理であってもよい。
(ステップS105)画像生成部15は、ポイント図形41から第1及び第2の軸31,32にそれぞれ延びる第1及び第2のドロップライン図形42,43の画像データである第1及び第2のドロップライン図形画像データを生成する。例えば、ポイント図形41に対応するスクリーン座標のX軸の値がAであり、Y軸の値がBであり、第1の軸31がスクリーン座標のY軸がCである直線上に存在し、第2の軸32がスクリーン座標のX軸がDである直線上に存在する場合に、画像生成部15は、(A,B)から(A,C)までの線分である第1のドロップライン図形42を表示するための第1のドロップライン図形画像データを生成してもよい。同様に、画像生成部15は、(A,B)から(D,B)までの線分である第2のドロップライン図形43を表示するための第2のドロップライン図形画像データを生成してもよい。また、スクリーン座標の代わりにクライアント座標を用いてもよい。なお、スクリーン座標やクライアント座標については後述する。
(ステップS106)数値取得部13は、ポイント図形41の位置に対応する第1及び第2の数値を取得する。数値取得部13は、例えば、ポイント図形41の位置に対応するスクリーン座標の座標値を取得する。この座標値の取得は、例えば、オペレーションシステム(OS)によってなされてもよい。また、スクリーン座標とは、ノモグラム30等が表示される表示画面の左上の端点を原点として、X軸が右方向、Y軸が下方向に取られた座標系である。また、例えば、図4で示される座標系の左上の端点、すなわち、(身長,体重)=(140,100)の点を原点として、X軸が右方向、Y軸が下方向に取られた座標系であるクライアント座標が設定されているものとする。このクライアント座標は、(身長,体重)=(140,100)、(140,30)、(190,30)、(190,100)の各点を頂点とする矩形の領域であるとする。また、そのクライアント座標の領域の左下の端点が(身長,体重)=(140,30)であり、右上の端点が(身長,体重)=(190,100)であることが設定されているものとする。そして、数値取得部13は、取得したスクリーン座標の座標値を、クライアント座標の座標値に変換する。最後に、数値取得部13は、そのクライアント座標を(身長,体重)の座標値に変換することによって、第1の数値(身長の値)と、第2の数値(体重の値)とを取得することができる。なお、スクリーン座標の座標値から、クライアント座標の座標値への変換についてはすでに公知であり、その詳細な説明を省略する。また、クライアント座標の座標値から、第1及び第2の軸31,32の座標値への変換についても、簡単な座標変換で行うことができる。例えば、(身長,体重)の座標系が図4で示されるように設定されており、クライアント座標のX軸の最大値がAであり、Y軸の最大値がBであるとする。そして、クライアント座標の座標値が(X,Y)である場合には、次のようになる。
(身長,体重)=(140+50×X/A,100−70×Y/B)
(ステップS107)計算部14は、数値取得部13が取得した第1及び第2の数値を用いて、所定の関数の計算結果の値を算出する。
(ステップS108)画像生成部15は、第1及び第2の数値画像データや、計算結果画像データを生成する。そして、ステップS102に戻る。
ここで、画像生成部15が第1及び第2の数値画像データを生成する処理について説明する。画像生成部15は、数値取得部13が取得した第1及び第2の数値を用いて、第1の数値画像データと、第2の数値画像データとを生成する。画像生成部15は、例えば、あらかじめ図示しない記録媒体で記憶されている枠などの図形の画像データである元画像データを読み出して、その画像データに第1の数値や第2の数値のテキストを挿入することによって、第1及び第2の数値画像データを生成してもよい。また、第1及び第2の数値44,45の表示位置は、それぞれ第1の軸31の第1の数値の近傍、第2の軸32の第2の数値の近傍になるように設定してもよい。この場合に、第1及び第2の軸31,32の座標系からクライアント座標への変換等を行うことによって第1及び第2の数値44,45の表示位置を決定するようにしてもよい。
次に、画像生成部15が計算結果画像データを生成する処理について説明する。画像生成部15は、計算部14が計算した関数の計算結果の値を用いて、計算結果画像データを生成する。画像生成部15は、例えば、あらかじめ図示しない記録媒体で記憶されている枠などの図形の画像データである元画像データを読み出して、その画像データに関数の計算結果の値のテキストを挿入することによって、計算結果画像データを生成してもよい。また、計算結果46の表示位置は、ポイント図形41の近傍になるように設定してもよい。
(ステップS109)指示受付部12は、グラフの位置を指定する指示を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS110に進み、そうでない場合には、ステップS114に進む。
(ステップS110)数値取得部13は、受け付けられた指示によって指定される位置に対応する第1及び第2の軸31,32の値を取得する。この処理は、ステップS106と同様にして行われる。
(ステップS111)計算部14は、数値取得部13が取得した第1及び第2の軸31,32の値を用いて、所定の関数の計算結果の値を算出する。
(ステップS112)関数値受付部17は、計算部14によって計算された所定の関数の計算結果の値である関数値を受け付ける。
(ステップS113)グラフ生成部18は、所定の関数が関数値となるグラフを生成し、そのグラフがノモグラム上に表示されるようにノモグラム画像データを変更する。なお、このグラフの生成の際には、ノモグラム画像データの第1及び第2の軸31,32の値の範囲に応じてグラフを生成することが好適である。例えば、図4で示されるノモグラム30のように、第1の軸31の値の範囲が140〜190であり、第2の軸32の値の範囲が30〜100である場合には、グラフ生成部18は、その範囲でのグラフを生成する。また、生成したグラフを追加する位置は、例えば、第1及び第2の軸31,32の座標系の値をクライアント座標の座標値に変換することによって知ることができる。また、指示受付部12が受け付けた指示がグラフを移動する指示である場合には、グラフ生成部18は、移動後のグラフを生成すると共に、移動対象となるグラフ(すなわち、移動前のグラフ)を消去する。このグラフの消去は、例えば、指示受付部12が受け付けた移動前のグラフのスクリーン座標の座標値をクライアント座標の座標値に変換することによって、ノモグラム画像データにおいて消去するグラフを特定することができ、そのグラフを消去することができうる。そして、ステップS102に戻る。
(ステップS114)指示受付部12は、複数の領域のいずれかの境界を指定する指示を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS115に進み、そうでない場合には、ステップS119に進む。
(ステップS115)数値取得部13は、受け付けられた指示によって指定される位置に対応する第1及び第2の軸31,32の値を取得する。この処理は、ステップS106と同様にして行われる。
(ステップS116)計算部14は、数値取得部13が取得した第1及び第2の軸31,32の値を用いて、所定の関数の計算結果の値を算出する。
(ステップS117)境界値受付部19は、計算部14によって計算された所定の関数の計算結果の値である境界値を受け付ける。
(ステップS118)境界変更部20は、所定の関数が境界値となるグラフが領域の境界となるようにノモグラム画像データを変更する。この新たな境界の生成方法は、ステップS113の新たなグラフの生成方法と同様であり、その説明を省略する。また、境界線を移動する場合には、移動対象となる境界線(すなわち、移動前の境界線)を消去する処理を行うのもグラフの生成の場合と同様である。なお、ノモグラム画像データにおいて、領域ごとに着色や網掛け等が行われている場合には、境界変更部20は、境界線の変更と共に、それらの変更も適宜、行うものとする。また、各領域に、その領域を特徴付ける文言(例えば、「肥満」等)が表示される場合には、境界変更部20は、境界線の変更に伴って、その文言の表示位置も変更してもよい。例えば、各領域の重心の位置が、その文言の表示位置に設定されている場合には、境界変更部20は、境界線を変更すると、各領域の新たな重心の位置を算出し、その重心の位置にその文言が表示されるようにノモグラム画像データを変更してもよい。そして、ステップS102に戻る。
(ステップS119)指示受付部12は、差異情報を生成する旨の指示を受け付けたかどうか判断する。そして、受け付けた場合には、ステップS120に進み、そうでない場合には、ステップS122に進む。
(ステップS120)差異情報生成部21は、ポイント図形41の位置と、目標とする領域との間の第1の軸31の値及び/または第2の軸32の値の際に関する情報である差異情報を生成する。この差異情報の生成の際に、目標とする領域との間の第1の軸31の値及び/または第2の軸32の値を取得する方法について説明する。図示しない記録媒体において、その目標とする領域の式が記憶されているものとする。その式は、例えば、次のようであったとする。
a<F(x,y)<b
ここで、F(x,y)は、第1の軸31の値「x」と、第2の軸32の値「y」とを引数とする所定の関数であるとする(例えば、図4の場合であればBMIの関数となる)。まず、差異情報生成部21は、ポイント図形41のスクリーン座標の座標値を取得し、その座標値をクライアント座標の座標値に変換する。また、そのクライアント座標の座標値を第1及び第2の軸31,32の値に変換する。その第1及び第2の軸31,32の値が(α,β)であったとする。すると、差異情報生成部21は、その値を所定の関数F(x,y)に代入し、F(α,β)の値を算出する。そして、以下の3個のケースに場合分けして説明する。
(1)F(α,β)<aの場合
この場合には、ポイント図形41からF(x,y)=aの境界に到達するまでの第1及び第2の軸31,32の値を求めることになる。まず、第1の軸31の値、すなわち「x」のみを変化させることによって、その境界に到達するまでの第1の軸31の値の変化を算出する場合について説明する。このときには、ポイント図形41の座標値(α,β)と、目標とする座標値との第2の軸32の値は変わらないため、F(x,β)=aを解くことによって境界上の第1の軸31の値を算出する。ここで、F(x,β)=aを解くと、x=Aとなったとする。すると、第1の軸31の値をαからAまで変化させることによって目標とする領域(正確には、目標とする領域の端点)に到達することができるため、差異情報生成部21は、第1の軸31の値を(A−α)だけ変化させればよいことを知ることができる。
同様に、第2の軸32の値、すなわち「y」のみを変化させることによって、その境界に到達するまでの第2の軸32の値の変化を算出する場合について説明する。このときには、ポイント図形41の座標値(α,β)と、目標とする座標値との第1の軸31の値は変わらないため、F(α,y)=aを解くことによって境界上の第2の軸32の値を算出する。ここで、F(α,y)=aを解くと、y=Bとなったとする。すると、第2の軸32の値をβからBまで変化させることによって目標とする領域(正確には、目標とする領域の端点)に到達することができるため、差異情報生成部21は、第2の軸32の値を(B−β)だけ変化させればよいことを知ることができる。
また、第1及び第2の軸31,32の値の両方、すなわち「x」「y」の両方を変化させることによって、その境界に到達するまでの第1及び第2の軸31,32の値の変化を算出する場合にも、上記説明と同様にして行うことができる。ただし、ポイント図形41の位置から境界に到達するまでの第1及び第2の軸31,32の値の変化の組合せは無数に存在するため、何らかの条件が必要になる。例えば、境界上の第1の軸31の値が決まっていてもよく、第2の軸32の値が決まっていてもよく、ポイント図形41の位置から境界に到達するまでの直線の傾きが決まっていてもよく、あるいは、その他の条件が決まっていてもよい。境界上の第1の軸31の値や第2の軸32の値が決まっている場合には、前述した方法と同様にして、他方の軸の値を求めることができるため、第1及び第2の軸31,32の値をどれだけ変化させればよいかを知ることができる。また、ポイント図形41の位置からの直線の傾きが分かっている場合には、ポイント図形41の位置を通る、その傾きの直線と、境界との交点を算出することによって、第1及び第2の軸31,32の値をどれだけ変化させればよいかを知ることができる。
(2)a≦F(α,β)≦bの場合
この場合には、ポイント図形41の位置がすでに目的とする領域内、あるいは、その領域の端点に存在するため、差異情報生成部21は、目標とする領域との間の第1の軸31の値及び/または第2の軸32の値を取得する必要はないことになる。なお、この場合に、差異情報生成部21は、差異が存在しない旨の差異情報を生成してもよく、あるいは、差異情報を生成しなくてもよい。前者の場合には、例えば、差異が存在しない旨の差異情報があらかじめ図示しない記録媒体で記憶されており、それを読み出すことによって差異情報を生成してもよい。
(3)F(α,β)>bの場合
この場合には、ポイント図形41からF(x,y)=bの境界に到達するまでの第1及び第2の軸31,32の値を求めることになる。その方法は、F(x,y)=aがF(x,y)=bとなった以外、F(α,β)<aの場合と同様であり、その詳細な説明を省略する。
なお、F(α,β)<aの場合や、F(α,β)>bの場合には、ポイント図形41の位置から境界に到達するまでの第1及び第2の軸31,32の値を算出し、それ自体を差異情報としてもよく、あるいは、それに関連する情報を差異情報としてもよい。関連する情報とは、例えば、BMIのノモグラムの場合に、ポイント図形41の位置から目標とする「標準」の領域に到達するまでの体重の変化に対応する運動量や、消費エネルギー量であってもよい。これらは、例えば、体重を引数とする関数を計算することによって算出することができうる。
また、目標とする領域が前述のように、a<F(x,y)<bと示される場合に、境界が変更された場合には、その境界の変更に伴って、aやbの値も適宜、変更されるものとする。
また、上記説明のようにして求められた、ポイント図形41の位置から境界に到達するまでの第1及び第2の軸31,32の値が、不適切なものである場合、例えば、体重が負の値となったり、異常に大きい値となったりする場合には、差異情報生成部21は、そのような値を用いた差異情報を生成しないようにしてもよい。
(ステップS121)画像生成部15は、差異情報生成部21が生成した差異情報を用いて、差異情報画像データを生成する。画像生成部15は、例えば、あらかじめ図示しない記録媒体で記憶されている枠などの図形の画像データである元画像データを読み出して、その画像データに差異情報のテキストを挿入することによって、差異情報画像データを生成してもよい。また、差異情報の表示位置は、ポイント図形41の近傍になるように設定してもよい。そして、ステップS102に戻る。
(ステップS122)画像表示部16は、ノモグラム画像データ等の表示を終了するかどうか判断する。そして、終了する場合には、ステップS101に戻り、そうでない場合には、ステップS103に戻る。なお、画像表示部16は、例えば、ノモグラム画像データ等の表示を終了する旨の指示を受け付けた場合に、ノモグラム画像データ等の表示を終了すると判断してもよく、あるいは、画像データの表示を最後に行ってからあらかじめ決められた時間が経過した場合に、ノモグラム画像データ等の表示を終了すると判断してもよい。
なお、図2、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、本実施の形態による電子ノモグラム1の動作について、具体例を用いて説明する。この具体例では、画像表示部16が各画像データをディスプレイに表示するものとする。
まず、ユーザがマウスやキーボードを操作することによって、ノモグラム30を出力する旨の指示を電子ノモグラム1に入力したとする。すると、画像表示部16は、画像データを表示するタイミングであると判断し(ステップS101)、画像データ記憶部11からノモグラム画像データを読み出して、ディスプレイに出力する(ステップS102)。その結果、図4で示されるノモグラム30であって、ポイント図形41や第1及び第2のドロップライン図形42,43、第1及び第2の数値44,45、計算結果46の表示のない画面がディスプレイ上に表示されることになる。
次に、ユーザがマウスを操作することによって、ディスプレイに表示されているノモグラム30上の一点をクリックしたとする。すると、指示受付部12は、ポイント図形41の位置を指定する指示を受け付けたと判断する(ステップS103)。そして、画像生成部15は、マウスでクリックされた位置にポイント図形画像データを生成する(ステップS104)。ここでは、身長の値が「170(cm)」であり、体重の値が「85.0(kg)」である位置がクリックされたものとする。また、画像生成部15は、ポイント図形41から第1及び第2の軸31,32にそれぞれ垂直に延びる第1及び第2のドロップライン図形42,43の画像データである第1及び第2のドロップライン図形画像データを生成する(ステップS105)。
次に、数値取得部13は、ノモグラム上のポイント図形41に対応する第1の数値「170」及び第2の数値「85.0」を取得する(ステップS106)。また、計算部14は、所定の関数の計算結果の値、すなわち、BMIの値を算出する(ステップS107)。この算出で用いる式は、
BMI=(第2の数値)/(第1の数値/100)2
である。第1及び第2の数値が前述の値である場合には、BMIの値は「29.4」となる。
その後、画像生成部15は、計算結果画像データ等を生成する処理を行う。具体的には、画像生成部15は、数値取得部13が取得した第1及び第2の数値に対応する第1及び第2の数値画像データを生成する。また、画像生成部15は、計算部14が計算したBMIの値に対応する計算結果画像データを生成する(ステップS108)。
画像表示部16は、画像生成部15が生成したポイント図形41等の画像データをディスプレイに表示する(ステップS102)。その結果、図4で示される表示が行われることになる。
ここで、ポイント図形41の位置が、ユーザが意図している位置でなかった場合、例えば、身長の値が「174(cm)」であり、体重の値が「86.6(kg)」の肥満の程度を知りたかった場合の操作について簡単に説明する。その場合には、ユーザは、図4の表示において、ポイント図形41をマウス等でドラッグすることにより、あるいは、目標とする新たなノモグラム30上の点をクリックすることにより、ポイント図形41を移動させる。すると、画像生成部15は、移動後の位置にポイント図形画像データや、第1及び第2のドロップライン図形画像データを生成する(ステップS103〜S105)。また、数値取得部13は、ポイント図形41の位置に対応する第1及び第2の数値を取得する(ステップS106)。計算部14は、その取得された第1及び第2の数値を用いて、BMIの値を算出する(ステップS107)。そして、画像生成部15は、第1及び第2の数値画像データと、計算結果画像データとを生成し(ステップS108)、それらがディスプレイに表示される(ステップS102)。なお、ここでは、ポイント図形41が一気に移動される場合について説明したが、そうでなくてもよい。例えば、ユーザがポイント図形41をドラッグして移動している途中の軌跡が、画像表示部16によって順次、表示されてもよい。このように、ステップS102〜S108の処理が繰り返されることによって、ポイント図形41の移動が行われてもよい。
ここで、複数のポイント図形41を表示する場合について説明する。まず、第1及び第2の軸31,32の値で特徴付けられる異なる対象(この具体例では、BMIの被験者である)に対応する複数のポイント図形41が表示される場合について説明する。この場合には、ノモグラム30上の点をクリックすることにより、新たなポイント図形41を生成することができ、既存のポイント図形41の移動は、ドラッグによって行うものとする。複数の被験者の身長、体重に対応するポイント図形41を表示する場合には、ユーザは、前述のようにして、被験者ごとにポイント図形41を入力していく(ステップS103〜S108,S102)。また、そのポイント図形41の位置が意図している位置でない場合には、前述のようにして、その位置を変更する。また、複数のポイント図形41が表示される場合には、各ポイント図形41が誰に対応しているのかが分からなくなるため、各ポイント図形41から延びる吹き出しによって、図7で示されるように、各ポイント図形41に対応するユーザ名を入力できるようにしてもよい。この場合には、画像生成部15が各ポイント図形41に対応する吹き出しの画像データをも生成し、画像表示部16が、その吹き出しの画像データをも表示するものとする。また、指示受付部12が、その吹き出しに表示するユーザ名を受け付けてもよい。
なお、図7では、各ポイント図形41に対応する吹き出しによって、各ポイント図形41に対応するユーザを識別できるようにしたが、ノモグラム30上に表示される各ポイント図形41の図形を異なるものとしてもよい。例えば、ポイント図形41を、○、□、◇等として、ポイント図形41ごとに対応するユーザ名を次のように記載してもよい。
○:Aさん
□:Bさん
◇:Cさん
次に、第1及び第2の軸31,32の値で特徴付けられる同一の対象(この具体例では、BMIの被験者である)の履歴に対応する複数のポイント図形41が表示される場合について説明する。この場合には、履歴の古い順にポイント図形41の入力を行うものとする。すると、図8で示されるように、画像生成部15は、各ポイント図形41の位置を結ぶ矢印の画像データをも生成し、画像表示部16が、その矢印の画像データをも表示する。その結果、図8の表示を見た者は、あるユーザの身長、体重の値がどのように変化していったのかを知ることができる。なお、このように履歴を表示する際に、図7の吹き出しと同様にして、各ポイント図形41に対応するデータの年月日を表示するようにしてもよい。そのようにすることで、ノモグラム30上に表示されたポイント図形41の履歴について、より詳細な情報を知ることができるようになる。この場合には、指示受付部12が、その年月日の情報を受け付け、画像生成部15が、その年月日を含む吹き出しの画像データを生成してもよい。
次に、所定の関数が所望の関数値となるグラフをノモグラム30上に表示する場合について説明する。所望のグラフをノモグラム30上に表示する場合には、ユーザは、そのグラフを表示したい位置をマウス等のポインティングデバイスで指定する。なお、この際の指定が、ポイント図形41の位置の指定のクリックと異なることを明らかにするために、図示しない手段を介して入力のモードをグラフの入力に切り換えた上でクリックを行ってもよく、あるいは、ポイント図形41の位置の指定はクリックで行い、グラフの位置の指定はダブルクリックで行ってもよい。
ここで、図4で示されるノモグラム30が表示されている場合に、ユーザが、ノモグラム30上の身長が175cm、体重が67.375kgの位置をポインティングデバイスで指定したとする。すると、その指定が指示受付部12で受け付けられ(ステップS109)、数値取得部13は、その指定された位置に対応する身長「175(cm)」、及び体重の値「67.375(kg)」を取得する(ステップS110)。また、それらの身長や体重の値が計算部14に渡され、計算部14は、それらの値を用いてBMIの値を算出する(ステップS111)。この場合には、BMI=「22.0」となり、これが関数値となる。その関数値「22.0」は、計算部14から関数値受付部17に渡される(ステップS112)。そして、グラフ生成部18は、その関数値受付部17が受け付けた関数値「22.0」に対応するBMIのグラフを生成し、画像データ記憶部11で記憶されているノモグラム画像データに追加する(ステップS113)。ここでは、BMI=22.0の破線のグラフが生成され、ノモグラム画像データに追加されたとする。すると、図9で示されるように、新たなグラフ35がノモグラム30上に表示されることになる(ステップS102)。このようにして、例えば、標準のBMI(=22.0)を示すグラフ35をノモグラムに追加することができる。なお、図9において、グラフ35に対応するBMIの値「22.0」を、グラフ35に対応付けて表示するようにしてもよい。その場合には、画像生成部15は、計算部14から所定の関数の計算結果の値「22.0」を受け取り、その値に対応する画像を生成して、グラフ35に対応付けて表示してもよい。グラフ35に対応付けて表示するとは、例えば、グラフ35上に表示することであってもよく、あるいは、グラフ35から引き出し線を伸ばし、その引き出し線のグラフ35と反対側の端点に表示することであってもよい。
ユーザが、そのグラフ35を移動させたい場合には、マウス等のポインティングデバイスでグラフ35を任意の場所にドラッグする。すると、そのドラッグの指示が指示受付部12で受け付けられ(ステップS109)、前述の説明と同様にして、図10で示されるように、ドラッグ後の位置に新たなグラフ36が生成される(ステップS110〜S113,S102)。なお、図10では、説明の便宜上、グラフ35も表示しているが、グラフ生成部18は、新たなグラフ36をノモグラム画像データに追加した後には、ドラッグの基点となったグラフ35をノモグラム画像データから消去するものとする。このようにして、ノモグラムのグラフを移動させることができる。
次に、ノモグラムを複数の領域に分割している境界を移動する場合について説明する。所望の境界を移動する場合には、ユーザは、その移動したい境界をマウス等のポインティングデバイスで指定する。そして、その境界の移動先を、マウス等のポインティングデバイスで指定する。この指定は、グラフ35の移動の説明と同様に、例えば、マウス等のドラッグによって行われてもよい。すなわち、移動したい境界を所望の移動先にドラッグすることによって行われてもよい。
ここで、境界の移動前のノモグラム30が、図7で示されるものであったとする。そして、肥満の領域に含まれる5人の被験者に対して、保健指導を行いたいとする。図7では、6人の被験者が肥満の領域に含まれるため、ユーザは、正常の領域に最も近い一人の被験者が正常の領域に含まれるように第1の領域境界線33をドラッグする。すると、そのドラッグの処理が指示受付部12で受け付けられ(ステップS114)、数値取得部13は、ドラッグ後の位置に対応する身長、及び体重の値を取得する(ステップS115)。また、それらの身長や体重の値が計算部14に渡され、計算部14は、それらの値を用いてBMIの値を算出し(ステップS116)、境界値受付部19に渡す。境界値受付部19は、そのBMIの値である境界値を受け付け、境界変更部20に渡す(ステップS117)。境界変更部20は、図11で示されるように、第1の領域境界線33の位置が、新たな第1の領域境界線37の位置になるようにノモグラム画像データを変更する(ステップS118)。そして、その変更後のノモグラム30が表示されることになる(ステップS102)。なお、図11において、説明の便宜上、移動前の第1の領域境界線33を破線で表示しているが、実際には、この第1の領域境界線33の移動後には表示されないことになる。このようにして、図11で示されるように、領域が被験者「Eさん」が正常の領域に含まれることになり、肥満の領域に含まれるのは、5人の被験者となる。したがって、その5人に対して保健指導を行うことができる。
次に、差異情報の表示について説明する。まず、前提として、電子ノモグラム1の図示しない記録媒体において、各変数を任意に変更することができるかどうかを示す変更可否情報が記憶されているものとする。図12は、その変更可否情報の一例を示す図である。図12において、変数と、変更の可否とが対応付けられている。具体的には、第1の軸31の変数(この具体例では身長)は、変更が不可であり、第2の軸32の変数(この具体例では体重)は、変更が可能である。一般に、摂取エネルギー量や運動等をコントロールすることによって被験者の意思によって体重を変えることは可能であるが、被験者の意思によって身長を変えることは不可能であると考えられるからである。
また、この具体例では、18.5<BMI<25が正常の範囲に設定されているとする。したがって、次式が正常の範囲を示す式として、図示しない記録媒体で記憶されているものとする。
18.5<(第2の軸の値)/(第1の軸の値/100)2<25
まず、図4で示されるノモグラム30が表示されている場合に、ユーザがマウス等のポインティングデバイスを操作して「差異情報の表示」ボタン51をクリックしたとする。すると、その指示が指示受付部12で受け付けられ、その旨が図示しない経路を介して差異情報生成部21に渡される(ステップS119)。そして、差異情報生成部21は、図12で示される変更可否情報を参照し、第2の軸32の値のみを変更可能であることを知る。そして、前述の説明のようにして、図4でのポイント図形41の位置が、BMI=25の第1の領域境界線33に近いと判断し、BMI=25となるまでの第2の軸32の値の変化を算出する。この場合には、その第2の軸32の値の変化は、12.7(kg)である。したがって、差異情報生成部21は、正常の範囲まで、12.7(kg)である旨の差異情報を生成する(ステップS120)。その後、画像生成部15は、その生成された差異情報に対応する差異情報画像データを生成し(ステップS121)、図13で示されるように、その差異情報画像データが表示される。この表示を見ることによって、ポイント図形41に対応するユーザは、体重を12.7(kg)減らせば正常の範囲に到達することを知ることができる。
なお、前述のように、正常の範囲に到達する体重の値に代えて、その体重に対応するエネルギー量等である差異情報を生成し、その差異情報の画像が表示されるようにしてもよい。例えば、体脂肪のエネルギー量は体脂肪組織に含まれる水分を考慮すると約7kcal/1gとなるため、12.7(kg)の体脂肪は、88900(kcal)に対応する。したがって、差異情報生成部21は、摂取エネルギー量をそれだけ減らすか、あるいは、消費エネルギー量をそれだけ増やせば正常の範囲に到達する旨の差異情報を生成してもよい。
次に、変更可否情報によって、第1及び第2の軸31,32の値の両方を変更可能な場合の差異情報の生成について説明する。ここで、ノモグラム30は、図14で示されるように、第1の軸31は、被験者が食事等で摂取する摂取エネルギー量を示しており、第2の軸32は、被験者の歩行時間を示しているとする。そして、60分の歩行が200kcalに対応するとして、摂取エネルギー量から歩行によるエネルギー消費量を引いた値が1800kcalとなる直線を引いている。この直線は、1日あたりのエネルギーバランスが1800(kcal)の線であり、これが目標とする領域となる。
また、この具体例では、正常の領域に到達するための第1の軸31の値のみの変化と、第2の軸32の値のみの変化と、歩行時間=0となる正常の領域に到達するための第1及び第2の軸31,32の値の変化との3種類の差異情報を算出するように設定されているとする。
この場合に、ポイント図形41が図14で示されるように、摂取エネルギー量「2200(kcal)」、歩行時間「60(分)」の位置に存在していたとする。このポイント図形41の位置は、1日あたりのエネルギーバランスが、2200(kcal)から歩行時間60(分)に対応する200(kcal)を引いた2000(kcal)である位置となる。そして、ユーザがマウス等のポインティングデバイスを操作して「差異情報の表示」ボタン51をクリックすると、その指示が指示受付部12で受け付けられ、その旨が図示しない経路を介して差異情報生成部21に渡される(ステップS119)。そして、差異情報生成部21は、変更可否情報を参照し、両方の軸の値を変更可能であることを知る。そして、前述の説明のようにして、差異情報生成部21は、摂取エネルギー量のみを変化させて正常の領域に到達するまでの摂取エネルギー量と、歩行時間のみを変化させて正常の領域に到達するまでの歩行時間量と、歩行時間が0(分)となる正常の領域に到達するまでの摂取エネルギー量及び歩行時間量とを算出し、それらの差異情報を生成する(ステップS120)。そして、画像生成部15は、各差異情報に対応する差異情報画像データを生成すると共に、ポイント図形41の位置を始点として、各差異情報によって示される変化によって到達する位置である到達位置を終点とする矢印の画像データとを生成し(ステップS121)、それらが図14で示されるように表示されることになる。このようにして、1日あたりのエネルギーバランスを2000(kcal)から1800(kcal)に減少させるための方法が表示されることになる。なお、各差異情報画像データは、対応する矢印の近傍、あるいは、その矢印の上に表示されることが好適である。例えば、各差異情報画像データは、ポイント図形41の位置と、差異情報画像データに対応する到達位置とをあらかじめ決められた割合で内分する点に表示されてもよい。その内分する点は、ポイント図形41の位置と、到達位置との中点であってもよい。
図14で示される表示が行われることによって、ユーザは、摂取エネルギー量を200kcal減らすことや、歩行時間を60分増やすこと、摂取エネルギー量を400kcal減らすと共に、歩行時間を60分減らすことによって、1日あたりのエネルギーバランスを1800(kcal)とできることが分かる。また、2以上の差異情報画像データが表示されることによって、被験者が最適な解決方法を選択することができるようになりうる。例えば、仕事等が忙しくて運動時間を確保できない被験者の場合には、運動時間が増えない方法を選択することができうる。
また、ユーザが図4等の表示において「終了」ボタン52をクリックすると、それに応じて、ノモグラム30等の表示が終了され、ディスプレイに表示されなくなる(ステップS122)。
なお、この具体例では、差異情報を表示する処理についてのみ説明したが、差異情報を表示しなくてもよくなった場合には、図示しない方法によって、差異情報を表示しない旨の指示を入力し、その入力に応じて、差異情報が表示されないようになってもよい。その場合には、例えば、画像生成部15が差異情報画像データを削除することによって、差異情報が表示されないようになってもよい。
以上のように、本実施の形態による電子ノモグラム1によれば、従来のノモグラムよりも使い勝手を向上させることができる。例えば、ノモグラム上に表示するポイント図形41の位置をテキスト入力ではなく、GUIによって指定することができるため、ポインティングデバイスと、キーボードなどの複数種類の入力デバイスを用いることなく、ポインティングデバイスのみを用いて、体重や身長の数値入力や、その入力した値の変更を行うことができる。また、数値をテキスト入力する場合には、通常、入力することができる桁数等が制限されているが、GUIによって入力することによって、そのような制限もなく、任意に入力を行うことができうる。また、前述の非特許文献2とは異なり、ポイント図形41がマウスポインタと連動しなくてよいため、ポイント図形41を所望の位置に表示したまま、他の操作等を行うことができるようになる。
また、所定の関数の計算結果の値が表示されることによって、ポイント図形41の位置に対応する所定の関数の計算結果を容易に知ることができるようになる。また、ポイント図形41の位置に対応する第1及び第2の数値も表示されるため、ポイント図形41の位置に対応する第1及び第2の軸31,32の厳密な値を容易に知ることができるようになる。また、必要に応じて、所定の関数が所望の関数値となるグラフをノモグラム上に表示させることもできる。また、ノモグラムが所定の関数の値に応じて複数の領域に分割されている場合には、必要に応じて、その領域の境界の位置を変更することもできる。
また、ポイント図形41の位置から、目標とする領域に到達するまでの情報である差異情報を生成し、表示することも可能である。その結果、どのような変化によって、目標とする領域に到達することができるのかについて、その差異情報を用いることによって容易に知ることができるようになる。
また、複数のポイント図形41を表示することも可能であるため、例えば、複数の被験者に対応する複数のポイント図形41をノモグラム上に表示することによって、被験者同士の比較を行うこともでき、同一の被験者の履歴に対応する複数のポイント図形41をノモグラム上に表示することによって、その被験者のデータの変化を見ることもできうる。
なお、複数のポイント図形がノモグラムに表示される場合であって、ノモグラムが複数の領域に分割されている場合には、画像生成部15は、異なる領域に表示されるポイント図形41を視覚的に異なるポイント図形41としてポイント図形画像データを生成してもよい。視覚的に異なるとは、例えば、形状が異なることであってもよく、色が異なることであってもよく、表示方法(例えば、点滅の有無、回転の有無等)が異なることであってもよく、その他の視覚的な要素が異なることであってもよい。例えば、肥満の領域のポイント図形41を四角形状とし、正常の領域のポイント図形41を丸形状とし、やせの領域のポイント図形41を三角形状としてもよい。なお、そのように領域ごとに異なる表示を行うために、例えば、各領域を特定する情報(例えば、第1の領域がa<F(x,y)<bであり、第2の領域がb<F(x,y)<cであるなどの情報)が図示しない記録媒体で記憶されており、また、各領域とポイント図形41の表示とを対応付ける情報(例えば、第1の領域はポイント図形41が四角形状であり、第2の領域はポイント図形41が三角形状であるなどの情報)も図示しない記録媒体で記憶されていてもよい。そして、画像生成部15は、各領域を特定する情報を参照し、各ポイント図形41の第1及び第2の数値を用いることによって、各ポイント図形41が存在する領域を特定し、また、各領域とポイント図形41の表示とを対応付ける情報を参照して、その特定した領域に対応する表示方法を特定して、その特定した表示方法によって、ポイント図形41が表示されるように、ポイント図形画像データを生成してもよい。なお、1個のポイント図形41が表示される場合にも、このようにして、領域ごとに異なるポイント図形41の表示を行うようにしてもよい。このようにすることで、ポイント図形41を見ることによって、例えば、そのポイント図形41がどの領域に存在するのかを容易に把握することができたり、他のポイント図形と同じ領域に存在するのかどうかを容易に確認することができたりすることになる。
また、本実施の形態による電子ノモグラム1において、図15で示されるように、数値取得部13が取得した第1及び第2の数値や、計算部14が計算した所定の関数の計算結果の値を出力する出力部22をさらに備えてもよい。この出力部22は、例えば、第1及び第2の数値のみを出力してもよく、計算結果の値のみを出力してもよく、あるいは、両方を出力してもよい。また、この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。出力部22が他の構成要素への情報の引き渡しを行う場合には、例えば、画像生成部15や関数値受付部17、境界値受付部19は、出力部22から、第1及び第2の数値や所定の関数の計算結果の値を受け取ると考えてもよい。なお、出力部22は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、出力部22は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
電子ノモグラム1が出力部22を備えている場合には、その出力部22によって、取得された第1及び第2の数値や、計算結果の値を出力することが可能となる。そのため、例えば、出力部22は、取得された第1及び第2の数値や、計算結果の値を、被験者に対応する電子カルテ等に蓄積する処理を行ってもよく、それらの情報を管理しているサーバ等に送信する処理を行ってもよい。
また、本実施の形態では、電子ノモグラム1が差異情報をも表示する場合について説明したが、そうでなくてもよい。差異情報を表示しない場合には、電子ノモグラム1は、差異情報生成部21を備えていなくてもよく、また、各構成要素は、差異情報に関する処理を行わなくてもよい。
また、本実施の形態では、ノモグラムが複数の領域に分割されている場合に、その境界を変更可能な場合について説明したが、そうでなくてもよい。領域の境界が変更可能でない場合には、電子ノモグラム1は、境界値受付部19や境界変更部20を備えていなくてもよく、また、各構成要素は、境界の変更に関する処理を行わなくてもよい。
また、本実施の形態では、受け付けられた関数値に対応するグラフを表示する場合について説明したが、そうでなくてもよい。関数値に対応するグラフを表示しない場合には、電子ノモグラム1は、関数値受付部17やグラフ生成部18を備えていなくてもよく、また、各構成要素は、グラフの表示に関する処理を行わなくてもよい。
また、本実施の形態では、ノモグラムに第1及び第2の数値も表示される場合について説明したが、そうでなくてもよい。
また、本実施の形態では、ノモグラムに計算結果が表示される場合について説明したが、電子ノモグラム1が出力部22を備えている場合には、ノモグラムに計算結果が表示されなくてもよい。
また、本実施の形態において、ノモグラム画像データが、所定の関数の計算結果の値に応じて複数の領域に分割される場合に、その分割数は問わない。例えば、本実施の形態の具体例で説明したように3個の領域に分割されてもよく、あるいは、2個や4個以上などのように、その他の個数の領域に分割されてもよい。また、ノモグラム画像データは、複数の領域に分割されていなくてもよい。
また、上記実施の形態では、電子ノモグラム1がスタンドアロンである場合について説明したが、電子ノモグラム1は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、情報を出力したりしてもよい。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していない場合であっても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、電子ノモグラム1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における電子ノモグラム1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、第1の軸と第2の軸とを有する座標平面のノモグラム上に表示される図形であって、前記ノモグラム上の位置を示す図形であるポイント図形の位置を指定する指示を受け付ける指示受付部、前記ノモグラム上の前記ポイント図形の位置に対応する前記第1の軸の値である第1の数値と、前記第2の軸の値である第2の数値とを取得する数値取得部、前記数値取得部が取得した第1及び第2の数値を引数とする所定の関数の計算結果の値を計算する計算部、前記指示受付部が受け付けた指示によって指定された位置に、前記ポイント図形の画像データであるポイント図形画像データを生成し、前記計算部が計算した関数の計算結果の値の画像データである計算結果画像データを生成する画像生成部、前記ノモグラムの画像データであるノモグラム画像データが記憶される画像データ記憶部から読み出したノモグラム画像データと、前記画像生成部が生成したポイント図形画像データ及び計算結果画像データとを表示する画像表示部、として機能させるためのものである。
また、上記実施の形態における電子ノモグラム1を実現する他のソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、第1の軸と第2の軸とを有する座標平面のノモグラム上に表示される図形であって、前記ノモグラム上の位置を示す図形であるポイント図形の位置を指定する指示を受け付ける指示受付部、前記ノモグラム上の前記ポイント図形の位置に対応する前記第1の軸の値である第1の数値と、前記第2の軸の値である第2の数値とを取得する数値取得部、前記数値取得部が取得した第1及び第2の数値を引数とする所定の関数の計算結果の値を計算する計算部、前記計算部が計算した関数の計算結果の値を出力する出力部、前記指示受付部が受け付けた指示によって指定された位置に、前記ポイント図形の画像データであるポイント図形画像データを生成する画像生成部、前記ノモグラムの画像データであるノモグラム画像データが記憶される画像データ記憶部から読み出したノモグラム画像データと、前記画像生成部が生成したポイント図形画像データを表示する画像表示部、として機能させるためのものである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を受け付ける受付部や、情報を表示する表示部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図16は、上記プログラムを実行して、上記実施の形態による電子ノモグラム1を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図16において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図17は、コンピュータシステム900の内部構成を示す図である。図17において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による電子ノモグラム1の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による電子ノモグラム1の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。