(57)【特許請求の範囲】
【請求項１】
a)ハードウェア独立型プログラミング言語でプログラムされ、
ｉ)実行されるスキャンを規定する入力情報を受け取るオペレータインタフェース(53)と、
ii)撮像システムがスキャン中にどのように画像データを獲得するように動作するかを決定する要素を備える画像獲得記述(62)と、
iii) 前記獲得された画像データをどのように処理して画像を再構築するかを決定する要素を備えるデータ処理記述(64)を提供するワークステーション(10)と、
b)前記ワークステーション(10)に接続され、前記ワークステーションからダウンロードされた記述を受け取るように動作可能な複数のサーバ(18、19、20、22、23)であって、ダウンロードされた記述に応答して動作可能であって、前記スキャン中に機能を実行する各々の当該サーバと、を備え、
前記画像獲得記述(62)が、獲得されたＮＭＲ信号に関するオペレーションの実行を指示する情報であって、次のスキャナのオペレーションに影響を与える情報を生成する、
医療撮像システム。
【請求項２】
前記ハードウェア独立型プログラミング言語はオブジェクト指向言語である、請求項１の医療撮像システム。
【請求項３】
前記ハードウェア独立型プログラミング言語は、ジャバ（商標）である、請求項１の医療撮像システム。
【請求項４】
前記ワークステーションは、複数のエージェント(68、70、72、74、76)と、各エージェントをそれに対応するサーバにダウンロードする手段(78、90)を提供するようにさらにプログラムされ、各エージェントは複数のサーバ(18、19、22、23)のうちの１つに対応し、各エージェントは記述から選択された要素を含む、請求項１の医療撮像システム。
【請求項５】
前記ワークステーション(10)は、１つのプログラマブルマシンに基づいて存在し、少なくとも１つのサーバ(18、19、22、23)は、第２のプログラマブルマシンに基づいて存在する、請求項１の医療撮像システム。
【請求項６】
a)プログラムされたワークステーション(10) と、
b) 複数のサーバ(18、19、22)を備える磁気共鳴撮像(MRI)システムであって、
a)プログラムされたワークステーション(10)であって、
i)実行されるスキャンを規定する入力情報を受け取るオペレータインタフェース(53)と、
ii)前記スキャン中に生成するパルスを決定する要素を備えるパルス記述(58)と、
iii)前記スキャン中にＮＭＲ信号を得るために用いられるパルスシーケンスを決定する要素を備えるシーケンス記述(60)と、
iv)撮像システムがスキャン中にどのように画像データを獲得するように動作するかを決定する要素を備える画像獲得記述(62)と、
v)どのように前記獲得されたＮＭＲ信号を処理して診断に役立つ形式にするかを決定する要素を備えるデータ処理記述(64)を提供するようにプログラムされたワークステーション(10)と、
b)前記ワークステーション(10)に接続され、前記ワークステーションからダウンロードされた記述を受け取るように動作可能な複数のサーバ(18、19、22)であって、ダウンロードされた記述(58、60、62、64)に応答して、ＭＲＩシステムの要素を動作させてスキャンを実行するように動作可能な当該サーバの各々を備え、
前記記述は、獲得されたＮＭＲ信号に関するオペレーションの実行を指示する情報であって、次のスキャナのオペレーションに影響を与える情報を生成する要素を含んでいる、
磁気共鳴撮像(MRI)システム。
【請求項７】
前記サーバ(18)のうちの１つは、当該ＭＲＩシステムのRFシステム(26)と勾配システム(24)を制御する、請求項６のMRIシステム。
【請求項８】
前記サーバ(22)のうちの１つは、前記RFシステム(26)によって生成されたＮＭＲ信号から画像を再構築する、請求項７のMRIシステム。
【請求項９】
前記ワークステーションは、iv)前記画像の主題に関係する情報を用いてデータ処理記述の指示下で生成された画像の合成を指示する要素を備えるデータ記憶記述(66)をさらに含む、請求項６のMRIシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明の分野は、医療撮像システムであって、特に、そのシステムのハードウェアとソフトウェアの構造に関する。
【０００２】
【発明の背景】
医療撮像システムには様々な種類がある。様々なシステムでは、例えばレントゲン、磁気共鳴、超音波または核等の医療撮像療法が主に異なる。また、一般的に、各医療撮像療法は様々な複数の性能と特性を有する。例えば、磁気共鳴撮像（ＭＲＩ）システムでは、様々な偏波磁気強度と構造と、磁気共鳴血管造影（ＭＲＡ）と心臓撮像と機能的磁気共鳴画像（ｆＭＲＩ）等の様々なオプションを提供することができる。
【０００３】
多くの違いがあるにもかかわらず、医療撮像システムには共通の複数の基本機能がある。全ての医療撮像システムには、特定の画像の獲得を指示できるオペレータインタフェースと、撮像療法のうちの１つを利用して対象からデータを獲得するデータ獲得装置と、獲得されたデータを用いて画像を再構築する画像再構成プロセッサと、画像とそれに関連する患者情報を記憶する記憶装置を備える。通常、ハードウェアはこれらの機能を実行するように設計されており、ソフトウェアは各ハードウェア構造毎に設計され書かれる。より高速で強力なマイクロプロセッサ等の新しいコンセプト、即ち、新しい商品を利用するためにハードウェア構造を変える場合に、そのソフトウェアの全てでないにしてもその大部分を書き換える必要がある。
【０００４】
医療撮像装置の設計者にとってその他の課題は、各撮像機器の基本技術を飛躍的に進歩させることある。例えば、磁気共鳴撮像では、新たなパルスシーケンスとそれに関連するデータ獲得方法が絶えず発明されている。通常、既存のＭＲＩシステムに改良を加えるには、新たに特定用途向けソフトウェアを追加することはもとより、システムソフトウェアの書換えが必要となる。その程度は、行われた特定の改良や特定のシステムソフトウェアアーキテクチャの特性に依存する。
【０００５】
【発明が解決しようとする課題】
ハードウエアの変更に伴って発生するソフトウエアの変更・追加の少ない医療撮像システムのためのシステムアーキテクチャを提供する。
【０００６】
【課題を解決するための手段】
本発明は、医療撮像システムのためのシステムアーキテクチャであって、特に、そのシステムのために新しく改良されたソフトウェアアーキテクチャである。本アーキテクチャには、獲得される画像を規定するデータを受け取るオペレータインタフェースを提供し、画像データを獲得するためにどのように撮像システムを操作するかを決定する要素を備える画像獲得記述を生成し、画像を再構築するために獲得された画像データをどのように処理するかを決定する要素を備えるデータ処理記述を生成するようにハードウェア独立型言語でプログラムされたワークステーションと、ワークステーションに接続され、ワークステーションからダウンロードされた記述を受け取るように動作可能であって、必要なオペレーションと処理を実行する複数のサーバが含まれる。ジャバ等のハードウェア独立型言語を使って、記述を生成するためのソフトウェアに対してわずかな変更もしくは、全く変更無しで、ワークステーションハードウェアを変更することができる。同様に、ダウンロードされた記述を実行するサーバによって使われるほとんどのソフトウェアはマシン独立型でよい。
【０００７】
本発明のその他の態様は、スキャン記述をサーバにダウンロードする方法である。ワークステーションには、記述を要素ストリームとしてそれぞれのサーバに送るシリアル化メカニズムが含まれ、また、各サーバの脱シリアル化メカニズムによって記述を変更することで、スキャン中にサーバのオペレーションを指示することができる。
【０００８】
【発明の実施の態様】
特に図５を参照すると、医療撮像システムは、画像データを獲得するためのスキャン中に動作する機械的／電気的ハードウェア素子を含む医療撮像装置１１０を備える。また、撮像システムは、獲得した画像データを用いて画像を再構築するように動作するデータ処理装置も有する。システムを動作させてスキャン規定を入力するために、キーボードやコントロールパネル等のオペレータ入力装置１１４が設けられ、また、視覚化のために画像を表示する表示装置１１６が設けられ、また、得られた画像を保管するためにハードディスクドライブ等の記憶装置１１７が設けられる。利用される特定の撮像機器とそれらのハードウェア要素の複雑さとパワーは実質的にシステム毎に変わる。
【０００９】
本発明には、マシンに依存しないジャバ（ＪａｖａTM）等の言語でプログラムされたワークステーション１１８が含まれ、これには、オペレータがオペレータ入力装置１１４を用いてスキャンパラメータを入力できるユーザインタフェース１２０が設けられている。ワークステーション１１８は、スキャン記述１２２を生成するようにプログラムされる。尚、最も簡単なコンフィギュレーションでは、このスキャン記述には、規定のスキャンを実行するために撮像装置１１０とデータ処理装置によって必要とされる画像獲得記述要素とデータ処理記述要素が含まれる。
【００１０】
ランタイム前に、撮像システムハードウェア装置を制御する複数のサーバにスキャン記述１２２のスナップショットがダウンロードされる。最も簡単なコンフィギュレーションでは、これらには、撮像装置１１０とデータ処理装置の各々を動作させるデータ処理サーバ１２６と画像獲得サーバ１２４が含まれる。スキャン記述要素が提供されると、サーバプログラムによって画像システムハードウェア装置は規定のスキャンを行う。データ記憶サーバ１１３は、記憶装置１１７が画像とそれに関連する患者情報を記憶するように指示する。
【００１１】
ソフトウェア要素は、様々なハードウェアで実行できるように簡単に構成することができる。ワークステーション１１８とサーバ１１３、１２４、１２６を、個々のプログラマブルマシンで動作させてもよいし、あるいは、一つ以上のものを同一のプログラマブルマシンで実行させてもよい。データ処理サーバ１２６やデータ記憶サーバ１１３を、データ処理装置１１２やワークステーション１１８上で実行してもよい。そのコンフィギュレーションとは無関係に、ワークステーション１１８はマシン独立型言語でプログラムされているので、それを移植することは簡単であって、様々なプログラマブルマシンで実行させることができる。その上、サーバ１１３、１２４、１２６を様々なプログラマブルマシンで実行させるように変えてもよいが、スキャン記述を変更する必要がないので、ワークステーション１１８での変更は不要である。サーバを変える場合は、ワークステーション１１８で必要な変更は、サーバにダウンロードされた特定のスキャン記述要素の小さな変更のみである。
【００１２】
また、実質的にワークステーション１１８を変更することなく、サーバ数を増やすこともできる。例えば、画像獲得サーバ１２４を２つ以上の独立したサーバに分ける場合、ワークステーション１１８の実質的な唯一の変更は、適切な記述要素を各サーバにダウンロードすることである。
【００１３】
利用可能な様々なハードウェアシステムに対応するため、ジャバ（商標）のクラスファイルフォーマット等のハードウェアに依存しないフォーマットでアプリケーションを作成する。オブジェクト指向のアプリケーションは、必要に応じてサーバからアクセスされ個別にダウンロードされる複数のクラスファイルから形成される。クラスファイルはバイトコードのインストラクションを備える。所定ハードウェアプラットフォームで実行される「仮想マシン」プロセスでは、個別のクラスファイルをロードしてからその中のバイトコードを実行する。
【００１４】
本発明は、オブジェクト指向プログラミング技法によって実現されることが望ましい。オブジェクト指向プログラミングは、所定の基礎的ビルディングブロックを組合せてビルディングブロック間に関係を形成することによって、コンピュータプログラムを作成する方法である。オブジェクト指向プログラミングシステムでは、このビルディングブロックは「オブジェクト」と呼ばれる。オブジェクトは、データ構造（一つ以上のインスタンス変数）と、そのデータを使用したりそれに影響を与えるオペレーション（メソッド）をグループ化するプログラミング単位である。従って、オブジェクトは、データとそのデータに対して実行される一つ以上のオペレーション、即ち手続きからなる。データとオペレーションを結合して一体のビルディングブロックを生成することを「カプセル化」と呼ぶ。
【００１５】
オブジェクトが「メッセージ」を受け取ると、メソッドのうちの１つを実行するようにそのオブジェクトに命令することができる。メッセージとは、所定のメソッドを実行させるようにオブジェクトに送られたコマンド、即ちインストラクションである。メッセージは、メソッド選択（例えば、メソッド名）と複数の引数からなる。メッセージは、受け取るオブジェクトに対してどのオペレーションを実行するかの指示を与えるものである。
【００１６】
オブジェクト指向プログラミングのメリットの一つは、メソッドを起動するやり方にある。メッセージがオブジェクトに送信されるときは、そのメッセージによって所定のメソッドの実行方法をオブジェクトに命令する必要はない。必要なのは、オブジェクトでそのメソッドを実行するように要求することだけである。
【００１７】
オブジェクト指向プログラミング言語は、主に「クラス」のスキームに基づくものである。クラスとは、一般的に、クラスの変数とメソッドの両方を含むオブジェクトの種類を定義するものである。オブジェクトクラスを用いて、オブジェクトの特定のインスタンスを作成することができる。オブジェクトクラスのインスタンスには、クラスに対して定義された変数とメソッドが含まれる。１つのオブジェクトクラスから同一クラスの多数のインスタンスを作成することができる。オブジェクトクラスから作成された各インスタンスは、同一の種類、即ちクラスにあると言われる。
【００１８】
オブジェクトとは、オブジェクト指向プログラミング環境で使われ、関連のコードと変数を含むモジュールを表す一般的な用語である。オブジェクト指向プログラミング言語を用いてソフトウェアアプリケーションが作成されるので、オブジェクトを用いることによってプログラムの機能を実現することができる。
【００１９】
ジャバ（商標）プログラムは、複数のクラスとインタフェースを備える。プログラムがマシン依存で実行可能なプログラムコードにコンパイルされるような多くのプログラミング言語とは違って、ジャバ（商標）のクラスは、マシン独立のバイトコードのクラスファイルにコンパイルされる。各クラスには、クラスファイルフォーマットと呼ばれるプラットフォーム独立形式のコードとデータが含まれる。実行ビークル(vehicle)として機能するコンピュータシステムには、ジャバ（商標）クラスのコードを実行する仮想マシンと呼ばれるプログラムが含まれる。仮想マシンは、バイトコードクラスのマシン独立性と、基礎を成すコンピュータハードウェアのインストラクションセットのマシン依存性の間に、あるレベルの抽象概念を与えるものである。仮想マシンの「クラスローダ」は、必要に応じて、バイトコードのクラスファイルをロードし、インタープリタがバイトコードを直接実行するか、もしくは、「ジャスト・イン・タイム」コンパイラがバイトコードをマシンコードに変換することによって、プロセッサはそれらを実行することができる。
【００２０】
好適な実施形態の説明
特に図１では、本発明の好適な実施形態がＭＲＩシステムで利用されている。ＭＲＩシステムには、ディスプレイ１２とキーボード１４を含むワークステーション１０が含まれる。ワークステーション１０には、シリコングラフィクス社の市販のプログラマブルマシンであるプロセッサ１６が含まれている。これはインテル製６４ビットマイクロプロセッサに基づくものであって、リナックス(Linux：商標)オペレーティングシステムを実行するものである。ワークステーション１０は、スキャン規定をＭＲＩシステムに入力することを可能にするオペレータインタフェースを提供する。以下で詳しく説明するが、ワークステーション１０は、ジャバ（商標）コンパチブルなその他のプログラマブルマシンに完全に移植できるジャバ（商標）言語でプログラムされたコードを実行させる一つ以上のジャバ（商標）仮想マシンを実行させる。従って、オペレータインタフェースを利用するプログラムは、ハードウェアに依存しない言語で作成される。この事は、様々なハードウェア構造及び性能を持つワークステーションで同じジャバプログラムを実行することができ、集積回路技術の急速な進歩を利用するように開発された新たなプログラマブルマシンに簡単に移植できることを意味する。
【００２１】
ワークステーション１０は、４つのサーバ、即ち、パルスシーケンスサーバ１８とデータ獲得サーバ20とデータ処理サーバ２２とデータ記憶サーバ２３に結合されている。好適な実施形態では、ワークステーションプロセッサ１６とそれに関連するディスクドライブインタフェース回路が、データ記憶サーバ２３を実行させる。残りの３つのサーバ１８，２０，２２は、単一の閉領域に実装された個別のプロセッサによって実行され、「コンパクトＰＣＩ」と呼ばれる工業／遠距離通信のアプリケーションのためのＰＣＩ規格に基づく６４ビットバックプレーンバス構造によって相互接続される。パルスシーケンスサーバ１８では、モトローラ社製ＰＰＣ７５０型３６６ＭＨｚマイクロプロセッサとＭＰＣ８６０Ｔクワッド通信コントローラを使用している。データ獲得サーバ２０とデータ処理サーバ２２両方とも、同じ３６６ＭＨｚマイクロプロセッサを用い、データ処理サーバ２２は、マーキュリコンピュータシステム社から「PowerPC（商標）」として市販されている１つ以上の並列ベクトルプロセッサに基づくアレープロセッサをさらに備える。その他の３６６ＭＨｚマイクロプロセッサ（図示せず）は、ＰＣＩバス構造のハードウェアコントローラとしての機能を果たし、モトローラ社製ＭＰＣ８６０Ｔクワッド通信コントローラを制御する。
【００２２】
ワークステーション１０とサーバ１８、２０、２２の各プロセッサは、１００ベースTイーサネット（１００ＢａｓｅＴ  イーサネット）シリアル通信ネットワークに接続される。以下で詳しく説明するが、このシリアルネットワークは、ワークステーション１０からサーバ１８、２０、２２にダウンロードされたデータを伝達し、サーバ間、或いはワークステーションとサーバ間で送られたタグデータを伝達するものである。また、画像データをデータ記憶サーバ２３に伝達するために、ＢＩＴ３プロトコルを用いた高速データリンクがデータ処理サーバ２２とワークステーション１０の間に配置される。
【００２３】
パルスシーケンスサーバ１８は、勾配システム（Gradient  System）２４とＲＦシステム２６を動作させるようにワークステーション１０からダウンロードされたプログラム要素に応答して機能する。規定のスキャンを実行するために必要な勾配波形を生成し、勾配システム２４に適用することによって、アセンブリ２８内の勾配磁場コイルを励起させて、位置エンコードＮＭＲ信号として用いられる磁場勾配Ｇx、Ｇy、Ｇzを発生させる。勾配磁場コイルアセンブリ２８は、分極磁石３２と全身ＲＦコイル３４を備える磁石アセンブリ３０の一部をなす。
【００２４】
ＲＦシステム２６によってＲＦ励起波形がＲＦコイル３４に与えられて、規定の磁気共鳴シーケンスが実行される。ＲＦコイル３４で検出された応答性ＮＭＲ信号は、ＲＦシステム２６に送信されて（受信され）、パルスシーケンスサーバ１８のコマンドに従って増幅され、復調され、濾波され、デジタル化される。模範的なＲＦシステムについては、米国特許４、９５２、８７７と米国特許４、９９２、７３６で開示されている。
【００２５】
また、オプションとして、パルスシーケンスサーバ１８は、患者情報を生理的情報獲得コントローラ３６から受信する。コントローラ３６は、患者に接続された複数の様々なセンサからの信号、例えば、電極からのＥＣＧ信号や、ベローズからの呼吸信号を受信する。通常、パルスシーケンスサーバ１８はこのような信号を用いて、スキャンの実行を同期化することができる。
【００２６】
また、パルスシーケンスサーバ１８は、患者と磁石システムの状態に関係する様々なセンサから信号を受信するスキャンルームインタフェース回路３８にも接続されている。また、患者位置決めシステム４０が患者を所望の位置に移動させるコマンドを受信するのもスキャンルームインタフェース回路３８によって行われる。
【００２７】
パルスシーケンスサーバ１８は、スキャン中にＭＲＩシステム要素の実時間制御を行うことは明らかなことである。その結果、タイムリーに実行されるプログラムインストラクションを用いてハードウェア要素を動作させることが必要である。以下で詳しく説明されるが、実行中は、アセンブラやＣやＣ＋＋等の低レベルのプロフラム言語で書かれたプログラムによってパルスシーケンスサーバ１８が制御される。スキャンの規定に関する記述要素はオブジェクト形式で、ワークステーション１０からダウンロードされる。パルスシーケンスサーバ１８は、脱シリアル化メカニズムを用いてこれらのオブジェクトを受信するプログラムを備える。また、パルスシーケンスサーバ１８は、これらのオブジェクトをランタイムプログラムで使われるＣ＋＋オブジェクトに変換するプログラムを備える。好適な実施形態では、ジャバ（商標）オブジェクトがダウンロードされ、ジャバ（商標）のシリアル化機構が利用される。従って、パルスシーケンスサーバ１８は、ジャバで書かれたハードウェア独立型プログラムとハードウェア依存型プログラムの両方を備える。パルスシーケンスサーバ１８で実行されるほぼ全てのプログラムをハードウェア独立形式で書けば、最終的にジャバ（商標）インタープリタは十分速くなると考えられる。
【００２８】
データ獲得サーバ２０は、ＲＦシステム２６で生成された、デジタイズされたＮＭＲ信号サンプルを受信する。データ獲得サーバ２０は、ワークステーション１０からダウンロードされた記述要素に応答して実時間ＮＭＲデータを受信して、データオーバーランでデータが失われないようにバッファ記憶部を備える。スキャンの中には、獲得されたＮＭＲデータをデータプロセッササーバ２２に伝達する以外は、データ獲得サーバ２０が殆ど動作しないものもある。しかしながら、スキャンの実行をさらに制御するために獲得されたＮＭＲデータから得られる情報を必要とするスキャンでは、その情報を生成してパルスシーケンスサーバ１８に送るようにデータ獲得サーバ２０がプログラムされる。例えば、プリスキャンではＮＭＲデータが獲得され、それを用いることによって、パルスシーケンスサーバ１８によって実行されるパルスシーケンスが校正される。ナビゲータ信号はスキャン中に獲得され、ＲＦ或いは勾配システム操作パラメータを調整したり、ｋ空間のサンプリング順を制御するために用いられる。また、１９９６年４月１９日に出願され同時係属中の米国特許出願０８／６３５，０７８号「造影剤を用いた磁気共鳴血管造影方法」に記載されているように、ＭＲＡスキャンで造影剤が到着したことを検出するために用いられるＮＭＲ信号を処理するためにデータ獲得サーバ２０を利用することができる。これらの全例では、データ獲得サーバ２０がＮＭＲデータを得て、実時間でそれを処理して、スキャンを制御するために利用される情報を生成する。
【００２９】
パルスシーケンスサーバ１８と同様に、ランタイムにアセンブラやＣやＣ＋＋等のプログラム言語のプログラムインストラクションによって、データ獲得サーバ２０のハードウェア要素が動作する。以下で詳しく説明されるが、スキャン中でのその動作に対する指示はオブジェクト形式でワークステーション１０からダウンロードされる。サーバプロキシは、シリアル化メカニズムを用いてオブジェクトを受け取り、ダウンロードされたオブジェクトは、ランタイムにデータ獲得サーバ２０を動作させるＣ＋＋オブジェクトに変換される。上述したように、ジャバ（商標）シリアル化メカニズムを用いた好適な実施形態で、ジャバオブジェクトがダウンロードされる。
【００３０】
データ処理サーバ２２は、データ獲得サーバ２０からＮＭＲデータを受信して、ワークステーション１０からダウンロードされた記述要素に従ってそれを処理する。その処理には、例えば、２次元または３次元の画像を生成するために未処理のｋ空間のＮＭＲデータをフーリエ変換したり、再構築された画像にフィルタをかけたり、逆投影法によって、得られたＮＭＲデータの画像再構築を行ったり、機能性ＭＲ画像を計算したり、或いは、動画像、即ち画像フローを計算する等が含まれていてもよい。
【００３１】
データ処理サーバ２２で再構築された画像は、ワークステーション１０に送り返されて、そこで記憶される。実時間画像はデータベースメモリキャッシュ（図示せず）に記憶され、そこから、磁石アセンブリ３０の近くにあるオペレータディスプレイ１２やディスプレイ４２にそれが出力されるので主治医はそれを利用できる。バッチモード画像や選択された実時間画像は、ディスク記憶４４上のホストデータベースに記憶される。その画像が再構築されてメモリに転送されると、データ処理サーバ２２はワークステーション１０のデータ記憶サーバ２３にそれを知らせる。オペレータはワークステーション１０を利用して、画像を保管したり、フィルムを作成したり、ネットワークを介して画像を他の施設に送ることができる。
【００３２】
以下で詳しく説明されるが、データ処理サーバ２２が実行する特定のオペレーションに対する指示はワークステーション１０からダウンロードされる。タイムクリティカルな機能は、アセンブラやＣやＣ＋＋で書かれたプログラムによって実行され、ダウンロードされたジャバ（商標）オブジェクトの指示を、上で説明されたように、対応する実行可能コードに変換する必要がある。
【００３３】
上で示したように、ワークステーション１０には、ジャバ（商標）プログラミング言語で書かれたプログラムを実行するジャバ（商標）仮想マシンが含まれる。ワークステーションソフトウェアは、オペレータによって選択され実行される「アプリケーション」を実行するように設計される。そのアプリケーションは、臨床的な撮像手順に対応し、例えば、
ＦＳＥパルスシーケンスを用いたスキャン、
CEMRA動的検査、
ｆＭＲＩ検査
出血する血管の検査、
画像の後処理、
撮影、
ネットワーキング
が含まれていてもよい。
【００３４】
アプリケーションは、オペレータによって選択されてスキャンを行うための「アプリケーションコンテナ」に記憶されたジャバ（商標）オブジェクトの集まりである。特に図２では、各アプリケーションコンテナには、コンテナ内のその他のジャバ（商標）要素にスキャンを実行させるジャバ（商標）アプリケーションコントローラ要素４６が含まれる。これらのその他の要素には、アプリケーションによって実行される手続きをオペレータが制御することを可能にする規定支援要素５５とユーザインターフェイス要素５３を備える規定コントローラ５２が含まれる。
【００３５】
また、アプリケーションコンテナにはスキャン記述５０も含まれる。以下で詳しく説明するが、このスキャン記述はサーバ１８、２０、２２、２３（図１）にダウンロードされ、サーバはそれを用いて規定のスキャンを実行する。記憶されたスキャン記述５０はアプリケーション毎にユニークなものであるが、オペレータは、スキャンを完全に規定するように、さらに情報を入力することができる。
【００３６】
アプリケーションコントローラ４６には、スキャン中のアプリケーションのステートを維持するアプリケーションステートオブジェクト４８が含まれる。アプリケーションのライフサイクルには以下のステートがある。
初期化
規定
規定完了
ダウンロード
ダウンロード完了
プリスキャン
プリスキャン完了
バッチスキャン
実時間スキャン
スキャン停止
スキャン完了
再構築完了
視覚化完了
このライフサイクルは、アプリケーションコンテナからの（アプリケーションの初期化を行うような）コマンドと、オペレータからの（スキャンを開始させるような）コマンドと、アプリケーションによって内部的に生成される（スキャン完了のような）コマンドに基づいて駆動される。
【００３７】
オペレータがアプリケーションを選択すると、アプリケーションでは初期化を行って「規定状態」に変わり、規定コントローラ５２はイネーブルとなってスキャン記述要素５０と相互作用し、オペレータがどのスキャンパラメータ（例えば、ＴＲ、スライス数、ＦＯＶの位置、フリップアングル）を指定しなければならないかを決め、また、規定が完全に有効かどうかを決定する。次に、規定コントローラ５２は、アプリケーションステートオブジェクト４８に信号を送ることによって「規定された」状態に切替え、制御パネル上のダウンロードボタンとプリスキャンボタンとスキャンボタンをイネーブル状態にする。
【００３８】
もしオペレータが「ダウンロード」ボタンを押すと、アプリケーションステートオブジェクト４８は「ダウンロード状態」になって、アプリケーションコントローラ４６はスナップショットコントローラ５４を利用してスナップショットコマンドとダウンロードコマンドを発行する。以下で詳しく説明されるが、これらのコマンドに従って、スキャン記述５０がサーバ１８、２０、２２、２３にダウンロードされる。スナップショットコントローラ５４は、各サーバ１８，２０，２２から「ダウンロード完了」の通知を受け取り、四つのサーバ全てのダウンロードが完了すると、アプリケーションステートオブジェクト４８が「ダウンロード完了」状態に切り替わる。
【００３９】
もしオペレータがスキャンボタンを押すと、アプリケーションステートオブジェクト４８はスキャンモードに変わるので、スキャンコントローラ５６が用いられてパルスシーケンスサーバ１８にスキャンコマンドが発行される。次の状態遷移は、スキャンモード、即ち、実時間モードやバッチモードで制御される。この２つのモードでのアプリケーションの動作は全く異なっているので、２つの異なるスキャン状態が存在する。もし実時間モードであれば、アプリケーションは「実時間スキャン」状態になり、もしバッチモードであれば、アプリケーションステートは「バッチスキャン」状態になる。実時間モードで、もしユーザがスキャンの停止を選ぶと、アプリケーションは「スキャン停止」状態に遷移する。もしスキャンが再開すると、アプリケーションは実時間スキャン状態に戻る。実時間スキャン状態では、アプリケーションを編集して、編集された記述をスキャン中でもダウンロードすることができる。しかしながら、アプリケーションは状態遷移しない代わりに、編集およびダウンロードできるものとしてその状態が特徴付けられる。この実時間スキャン状態での動作がバッチスキャン状態での動作と区別される点である。
【００４０】
オペレータが「スキャン停止」のボタンを押すと、アプリケーションは「スキャン完了」状態に遷移する。また、もしアプリケーションがバッチスキャン動作モードにあるならば、スキャンが完了した時に、パルスシーケンスサーバ１８はアプリケーションコントローラ４６にそれを通知する。アプリケーションステートオブジェクトは、どちらの事象でも「スキャン完了」状態に変わる。
【００４１】
データ処理サーバ２２が獲得された画像の再構築を完了すると、アプリケーションコントローラ４６にその旨が通知され、アプリケーションステートオブジェクト４８が「再構築完了」状態に変えられる。これは、再構築された画像を表示したり、さらに別の処理を施したりするために、その画像がディスク４４から入手可能であることをワークステーション１０に示すものである。
【００４２】
特に図３を参照すると、スキャン記述５０には、規定コントローラ５２を利用してスキャンパラメータを集め、また、規定のスキャンパラメータをサーバ１８、２０、２２、２３にダウンロード可能な小さな要素集合にまとめるように機能する一連の構成要素が含まれる。規定のスキャンを実行するために、サーバ１８、２０、２２では、ダウンロードされたそれらの要素によってハードウェアのオペレーションが指示される。
【００４３】
各アプリケーションには要素を論理的にグループ化するための様々な種類の記述が存在するので、ＭＲスキャンを実行する様々な態様を取扱うことができる。これらの記述の種類には、
パルス記述５８
シーケンス記述６０
獲得記述６２
データ処理記述６４
データ記憶記述６６
がある。
【００４４】
パルス記述５８には、ハードウェア制御要素と勾配システムとＲＦシステムハードウェアで使われる波形を定義し制御する要素が含まれる。ランタイムにシーケンス記述の要素によって生成された事象に応答して、これらの要素は、波形、またはハードウェアと波形の動的な態様を制御する。また、この記述５８には、ＲＦシステム２６によって受信されたＮＭＲ信号のフィルタ処理を制御する要素がさらに含まれる。これらの要素は、ＮＭＲ信号を励起し符号化し読み出すために用いられる勾配／ＲＦ／制御パルスのユニークなセットを集合的に定義するものである。その例としては、２Dスピンエコーシーケンスと２D勾配エコーシーケンスと２D高速スピンエコーシーケンスと３D勾配エコーシーケンスのパルス記述がある。
【００４５】
シーケンス記述６０には、行うパルスシーケンスの順序を制御する一連の要素が含まれており、スキャンのタイムラインに沿って規定された一連の事象を定義するものである。
【００４６】
シーケンス記述６０によって定義されたこれらの規定の事象は、パルス記述５８のパルス成分の動的な振る舞いを開始させるものである。これらの要素は、スライスとｋ空間のサンプリング順序を定義するために使われるユニークな獲得配列を規定するものである。この例としては、２Dシーケンシャルと２Dインタリーブと３Dシーケンシャルと３D楕円中心とマルチスライスＣＩＮＥがある。
【００４７】
獲得記述６２には、ＲＦシステム２６によって獲得されたＮＭＲ信号の実時間処理を指示する一連の要素が含まれる。これらの要素は、獲得されたＮＭＲ信号に関するオペレーションの実行を指示して情報を生成する。尚、この情報はシーケンス記述６０の要素に送られて、次のスキャナのオペレーションに影響を与えるものである。これらの要素は、例えば、プリスキャン中にＮＭＲ信号を処理して次のスキャンで生成されたＲＦパルスのパワーの変化、もしくは、周波数の変化をフィードバックしたり、造影剤のかたまりが注目の領域に到着して中心ビュー順序での獲得が開始する時点を検出するためにＮＭＲ信号を処理したり、スキャンのビュー順序を変えたり、ＲＦシステム２６の復調基準周波数を変えるために利用できる位相補正情報を生成するために「ナビゲータ」ＮＭＲ信号を処理したりするものである。この能力を必要としない臨床用アプリケーションで一般的に用いられるスキャンもあるが、このアプリケーションの獲得記述６２の要素では、得られたＮＭＲ信号を単純にバッファリングして、それをデータ処理サーバ２２で利用可能なものにする。
【００４８】
データ処理記述６４には、得られたＮＭＲ信号を意味のある形式に変換するようにデータ処理サーバ２２に指示をだす要素が含まれる。画像再構築は最も一般的な機能であって、その結果の態様は、スキャンされた対象の２D画像や３D画像である。また、分光法に基づく処理もこれらの要素によって定義することができ、この場合の結果の態様は、得られたＮＭＲ信号のスペクトル画像である。
【００４９】
データ記憶記述６６には、スキャン中にデータベースに記憶された画像を定義する要素が含まれる。再構築された画像に加えて、これには、患者の解剖学的な情報やスペクトル分析に基づく情報と共にその画像に現れる患者情報とスキャンパラメータ情報が含まれてもよい。
【００５０】
特に図２と図３を参照すると、完全に規定が入力されてスキャン記述５０が完了するとダウンロードが始まり、スナップショットコントローラ５４が動作して、スキャン記述５０の要素がサーバ１８,２０,２２に転送される。このことは、エージェント６８、７０、７２、７４、76をそれぞれの記述５８、６０、６２、６４、６６、６６の要素から形成すること達成される。この結果、各エージェントには、スキャン中にサーバがタスクを実行するよう指示できる一連のオブジェクトが含まれる。ダウンロード可能な要素をサーバに送るために、エージェントはプロセスブロック７８で示されたシリアル化の処理を利用する。シリアル化することによって、エージェントのオブジェクトは、オブジェクトクラス名とそれらのデータのインスタンスとオブジェクト間の関連を維持するストリームフォーマットに変換される。最初の初期化時に、スナップショットコントローラ５４にエージェントが登録される。規定が完全になると、スナップショットコントローラ５４は、スナップショットを撮ることをエージェントに通知する。エージェントは、それ自体とダウンロード可能な要素の全てをシリアル化し、そのデータストリームと目標サーバの識別情報をオブジェクトに知らせる。そのスナップショットオブジェクトは目標サーバに送られてダウンロードが完了する。
【００５１】
例えば、２０００年７月１８日に許可された「バイトコードとシリアル化されたオブジェクトをタイムリーに送る方法と装置」というタイトルであって、本願の援用文献である米国特許６、０９２、１２０に記載されているように、シリアル化メカニズムは、出力データストリームにオブジェクトを書き込めるジャバでは標準的な特徴である。データストリームをプロセス境界を越えて送ったり、それを後で利用するためにディスクに保存してオブジェクトの状態を保持したりすることができる。シリアル化されたオブジェクトのデータストリームは、各オブジェクトのクラス名と、属性名と種類と値から記述されたそのオブジェクトのインスタンスデータを送るものである。シリアル化することの強力な態様は、データストリームを受け取って脱シリアル化するときに、オブジェクト間の関係を捕らえる能力である。これによって、シリアル化したストリームからオブジェクトのグラフを表現することができ、また、後で、もしくは、別のマシンで再現することもできる。シリアル化メカニズムによって、オブジェクト間の全ての関係が捉えられる。グラフ中の各オブジェクトは一度だけシリアル化される。もし一つのオブジェクトが１回以上参照されるならば、シリアル化メカニズムによって、その繰り返しが認識され、前にあった所へに対する参照情報がストリーム内に挿入される。これによって、シリアル化処理中の無限ループの発生が防止されたり、オブジェクトの重複があるためにストリームが膨らんでしまうことが防止される。尚、シリアル化したデータストリームにはオブジェクトデータだけが含まれ、オブジェクトのメソッド・コード、即ち、オブジェクトの実行可能な部分が含まれないことに注意することは重要である。このため、スナップショットコントローラ４５によってサーバにダウンロードされたデータ量がかなり少なくなる。また、各サーバにオブジェクトのメソッド・コードが既にあることが必要である。
【００５２】
特に図３を参照すると、シリアル化されたエージェント68、70、72、74、76は、対応する機能サーバ80、82、84、86、88にダウンロードされる。機能サーバ80、82、84、86は３つのサーバ１８、２０、２２にあって、データはイーサネットシリアル通信ネットワークを介して送られる。パルスサーバ80とシーケンスサーバ82は、パルスシーケンスサーバハードウェア18上にあって、獲得サーバ84は、データ獲得サーバハードウェア20上にあって、データプロセスサーバ86はサーバハードウェア20もしくは22上にある。データ記憶サーバ88は、ワークステーション１０にある。様々な多くのハードウェアの組み合わせに基づいて機能サーバが存在し、現在のアーキテクチャによって様々なハードウェアの組み合わせを利用することを容易にできることは当業者にとって明らかである。もしサーバハードウェアが使われるなら、ワークステーションソフトウェアで必要となる唯一の変更部分は、新しいサーバハードウェア向けの記述要素を特にグループ化するエージェントである。既存のスキャン記述50の要素を使って新しいエージェントが構築され、上述の既存のソフトウェアを使ってそれが生成されてダウンロードされる。スナップショットのダウンロード事象がスナップショットコントローラ54によって生成されるときに、対応する目標の機能サーバによってシリアル化したエージェントが受け取られる。プロセスブロック90で示されるように、シリアル化したエージェントの各ストリームを脱シリアル化する必要がある。もしサーバがジャバで書かれているならば、この脱シリアル化は、例えば、上で引用された米国特許6，092，120で記述されている言語の標準的な特徴となる。しかしながら、上述したように、好適な実施形態のサーバはC++オブジェクトコードを使うので、脱シリアル化には余計な努力が必要となる。脱シリアル化を実行するために、サーバはコロラド州ボールダにあるローグウェーブソフトウエア社（Rogue Wave Software，Inc．）から入手可能なソフトウェア製品を用いることができる。この製品には、ジャバ（商標）オブジェクトストリームの修復用にC++ライブラリが提供される。このツールで、ジャバストリームを構文解析でき、含まれるクラス名と属性と、リーダライタークラスとオブジェクトの関係を提供することができる。ストリームから生成される各C++要素は、リーダライターを備える必要がある。このクラスは、構文解析された情報を適切な建設者にマップし、C++オブジェクトのメソッドを設定する。
【００５３】
上述したように、シリアル化したストリームにはコードは含まれないが、オブジェクトのインスタンスデータだけが含まれる。C++クラスのコードはサーバに存在する。全ての種類のジャバ（商標）エージェントとジャバ（商標）をダウンロード可能な要素は、サーバ上にミラーC++オブジェクトを備える。ミラー要素は、同じクラス名を持ち、共通の属性集合を共有する必要がある。脱シリアル化プロセスが終了すると、92で示される実行可能なオブジェクトコードは、機能サーバ80、82、84、86、88の各々に存在する。ダウンロードが完了し、アプリケーションステートオブジェクト４８が「ダウンロード完了」状態に変わると、各機能サーバは、ワークステーション１０内のスナップショットコントローラ５４への送信と等価なことを行う。
【００５４】
オペレータがコントロールパネル上の「実行」ボタンを押すと、スキャンコントローラ５６は、ワークステーションとサーバのランタイムオペレーションを調整して、スキャンを実行させる。これを行うために、スキャンコントローラ５６は様々な複数のバス構造とバックプレーンとシリアル通信ネットワークを介して機能サーバ80、82、84、86、88と通信することができる。例えば、スキャンコントローラ５６は、パルスシーケンスサーバ１８に信号を送ってスキャンを開始させ、画像が利用可能になって見ることができるようになったときにデータ処理サーバ２２からの通知を受け取る。さらに、複数の機能サーバは、スキャン中に互いに通信する必要がある。例えば、対応するダウンロードされたエージェントを使って、パルスサーバ80とシーケンスサーバ82は、密な協調関係を持ちながら動作して、必要とされるシーケンスをもち、必要とされるタイミングの所望のパルスを生成することができる。獲得サーバ84は、サーバ80や82に情報を送り返して、スキャン中にパルスやシーケンスを変えることができる。獲得サーバ84によって獲得された画像データはデータプロセスサーバ86に送られ、データ記憶サーバ88はデータプロセスサーバ86とワークステーション１０の両方から情報を受け取って、再構築された画像を利用して特許情報をマージする機能を実行する。
【００５５】
タグ付きデータ転送システムによってランタイム通信が行われる。タグ付きデータ転送は、タグ(データパケット)表現と、様々な低レベル通信スキームに基づくルーティングメカニズムを備えることによって、ハードウェア依存性からアプリケーション/サーバを分離するシステムである。タグ付きデータパケットは、ヘッダとペイロードからなる。ヘッダには、識別子とタグ付きデータタイプとペイロードサイズとバイトオーダとホップカウント等のペイロードを解釈するために役立つ情報が含まれる。ペイロードには、プラットフォーム独立型データ、もしくは、タグ付きデータオブジェクトが含まれる。様々なプログラマブルマシンに送られたプロセスを含むプロセス内かプロセス間で交わされるデータを転送して解釈することができる。
【００５６】
0003973194.tif 000002
１つのタグ付きデータシステムにリクエストすることによって、タグ付きデータオブジェクトが生成される。転送されるデータはタグ付け可能な形式でタグ付きデータシステムに送られる。タグ付きデータオブジェクトで、データを付け加え、削除し、更新することができる。次に、タグ付きデータオブジェクトが、データをその目的地に送る処理を行うタグルータに送られる。図４に示されているように、ワークステーション１０と機能サーバ80、82、84、86、88の各々には、タグルータ94が含まれる。これらはジャバ（商標）とC++で書かれており、利用可能な通信ハードウェアとプロトコルを用いて互いに通信する。タグ付きデータを受け取ることに関係するプロセスは、ローカルタグルータに登録された論理アドレスを備える。この登録には、そのリファレンスを提供することも含まれる。このリファレンスには、プロセス/サーバ識別子とアプリケーション識別子とスナップショットとエージェント/要素識別子についての情報が含まれる。従って、各プロセスは、その他のプロセスを利用したタグ付きデータ転送を可能とする少なくとも１つのタグルータを備える。
【００５７】
タグルータは、ストリームパイプに似たデータ転送チャネルを維持する。これらのチャネルは、タグルータから低レベル通信の詳細について隠すもので、タグ付きデータを、別のプロセス空間の仲間に送るメカニズムを提供するものである。チャネルは、入力データチャネルと出力データチャネルからなる。その入出力チャネルには、待ち行列/脱待ち行列スキームと通信スキームが必要である。送信プロセスには、タグ送信オペレーションの失敗／成功についての通知を得るオプションがある。また、送信プロセスでは、入力チャネルと出力チャネルの待ち行列サイズを特定することができる。
【００５８】
データ表現のためにDICOM規格が使われるので、プラットフォーム独立性を達成することができる。医療画像とそれに関連するデバイス情報を送るための規格を提供するために、放射線科医学会（American College of Radiology）と、全国電機製造業者協会（National Electrical Manufacturers Association）によって医療規格のデジタル撮像と通信が開発された。DICOMのデータタイプはうまく定義されており、ハードウェア独立である。転送されるデータを識別するために、定義済みのDICOMタグを使うことができるので、アプリケーションプログラマによってパケットを簡単に拡張することができる。サポートされているデータタイプは、ストリングと整数と浮動小数点を含むDICOM仕様によって特定されるもののサブセットである。
【００５９】
本発明のシステムアーキテクチャによって提供されるジャバ（商標）に基づくインフラによって、システムハードウェアの変更と、臨床用アプリケーションの変更と、新しい臨床的手続きを追加することが容易になる。ワークステーションは、１つのプログラムマシンから別のマシンに容易に移行できる。これは、それらのプログラムマシンが両方ともにジャバ仮想マシンを備えるように構成されている限り可能である。サーバには、それが制御するシステムハードウェアの変更時に、変更が必要となるハードウェア独立型プログラムが含まれている。しかしながら、この変更は主にサーバに限定される。変更されたサーバに対応するワークステーションのエージェントの変更が必要な場合があるが、これは、ワークステーションのオペレーションのその他の態様に影響を与えることがないようによく定義されたタスクである。
【００６０】
新しい臨床用アプリケーションをＭＲＩシステムに追加することによって、新しいアプリケーションコンテナを追加する必要がある。ジャバ（商標）に基づくインフラは、ダウンロードとタグ通信機能を実行するオブジェクトを提供する。特定のシステムのシリアルリンクとバックプレーンでこれらの機能を実行する方法は、臨床用アプリケーションのための正確なパルスとパルスシーケンスとＮＭＲデータ獲得／処理機能の定義について重点的に取り組むアプリケーションプログラマにとって明らかなことである。
【図面の簡単な説明】
【図１】図１は、本発明の好適な実施形態を利用したＭＲＩシステムのブロック図である。
【図２】図２は、図１のＭＲＩシステムの一部を構成するワークステーションの機能要素のブロック図である。
【図３】図３は、図１のＭＲＩシステムのダウンロード時象を示す機能及びデータ要素のブロック図である。
【図４】図４は、図１のＭＲＩシステムのタグ通信システムを示す要素のブロック図である。
【図５】図５は、本発明を用いた画像システムのブロック図である。
【図１】
0003973194.tif 000003
【図２】
0003973194.tif 000004
【図３】
0003973194.tif 000005
【図４】
0003973194.tif 000006
【図５】
0003973194.tif 000007