以下、図面を参照しながら、本発明の好適な実施の形態について説明する。
[第1の実施形態]
<C型アームを備えるX線装置の外観構成>
図1は、本発明の一実施形態にかかるX線装置の外観構成を示す図である。図1において、110はC型アームであり、その両端にはX線発生部111とX線検出部112とが対向して配されている。X線発生部111により照射され、寝台120上の被写体130を透過したX線は、X線検出部112において検出され、X線検出部112がX線画像を形成する。
113はC型アーム110を支持するアームホルダで、C型アーム110を上下左右方向へ直線移動させたり、水平垂直方向へ回転移動させたりすることができるように構成されている(詳細は後述)。
101は、X線発生部111及びX線検出部112の動作を制御し、被写体130の撮影を指示したり、X線検出部112において形成されたX線画像を処理しモニタ102上に表示したり、C型アームの動作を制御したりする制御装置である。
102は、タッチパネル式のモニタであり、撮影されたX線画像を表示したり、ユーザからの各種操作指示を受け付けたりする。
なお、図1において、141は、X線発生部111とX線検出部112とを結んでできる撮影軸である。X線はこの撮影軸にそって照射される。また、140は、撮影軸141の中心を示したセンター部である。
<C型アームの動作>
続いて、C型アーム110の動作について、図1を用いて説明する。図1において、142は、C型アーム110と寝台120とに平行に引かれたX軸であり、C型アーム110は、このX軸を回転中心として回転することができる。
また、143は、C型アーム110と寝台120とに垂直に引かれたY軸であり、C型アーム110は、このY軸を回転中心として回転することができる。
更に、C型アーム110は、上下方向に平行移動することが可能である(上下直線移動:a)。以下では、上方向に平行移動する動作を「直線移動(上)」と称し、下方向へ平行移動する動作を「直線移動(下)」と称することとする。
更に、C型アーム110は、左右方向に平行移動することが可能である(左右直線移動:b)。以下では、左方向に平行移動する動作を「直線移動(左)」と称し、右方向へ平行移動する動作を「直線移動(右)」と称することとする。
更に、C型アーム110は、アームホルダ113に平行に上下方向にスライド移動することが可能である(上下スライド移動:c)。以下では、上方向にスライド移動する動作を「C型アームスライド移動(上)」と称し、下方向にスライド移動する動作を「C型アームスライド移動(下)」と称することとする。
更に、C型アーム110は、撮影軸141を回転中心として、X軸142とY軸143とにより形成される平面に水平に回転移動することが可能である(アームホルダ水平回転:d)。具体的には、C型アーム110を撮影軸141を回転中心として、X線発生部111からX線検出部112に対して時計回り、反時計回りに回転することが可能である。以下、時計回りに回転移動する動作を「アームホルダ水平回転(右)」と称し、反時計回りに回転移動する動作を「アームホルダ水平回転(左)」と称することとする。
更に、C型アーム110は、X軸142を回転中心として、撮影軸141とY軸143とにより形成される平面に水平に回転移動することが可能である(アームホルダ垂直回転:e)。具体的には、C型アーム110をX軸142を回転中心として、アームホルダ113からセンター部140に対して時計回り、反時計回りに回転することが可能である。以下、X線発生部111が時計回りで回転移動する動作を「アームホルダ垂直回転(X線発生部右回転)」と称し、X線発生部111が反時計回りに回転移動する動作を「アームホルダ垂直回転(X線発生部左回転)」と称することとする。また、X線検出部112が時計回りで回転移動する動作を「アームホルダ垂直回転(X線検出部右回転)」と称し、X線検出部112が反時計回りに回転移動する動作を「アームホルダ垂直回転(X線検出部左回転)」と称することとする。
<制御装置のハードウェア構成>
図2は、制御装置101のハードウェア構成を示す図である。201はCPUであり、以下に説明する各装置203〜212に、バス202を介してアクセスする。
203は、バス202を介してCPU201からアクセス可能な読み出し専用メモリ(ROM)であり、X線装置100上の各種機能を実現するためのプログラムコード203aが格納されている。なお、X線装置100上で実現される機能には、後述するC型アームの動作を指示するためのユーザインタフェイス機能220が含まれる。
更に、C型アームの動作を指示するためのユーザインタフェイス機能220において実行される処理には、C型アームを所定の方向から見た場合のC型アームの画像を表示する機器イメージ表示処理が含まれる。また、表示されたC型アームの画像上におけるユーザによる操作指示の入力に応じて、C型アームの動作を制御するC型アーム制御処理が含まれる(いずれも詳細は後述)。
204は、読み書き可能なメモリ(RAM)である。C型アームの動作を指示するためのユーザインタフェイス機能220が実行されることにより、RAM204上には、機器制御領域テーブル204aが生成され、格納される。また、機器制御マッピングテーブル204b、機器制御ロジック204c、機器イメージデータ204dが外部記憶装置210等から呼び出され、格納される。
205は入力インタフェイスであり、キーボード、ボタン、マウス等の入力装置206を介してユーザにより行われた指示を受け付ける。
207は出力インタフェイスであり、CRT、LCD等の表示媒体の出力装置208に対し、データの表示/出力を行う。なお、図2においては不図示であるが、上述したように、制御装置101には、入力/出力装置として機能するタッチパネル式のモニタ102が接続されている(具体的には、入力インタフェイス205及び出力インタフェイス207に接続されている)。
209は、外部記憶装置インタフェイスであり、HD、FD、CD−ROM、MD、CF等の外部記憶装置210に対するデータの入出力を行う。211は外部機器インタフェイスであり、C型アーム110等の外部機器を制御する。
なお、ここでは、プログラムコード203aがROM203上に格納されているものとして説明を行った。しかしながら、本発明はこれに限定されず、例えば、プログラムコード203aは、外部記憶装置210上に配置し、必要に応じて外部記憶装置210からRAM204上にロードして使用するように構成してもよい。また、CPU201のキャッシュメモリ上に配置するように構成してもよい。
<C型アームの動作を指示するためのユーザインタフェイス機能の機能構成>
図3は、C型アームの動作を指示するためのユーザインタフェイス機能220の機能構成を示す図である。
301は、モニタ102を介して入力された操作指示に基づいて処理を行うGUI制御部であり、GUI制御部301では、入力された操作指示に基づいて、302〜306に示す各部を制御する。
302は、GUI制御部301の制御のもとで処理を行う機器制御領域更新部であり、機器制御ロジック実行部305から送信されたC型アームの姿勢に関する情報(姿勢情報)に基づいて、機器制御領域テーブル204aの生成・更新を行う。
304は、GUI制御部301の制御のもとで処理を行う機器制御マッピングテーブル更新部であり、機器制御マッピングテーブル204bを格納する。
305は、GUI制御部301の制御のもとで処理を行う機器制御ロジック実行部であり、機器制御領域テーブル204aと機器制御マッピングテーブル204bとを参照しながら機器制御ロジック204cに基づいてC型アームの動作内容を判断する。また、判断結果に基づいてC型アーム110の動作を制御する。更に、現状のC型アームの姿勢に関する情報(姿勢情報)を機器制御領域更新部302に送信するとともに、機器イメージ更新部306に送信する。
306は機器イメージ更新部であり、機器制御ロジック実行部305より送信されたC型アームの姿勢情報に基づいて、機器イメージデータ204dの生成・更新を行う。
307は、機器イメージデータ204dをモニタ102に表示するための処理を行う表示部である。
<機器イメージの構成例>
図4は、機器イメージ更新部306により生成された機器イメージデータ204dの一例を示す図である。
図4に示すように、機器イメージ401は、幅800ピクセル、高さ600ピクセルの大きさからなる画像である。402は、C型アーム110(制御対象)を予め定められた方向から見た場合のイメージを示している。ユーザは、モニタ102上に表示されたC型アーム110のイメージを見ながら、C型アームの動作についてモニタ102を介して操作指示を入力する。
<機器制御領域テーブルの構成例>
図5は、機器制御領域更新部302により生成された機器制御領域テーブル204の一例を示す図である。図5に示すように、機器制御領域テーブル204は、機器イメージ401としてモニタ102に表示された画像上において、ユーザによって操作指示が入力されるべき領域を特定するためのテーブルである。
501は、機器イメージ401上において、C型アーム110のX線発生部111に対する操作指示を認識するための領域(X線発生領域)として、左上の座標(230,90)と幅150と高さ100とにより特定される領域が定義されたことを示している。
502は、機器イメージ401上において、C型アーム110のX線検出部112に対する操作指示を認識するための領域(X線検出領域)として、左上の座標(230,410)と幅150と高さ100とにより特定される領域が定義されたことを示している。
503は、機器イメージ401上において、C型アーム110のセンター部140に対する操作指示を認識するための領域(センター領域)として、左上の座標(160,250)と幅300と高さ100とにより特定される領域が定義されたことを示している。
504は、機器イメージ401上において、C型アーム110のアームホルダ113に対する操作指示を認識する領域(アームホルダ領域)として、左上の座標(520,250)と幅100と高さ100とにより特定される領域が定義されたことを示している。
ユーザは、モニタ102に対して機器制御領域テーブル204aにおいて定義された機器イメージ401上の領域を指先で押下しながら、該指先をいずれかの方向に移動させることにより、C型アーム110を動作させることができる。機器制御ロジック実行部305では、押下された最初の位置を始点として、上下左右どちらの方向に指先が移動したのかを判断する。
図6は、図5に示す機器制御領域テーブル204aを機器イメージ401にマッピングした様子を示す図である。
601は、左上の座標(230,90)と、幅150と、高さ100とにより特定されるX線発生領域の機器イメージ401上の位置を示している。
602は、左上の座標(230,410)と、幅150と、高さ100とにより特定されるX線検出領域の機器イメージ401上の位置を示している。
603は、左上の座標(160,250)と、幅300と、高さ100とにより特定されるセンター領域の機器イメージ401上の位置を示している。
604は、左上の座標(520,250)と、幅100と、高さ100とにより特定されるアームホルダ領域の機器イメージ401上の位置を示している。
なお、図6では、機器制御領域テーブル204aにおいて定義された各領域の位置(601〜604)を機器イメージ401上に表示した場合について示している。しかし、当該位置はモニタ102上に機器イメージ401を表示する際に、表示されてもよいし表示されなくてもよい。
<機器制御マッピングテーブルの構成例>
図7は、機器制御マッピングテーブル更新部304により格納される機器制御マッピングテーブル204bの一例を示す図である。図7に示すように、機器制御マッピングテーブル204bは、機器制御領域テーブル204aにより定義された各領域と、ユーザによって入力される操作指示の内容と、対応するC型アームの動作内容とが規定されている。
701は、X線発生領域601及びX線検出領域602に対して左移動の入力があり、かつ、センター領域603及びアームホルダ領域604に対して入力がない場合に、C型アームの動作内容が「直線移動(左)」であると認識されることを示している。
701〜704は、それぞれの操作指示の入力に対して、C型アームの動作内容が、「直線移動(右)」、「直線移動(上)」、「直線移動(下)」であると認識されることを示している。
705は、X線発生領域601に対して左移動の入力があり、センター領域603に対して移動なく押下された入力がある場合に、C型アームの動作内容が、「C型アームスライド移動(上)」であると認識されることを示している。
706〜708は、それぞれの操作指示の入力に対して、C型アームの動作内容が、「C型アームスライド移動(下)」、「C型アームスライド移動(下)」、「C型アームスライド移動(上)」であると認識されることを示している。
709は、X線発生領域601に対して左移動の入力があり、アームホルダ領域604に対して移動なく押下された入力がある場合に、C型アームの動作内容が、「アームホルダ水平回転(右)」であると認識されることを示している。
710〜712は、それぞれの操作指示の入力に対して、C型アームの動作内容が、「アームホルダ水平回転(左)」、「アームホルダ水平回転(右)」、「アームホルダ水平回転(左)」であると認識されることを示している。
713は、X線発生領域601に対して上移動の入力があり、アームホルダ領域604に対して移動なく押下された入力がある場合に、C型アームの動作内容が、「アームホルダ垂直回転(X線発生部右回転)」であると認識されることを示している。
714は、それぞれの操作指示の入力に対してC型アームの動作内容が、「アームホルダ垂直回転(X線発生部左回転)」であると認識されることを示している。また、715、716は、それぞれの操作指示の入力に対してC型アームの動作内容が、「アームホルダ垂直回転(X線発生部右回転)」、「アームホルダ垂直回転(X線発生部左回転)」であると認識されることを示している。
<ユーザインタフェイス機能220における機器イメージ表示処理の流れ>
次に、C型アームの動作を指示するためのユーザインタフェイス機能220において実行される処理(機器イメージ表示処理及びC型アーム制御処理)について説明する。はじめに、機器イメージ表示処理の流れについて説明する。
なお、これ以降の説明におけるフローチャートによる処理手順は、当該フローチャートに限定されることはなく、本発明の範囲内において、いかなる手順を組み合わせても、複数処理をまとめても、あるいは複数処理に細分化してもよい。また、各処理を個々に切り出してひとつの機能要素として単体として機能させ、示された処理以外の処理と組み合わせて使用するように構成してもよい。
図8は、C型アームの動作を指示するためのユーザインタフェイス機能220において実行される機器イメージ表示処理の流れを示すフローチャートである。
モニタ102を介してユーザが所定の操作指示を入力すると、GUI制御部301ではこれを認識し、ステップS801において機器イメージ表示処理が開始される。
ステップS802では、機器制御ロジック実行部305が、現在のC型アームの姿勢を判断し、C型アームの姿勢情報を取得する。
ステップS803では、機器イメージ更新部306が、ステップS802で取得したC型アームの姿勢情報に基づいて、モニタ102に表示する機器イメージデータ204dを作成する。作成された機器イメージデータ204dはモニタ102に表示される。
ステップS804では、機器制御領域更新部302が、ステップS802で取得した現在のC型アームの姿勢情報に基づいて、機器制御領域テーブル204aを作成し、RAM204に格納する。
ステップS805では、機器制御マッピングテーブル更新部304が、機器制御マッピングテーブル204bを呼び出し、RAM204に格納する。
以上の機器イメージ表示処理が実行されることにより、モニタ102には、現在のC型アームを所定の方向から見た場合の機器イメージが表示されるとともに、C型アームを動作させるための操作指示の入力の準備が完了する。
<ユーザインタフェイス機能におけるC型アーム制御処理の流れ>
次に、C型アームの動作を指示するためのユーザインタフェイス機能220において実行されるC型アーム制御処理の流れについて説明する。
図9は、C型アームの動作を指示するためのユーザインタフェイス機能220において実行されるC型アーム制御処理の流れを示すフローチャートである。
図8に示す機器イメージ表示処理が完了すると、ステップS901において、C型アーム制御処理が開始される。
ステップS902では、GUI制御部301が、モニタ102を介してユーザが操作指示を入力したか否かを監視する。ユーザが操作指示を入力したと判断した場合には、ステップS903へ進む。
ステップS903では、GUI制御部301が、ユーザにより入力された操作指示が終了指示であるか否かを判断する。ステップS903において、ユーザにより入力された操作指示が終了指示であると判断した場合には、ステップS910へ進み、C型アーム制御処理を終了する。一方、終了指示でないと判断した場合には、ステップS904へ進む。
ステップS904では、GUI制御部301が、ユーザがC型アームの動作を指示するためにモニタ102上においてどのように指先を動かしたかを、機器制御領域テーブル204aを参照しながら識別する。なお、識別処理の詳細については後述する。
ステップS905では、機器制御ロジック実行部305が、ステップS904で識別した識別結果と機器制御マッピングテーブル204bとを参照しながら、機器制御ロジック204cのもと、C型アームの動作内容に関する情報を取得する。
ステップS906では、機器制御ロジック実行部305が、C型アームの動作内容に関する情報を取得したか否かを判定する。ステップS906において、C型アームの動作内容に関する情報を取得したと判定した場合には、ステップS907へ進む。一方、取得しなかったと判定した場合には、ステップS902へ進む。
ステップS907では、機器制御ロジック実行部305が、ステップS905で取得されたC型アームの動作内容に関する情報に基づいて、C型アームを動作させる。
ステップS908では、機器イメージ更新部306が、ステップS907で機器制御ロジック実行部305がC型アームの動作内容に関する情報に基づいてC型アームを動作させた後のC型アームの姿勢情報に基づいて、機器イメージデータ204dを更新する。
ステップS909では、機器制御領域更新部302が、ステップS907でC型アームの動作内容に関する情報に基づいてC型アームを動作させた後のC型アームの姿勢情報に基づいて、機器制御領域テーブル204aを更新する。
ステップS909における処理が終了するとステップS902へ戻る。以降、ステップS903において終了指示があると判断されるまで、ステップS902からS909までの処理を繰り返す。
<識別処理の流れ>
図10は、図9の識別処理(ステップS904)の詳細な流れを示すフローチャートである。
ステップS1001において、識別処理が開始されると、ステップS1002では、ステップS902で同時に入力された操作指示を識別する。以下、ステップS1002で識別した全ての操作指示を対象として、順次、ステップS1003〜ステップS1008の処理を実行する。
ステップS1003では、GUI制御部301が、処理対象の操作指示について、始点と終点の座標を取得する。
ステップS1004では、GUI制御部301が、機器制御領域テーブル204aに記述されている全ての領域を処理対象として、順次、ステップS1005からステップS1007の処理を行う。
ステップS1005では、ステップS1003で取得した始点の座標が、処理対象の領域内にあるか否かを判定する。
ステップS1005において、処理対象の領域内にあると判定された場合には、ステップS1006へ進む。一方、処理対象の領域内にないと判定された場合には、ステップS1008へ進む。
ステップS1006では、GUI制御部301が、ステップS1003で取得した始点の座標と終点の座標とに基づいて、X方向の移動量を算出する。また、移動方向に基づいて、「左移動」であるか「右移動」であるかを判定する。更に、算出されたX方向の移動量および移動方向を、X方向移動量として、処理対象の領域を示す情報とともに、RAM204上に記憶する。
ステップS1007では、GUI制御部301が、ステップS1003で取得した始点の座標と終点の座標とに基づいて、Y方向の移動量を算出する。また、移動方向に基づいて、「上移動」であるか「下移動」であるかを判定する。更に、算出されたY方向の移動量および移動方向を、Y方向移動量として、処理対象の領域を示す情報とともに、RAM204上に記憶する。
ステップS1008では、GUI制御部301が、機器制御領域テーブル204aに記述されている全ての領域を処理対象として、ステップS1005〜ステップS1007の処理を実行したか否かを判定する。全ての領域を処理対象として、ステップS1005〜ステップS1007の処理を実行したと判定した場合には、ステップS1009へ進む。
ステップS1009では、GUI制御部301が、ステップS1002において識別した全ての操作指示について、ステップS1003からステップS1008の処理を実行したか否かを判定する。全ての操作指示についてステップS1003からステップS1008の処理を実行したと判定した場合には、ステップS1010に進み、識別処理を終了する。
<実施例1>
次に、本実施形態にかかるX線装置100において、ユーザの操作指示に基づいてC型アームを動作させる場合の実施例について説明する。
図11は、X線装置100において、C型アームを「直線移動(右)」させる場合の処理を説明するための図である。
図11において、401は機器イメージであり、402はC型アーム110のイメージを示している。
1101は、制御対象であるC型アームを「直線移動(右)」させようとした場合のユーザによる操作指示の入力を示している。図11に示すように、C型アームを「直線移動(右)」させる場合、ユーザはモニタ102上の2点(X線発生領域、X線検出領域)を指先で押下したまま、押圧位置を右方向へ移動させる。
ここで、指先で押下した2点の位置の移動の開始座標と終了座標は、それぞれ(250,100)→(300,100)(250,500)→(300,500)であるとする。ユーザによる当該操作指示の入力は、終了指示の入力ではないため、図9では、ステップS902→ステップS903→ステップS904へと処理が進む。そして、ステップS904では、識別処理が実行される。
ここで、始点座標=(250,100)で、終点座標=(300,100)である場合、始点はX線発生領域601内にあり、X方向の移動量があり、Y方向の移動量がない。このため、指先の動作は、{X線発生領域,右移動,―}であると識別される。
また、始点座標=(250,500)で終点座標=(300,500)である場合、始点はX線検出領域602内にあり、X方向の移動量があり、Y方向の移動量がない。このため、指先の動作は、{X線検出領域,右移動,―}であると識別される。なお、“―”は移動がないことを示す。
ステップS905では、ステップS904で取得した識別結果:{X線発生領域,右移動,―}、{X線検出領域,右移動,―}と一致するC型アームの動作内容に関する情報を、機器制御マッピングテーブル204bに基づいて取得する。ここでは、C型アームの動作内容に関する情報として「直線移動(右)」が取得されることとなる。
図12は、C型アームを「直線移動(右)」させた後の機器イメージ401を示した図である。
図12において、402は、図9のステップS908の処理を実行した後のC型アーム110のイメージを示している。「直線移動(右)」の操作指示であると認識され、当該操作指示が実行されることで、C型アーム110のイメージは、全体的に右側に移動することとなる。
図13は、C型アームを「直線移動(右)」させた後の機器制御領域テーブル204aを示した図である。図9のステップS909の処理により、機器制御領域テーブル204aが更新される。具体的には、C型アームが「直線移動(右)」した場合、機器制御領域テーブル204aの全てのX座標が増加する。
1301は、X線発生領域のX座標が230から240に更新されたことを示している。1302は、X線検出領域のX座標が230から240に更新されたことを示している。1303は、センター領域のX座標が160から170に更新されたことを示している。1304は、アームホルダ領域のX座標が520から530に更新されたことを示している。
図14は、図13に示す機器制御領域テーブル204aの各領域の位置を機器イメージ401にマッピングした様子を示した図である。
1401は、左上の座標(240,90)と、幅150と、高さ100とにより特定されるX線発生領域の機器イメージ401上の位置を示している。
1402は、左上の座標(240,410)と、幅150と、高さ100とにより特定されるX線検出領域の機器イメージ401上の位置を示している。
1403は、左上の座標(170,250)と、幅300と、高さ100とにより特定されるセンター領域の機器イメージ401上の位置を示している。
1404は、左上の座標(530,250)と、幅100と、高さ100とにより特定されるアームホルダ領域の機器イメージ401上の位置を示している。
このように、C型アームが動作することにより、機器制御領域テーブル204aが更新されるため、ユーザによって操作指示が入力されるべき領域は、C型アームの動作に応じて変化することとなる。
<実施例2>
次に、本実施形態にかかるX線装置100において、ユーザの操作指示に基づいてC型アームを動作させる場合の他の実施例について説明する。
図15は、X線装置100において、C型アームを「C型アームスライド移動(下)」させる場合の処理を説明するための図である。
図15において、401は機器イメージであり、402はC型アーム110のイメージを示している。
1501は、制御対象であるC型アームを「C型アームスライド移動(下)」させようとした場合のユーザによる操作指示の入力を示している。図15に示すように、C型アームを「C型アームスライド移動(下)」させる場合、ユーザはモニタ102上の1点(X線発生領域)を指先で押下したまま、押圧位置を右下方向へ移動させる。その際、同時に、他の1点(センター領域)を他の指先で押下しつづける。
これにより、X線発生領域が右移動でセンター領域が押下状態であると識別されるため、C型アームの動作内容に関する情報として「C型アームスライド移動(下)」が取得されることになる。
図16は、C型アームを「C型アームスライド移動(下)」させた後の機器イメージ401を示した図である。
図16において、402は、図9のステップS908の処理を実行した後のC型アーム110のイメージを示している。「C型アームスライド移動(下)」の操作指示であると認識され、当該操作指示が実行されることで、C型アーム110のイメージは、全体的に右側に回転することとなる。
1601〜1604は、図9のステップS909の処理により、機器制御領域テーブル204aが更新された後の各領域(X線発生領域、X線検出領域、センター領域、アームホルダ領域)の機器イメージ401上の位置を示している。
<実施例3>
次に、本実施形態にかかるX線装置100において、ユーザの操作指示に基づいてC型アームを動作させる場合の他の実施例について説明する。
図17は、X線装置100において、C型アームを「アームホルダ水平回転(左)」させる場合の処理を説明するための図である。
1701は、制御対象であるC型アームを「アームホルダ水平回転(左)」させようとした場合のユーザによる操作指示の入力を示している。図17に示すように、C型アームを「アームホルダ水平回転(左)」させる場合、ユーザはモニタ102上の1点(X線発生領域)を指先で押下したまま、押圧位置を右方向へ移動させる。その際、同時に、他の1点(アームホルダ領域)を他の指先で押下しつづける。
これにより、X線発生領域が右移動、アームホルダ領域が押下状態であると識別されるため、C型アームの動作内容に関する情報として「アームホルダ水平回転(左)」が取得されることになる。
図18は、C型アームを「アームホルダ水平回転(左)」させた後の機器イメージ401を示した図である。
402は、C型アームの動作内容である「アームホルダ水平回転(左)」を実行した後のC型アーム110のイメージを示している。
1801〜1804は、「アームホルダ水平回転(左)」が実行され、機器制御領域テーブル204aが更新された後の各領域(X線発生領域、X線検出領域、センター領域、アームホルダ領域)の機器イメージ401上の位置を示している。
<実施例4>
図19は、X線装置100「アームホルダ垂直回転(X線発生部左回転)」させる場合の処理を説明するための図である。
1901は、制御対象であるC型アームを「アームホルダ垂直回転(X線発生部左回転)」させようとした場合のユーザによる操作指示の入力を示している。図19に示すように、C型アームを「アームホルダ垂直回転(X線発生部左回転)」させた場合、ユーザはモニタ102上の1点(X線発生領域)を指先で押下したまま、押圧位置を下方向へ移動させる。その際、同時に他の1点(アームホルダ領域)を他の指先で押下しつづける。
この場合、X線発生領域が下移動、アームホルダ領域が押下状態であると識別されるため、C型アームの動作内容に関する情報として「アームホルダ垂直回転(X線発生部左回転)」が取得されることになる。
図20は、C型アームを「アームホルダ垂直回転(X線発生部左回転)」させた後の機器イメージ401を示した図である。
402は、C型アームの動作内容である「アームホルダ垂直回転(X線発生部左回転)」を実行した後のC型アーム110のイメージを示している。
2001〜2004は、「アームホルダ垂直回転(X線発生部左回転)」が実行され、機器制御領域テーブル204aが更新された後の各領域(X線発生領域、X線検出領域、センター領域、アームホルダ領域)の機器イメージ401上の位置を示している。
以上の説明から明らかなように、本実施形態では、C型アームの姿勢情報に対応したC型アームのイメージをモニタに表示するとともに、C型アームの動作を操作指示するためのモニタ上の領域をC型アームの姿勢情報に応じて定義する構成とした。
また、C型アームの移動または回転動作を実現するために必要なモニタ上での操作指示を、それぞれ定義したテーブルを用意し、操作指示が入力された場合に対応する動作内容を判断する構成とした。
この結果、C型アームの移動または回転動作を、直感的かつ簡易な操作指示の入力により実現することが可能となった。
[第2の実施形態]
上記第1の実施形態では、C型アームの動作を、直感的かつ簡易な操作指示の入力により制御する場合について説明したが、本発明はこれに限定されない。X線装置の場合、安全性の観点から、装置の状態によっては、簡易な操作指示の入力によりC型アームが動作がしないように構成するほうが望ましい場合もある。
例えば、X線を照射している状態では、簡易な操作指示の入力によりC型アームが動作しないように構成しておくほうが望ましい。
そこで、本実施形態では、X線を照射している状態とX線を照射していない状態とで、C型アームを動作させるための操作指示の入力方法を変更する構成とした。以下、本実施形態の詳細について説明する。
なお、本実施形態にかかるX線装置の外観構成、C型アームの動作、制御装置のハードウェア構成等は、上記第1の実施形態にかかるX線装置と同様であるため、ここでは、説明は省略する。
<C型アームの動作を指示するためのユーザインタフェイス機能の機能構成>
図21は、本実施形態にかかるX線装置における、C型アームの動作を指示するためのユーザインタフェイス機能220’の機能構成を示す図である。
301は、モニタ102を介して入力された操作指示に基づいて処理を行うGUI制御部であり、GUI制御部301では、入力された操作指示に基づいて、302〜306に示す各部を制御する。
302は、GUI制御部301の制御のもとで処理を行う機器制御領域更新部であり、機器制御ロジック実行部305から送信されたC型アームの姿勢に関する情報(姿勢情報)に基づいて、機器制御領域テーブル204aの生成・更新を行う。
304は、GUI制御部301の制御のもとで処理を行う機器制御マッピングテーブル更新部である。機器制御マッピングテーブル更新部304は、X線発生器の動作状態を判別し、X線照射状態がONの場合に、機器状態マッピングテーブル204eを参照し、機器制御マッピングテーブル204b’を生成する。
305は、GUI制御部301の制御のもとで処理を行う機器制御ロジック実行部であり、機器制御領域テーブル204aと機器制御マッピングテーブル204b’とを参照しながら、機器制御ロジック204cに基づいてC型アームの動作内容を判断する。また、判断結果に基づいてC型アーム110の動作を制御する。更に、現状のC型アームの姿勢に関する情報(姿勢情報)を機器制御領域更新部302に送信するとともに、機器イメージ更新部306に送信する。
306は機器イメージ更新部であり、機器制御ロジック実行部305より送信されたC型アームの姿勢情報に基づいて、機器イメージデータ204dの生成・更新を行う。
307は、機器イメージデータ204dをモニタ102に表示するための処理を行う表示部である。
<機器状態マッピングテーブルの構成例>
図22は、機器状態マッピングテーブル204eの一例を示した図である。
2201は、機器状態として、X線発生器の動作状態を判別し、X線照射状態がONの場合には、C型アームを「直線移動(左)」させるために、さらにセンター領域に対して「左移動」の操作指示の入力が必要であることを示している。
2202は、機器状態として、X線照射状態がONの場合には、C型アームを「直線移動(右)」させるために、さらにセンター領域に対して「右移動」の操作指示の入力が必要であることを示している。
2203は、機器状態として、X線照射状態がONの場合には、C型アームを「直線移動(上)」させるために、さらにセンター領域に対して「上移動」の操作指示の入力が必要であることを示している。
2204は、機器状態として、X線照射状態がONの場合には、C型アームを「直線移動(下)」させるために、さらにセンター領域に対して「下移動」の操作指示の入力が必要であることを示している。
<機器制御マッピングテーブルの構成例>
図23は、機器制御マッピングテーブル更新部304’により生成された機器制御マッピングテーブル204b’の一例を示した図である。
2301は、X線発生領域601、X線検出領域602、センター領域603に対して左移動の入力があり、アームホルダ領域604に対して入力がない場合に、「直線移動(左)」の操作指示であると認識されることを示している。
X線照射状態がOFFの場合とは異なり、X線照射状態がONの場合には、X線発生領域601、X線検出領域602に対する入力に加え、更に、センター領域603に対する入力が必要となる。
2302は、X線発生領域601、X線検出領域602、センター領域603に対して右移動の入力があり、アームホルダ領域604に対して入力がない場合に、「直線移動(右)」の操作指示であると認識されることを示している。
X線照射状態がOFFの場合とは異なり、X線照射状態がONの場合には、X線発生領域601、X線検出領域602に対する入力に加え、更に、センター領域603に対する入力が必要となる。
2303は、X線発生領域601、X線検出領域602、センター領域603に対して上移動の入力があり、アームホルダ領域604に対して入力がない場合に、「直線移動(上)」の操作指示であると認識されることを示している。
X線照射状態がOFFの場合とは異なり、X線照射状態がONの場合には、X線発生領域601、X線検出領域602に対する入力に加え、更に、センター領域603に対する入力が必要となる。
2304は、X線発生領域601、X線検出領域602、センター領域603に対して下移動の入力があり、アームホルダ領域604に対して入力がない場合に、「直線移動(下)」の操作指示であると認識することを示している。
X線照射状態がOFFの場合とは異なり、X線照射状態がONの場合には、X線発生領域601、X線検出領域602に対する入力に加え、更に、センター領域603に対する入力が必要となる。
<ユーザインタフェイス機能220’における機器イメージ表示処理の流れ>
次に、C型アームの動作について操作指示を入力するためのユーザインタフェイス機能220’において実行される処理(機器イメージ表示処理およびC型アーム制御処理)について説明する。はじめに、機器イメージ表示処理の流れについて説明する。
なお、これ以降の説明におけるフローチャートによる処理手順は、当該フローチャートに限定されることはなく、本発明の範囲内において、いかなる手順を組み合わせても、複数処理をまとめても、あるいは複数処理に細分化してもよい。また、各処理を個々に切り出してひとつの機能要素として単体として機能させ、示された処理以外の処理と組み合わせて使用するように構成してもよい。
図24は、C型アームの動作を指示するためのユーザインタフェイス機能220’において実行される機器イメージ表示処理の流れを示すフローチャートである。
モニタ102を介してユーザが処理の操作指示を入力すると、GUI制御部301ではこれを認識し、ステップS801において機器イメージ表示処理が開始される。
ステップS2401では、機器制御ロジック実行部305が、現在のC型アームの姿勢を判断し、C型アームの姿勢情報を取得する。また、機器状態として、現在のX線発生器の動作状態を判別し、X線発生器の動作状態に関する情報(機器状態情報)を取得する。
ステップS803では、機器イメージ更新部306が、ステップS802で取得したC型アームの姿勢情報に基づいて、モニタ102に表示する機器イメージデータ204dを作成する。作成された機器イメージデータ204dはモニタ102に表示される。
ステップS804では、機器制御領域更新部302が、ステップS802で取得した現在のC型アームの姿勢情報に基づいて、機器制御領域テーブル204aを作成し、RAM204に格納する。
ステップS2402では、機器制御マッピングテーブル更新部304が、機器制御マッピングテーブルをRAM204に格納する。なお、このとき、ステップS802で取得した機器状態情報が、X線照射状態=ONであった場合には、機器状態マッピングテーブル204eを参照しながら、機器制御マッピングテーブル204b’を作成したうえで、RAM204に格納する。
以上の機器イメージ表示処理が実行されることにより、モニタ102には、現在のC型アームを所定の方向から見た場合の機器イメージが表示され、C型アームを動作させるための操作指示の入力の準備が完了する。
<ユーザインタフェイス機能におけるC型アーム制御処理の流れ>
次に、C型アームの動作を指示するためのユーザインタフェイス機能220’において実行されるC型アーム制御処理の流れについて説明する。
図25は、C型アームの動作を指示するためのユーザインタフェイス機能220’において実行されるC型アーム制御処理の流れを示すフローチャートである。
図24に示す機器イメージ表示処理が完了すると、ステップS901において、C型アーム制御処理が開始される。
ステップS2501では、機器状態情報を監視し、X線照射状態がOFF→ONへと変化したか否かを判定する。ステップS2501において、機器状態情報が変化したと判定された場合には、ステップS2502に進む。
ステップS2502では、機器制御マッピングテーブル204b’を生成し、RAM204を更新する。具体的には、機器状態マッピングテーブル204eを参照して機器制御マッピングテーブルを生成し、RAM204内に格納されている機器制御マッピングテーブル204bを新たに生成した機器制御マッピングテーブル204b’により更新する。
ステップS902では、GUI制御部301が、モニタ102を介してユーザが操作指示を入力したか否かを監視する。ユーザが操作指示を入力したと判断した場合には、ステップS903へ進む。
ステップS903では、GUI制御部301が、ユーザにより入力された操作指示が終了指示であるか否かを判断する。ステップS903において、ユーザにより入力された操作指示が終了指示であると判断した場合には、ステップS910へ進み、C型アーム制御処理を終了する。一方、終了指示でないと判断した場合には、ステップS904へ進む。
ステップS904では、GUI制御部301が、ユーザがC型アームの動作を指示するためにモニタ102上においてどのように指先を動かしたかを機器制御領域テーブル204aを参照しながら識別する。なお、識別処理は、上記第1の実施形態において説明済みであるため、ここでは説明を省略する。
ステップS905では、機器制御ロジック実行部305が、ステップS904で識別した識別結果と機器制御マッピングテーブル204b’とを参照しながら、機器制御ロジック204cのもと、C型アームの動作内容に関する情報を取得する処理を行う。
ステップS906では、機器制御ロジック実行部305が、C型アームの動作内容に関する情報を取得したか否かを判定する。ステップS906において、C型アームの動作内容に関する情報を取得したと判定した場合には、ステップS907へ進む。一方、取得しなかったと判定した場合には、ステップS902へ進む。
ステップS907では、機器制御ロジック実行部305が、ステップS905で取得されたC型アームの動作内容に関する情報に基づいて、C型アームを動作させる。
ステップS908では、機器イメージ更新部306が、ステップS907で機器制御ロジック実行部305がC型アームの動作内容に関する情報に基づいてC型アームを動作させた後のC型アームの姿勢情報に基づいて、機器イメージデータ204dを更新する。
ステップS909では、機器制御領域更新部302が、ステップS907でC型アームの動作内容に関する情報に基づいてC型アームを動作させた後のC型アームの姿勢情報に基づいて、機器制御領域テーブル204aを更新する。
ステップS909における処理が終了するとステップS2501へ戻る。以降、ステップS903において終了指示があると判断されるまで、ステップS2501からS909までの処理を繰り返す。
<実施例>
次に、本実施形態にかかるX線装置100において、ユーザの操作指示に基づいてC型アームを動作させる場合の実施例について説明する。
図26は、X線装置100において、X線照射状態がONの場合に、C型アームを「直線移動(右)」させる場合の処理を説明するための図である。
図26において、401は機器イメージであり、402はC型アーム110のイメージを示している。
2601は、制御対象であるC型アームを「直線移動(右)」させようとした場合のユーザによる操作指示の入力を示している。図26に示すように、C型アームを「直線移動(右)」させる場合、ユーザはモニタ102上の3点(X線発生領域、X線検出領域、センター領域)を指先で押下したまま、押圧位置を右方向へ移動させる。
この場合、X線発生領域、X線検出領域、センター領域が「右移動」であると識別されるため、C型アームの動作内容に関する情報として「直線移動(右)」が取得されることになる。
以上の説明から明らかなように、本実施形態では、機器状態として、X線照射状態がONである場合には、機器状態マッピングテーブルを参照したうえで、機器制御マッピングテーブルを生成・更新する構成とした。
これにより、ユーザは、X線照射状態がOFFの場合とは異なる操作指示の入力により、C型アームの移動または回転動作を行うこととなる。この結果、直感的かつ簡易な操作指示の入力により、C型アームの移動または回転動作を行うことができる一方で、安全性の高いX線装置を実現することが可能となる。
[他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ読取可能な記憶媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。