まず、本実施例に係るMRI装置の全体構成について説明する。図1は、本実施例に係るMRI装置100の全体構成を示す図である。図1に示すように、MRI装置100は、静磁場磁石1、傾斜磁場コイル2、傾斜磁場電源3、寝台4、寝台制御部5、送信用RF(Radio Frequency)コイル6、送信部7、受信用RFコイル8、受信部9、シーケンス制御部10および計算機システム20を備える。
静磁場磁石1は、中空の円筒形状に形成されており、内部の空間に一様な静磁場を発生させる。この静磁場磁石1としては、例えば永久磁石、超伝導磁石などが用いられる。
傾斜磁場コイル2は、中空の円筒形状に形成されており、静磁場磁石1の内側に配置される。この傾斜磁場コイル2は、互いに直交するX,Y,Zの各軸に対応する3つのコイルが組み合わされて形成されている。これら3つのコイルは、傾斜磁場電源3から個別に電流供給を受けることによって、X,Y,Zの各軸に沿って磁場強度が変化する傾斜磁場を発生させる。
かかる傾斜磁場コイル2によって発生するX,Y,Z各軸の傾斜磁場は、例えば、リードアウト用傾斜磁場Gr、位相エンコード用傾斜磁場Geおよびスライス選択用傾斜磁場Gsにそれぞれ対応している。リードアウト用傾斜磁場Grは、空間的位置に応じて磁気共鳴信号の周波数を変化させるために利用される。位相エンコード用傾斜磁場Geは、空間的位置に応じて磁気共鳴信号の位相を変化させるために利用される。スライス選択用傾斜磁場Gsは、任意に撮像断面を決めるために利用される。
傾斜磁場電源3は、傾斜磁場コイル2に電流を供給する。寝台4は、被検体Pが載置される天板4aを備え、寝台制御部5による制御のもと、被検体Pが載置された状態で天板4aを傾斜磁場コイル2の空洞(撮像口)内へ挿入する。通常、この寝台4は、長手方向が静磁場磁石1の中心軸と平行になるように設置される。寝台制御部5は、制御部26による制御のもと、寝台4を駆動して天板4aを長手方向および上下方向へ移動する。
送信用RFコイル6は、傾斜磁場コイル2の内側に配置され、送信部7から高周波パルスの供給を受けて高周波磁場を発生する。
送信部7は、発振部、位相選択部、周波数変換部、振幅変調部、高周波電力増幅部などを有し、これらの各部の動作の結果として、ラーモア周波数に対応する高周波パルスを送信用RFコイル6に送信する。発振部は、静磁場中における対象原子核に固有の共鳴周波数の高周波信号を発生する。位相選択部は、上記高周波信号の位相を選択する。周波数変換部は、位相選択部から出力された高周波信号の周波数を変換する。振幅変調部は、周波数変調部から出力された高周波信号の振幅を例えばsinc関数に従って変調する。高周波電力増幅部は、振幅変調部から出力された高周波信号を増幅する。
受信用RFコイル8は、傾斜磁場コイル2の内側に配置され、送信用RFコイル6によって発生した高周波磁場の影響で被検体Pから放射される磁気共鳴信号を受信する。
受信部9は、選択器、前段増幅器、位相検波器およびアナログデジタル変換器を有し、これらの各部の動作の結果として、受信部9は、受信用RFコイル8から出力される磁気共鳴信号に基づいて磁気共鳴データを生成する。選択器は、受信用RFコイル8から出力される磁気共鳴信号を選択的に入力する。前段増幅器は、選択器から出力される磁気共鳴信号を増幅する。位相検波器は、前段増幅器から出力される磁気共鳴信号の位相を検波する。アナログデジタル変換器は、位相検波器から出力される信号をデジタル信号に変換する。
シーケンス制御部10は、計算機システム20から送信されるシーケンス実行データに基づいて傾斜磁場電源3、送信部7および受信部9を駆動することによって被検体Pのスキャンを行う。そして、スキャンを行った結果として受信部9から生データが送信されると、シーケンス制御部10は、そのk空間データを計算機システム20へ転送する。
ここで、「シーケンス実行データ」とは、所定のシーケンスに基づいて撮像を実行するためのデータである。すなわち、シーケンス実行データとは、傾斜磁場電源3が傾斜磁場コイル2に供給する電源の強さや電源を供給するタイミング、送信部7が送信用RFコイル6に送信するRF信号の強さやRF信号を送信するタイミング、受信部9が磁気共鳴信号を検出するタイミングなどを定義したデータである。
計算機システム20は、MRI装置100の全体制御や、データ収集、画像再構成などを行う。この計算機システム20は、特に、インタフェース部21、画像再構成部22、記憶部23、入力部24、表示部25および制御部26を有する。
インタフェース部21は、シーケンス制御部10との間で授受される各種信号の入出力を制御する。例えば、このインタフェース部21は、シーケンス制御部10に対してシーケンス実行データを送信したり、シーケンス制御部10から生データを受信したりする。
ここで、インタフェース部21によって受信された生データは、傾斜磁場コイル2により発生したスライス選択用傾斜磁場Gs、位相エンコード用傾斜磁場Geおよびリードアウト用傾斜磁場GrによってSE(Slice Encode)方向、PE(Phase Encode)方向およびRO(Read Out)方向における空間周波数の情報が対応付けられたk空間データとして、記憶部23に格納される。
画像再構成部22は、記憶部23に記憶されたk空間データに対してフーリエ変換等の再構成処理を施すことによって、被検体P内における所望核スピンのスペクトラムデータあるいは画像データを生成する。
記憶部23は、インタフェース部21によって受信された生データ(k空間データ)や、画像再構成部22によって生成された画像データなどを被検体Pごとに記憶する。
入力部24は、操作者からの各種指示や情報入力を受け付ける。この入力部24としては、マウスやトラックボールなどのポインティングデバイス、モード切替スイッチ等の選択デバイス、あるいはキーボード等の入力デバイスを適宜に用いられる。
表示部25は、制御部26による制御のもと、スペクトラムデータあるいは画像データ等の各種の情報を表示する。この表示部25としては、液晶表示器などの表示デバイスが適宜に用いられる。
制御部26は、MRI装置100全体を制御する。具体的には、制御部26は、図示していないCPU(Central Processing Unit)やメモリ等を有し、操作者からの指示に基づいて各種プログラムを実行することによって、上述した各部の動作を制御する。
以上、本実施例に係るMRI装置100の全体構成について説明した。このような構成のもと、本実施例では、計算機システム20において、記憶部23が、シーケンスの構造およびシーケンスに関するパラメータをシーケンスの種類ごとに定義したシーケンス定義情報を記憶する。そして、制御部26が、記憶部23によって記憶されているシーケンス定義情報を動的に読み込み、読み込んだシーケンス定義情報に基づいて、撮像で用いられるシーケンスを生成する。
このような構成により、本実施例では、プログラミングによってシーケンスを実現していた場合に必要であった制約条件に関する知識やコンパイルを不要にし、シーケンスの構造に関する変更を容易に行うことができるようにしている。
次に、計算機システム20の詳細な構成について説明する。なお、ここでは、記憶部23および制御部26を中心に説明する。図2は、計算機システム20の詳細な構成を示す機能ブロック図である。
図2に示すように、計算機システム20において、記憶部23は、特に、撮像条件情報23a、シーケンス構造定義情報23b、パラメータ定義情報23cおよびパルス定義情報23dを記憶する。なお、本実施例では、シーケンス構造定義情報23b、パラメータ定義情報23cおよびパルス定義情報23dそれぞれを「シーケンス定義情報」と呼ぶ。
撮像条件情報23aは、撮像に際して、放射線技師等によって設定される撮像条件に関する情報である。この撮像条件情報23aには、撮像に用いられるシーケンスの種類や、シーケンスに関する各種撮像パラメータが含まれる。
ここで、シーケンスの種類とは、例えば、SE(Spin Echo)やIR(Inversion Recovery)、GFE(Gradient Field Echo)、FASE(Fast Advanced Spin Echo)、EPI(Echo Planner Imaging)など、各種撮像法に対応したシーケンスの種類である。
また、撮像パラメータとは、例えば、RFパルスの照射間隔を示すTR(Repetition Time:繰り返し時間)、RFパルスのピークからエコーのピークまでの時間を示すTE(Echo Time:エコー時間)、反転回復法による撮像において180°パルスから90°パルスまでの時間を示すTI(Inversion Time:反転回復時間)、RFパルスのFA(Flip Angle:フリップ角)などである。
シーケンス構造定義情報23bは、シーケンスの構造をシーケンスごとに定義した情報である。具体的には、シーケンス構造定義情報23bは、撮像時に動作するハードウェアを制御するステートの連なりであるセグメント、セグメントの繰り返しを表すループ、セグメントとループとの組み合わせを定義するリンクコマンドによって、シーケンス構造を定義する。
図3は、シーケンス構造定義情報23bの一例を示す図である。図3に示す例は、xml(eXtensible Markup Language)を用いてシーケンス構造定義情報23bを定義した場合を示している。
図3において、<SeqStruct>タグは、シーケンスの種類を定義している。各シーケンスは、<SeqStruct>タグに設定されたシーケンス名「Name」によって識別される。例えば、図3に示す例では、シーケンス名が「SE2D」であるシーケンスが定義されている。
そして、<SeqStruct>タグ〜</SeqStruct>タグで囲まれた各要素は、<SeqStruct>タグによって定義されるシーケンスの構造を定義している。
まず、<Loop>タグは、ループを定義している。各ループは、それぞれ<Loop>タグに設定された識別子「id」によって識別される。例えば、図3に示す例では、識別子が「Sat」、「Slice」、「Slab」、「Avg」、「PE」、「Echo」である6つのループがそれぞれ定義されている。
また、<Segment>タグは、セグメントの属性を定義している。各セグメントは、それぞれ<Segment>タグに設定された識別子「id」によって識別される。例えば、図3に示す例では、識別子が「E1」、「E2」、「Wait」、「Inv」、「Gate」、「Sat」である6つのセグメントが定義されている。
そして、<Segment>タグ〜</Segment>タグで囲まれた要素は、それぞれステートを定義している。各ステートは、それぞれハードウェアの種類ごとに決められたタグによって定義されており、タグに設定された識別子「id」によって識別される。例えば、図3に示す例では、識別子が「exite」である<RFSeg>タグや、識別子が「tune0」である<State>タグ、識別子が「show0」である<ADCSeg>タグなどが定義されている。ここで、例えば、<RFSeg>タグは、RFパルスの照射に関するステートを定義するためのタグであり、<State>タグは、傾斜磁場の印加に関するステートを定義するためのタグである。
また、<LinkCommand>タグは、リンクコマンドの属性を定義している。各リンクコマンドは、それぞれ<LinkCommand>タグに設定された識別子「id」によって識別される。例えば、図3に示す例では、識別子が「E1」であるリンクコマンドが定義されている。
そして、<LinkCommand>タグ〜</LinkCommand>タグで囲まれた要素は、セグメントとループとの組み合わせを定義している。具体的には、セグメントとループとの組み合わせは、セグメントの識別子、ループの識別子、ループの開始位置を示す「(」、ループの終了位置を示す「)」を順番に並べることによって表されている。
例えば、図3に示すリンクコマンドにおいて、「(PE,(Cond・・・))」は、ループ「PE」の中でループ「Cond」が繰り返されることを表している。また、「(Slice,Inv,(Sat,Sat,SatSpoil)・・・)」は、ループ「Slice」の中でセグメント「Inv」およびループ「Sat」が繰り返され、ループ「Sat」の中でセグメント「Sat」および「SatSpoil」が繰り返されることを表している。
かかるリンクコマンドにおいて、セグメントの識別子、ループの識別子、ループの開始位置を示す「(」、ループの終了位置を示す「)」の順番を適宜に入れ替えることによって、さまざまなシーケンス構造を定義することが可能である。
図2にもどって、パラメータ定義情報23cは、シーケンスに関するパラメータをシーケンスごとに定義した情報である。具体的には、パラメータ定義情報23cは、シーケンス構造定義情報23bによって定義されているセグメントに含まれる各ステートの処理に関するパラメータを定義する。
図4は、パラメータ定義情報23cの一例を示す図である。図4に示す例は、すでに説明したシーケンス構造定義情報23bと同様に、xmlを用いてパラメータ定義情報23cを定義した場合を示している。
図4において、<SeqParams>タグは、シーケンスの種類を定義している。各シーケンスは、<SeqParams>タグに設定された識別子「id」によって識別される。例えば、図4に示す例では、識別子が「SE2D」であるシーケンスが定義されている。
なお、ここで定義されるシーケンスの識別子は、それぞれ、シーケンス構造定義情報23bにおいて定義されているシーケンスのシーケンス名に対応している。
そして、<SeqParams>タグ〜</SeqParams>タグで囲まれた各要素は、<SeqParams>タグによって定義されるシーケンスに関するパラメータを定義している。
まず、<params>タグは、パラメータのグループを定義している。各グループは、<params>タグに設定された属性によって識別される。例えば、図4に示す例では、属性が「TE1="4000" TE2="0"」、「TE1="8000" TE2="0"」であるの2つのグループがそれぞれ定義されている。
そして、<params>タグ〜</params>タグで囲まれた要素は、ステートごとのパラメータを定義している。各ステートは、それぞれハードウェアの種類ごとに決められたタグによって定義されており、タグに設定された識別子「id」によって識別される。例えば、図4に示す例では、識別子が「exite」である<RFSeg>タグや、識別子が「tune0」である<Grad>タグ、識別子が「show0」である<ADCSeg>タグなどが定義されている。ここで、例えば、<RFSeg>タグは、RFパルスの照射に関するステートを定義するためのタグであり、<Grad>タグは、傾斜磁場の印加に関するステートを定義するためのタグである。
なお、ここで定義されるステートの識別子は、それぞれ、シーケンス構造定義情報23bにおいて定義されていたステートの識別子に対応している。
そして、<RFSeg>タグ〜</RFSeg>タグで囲まれた要素や、<Grad>タグ〜</Grad>タグで囲まれた要素、<ADCSeg>タグ〜</ADCSeg>タグで囲まれた要素は、それぞれ、各ステートの処理で必要となるパラメータを定義している。以下に示す表は、ステートごとに定義されるパラメータの一例を示している。
例えば、<RFSeg>タグによって定義されるステートに関するパラメータのうち、<rfiWaveform>は、RFパルスの波形を定義している。例えば、図4に示す例では、RFパルスの波形として「sinc41」で示される波形が定義されている。また、<riseTime>は、RFパルスの立ち上がり時間を定義している。例えば、図4に示す例では、RFパルスの立ち上がり時間として「500」が定義されている。
図2にもどって、パルス定義情報23dは、特定のパルスに関するパラメータを定義した定義情報である。具体的には、パルス定義情報23dは、シーケンス構造定義情報23bによって定義されているセグメントに含まれる各ステートの処理に関するパラメータのうち、撮像時に用いられる頻度が高いパルスである。
図5は、パルス定義情報23dの一例を示す図である。図5に示す例は、すでに説明したシーケンス構造定義情報23bやパラメータ定義情報23cと同様に、xmlを用いてパルス定義情報23dを定義した場合を示している。
図5において、<PlusParams>タグは、パルスの分類を定義している。各分類は、<PlusParams>タグに設定された識別子「id」によって識別される。例えば、図4に示す例では、識別子が「common」である分類が定義されている。
そして、<PlusParams>タグ〜</PlusParams>タグで囲まれた各要素は、<PlusParams>タグによって定義される分類に属するパルスのパラメータを定義している。
なお、<params>タグによるパラメータのグループの定義、および、<params>タグ〜</params>タグで囲まれた要素によるステートごとのパラメータの定義については、シーケンス構造定義情報23bと同様であるので、ここでは説明を省略する。
こうして、特定のパルスに関するパラメータをパラメータ定義情報23cとは別にパルス定義情報23dとして定義しておくことによって、パラメータ定義情報23cにおいて何度も同じステートのパラメータを定義する必要がなくなる。したがって、ステートのパラメータを効率よく管理することができる。
なお、前述したように、シーケンス構造定義情報23bにおけるシーケンスのシーケンス名は、パラメータ定義情報23cおよびパルス定義情報23dにおけるシーケンスの識別子に対応している。また、シーケンス構造定義情報23bにおけるステートの識別子は、パラメータ定義情報23cおよびパルス定義情報23dにおけるステートの識別子に対応している。したがって、撮像時に指定されるシーケンスの種類に応じて、各シーケンス定義情報からステートごとにパラメータを抽出して、撮像に用いられるシーケンスを動的に生成することができる。
また、本実施例では、各シーケンス定義情報を定義するための言語としてxmlを用いた場合を説明したが、データの論理構造や意味を定義可能な他のマークアップ言語を用いてもよい。
図2にもどって、計算機システム20において、制御部26は、特に、撮像条件設定部26a、定義情報編集部26b、シーケンス検証部26cおよびシーケンス生成部26dを有する。
撮像条件設定部26aは、撮像に際して放射線技師等によって入力される情報をもとに撮像条件を設定する。具体的には、撮像条件設定部26aは、入力部24を介して撮像の種類や撮像パラメータを含む撮像条件の入力を受け付け、受け付けた撮像条件を記憶部23の撮像条件情報23aに登録する。
定義情報編集部26bは、入力部24を介してシーケンスの構造およびパラメータを編集する操作を受け付け、受け付けた操作に基づいて、記憶部23によって記憶されている各定義情報を更新する。
具体的には、定義情報編集部26bは、操作者からの要求に応じて、シーケンス構造定義情報23bを編集するための「セグメント編集画面」、パラメータ定義情報23cを編集するための「バーチャルシーケンス編集画面」、パルス定義情報23dを編集するための「パルス編集画面」を表示部25に表示する。これらの画面は、各画面が1つずつ表示されてもよいし、複数の画面が並べられて同時に表示されてもよい。
まず、セグメント編集画面について説明する。図6〜9は、セグメント編集画面の一例を示す図である。図6〜9に示すように、例えば、セグメント編集画面30は、メニューバー31、ツールバー32、ツリービュー33、エディタビュー34などを有する。
メニューバー31には、各種定義情報の読み込みや保存を行うための「File」メニューや、各種ツールを起動するための「Tool」メニューや、各種操作に関する情報を提供するための「Help」メニューなどが含まれている。
ツールバー32には、各種画面を起動するためのアイコンが含まれている。具体的には、ツールバーには、セグメント編集画面を起動するための「SE」アイコン、バーチャルシーケンス編集画面を起動するための「VSE」アイコン、パルス編集画面を起動するための「PE」アイコン、後述するシーケンス検証画面を起動するための「SIV」アイコンが含まれる。
そして、定義情報編集部26bは、操作者によって「SE」が押された場合はセグメント編集画面を起動し、「VSE」アイコンが押された場合はバーチャルシーケンス編集画面を起動し、「PE」アイコンが押された場合にはパルス編集画面を起動する。また、定義情報編集部26bは、「SIV」アイコンが押された場合には、後述するシーケンス検証部26cにシーケンス検証画面を起動するよう指示する。
ツリービュー33には、シーケンス構造定義情報23bの内容がツリー形式で階層的に表示される。また、エディタビュー34には、ツリービュー33で選択された要素に応じて、シーケンス構造定義情報23bの内容を編集するための各種GUI(Graphical User Interface)が表示される。
そして、定義情報編集部26bは、シーケンス構造定義情報23bの読み込みを指示する操作を操作者から受け付けた場合には、記憶部23からシーケンス構造定義情報23bを読み出し、読み出した情報の内容をツリー形式にしてツリービュー33に表示する。
その後、図6に示すように、ツリービュー33上でリンクコマンドを選択する操作を受け付けた場合には、定義情報編集部26bは、エディタビュー34にリンクコマンド表示領域34cを表示するとともに、そのリンクコマンド表示領域34cに、読み出したシーケンス構造定義情報23bに含まれているリンクコマンドの内容を表示する。
このとき、定義情報編集部26bは、あらかじめ装置に登録されているループおよびセグメントのリスト34aおよび34b、リンクコマンド内でセグメントを移動するためのボタン34dおよび34e、リンクコマンドに含まれるループまたはセグメントを削除するための削除ボタン34fもエディタビュー34にそれぞれ表示する。これにより、操作者は、エディタビュー34上でリンクコマンドを編集することができる。
例えば、操作者は、リスト34aの中からいずれかのループを選択し、選択したループをドラッグ&ドロップ等の操作でリンクコマンド表示領域34c内の所望の位置に移動することによって、リンクコマンドに新たなループを追加することができる。
同様に、操作者は、リスト34bの中からいずれかのセグメントを選択し、選択したセグメントをドラッグ&ドロップ等の操作でリンクコマンド表示領域34c内の所望の位置に移動することによって、リンクコマンドに新たなセグメントを追加することができる。
さらに、操作者は、リンクコマンド表示領域34cに表示されたリンクコマンドの中からループまたはセグメントを選択し、そのうえで削除ボタン34fを押すことで、所望のループまたはセグメントを削除することができる。
また、図7に示すように、ツリービュー33上でループを選択する操作を受け付けた場合には、定義情報編集部26bは、ループの属性を編集するためのループ属性編集領域34gなどをエディタビュー34に表示する。これにより、操作者は、エディタビュー34上でループの属性を編集することができる。
また、図8に示すように、ツリービュー33上でセグメントを選択する操作を受け付けた場合には、定義情報編集部26bは、記憶部23から読み出されたシーケンス構造定義情報23bに含まれているセグメントの内容を表すタイムチャート34hをエディタビュー34に表示する。
また、このとき、定義情報編集部26bは、選択されたセグメントの属性を編集するためのセグメント属性編集領域34iなどもエディタビュー34に表示する。これにより、操作者は、エディタビュー34上でセグメントの属性を編集することができる。
また、図9に示すように、ツリービュー33上でセグメントのステートを選択する操作を受け付けた場合には、定義情報編集部26bは、エディタビュー34に表示されたタイムチャート34h上で、選択されたステートを強調表示するとともに、選択されたステートの属性を編集するためのステート属性編集領域34jをエディタビュー34に表示する。これにより、操作者は、エディタビュー34上でステートの属性を編集することができる。
また、このとき、定義情報編集部26bは、選択されたステートの特性を表す情報をエディタビュー34に表示する。例えば、図9に示すように、選択されたステートがパルスに関するものであった場合には、定義情報編集部26bは、パルスの波形を表すパルス情報34kを表示する。これにより、操作者は、ステートの特性を視覚的に確認しつつ、パラメータを編集することができる。
そして、定義情報編集部26bは、編集した情報の保存を指示する操作を受け付けた場合には、記憶部23によって記憶されているシーケンス構造定義情報23bにエディタビュー34上で編集された内容を上書きする。
次に、バーチャルシーケンス編集画面について説明する。図10は、バーチャルシーケンス編集画面の一例を示す図である。図10に示すように、例えば、バーチャルシーケンス編集画面40は、メニューバー41、ツールバー42、ツリービュー43、エディタビュー44などを有する。なお、メニューバー41およびツールバー42の機能は、基本的にはセグメント編集画面30のメニューバー31およびツールバー32と同様であるので、ここでは説明を省略する。
ツリービュー43には、パラメータ定義情報23cの内容がツリー形式で階層的に表示される。また、エディタビュー44には、ツリービュー43で選択された要素に応じて、パラメータ定義情報23cの内容を編集するための各種GUIが表示される。
ここで、定義情報編集部26bは、パラメータ定義情報23cの読み込みを指示する操作を操作者から受け付けた場合には、記憶部23からパラメータ定義情報23cを読み出し、読み出した情報の内容をツリー形式にしてツリービュー43に表示する。
そして、図10に示すように、ツリービュー43上でステートを選択する操作を受け付けた場合には、定義情報編集部26bは、選択されたステートのパラメータを編集するためのパラメータ編集領域44aをエディタビュー44に表示する。これにより、操作者は、エディタビュー44上でステートのパラメータを編集することができる。
また、このとき、定義情報編集部26bは、選択されたステートのパラメータの特性を表す情報をエディタビュー44に表示する。例えば、図10に示すように、選択されたステートがパルスに関するものであった場合には、定義情報編集部26bは、パルスの波形を表すパルス情報44bを表示する。これにより、操作者は、パラメータの特性を視覚的に確認しつつ、パラメータを編集することができる。
そして、定義情報編集部26bは、編集した情報の保存を指示する操作を受け付けた場合には、記憶部23によって記憶されているパラメータ定義情報23cにエディタビュー44上で編集された内容を上書きする。
次に、パルス編集画面について説明する。パルス編集画面は、基本的にはバーチャルシーケンス編集画面と同様の構成を有し、編集の対象である情報がパルス定義情報23dである点のみが異なる。操作者は、パルス編集画面を用いて、撮像時に用いられる頻度が高いパルスを登録することができる。
図2にもどって、シーケンス検証部26cは、定義情報編集部26bによって更新された定義情報をもとに、当該定義情報に基づいて生成されるシーケンスを検証する。具体的には、シーケンス検証部26cは、定義情報編集部26bからの指示に応じて、シーケンスを検証するための「シーケンス検証画面」を起動する。
図11は、シーケンス検証画面の一例を示す図である。図11に示すように、例えば、シーケンス検証画面50は、メニューバー51、ツールバー52、ツリービュー53、カウンタビュー54、スナップショットビュー55などを有する。なお、メニューバー51およびツールバー52の機能は、基本的にはセグメント編集画面30のメニューバー31およびツールバー32と同様であるので、ここでは説明を省略する。
ツリービュー53には、操作者によって指定されたシーケンスに含まれるセグメントおよびループがツリー形式で階層的に表示される。また、指定されたシーケンスに含まれるループの名称と、それぞれの繰り返し回数を入力するための数値入力ボックスが表示される。また、スナップショットビュー55には、ツリービュー53で選択されたセグメントまたはループに関する検証結果が表示される。
ここで、シーケンス検証部26cは、操作者から特定のシーケンスが指定されると、記憶部23によって記憶されているシーケンス構造定義情報23b、パラメータ定義情報23cおよびパルス定義情報23dを参照して、指定されたシーケンスに関する情報を読み出す。そして、定義情報編集部26bは、読み出した情報の内容をツリー形式にしてツリービュー53に表示する。また、シーケンス検証部26cは、入力部24を介して操作者から撮像時に撮像条件として設定される撮像パラメータ(例えば、TRやTEなど)の入力を受け付ける。
そして、図11に示すように、ツリービュー53上でセグメントまたはループを選択する操作を受け付けた場合には、シーケンス検証部26cは、操作者によって入力された撮像パラメータと、各定義情報から取得した情報とに基づいて、選択されたセグメントまたはループに関するシーケンスを仮想的に生成する。
その後、シーケンス検証部26cは、仮想的に生成したシーケンスを表す情報をシミュレーション結果としてスナップショットビュー55に表示する。例えば、図11に示すように、シーケンス検証部26cは、シミュレーション結果として、傾斜磁場などのパルスの波形を表示する。
なお、シーケンス検証部26cは、操作者によって他のセグメントまたはループが指定されたり、カウンタビュー54の繰り返し回数が変更されたりした場合には、その都度、シーケンスを生成しなおして、スナップショットビュー55の表示を更新する。
シーケンス生成部26dは、記憶部23によって記憶されている定義情報を動的に読み出し、読み出した定義情報に基づいて、撮像で用いられるシーケンスを生成する。
具体的には、シーケンス生成部26dは、入力部24を介して操作者から撮像の開始指示を受け付けると、まず、撮像条件設定部26aによって設定された撮像条件を記憶部23から取得する。さらに、シーケンス生成部26dは、記憶部23からシーケンス構造定義情報23b、パラメータ定義情報23cおよびパルス定義情報23dを読み込む。
そして、シーケンス生成部26dは、取得した撮像条件および読み込んだ各定義情報に基づいてシーケンス実行データを動的に生成し、生成したシーケンス実行データをシーケンス制御部10に送信する。これにより、シーケンス制御部10や画像再構成部22などによって一連の撮像が行われる。
次に、本実施例に係るMRI装置100による撮像の処理手順について説明する。図12は、本実施例に係るMRI装置100による撮像の処理手順を示すフローチャートである。
図12に示すように、MRI装置100では、まず、撮像条件設定部26aが、撮像に際して操作者によって入力される情報をもとに撮像条件を設定する(ステップS101)。続いて、シーケンス生成部26dが、入力部24を介して操作者から撮像の開始指示を受け付けた場合に(ステップS102,Yes)、撮像条件設定部26aによって設定された撮像条件を記憶部23から取得する(ステップS103)。
さらに、シーケンス生成部26dは、記憶部23に記憶されているシーケンス定義情報を読み込む(ステップS104)。その後、シーケンス生成部26dは、撮像条件およびシーケンス定義情報に基づいてシーケンス実行データを動的に生成し(ステップS105)、生成したシーケンス実行データをシーケンス制御部10に送信する。
そして、シーケンス制御部10が、シーケンス実行データに基づいて被検体のスキャンを行うことによってk空間データを収集し(ステップS106)、画像再構成部22が、収集されたk空間データから画像を再構成する(ステップS107)。
上述してきたように、本実施例では、記憶部23が、シーケンスの構造および当該シーケンスに関するパラメータをシーケンスの種類ごとに定義したシーケンス定義情報を記憶する。また、シーケンス生成部26dが、記憶部23によって記憶されているシーケンス定義情報を動的に読み込み、読み込んだシーケンス定義情報に基づいて、撮像で用いられるシーケンスを生成する。
プログラミングによってシーケンスを実現する従来の実装方法でも、RFパルスの波形やサンプルピッチなどの基本的な条件をプログラムの外部から取り込むことによって、シーケンスを動的に変更する技術は存在した。しかし、セグメントの内容やループなど、シーケンスの構造自体を変更する場合には、プログラムの修正およびコンパイルが必須であった。本実施例では、シーケンスの構造自体を定義した情報を外部から動的に取り込んでシーケンスを生成するので、シーケンスの構造に関するプログラムの修正やコンパイルが不要になる。
すなわち、本実施例によれば、プログラミングによってシーケンスを実現していた場合に必要であった制約条件に関する知識やコンパイルが不要になるので、シーケンスの構造に関する変更を容易に行うことができる。
また、本実施例では、シーケンス定義情報は、シーケンスの構造として、撮像時に動作するハードウェアを制御するステートの連なりであるセグメントとセグメントの繰り返しを表すループとの組み合わせを定義した情報である。したがって、本実施例によれば、セグメントやループの内容を容易に変更することができる。
また、本実施例では、定義情報編集部26bが、シーケンスの構造を編集する操作を受け付け、受け付けた操作に基づいて、記憶部23によって記憶されているシーケンス定義情報を更新する。したがって、本実施例によれば、シーケンスの構造を容易に変更することができる。
また、本実施例では、定義情報編集部26bが、パラメータの内容を編集する操作をさらに受け付け、受け付けた操作に基づいて、記憶部23によって記憶されているシーケンス定義情報を更新する。したがって、本実施例によれば、シーケンスに関するパラメータの内容を容易に変更することができる。
また、本実施例では、定義情報編集部26bが、記憶部23によって記憶されているシーケンス定義情報によって定義されるシーケンスの構造を表す情報を表示部25に表示する。したがって、本実施例によれば、シーケンスの構造を視覚的に確認しながら、そのシーケンスの構造を変更することが可能になるので、効率よくシーケンスの構造を変更することができる。
また、本実施例では、定義情報編集部26bが、記憶部23によって記憶されているシーケンス定義情報によって定義されるパラメータの特性を表す情報を表示部25に表示する。したがって、本実施例によれば、シーケンスに関するパラメータの特性を視覚的に確認しながら、そのパラメータの内容を変更することが可能になるので、効率よくパラメータの内容を変更することができる。
また、本実施例では、シーケンス検証部26cが、定義情報編集部26bによって更新されたシーケンス定義情報をもとに、そのシーケンス定義情報に基づいて生成されるシーケンスを検証する。したがって、本実施例によれば、変更内容の妥当性を確認しながら効率よくシーケンスの構造を変更することができる。
なお、上記実施例において図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示したものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、上記実施例ではMRI装置について説明したが、本発明はこれに限られるものではなく、たとえば、各種画像を保存する画像サーバ装置と、画像を表示するクライアント装置とがネットワークを介して接続された画像表示システム(PACS(Picture Archiving and Communication System)など)にも同様に適用することができる。
例えば、上記実施例ではMRI装置について説明したが、本発明はこれに限られるものではなく、MRI装置と、MRI装置によって用いられるシーケンスの設計を支援するシーケンス設計支援装置とを有する画像診断システムにも同様に適用することができる。
その場合には、シーケンス設計支援装置が、シーケンスの構造および当該シーケンスに関するパラメータをシーケンスの種類ごとに定義したシーケンス定義情報を記憶し、記憶しているシーケンス定義情報をMRI装置に転送する。そして、MRI装置が、シーケンス設計支援装置から転送されたシーケンス定義情報に基づいて、撮像に用いられるシーケンスを生成する。
また、これと同様に、MRI装置などのモダリティと、各種画像を保存するサーバ装置と、画像を表示するクライアント装置とがネットワークを介して接続された画像表示システム(PACS(Picture Archiving and Communication System)など)にも適用することができる。その場合には、サーバ装置あるいはクライアント装置が、前述したシーケンス設計支援装置として動作する。