データ要素の発信元と受信側を通じてDICOM画像をストリーミングする方法と装置
【課題】データ要素の発信元と受信側を通じてDICOM画像とオブジェクトをストリーミングする方法と装置を提供する。
【解決手段】あらゆるサイズの比較的大きなDICOMオブジェクトに含まれるデジタル・データは、ネットワーク内のアプリケーション、装置、記憶媒体の間で転送できる。データ要素の発信元とデータ要素の受信側を使用して1回に1つずつデータ要素とデータ値を段階的に処理するので、DICOMオペレーションを実行するのに必要なメモリ量が最小になる。本発明による方法と装置は、メモリ資源の消費を限定すると共に、比較的大きなDICOMオブジェクトの処理のために比較的小さな固定量のメモリを供給してDICOM内で動作するアプリケーションの性能を維持する。
【解決手段】あらゆるサイズの比較的大きなDICOMオブジェクトに含まれるデジタル・データは、ネットワーク内のアプリケーション、装置、記憶媒体の間で転送できる。データ要素の発信元とデータ要素の受信側を使用して1回に1つずつデータ要素とデータ値を段階的に処理するので、DICOMオペレーションを実行するのに必要なメモリ量が最小になる。本発明による方法と装置は、メモリ資源の消費を限定すると共に、比較的大きなDICOMオブジェクトの処理のために比較的小さな固定量のメモリを供給してDICOM内で動作するアプリケーションの性能を維持する。
【発明の詳細な説明】
【技術分野】
【0001】
(発明の分野)
本発明は、一般に画像伝送に関し、特に、データ要素の発信元と受信側を通じてDICOM画像をストリーミングする方法と装置に関する。
【背景技術】
【0002】
医療画像は、医療ディジタル画像通信(Digital Imaging and Communications)(DICOM)と呼ばれるネットワーク・プロトコル規格を使用して、コンピュータ間で通信できる。このDICOMネットワーク・プロトコルは、心電図波形、コンピュータ断層撮影(CT)、磁気共鳴(MR)および超音波などの医療画像およびオブジェクトの配信と表示を支援するために作成された。
【0003】
DICOMネットワーク・プロトコルは、デジタル画像データとオブジェクトを記憶し、受信し、伝送するのに使用されるフォーマットを定義する。DICOMオブジェクト・フォーマットは、典型的にヘッダと画像データを含む。ヘッダは、患者の名前、医療手順または断層撮影のタイプ、画像次元などに関する情報を含む。たとえば、あるDICOM画像ファイルは、ある医療画像の物理的次元を記述するデータを内容とするヘッダを含む。ヘッダは、この画像内に含まれる断層撮影についてのテキスト情報を内容とするデータを含む。ヘッダのサイズは、画像に記憶される情報量により異なる。ヘッダ内のデータは、1つまたはそれ以上のグループに組織できる。1つのグループは、グループ長さ、ファイル・バージョン、転送構文のような1つまたはそれ以上のデータ要素を定義するメタ・ファイル情報である。データ要素の数は、画像タイプとこの特定画像タイプの特性により異なる。
【0004】
オブジェクト・データは、典型的にヘッダ・データに続く。オブジェクト・データは、特定のオブジェクト・タイプの特性を定義するデータ要素および特定のオブジェクト・タイプに関連するオブジェクト・データを有する。オブジェクト・データは、2つおよび/または3つの次元で遂行される医療走査で得られる情報を含むことができる。たとえば、磁気共鳴画像(MRI)データは、そのMRIエコー時間を詳細に定義するデータ要素を含むDICOM画像データを有する。その上、画像ファイル・サイズを小さくするために画像データを圧縮したりカプセル化したりする。
【0005】
ほとんどのDICOMデータ要素は、小さくて、それらが収納できるデータのタイプによりサイズが限定される。たとえば、整数データ要素は、少しの整数を含む。これらのデータ要素は、いつも比較的小さく、それらの比較的小さなサイズのゆえに、ネットワークの効率と拡張性に重要または大きな影響を与えることはない。画像データなど他のタイプのDICOMデータ要素は、比較的大きいことがある。2つのタイプのDICOMデータ要素は、大きいことがあるので、特別な注意に値するが、それは、シーケンスとピクセル・データである。DICOMにおけるシーケンスは、他のデータ・セットを再帰的に収納できるデータ要素のタイプである。それらは他のデータ・セットを収納できるので、小さなデータ要素を非常に多数収納する場合またはピクセル・データを収納する場合は、それらが相対的に大きくなる。ピクセル・データは、実際の画像データに対応するタイプのデータ要素である。ピクセル・データは、相対的に大きくなるタイプのデータ要素であって、ある場合には極端に大きくなる。非常に大きなデータ・セットが通信される場合、そのデータ・セット内のほとんど全てのバイトがピクセル・データである。他のほとんどのタイプのデータ要素は、患者名、画像のタイプ、画像の日付と時間などの画像についての情報(メタ・データ)を通信する。
【0006】
DICOMは、データ・セットを伝送することにより通信する。データ・セットは、シーケンス・データ、ピクセル・データまたは他のタイプのデータなどのデータ要素の順序付き集合である。各データ要素は、通信される情報を表現する。各データ要素は、特定のタイプを有し、データ要素タイプによりサイズが異なる。たとえば、ある画像ファイルのサイズにおいて、異なった範囲を例示すれば、DICOM画像のファイル・サイズは、単一DICOM画像について約128キロバイトからあるし、または時間シーケンス、すなわちマルチ・フレームDICOM画像について約600メガバイトまでの範囲にわたる。
【0007】
DICOMデータ・セットは、1つまたはそれ以上の転送構文を使用して通信できる。転送構文は、特定のデータ・セットについてのデータのエンコーディングのタイプを決定する。DICOMネットワーク・プロトコルは、少なくとも3つのタイプの転送構文をサポートできる。すなわち、小エンディアン(endian)明示値表現、小エンディアン暗示値表現および大エンディアン明示値表現である。
【0008】
DICOMネットワーク・プロトコルの独自な機能により移送時にデータを異なった形式に変換することができる。通常のDICOMネットワーク上でDICOM画像を伝送中のDICOMデータ変換の独自な機能は、DICOMネットワーク内にメモリ資源への相対的に大きな要求を作り出す。
【0009】
DICOMネットワーク・プロトコルは、多重の層から構成される。DICOMネットワーク・プロトコルは、標準的なTCP/IPプロトコルの上に構築できる。通信ネットワーク上でデータを伝送する時に、DICOMプロトコルはネットワーク上でデータを送信する以前にデータ・セットを1つまたはそれ以上のデータ・パケットに分解する。各データ・パケットは、1つまたはそれ以上のプロトコル・データ・ユニット(PDU)を定義する。TCP/IPプロトコルにおけるような下にあるプロトコル層がデータをデータ・パケットに変換すれば、DICOMプロトコルは、ネットワーク上で通信されているデータ・セットもプロトコル・データ・ユニット(PDU)としてパッケージされることを要求する。たとえば、TCP/IPプロトコルの上にDICOMネットワーク・プロトコルが走る時に、これは実効的にデータを二重パケット化する。つまり、DICOMは、データ・セットをプロトコル・データ・ユニット(PDU)としてパッケージし、またTCP/IPは、データ・セットをデータ・パケットとしてパッケージする。このタイプのDICOM/TCP/IP層化したプロトコル構造は、通常のDICOMネットワークにおいて、メモリ資源に対して相対的に大きな要求を作り出す。その上、DICOMネットワーク・プロトコルの多重層を通じてDICOM画像を伝送することも、通常のDICOMネットワーク内でメモリ資源に対して相対的に大きな要求を作り出す。
【0010】
DICOMプロトコルは、通信を設立し維持するのに厳密な順序に従う。DICOMプロトコルのアッパ・サービス・レベル層により作動される状態機械は、DICOMネットワーク内の2つの装置の間で通信を設立し維持するための厳密な順序を規定する。たとえば、DICOMプロトコルは、接続方向性なので、DICOM結合または接続が2つの装置の間で設立済みになるまで、DICOMデータの通信は、何も起こらない。つまり、DICOM結合または接続を設立するためには、少なくとも2つのDICOMプロトコルに基づく装置が互いに通信していなければならない。DICOM結合または接続が設立済みになった後に、通信は、厳密な手順に従い続けなければならず、それからDICOM結合または接続は、順序に従った仕方で終結しなければならない。DICOMネットワーク・プロトコルにより指示される厳密な順序は、通常のDICOMネットワーク内に相対的に大きなメモリ資源の要求を作出する。
【0011】
各DICOM結合または接続は、DICOMネットワーク内でDICOMデータ・オペレーションを遂行するために使用される。DICOMオペレーションは、逐次的に、すなわち1つずつ、または並行的に遂行できる。並行的オペレーションは、DICOM内の結合ごとの非同期オペレーションと呼ばれる。通常のDICOMネットワークは、典型的にDICOMデータを含む多重の並行的または非同期オペレーションを処理し、大きなDICOMファイル・サイズは、通常のDICOMネットワーク内にメモリ資源に対する相対的に大きな要求を作出する。
【発明の開示】
【発明が解決しようとする課題】
【0012】
通常のDICOM通信ネットワークによる相対的に大きなオブジェクトの急速な処理は、DICOMプロトコル・オペレーションが効率的で高性能な仕方で遂行されることを要求する。相対的に大きなDICOMオブジェクト・ファイルを処理する時に、通常のDICOM通信ネットワークは、スピードと性能が著しく低下する。DICOMオブジェクトは、相対的に大きくなる傾向があるので、DICOMオブジェクトの通信がこの大きな画像オブジェクトを収容するように設計されていない通信ネットワークを急速に圧倒する。多重で同時的なDICOMオペレーションを処理するために、通常のDICOM通信ネットワークは、サーバに依存している。単一のDICOMファイルまたは記憶装置のオペレーションがメモリおよび処理時間などのサーバの資源の大部分を消費する場合は、DICOMサーバは、この大きなオブジェクトを処理する時に貧弱な拡張性と性能に苦しむ。これらのネットワークとサーバの性能の問題は、多重のクライアントが同時的または並行的にネットワークを使用することを試みる時に著しく悪化する。
【0013】
したがって、ネットワーク内でDICOMオブジェクトの処理中にメモリ資源の消費を限定する方法と装置の要求が存在する。
【0014】
ネットワーク内で通信されるDICOMオブジェクトのサイズに関係なくメモリの使用を限定するために、DICOM通信ネットワーク内で1つまたはそれ以上のアプリケーションを可能にする方法と装置の要求がさらに存在する。
【0015】
通信ネットワーク内の2つの装置の間でデジタル・データを伝送する改良された方法と装置のさらなる要求が存在する。
【0016】
通信ネットワーク内で作動する1つまたはそれ以上のアプリケーションを維持または改良すると共に、ネットワーク内でDICOMオブジェクトを伝送する改良された方法と装置の更なる要求が存在する。
【0017】
データ要素の発信元とデータ要素の受信側を通じてネットワーク内でDICOMオブジェクトをストリーミングする方法と装置の更なる要求が存在する。
【課題を解決するための手段】
【0018】
本発明は、データ要素の発信元とデータ要素の受信側を通じてネットワーク内のDICOMオブジェクトをストリーミングする方法と装置を供給することにより、上記の諸問題を解決する。本発明による方法と装置は、ネットワーク内のDICOMオブジェクトの処理中にメモリ資源の消費を限定する。更に本発明による方法と装置は、DICOM通信ネットワーク内の1つまたはそれ以上のアプリケーションがネットワーク内に通信されるDICOMオブジェクトのサイズに係りなくメモリの使用を限定できるようにする。その上、本発明による方法と装置は、通信ネットワーク内の2つの装置の間でデジタル・データを伝送できるようにする。最後に本発明による方法と装置は、ネットワーク内で作動する1つまたはそれ以上のアプリケーションの性能を維持または改良すると共に、ネットワーク内でDICOMオブジェクトを伝送することを可能にする。
【0019】
本発明による方法と装置は、一定量のメモリを使用して通信ネットワーク内の2つの装置の間のデジタル・データの伝送することを可能にする。たとえば、本発明による方法と装置は、限定された固定サイズのメモリのみを使用して、DICOMネットワーク内の2つの装置の間で比較的大きなファイル・サイズのDICOMオブジェクトをストリーミングできるようにする。DICOMオブジェクトまたは他のデジタル・データまたは比較的大きなファイル・サイズのオブジェクトを処理するために、本発明による方法と装置は、このオブジェクトをデータ要素の小さな固定された部分に配分する。それから本発明による方法と装置は、単一オペレーションのために一回にメモリに記憶できるデータ要素の数を限定する。それから、各データ要素がデータ要素の発信元またはデータ要素の受信側により段階的に処理され、単一のオペレーションについて多すぎるメモリの使用を回避する。こうして、本発明による方法と装置は、通信されるDICOMオブジェクトまたは画像のサイズに係りなく、小さな固定量のメモリのみを使用してDICOMオブジェクトまたは画像をストリーミングすることをDICOM通信ネットワークに可能とする。
【0020】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信する第1の例示的な方法において、この方法は、データ・ストリーム内に記憶される限定された数のデータ値を最初に定義する。次に、この方法は、第1の装置から一組のデータ素子を段階的に読み取ることにより、各データ要素が一回に1つずつ読み取られるようにする。次に、各データ要素からデータ値が抽出される。あるデータ要素が閾値サイズよりも大きければ、このデータは、比較的小さな固定サイズ・データの部分で伝送できる。最後に、この方法は、所定の限定された数のデータ値を含むデータ・ストリームを第2の装置へ伝送することにより、データ値が第2の装置にエンコードされるようにする。
【0021】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信するもう1つの例示的な方法において、本発明は、第1の装置からデジタル・データを含むファイルを受信する。次に、この方法は、デジタル・データを含むファイルについてのデータ値を含むデータ・ストリームを生成する。このデータ・ストリームに基づいて、本発明は、データ要素の発信元を生成する。それから本発明は、データ要素の発信元を通じて、このデータ・ストリームから一回に1つずつデータ要素を段階的に処理する。最後に、これらのデータ要素は、データ要素の受信側に伝送されて、データ要素の受信側の第2の装置にデータ要素をエンコードする。
【0022】
本発明の装置の実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の発信元と通信エンジンを含む。データ要素の発信元は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の発信元も、一組のデータ要素から一回に1つずつデータ要素を段階的に処理するように構成される。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータをデータ受信側に渡すことにより、抽出されたデータからデータ・ストリームを生成するように構成され、データ要素の受信側は、抽出されたデータ値を第2の装置へエンコードする。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0023】
本発明の装置のもう1つの実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の受信側と通信エンジンを含む。データ要素の受信側は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の受信側も、一組のデータ要素から一回に1つずつデータ要素を段階的に書き込むように構成される。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータ値からデータ・ストリームを生成するように形成される。その上、通信エンジンは、さらに、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0024】
このように本発明の方法と装置は、上記のように、あらゆるサイズの比較的大きなDICOMオブジェクトに含まれるデジタル・データをネットワーク内の2つのアプリケーション、装置または記憶媒体の間で伝送することができる。データ要素の発信元とデータ要素の受信側を使用して、一回に1つずつデータ要素とデータ値を段階的に処理することは、DICOMオペレーションを実行するのに必要なメモリ量を最小化する。本発明による方法と装置は、比較的大きなDICOMオブジェクトを処理するために比較的小さな一定量のメモリを供給すると共に、メモリ資源の消費を制限し、一方ではDICOMネットワーク内で作動するアプリケーションの性能を維持する。
【実施例】
【0025】
さて、図面を参照しながら本発明の特定の実施例を一層詳細に説明する。
【0026】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信する第1の例示的な方法において、この方法は、最初に、データ・ストリーム内に記憶されるデータ値の限定された数を定義する。次に、この方法は、第1の装置から一組のデータ要素を段階的に読み取って、一回に1つずつデータ要素が読み取られるようにする。次に、各データ要素からデータ値が抽出される。あるデータ要素が閾値サイズよりも大きければ、このデータは、比較的小さな固定サイズのデータの複数の部分で伝送できる。最後に、この方法は、所定の限定された数のデータ値を含むデータ・ストリームを第2の装置に伝送して、これにより、これらデータ値は、第2の装置にエンコードされるようにする。
【0027】
一定量のメモリの使用して第1の装置から第2の装置へデジタル・データを通信するもう1つの例示的な方法において、本発明は、第1の装置からのデジタル・データを含むファイルを受信する。次に、この方法は、デジタル・データを含むファイルについてデータ値を含むデータ・ストリームを生成する。このデータ・ストリームに基づいて、本発明は、データ要素の発信元を生成する。それから、この方法は、データ要素の発信元を通じて、データ・ストリームから一回に1つずつデータ要素を段階的に処理する。最後に、これらのデータ要素は、データ要素の受信側に伝送されて、データ要素の受信側は、これらデータ要素を第2の装置にエンコードする。
【0028】
本発明の装置の例示的な実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の発信元と通信エンジンを含む。データ要素の発信元は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の発信元もまた一組のデータ要素から一回に1つずつデータ要素を段階的に処理するように構成されている。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータ値をデータ要素の受信側に渡すことにより、抽出されたデータ値からデータ・ストリームを生成するように構成され、データ要素の受信側は、抽出されたデータ値を第2の装置にエンコードする。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0029】
本発明の装置のもう1つの実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の受信側と通信エンジンを含む。データ要素の受信側は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の受信側は、また一組のデータ要素から一回に1つずつデータ要素を段階的に書き込むように構成される。通信エンジンは、データ要素からデータ値を抽出して、これら抽出された1つのデータ値からデータ・ストリームを生成するように構成される。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0030】
図1は、本発明の実施例によるシステムの機能的なブロック図を示す。このシステムは、通信モジュール100を含む。通信モジュール100は、関連アプリケーション・プログラム101とネットワークを介する他のアプリケーション・プログラムの間で伝送またはオブジェクトのストリーミングをするように構成される。その上、通信モジュール100は、関連アプリケーション・プログラム101とネットワークを介する他のアプリケーション・プログラムの間で、DICOM画像ファイルまたは他の類似タイプのデジタル画像を含むDICOMオブジェクトの伝送またはストリーミングのために構成される。たとえば、通信モジュール100は、関連アプリケーション・プログラム101とDICOMネットワーク102のような通信ネットワークを介するアプリケーション・プログラム130の間で通信して、DICOM画像ファイルまたは他の類似タイプのデジタル・オブジェクトを含むDICOMオブジェクトを送信または受信できる。
【0031】
注意すべきは、通信モジュール100は、一般にサービス・クラス・プロバイダ(SCP)と、サービス・クラス・ユーザ(SCU)の間で通信することである。SCPは、DICOMネットワーク・プロトコルで定義されたサービスへの要求を受信し、一方、SCUは、DICOMネットワーク・プロトコルで定義されたサービスへの要求を開始する。たとえば、関連アプリケーション・プログラム101は、SCUであることができ、またアプリケーション・プログラム130を実行するサーバ128a/nは、SCPであることができる。
【0032】
関連アプリケーション・プログラム101は、医療画像プログラムまたはアプリケーション・プログラムのようなDICOMアプリケーション・プログラムであり、これらはDICOM通信プロトコルまたはDICOM規格を使用する通信モジュール100により通信できる。関連アプリケーション・プログラム101は、1つまたはそれ以上のクライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワーク・ステーション、獲得モジュール、理学療法装置、表示システム、DICOM媒体、デジタル・アーカイブまたはDICOM通信プロトコルかDICOM規格を使用して作動できる他のタイプの装置上で実行できる。DICOM画像ファイルおよびDICOM画像ファイル内に収容される関連情報の代表的な例を図7と図8に示す。
【0033】
通信モジュール100は、通信エンジン104、データ要素発信元106、データ要素の受信側108、状態機械110、バッファ112およびDICOMプロトコル114のような多層プロトコルを含む。通信エンジン104は、関連アプリケーション・プログラム101と通信モジュール100の間および通信モジュール100とDICOMネットワーク102の間で、データおよび関連データ要素を処理するように構成される。通信エンジン104は、また通信モジュール100の種々の構成要素の間およびDICOMプロトコル114の多重の層の間でデータを伝送するように構成される。他の実施例による通信モジュールは、類似の機能を提供する、より少ない、または、より多くの要素を有する。
【0034】
データ要素の発信元106は、データ要素のための概念的なソースである。データ要素の発信元は、データ要素の概念的なセット上で順方向の繰返し器として機能できる。データ要素の発信元106は、一回に1つずつまたはブロックで、データ要素をサービス・クラス・ユーザー(SCU)またはクライアントまたはサーバ128a−nのようなサービス・クラス・プロバイダ(SCP)に供給する。たとえば、データ要素の発信元106は、シーケンス・データ(SQ)要素を処理できる。
【0035】
データ要素の発信元106は、また1つのピクセル・データ・デコーダを含む。ピクセル・データ・レコーダは、ピクセル・データを一回に1つずつ段階的に処理する。たとえば、ピクセル・データ・レコーダは、ピクセル・データ(PD)要素を処理する。単一のピクセル・データ要素は、数メガバイトのデータを含むので、ピクセル・データ・レコーダは、比較的小さな固定サイズのチャンクのデータを読み取ることを可能にする。ピクセル・データ要素に遭遇すると、ピクセル・データ・レコーダは、一回に全部のデータ要素を読まず、代わりに112と図示したバッファのような固定サイズのバッファにピクセル・データが段階的に読み込まれる。
【0036】
データ要素の発信元106は、ストリーミング・データ要素を含む。同様に、ストリーミング・データ要素を段階的に処理できる。
【0037】
データ要素の受信側108は、データ要素のための概念的な記憶装置である。データ要素の受信側108は、一回に1つずつまたはブロックでデータ要素をクライアントまたはサーバ128a−nのようなサービス・クラス・ユーザ(SCU)に書き込むことができる。たとえば、データ要素の受信側108は、シーケンス・データ(SQ)要素を処理できる。
【0038】
データ要素の受信側108は、またピクセル・データ・エンコーダを含む。ピクセル・データ・エンコーダは、ピクセル・データを一回に1つずつ段階的に処理する。たとえば、ピクセル・データ・エンコーダは、ピクセル・データ(PD)要素を処理する。単一のピクセル・データ要素は、数メガバイトのデータを含むので、ピクセル・データ・エンコーダは、比較的小さな固定サイズのチャンクのデータでピクセル・データを書き込むことを可能にする。ピクセル・データ要素に遭遇すると、ピクセル・データ・エンコーダは、一度に全てのデータ要素を書き込まず、代わりに112として示されるバッファのような固定サイズ・バッファに段階的にピクセル・データを書き込む。
【0039】
データ要素の受信側108は、ストリーミング・データ要素を含む。同様に、ストリーミング・データ要素を段階的に処理できる。
【0040】
状態機械110は、サービス・クラス・プロバイダ(SCP)とサービス・クラス・ユーザ(SCU)の間の結合または接続の開始、監視および処理をする。
【0041】
バッファ112は、データ要素、データ値または他のタイプのデータを記憶するように構成されたメモリ記憶装置である。バッファ112は、またデータ要素、データ値または他のタイプのデータを記憶する、より小さなバッファまたは類似のタイプのメモリ装置を含む。
【0042】
DICOMプロトコル114は、トランスポート層116、アッパ・レベル・サービス層118、データ・サービス層120およびサービス・クラス層12を含む多重層を収容する。DICOMプロトコルおよび関連層116−122の仕様、機能性および一層詳細な説明は、医療デジタル画像および通信(DICOM)規格書、PS3.1−2000、米国電気製造業協会、2000年に掲示されているが、これは参考文献として本明細書に組み込まれている。
【0043】
通信モジュール100は、関連アプリケーション・プログラム101と連絡する。通信モジュール100は、またDICOMネットワーク102などの通信ネットワークを通じて、もう1つのアプリケーション・プログラム130と連絡する。典型的に、もう1つのアプリケーション・プログラム130は、物理層124、すなわちETHERNET(登録商標)、ATM、FDDIのようなインターフェイスを通じて通信モジュール100とDICOMネットワーク経由で連絡する。さらにDICOMネットワーク102が伝送制御プロトコル/インターネット・プロトコル(TCP/IP)126を使用して他のネットワーク、コンピュータ、フラットフォームおよびアプリケーションとの連絡を更に容易にすることは、当業者には理解される。こうして、通信モジュール100は、トランスポート層112により、TCP/IP126に隣接して配置され、これによりDICOMネットワーク102と通信モジュール100の間にインターフェイスを生成する。当業者は、この構成を容易にするのに必要な方法とシステムを理解する。
【0044】
DICOMネットワーク102は、図示のようにネットワーク構成に接続される1つまたはそれ以上のサーバ128a−nを含む。いくつかの場合、ローカル・エリア・ネットワーク、すなわちLAN構成内で作動するためにDICOMネットワーク102が設立される。
【0045】
サーバ128a−nには、クライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワークステーション、獲得モジュール、理学療法装置、表示システム、DICOM媒体、デジタル・アーカイブまたはDICOM通信プロトコルまたはDICOM規格を使用して動作可能な他のタイプの装置が含まれる。DICOMネットワーク102においては、サーバ128a−nは、サービス・クラス・プロバイダ(SCP)またはサービス・クラス・ユーザ(SCU)である。
【0046】
当業者は、DICOMネットワーク102に類似して作動する通信ネットワークの他の構成をよく知っている。
【0047】
アプリケーション・プログラム130は、サーバ128a−n上で実行するように構成される。一般にアプリケーション・プログラム130は、医療画像プログラムのようなDICOMアプリケーション・プログラムまたはDICOM通信プロトコルまたはDICOM規格を使用して通信モジュール100と通信できるアプリケーション・プログラムである。アプリケーション・プログラム130は、クライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワークステーション、獲得システム、理学療法装置、表示システムのような他のプラットフォーム上で実行可能であり、これらのプラットフォームは、DICOMネットワーク102に接続される。
【0048】
通信モジュール100は、また媒体記憶モジュール132およびメタ・データベース・モジュール130と連絡する。媒体記憶モジュール132は、通信モジュール100と連絡し、一時的または永久的なベースでデジタル画像データを記憶するように構成される。媒体記憶モジュール132は、ハード・ドライブ、光磁気ディスク・ドライブ、CD−RWドライブ、CD−ROMドライブのような記憶媒体または他の類似のタイプの記憶媒体を含む。注意すべきは、アプリケーション・プログラム130は、また媒体記憶モジュール132から実行されるように構成できることである。
【0049】
メタ・データベース・モジュール134は、また通信モジュール100と連絡して、一時的または永久的ベースでデジタル画像データを記憶するように構成される。メタ・データベース・モジュール134は、デジタル・データを記憶する通常のデータベースのような記憶媒体を含む。
【0050】
図2は、本発明の実施例の一般的なデータの流れの図である。この図は、ネットワークとアプリケーションの間でオブジェクトまたは画像ファイルを伝送中に、DICOMプロトコルの多重層を通るデータ・フロー200の実施例を示す。この例において、ネットワークは、ネットワーク・レベル202により表現され、アプリケーションは、アプリケーション・レベル204により表現される。図1と図2の両方における要素を参照すると、ネットワーク・レベル202は、サーバ128a−nを有するDICOMネットワーク102を含む。アプリケーション・レベル204は、通信モジュール100に関連する医療画像プログラムのような関連アプリケーション・プログラム101を含む。代わりにアプリケーション・レベルは、他のサーバ128a−n、すなわちDICOMネットワーク102内のクライアント・コンピュータなどのDICOMプロトコル可能な装置上で実行できる。通信モジュール100は、関連アプリケーション・プログラム101とサーバ128a−nの間の結合または接続を生成することにより、関連アプリケーション・プログラム101とサーバ128a−nの間のデータ通信を容易にする。通信モジュール100は、どのサービス・オブジェクト・ペア(SOP)クラスが使用されるかを決定し、SCPおよびSCUの役割を定義し、プロトコル層の間で通信するのに使用される転送構文のタイプを折衝し、DICOMネットワーク・プロトコルまたはオブジェクトかデジタル画像を処理する類似のタイプのプロトコルにより他の通信パラメータを決定することなどの標準的なDICOMネットワーク・プロトコルの詳細を処理する。注意すべきは、代わりの構成において他の装置がSCP、SCUとして機能し得ることであり、またはSCPUおよびSCUの両方として機能し得ることである。
【0051】
その上、通信モジュール100は、メモリ記憶装置、ハード・ドライブ、CD−R、CD−RWなど2つの装置の間または2つの異なったメモリ記憶装置のあらゆる他の組合せの間でデジタル・データを伝送し、またはストリーミングするのに使用される。ネットワークから装置へまたは装置からネットワークなど他の構成の間でデジタル・データを通信するためにも通信モジュール100が使用され、これらの装置は、メモリ記憶装置、ハード・ドライブ、CD−R、CD−RWまたは他の類似のタイプの装置を含むことは、当業者に理解される。
【0052】
その上、通信モジュール100は、関連アプリケーション・プログラム101およびサーバ128a−nと折衝して、関連アプリケーション・プログラム101とサーバ128a−nの間で伝送されるプロトコル・データ・ユニット(PDU)の最大サイズを定義する。PDUの最大サイズは、利用できるメモリのカレント・サイズおよび通信ネットワークの全体的な効率によって異なる。
【0053】
その上、通信モジュール100は、表示データ値の入力ストリームに読み込める所定または限定された数の表示データ値(PDV)を定義するために折衝する。所定または限定された数の表示データ値(PDV)は、利用できるメモリ記憶域のカレント・サイズおよび/または通信ネットワークの全体的な効率によって異なる。代わりに通信モジュール100は、データ入力ストリームに読み込めるデータ要素の所定または限定されたサイズを定義することができる。データ要素の所定または限定された数は、利用可能なメモリ記憶域のカレント・サイズおよび/または通信ネットワークの全体的な効率により異なる。通信装置100により処理されるデータ要素のタイプにより、これらの技法の1つまたはそれ以上が使用され、本発明により特定のデータ要素を伝送する間にメモリ資源の消費を比較的小さな固定された量に限定する。注意すべきは、表示データ値(PDV)がヘッダとペイロードを含み、これらは、バイトの配列であることである。
【0054】
通信モジュール100により上述の結合または接続の詳細が完了した後に、通信モジュール100は、ネットワーク・レベル202からアプリケーション・レベル204にデータ206を伝送することに進む。つまり、通信モジュール100は、サーバ128a−n(この例では、SCPとして作用している)から受信するデータ206を処理して、処理されたデータを関連アプリケーション・プログラム101(この例では、SCUとして作用する)に送る。典型的にデータ206は、1つまたはそれ以上のデータ要素を含むDICOMオブジェクトまたはDICOM画像ファイルである。データ206は、最初にネットワーク・レベル202において、サーバ128a−nにより処理される。サーバ128a−nは、ETHERNET(登録商標)、ATM、FDDIのような標準的なネットワーク物理層208を通じてデータ206を伝送する。
【0055】
次に、データ206は、TCP/IP210を通じて1つまたはそれ以上のデータ・パケット212の形式で、標準的なネットワーク物理層から伝送される。TCP/IP210は、DICOMオブジェクトまたはDICOM画像ファイルを含むデータ206を、1つまたはそれ以上のデータ・パケット212に変換する。この変換を実行するのに必要な方法とシステムは、当業者には理解される。
【0056】
TCP/IP210は、ソケット216を使用して、データ・パケット212をDICOMプロトコル層214に伝送する。DICOMプロトコル層214は、トランスポート218、アッパ・レベル・サービス220、データ・サービス222、サービス・クラス224を含む多重の層を収容する。ソケット216は、TCP/IP210とDICOMネットワーク・プロトコルなど、他のネットワーク・プロトコルの間の通信を容易にするアプリケーション・プログラム・インターフェイス(API)である。TCP/IP210、DICOMプロトコル層214、ソケット216を実施するのに必要な方法とシステムは、当業者には理解される。
【0057】
TCP/IP210は、データ・パケット212をトランスポート層216として知られるDICOMプロトコル層214の第1の層に伝送する。通信モジュール100は、トランス・ポート層216においてデータ・パケット212を受信して、TCP/IP210からデータ・パケット212の各々を段階的に読み取る。つまり、通信モジュール100に結合された通信エンジン(図1に104として示す)がトランスポート層216を使用して、一回に1つずつデータ・パケット212を読み取る。データ・パケット212が処理されると、通信エンジン104がデータ・パケット208をプロトコル・データ・ユニット226に変換する。プロトコル・データ・ユニット(PDU)226は、ヘッダ228と1つまたはそれ以上の表示データ値(PDV)230を含む。
【0058】
それから、各PDU226は、トランスポート層218からアッパ・レベル・サービス層218に通信エンジン104によって送られる。それから、PDUは、データ・サービス層222に伝送される。
【0059】
それから、通信エンジン104は、データ・サービス層222により受信された各PDU226から表示データ値(PDV)230を抽出する。一般に、通信エンジン104は、PDV230から表示データ値の入力ストリーム(PDVIS)232を生成する。通信エンジン104は、PDVIS232を使用してメッセージ234を形成する。
【0060】
通信エンジン104は、PDVIS232を含むメッセージ234をサービス・クラス層224に伝送する。サービス・クラス層224でデータ要素の発信元236は、各メッセージからの表示データ値の入力ストリーム(PDVIS)232からデータ要素を抽出する。データ要素の発信元236は、新しい入力転送構文(ITS)238になり、これはPDVIS232内に含まれるデータを構文解析するために使用できる。
【0061】
アプリケーション・レベル204で、入力転送構文238がバイトの入力ストリームからデータ要素240を抽出して、このデータ要素240を関連アプリケーション・プログラム101により要求される時に使用する。入力転送構文238は、ストリーミング閾値と呼ばれる属性を有する。抽出されたデータ要素がストリーミング閾値よりも長ければ、データ要素240は、ストリーミング・データ要素である。ストリーミング・データ要素は、入力転送構文238になお存在する実際のデータ素子240の代りである。このストリーミング・データ要素は、入力転送構文238を使用して、その値に段階的にアクセスすることを可能にする。段階的アクセスは、ストリーミング・データ要素が書き込まれているデータのブロックにより供給される。
【0062】
アプリケーション・レベル204からネットワーク・レベル202への下向きのデータ・フロー242のために、データ要素の発信元236が最初にサービス・クラス224を通じて移動する。それからデータ要素の発信元236は、データ・サービス222を通過する。データ・サービス222でパケッタイザ244は、データ要素の発信元236を取って出力転送構文238を生成する。出力転送構文238は、データ要素の発信元236からのデータ要素の各々を処理して、エンコードされたデータ要素をパケッタイザ244に渡す。それから、パケッタイザ244は、エンコードされたデータ要素をとって表示データ値(PDV)を生成する。
【0063】
PDVが生成されると、このPDVは、DICOM状態機械246に渡されて、そこで処理される。それからPDVは、DICOM状態機械246により、トランスポート・レベル218に渡される。トランスポート218は、PDVをTCP/IP層210へ書き出すが、それは、ネットワーク接続であるバイトの出力ストリーム248を通じて行う。
【0064】
図2を参照して上記した例示的なデータ・フローは、比較的大きなDICOMオブジェクトを処理するために限定された固定量のメモリのみを使用する。使用するメモリは、メモリ使用シナリオに関して下記のように説明できる。ネットワーク・レベルからアプリケーション・レベルに送られる1つのDICOMオブジェクトは、そのサイズが約600メガバイト(MB)であり、その内の599MBは、ピクセル・データ(PD)要素である。最大のプロトコル・データ・ユニット(PDU)サイズは、結合または接続中に折衝され、その最大サイズは、約20キロバイト(KB)である。さらに、この結合または接続は、表示データ値の入力ストリーム(PDVIS)内の表示データ値(PDV)の最大数を所定の限度、すなわち最大数の5に定義できる。注意すべきは、この所定の限度は、表示データ値(PDV)を記憶するのに使用されるバッファまたはメモリ記憶装置のサイズにより選択できることである。
【0065】
PDVISがPDVの数を5に限定すれば、ネットワークからDICOMオブジェクトを読み取るのに必要なメモリの最大量は、(5 X 20KB)+20KB、すなわち120KBである。この「+20KB」は、PDVISに配置されるPDU待ちが原因である。
【0066】
それから、アプリケーション・プログラムは、入ってくるDICOMオブジェクトをファイルに書き込み、入力転送構文(ITS)をデータ要素の発信元として出力転送構文(OTS)にファイルのために渡す。OTSは、ピクセル・データ要素をエンコードするために約10KBを使用する。その他の全てのデータ要素は、全体として個別にエンコードできるが、シーケンス・データ(SQ)要素は、例外である。全ての他のデータ要素は、通常10KBよりも比較的に小さいので、ファイルするためにデータ要素をデコードするのに使用されるメモリの最大量は、10KBになるはずである。
【0067】
こうして、ネットワークからデコードするために使用されるメモリおよびファイルにエンコードするために使用されるメモリの総量は、デコードのために約120KB、エンコードのために10KBであり、合計で130KBになるはずである。
【0068】
図3から図6は、本発明に使用される方法の実施例のフローチャートを示す。図3aから図3cおよび図4aと図4bは、ネットワークからの読取りおよびそこへの書込みのようなオペレーションを示し、図5と図6は、ファイルからの読取りと、そこへの書込みのようなオペレーションを示す。図3から図6に示す方法を採用することにより、比較的小さな固定量のメモリのみを使用して、全てのあり得るDICOMデータの相互作用を処理することができる。これらのDICOMデータの相互作用は、ネットワークからメモリ記憶装置へのデータの読取りと書込み、メモリ記憶装置からネットワークへのデータの読取りと書込み、およびネットワークからネットワークへの読取りと書込みのようなDICOMネットワークの相互作用を含む。注意すべきは、種々の構成のメモリ記憶装置およびネットワークを使用する他のタイプのDICOMデータの相互作用が本発明により実行できることである。
【0069】
図3aから図3cは、デジタル・データをネットワークからアプリケーションへ読み込む方法300を示す。一般に、デジタル・データは、DICOMオブジェクトまたは画像ファイルであり、ネットワークは、DICOM通信ネットワークであり、アプリケーションは、DICOMネットワーク・プロトコルを使用して通信できる医療画像アプリケーション・プログラムである。この方法300は、302で開始する。
【0070】
302に続く304において、通信エンジン104は、プロトコル・データ・ユニット(PDU)のサイズを折衝する。PDUのサイズを設立することにより、通信エンジン104は、デジタル・データを処理するのに必要または望ましいバッファ112内のメモリの量を監視できるようになる。その上、表示データ値(PDV)の所定の数、限度またはサイズまたは他のタイプのデータ要素または品質も、デジタル・データを処理するのに必要または望ましいバッファ112内のメモリ記憶域の量によって設立できる。典型的に、これらのステップは、状態機械110によるサービス・コントロール・プロバイダ(SCP)とサービス・コントロール・ユニット(SCU)の間の結合または接続の設立と共に実行される。アッパ・レベル・サービス層118を通じて、通信エンジン104は、方法300全体を通じて状態機械110を監視し制御する。
【0071】
304に続く306で通信エンジン104は、ネットワークからデジタル・データを段階的に読み取る。たとえば、通信エンジン104は、DICOMネットワーク102内のサーバ128a−nからDICOM画像ファイルなどのデジタル・データを要求する。DICOM画像ファイルは、デジタル画像データの1つまたはそれ以上のセットを含む。サーバ128a−nは、ソケット、アプリケーション・プログラム・インターフェイスを介してTCP/IP126を通じて通信エンジン104にデジタル画像データ・セットを伝送する。通信エンジン104は、サーバ128a−nからDICOMパケットまたはプロトコル・データ・ユニット(PDU)の形式でデジタル画像データ・セットを受信する。
【0072】
注意すべきは、ソケットを使用してTCP/IPを通じてデジタル・データを生成し伝送するのに必要な方法とシステムは、当業者に理解されることである。さらに、プロトコル・データ・ユニット(PDU)とDICOMパケットは、すでに上述のDICOMネットワーク・プロトコルの下で定義されている。
【0073】
306に続く308で通信エンジン104は、各PDUまたはDICOMパケットを段階的に読み取る。つまり、通信エンジン104は、DICOMプロトコル114のトランスポート層116を通じて読取りスレッド(図示なし)を開始する。読取りスレッドは、DICOMプロトコル114のトランスポート層116のいたるところに、一回に1つずつPDUまたはDICOMパケットの各々を段階的に読み取って伝送する。読取りスレッドは、ネットワークから伝送すべきデジタル・データのPDUまたはDICOMパケットの全てが処理されるまで、PDUまたはDICOMを処理し続ける。
【0074】
308に続く310で通信エンジン104は、PDUをアッパ・レベル・サービス層118に伝送する。結合または接続中にPDUが適当な時間に達すると、通信エンジン104によりPDUは、データ・サービス層120に伝送される。
【0075】
310に続く312で通信エンジン104は、各プロトコル・データ・ユニット(PDU)から表示データ値(PDV)を抽出する。つまり、PDUがデータ・サービス層120に受信されると、通信エンジン104は、PDUから表示データ値(PDV)を抽出する。各プロトコル・データ・ユニットは、1つまたはそれ以上の表示データ値を含む。
【0076】
312に続くサブルーチン314でオペレーション・メッセージのために表示データ値の入力ストリームが生成される。サブルーチン314は、図3cを参照して一層詳細に説明される。
【0077】
図3bにおいて、サーブ・ルーチン314は、350で始まる。350において通信エンジン104は、表示データ値を使用して、表示データ値の入力ストリームを生成する。最初、すなわち第1のプロトコル・データ・ユニット(PDU)のために、通信エンジン104で受信された抽出表示データ値(PDV)が使用されて、表示データ値の入力ストリーム(PDVIS)が生成される。後続のPDUのために抽出PDVが既存の表示データ値の入力ストリームに挿入されるか、または必要な場合は、新しい表示データ値の入力ストリームが生成される。表示データ値の入力ストリームは、本質的に比較的小さな固定量のメモリを使用して伝送できる1つまたはそれ以上のPDUからの表示データ値(PDV)のストリングである。表示データ値の入力ストリーム(PDVIS)は、オペレーション・メッセージの基礎を形成する。
【0078】
通信エンジンは、各抽出PDVを一回に1つずつデータ・サービス層120に段階的に伝送し続ける。データ・サービス層120は、上記のように各PDVを表示データ値の入力ストリーム(PDVIS)に挿入する。PDVISは、ある与えられた瞬間において、所定または限られた数のPDVを記憶するように限定される。典型的にPDVISは、一回に5PDVを記憶するように限定される。注意すべきは、所定または限定された数は、PDVおよび/またはPDVISに記憶すべきバッファまたは他のメモリ記憶装置のサイズによって決定されることである。
【0079】
350に続く決定ブロック352でデータ・サービス層は、所定または限定された数のPDVに到達したかどうかを決定する。この方法で、画像データの伝送が段階的に制御されて、全ての画像データを処理するのに必要なメモリ記憶空間の量を最小化することができる。データ要素の発信元106は、一回に1つずつ段階的にPDVを処理して、各PDVをPDVISに伝送する。所定または限定されたPDVの数に達すると、「YES」分岐をたどって354に行く。たとえば、所定または限定された数のPDVが事前に5に設定され、特定のPDVIS内に、この所定または限定された数のPDVがすでに存在すれば、そのときは、すでに限界に達している。この方法で、本発明は、メモリの使用をDICOMデータなどのデジタル・データの伝送のために使用し得る比較的小さな固定したメモリの量に監視し限定することができる。いくつかの場合には、バッファ112またはメモリ記憶装置のサイズによって、所定または限定されたサイズが設定されることに注意される。この方法により、ピクセル・データ(PD)要素および比較的大きなDICOMオブジェクトを比較的小さな固定サイズのメモリ部分で処理することができる。
【0080】
354において通信エンジン104は、表示データ値の入力ストリームから表示データ値が読み取られるまで、表示データ値の更なる処理を遅らせる。通信エンジン104は、データ・サービス層120に命令して、表示データ値の入力ストリーム(PDVIS)から表示データ値(PDV)が読み取られるまで待たされる。つまり、通信エンジン104は、1つのPDVがデータ・サービス層120にPDVISから読み取られるまで、トランスポート層116が更なるPDVをPDVISに読み込むのを防止するように命令する。1つのPDVがPDVISから読み取られると、通信エンジン104は、データ・サービス層に命令し、トランスポート層116が所定または限定された数のPDVに達するまでPDVをPDVISに渡し続けられる。
【0081】
決定ブロック352に戻ると、PDVの所定または限定された数に達していなければ、「NO」分岐をたどって、そこでサブルーチン314が終了して、316で方法300が継続する。
【0082】
316において、メッセージ・サービスは、どのオペレーションにオペレーション・メッセージが対応するかを決定する。典型的にサブ・ルーチン314内で通信エンジン104により1つのオペレーション・メッセージが生成されると、通信エンジン104は、メッセージ・サービス(図示なし)にPDVとPDVISを含むオペレーション・メッセージを送る。メッセージ・サービスは、DICOMプロトコル114のデータ・サービス層120の構成要素である。
【0083】
DICOMネットワーク・プロトコルにおいて、オペレーションは、サービス・オブジェクト・ペア(SOP)により定義される。状態機械110により設立される最初の結合または接続の間に、1つまたはそれ以上のSOPが識別できる。SOPを使用することにより、メッセージ・サービスは、メッセージが一致または対応するオペレーションを有するかどうかを決定する。
【0084】
316に続く318において、メッセージ・サービスは、オペレーション・メッセージを対応するオペレーションに伝送する。メッセージ・サービスにより、SOPがあるメッセージに対して対応する一致と識別されると、オペレーション・メッセージは、対応するオペレーションに伝送される。
【0085】
318に続く320において、オペレーション・メッセージは、後続の処理のために対応するオペレーショにより待ち行列に入れられる。メッセージが待ち行列に入れられると、この方法300は、図3cの320で継続する。
【0086】
320に続く322において、待ち行列に入れられたメッセージは、それぞれのオペレーションにより処理される。少なくとも1つの待ち行列に入れられたオペレーション・メッセージを受信する全てのオペレーションは、1つのスレッドを開始する。それから、各オペレーションについて、各スレッドが各待ち行列に入れられたオペレーション・メッセージを一回に1つずつ処理する。それから、各待ち行列に入れられたオペレーション・メッセージは、オペレーション・メッセージがそのために生成された対応するサービスに渡される。注意すべきは、DICOMネットワーク・プロトコルにより定義されるように、各オペレーションが1つの対応するサービスまたはSOPを有することである。それぞれのオペレーションのために各待ち行列に入れられたメッセージの処理が完了するまで、各スレッドは、各オペレーション・メッセージの処理を続ける。
【0087】
322に続く324において、サービスは、表示データ値の入力ストリーム(PDVIS)からデータ要素を抽出する。
【0088】
324に続く326において、サービスは、新しい入力転送構文(ITS)を生成する。サービスは、表示データ値の入力ストリーム(PDVIS)を使用して、新しいITSを生成し、この新しいITSは、PDVISに含まれるデータを構文解析するために使用できる。PDVISに含まれるデータは、一連の表示データ値(PDV)である。典型的にはデータ値は、エンコードされ、コーディングをデータ要素の標準的なメモリ表現として理解できる表現に変換するために、入力転送構文が使用できる。それから、構文解析されたデータは、通信エンジン104によりデータ要素の発信元106にストリームされる。
【0089】
326に続く328において、データ要素の発信元106は、構文解析されたデータ・ストリームを段階的に読み取る。各サービスは、データ要素の発信元106を使用して、表示データ値の入力ストリーム(PDVIS)内に収納されたデータ・ストリームから、一回にデータ要素の1つのブロックを読み取る。入力転送構文(ITS)は、またデータ要素の発信元106を通じてデータ要素を段階的に読むために使用される。
【0090】
データ要素の発信元106において、サービスにより少なくとも2つのタイプのデータ要素を処理できるが、それはシーケンス・データ(SQ)とピクセル・データ(PD)である。SQデータ要素は、データ要素の1つまたはそれ以上のセットを含むデータ要素である。SQデータ要素は、再帰的に処理できる。つまり、データ要素の1セットは、一回に1つずつのデータ要素が処理される。PD要素は、DICOMオブジェクトまたは画像ファイル内で最大のデータ要素の1つである。PD要素は、バイト(8ビット)またはワード(16ビット)の未加工のデータ配列により構成される。このタイプのデータ要素は、ストリーミングの追加の層を可能にする。サービスは、ピクセル・データを段階的に獲得でき、こうして時間の単一インスタンスにおいて、メモリ内に全てのPD値を獲得する必要性を最小化できる。ピクセル・データ(PD)要素および他のDICOMオブジェクトが比較的大きいものであることに注意される。本発明は、全てのサイズのピクセル・データ(PD)要素とDICOMオブジェクトを比較的小さな時間上の部分の中で処理できる。
【0091】
326に続く328において方法300が終了する。
【0092】
図4aと図4bは、本発明の第2の例示的な方法を示す。後述するが、図4aと図4bは、あるアプリケーションからネットワークまたは他のアプリケーションにデータを書き込む方法400を記述する。一般に、データは、DICOMオブジェクトまたは画像ファイルであり、ネットワークは、DICOM通信ネットワークであり、アプリケーションは、DICOMネットワーク・プロトコルを使用して通信できる医療画像アプリケーション・プログラムである。
【0093】
402において方法400が開始する。
【0094】
402に続く404において、通信エンジン104は、1つのデータ・セットを求める。典型的にあるユーザが結合アプリケーション・プログラム101と対話するときに、または代わりにDICOMネットワーク102内のサーバ128a−n上で実行するアプリケーション・プログラム130と対話するときに、このユーザは、特定のDICOMオブジェクトまたは画像上で特定の機能を実行したいと望むかも知れない。ユーザは、アプリケーション・プログラム101、130またはネットワーク102の特定サービスに対応する関連アプリケーション101またはアプリケーション・プログラム130内の対応するコマンド機能を選択する。このコマンド機能を受信すると、サービスは、通信エンジン104のために対応するデータ・セットを配置する。注意すべきは、あるデータ・セットは1つまたはそれ以上のデータ・セットであって、各データ・セットが1つまたはそれ以上のデータ要素を含むことである。DICOMオブジェクトまたは画像のためのデータ・セットは、媒体記憶装置モジュール132またはメタ・データ・ベース・モジュール134のような関連メモリ装置内に記憶される。
【0095】
404に続く406において選択されたサービスは、データ・セットのために新しい出力転送構文(OTS)を生成する。サービスがコマンド機能を受信すると、このサービスは、データ・セットを処理するために新しい出力転送構文(OTS)を生成する。OTSは、データ・セットをバイト・ストリームのようなデータ・ストリームにフォーマットまたは変換できる。データ・セットは、データ要素の発信元である。OTSは、データ要素の発信元をバイト・ストリームのようなデータ・ストリームにフォーマットまたは変換できる。データ要素の発信元(DES)は、データ要素の概念的なセット上の順方向イテレータである。たとえば、入力転送構文(ITS)は、表示データ値(PDV)の特定セットのためにデータ要素(DES)を生成できる。
【0096】
406に続く408においてサービスは、統率データ・セット入力ストリーム(GDSIS)を生成する。出力転送構文を使用してサービスは、統率データ・セット入力ストリーム(GDSIS)を生成する。それからGDSISは、それ自身のスレッドを使用してデータ・セットまたはデータ要素の発信元を出力転送構文を使用するバイト・ストリームのようなデータ・ストリームに変換する。GDSISは、比較的小さな固定量のメモリのみを使用して、データ・セットまたはデータ要素の発信元をデータ・ストリームに変換する。
【0097】
典型的に、出力転送構文は、データ・セットまたはデータ要素の発信元から一回に1つずつデータ要素を取り、各データ要素を一連のデータ要素またはデータ・ストリームにエンコードする。少なくとも2つのタイプのデータ要素が出力転送構文により処理されるが、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合は、SQ要素がデータ要素のセットを含む。SQ要素が出力転送構文(OTS)により読み取られると、OTSは、1つの特定データ要素のセットから一回に1つずつデータ要素を再帰的に処理する。PD要素の場合は、PD要素がバイトまたはワードの大きな配列を含む。出力転送構文(OTS)によりPD要素が読み取られると、OTSは、これらをデータ要素の片または小さな固定サイズとして処理する。いずれの場合もメモリの比較的小さな固定サイズのみがデータ要素を処理するためにOTSにより使用される。サービスは、ピクセルを段階的に獲得できるので、ある1つの瞬間にメモリ内の全てのPD値を獲得する必要性を最小化できる。注意すべきは、ピクセル・データ(PD)要素および他のDICOMオブジェクトが比較的大きいことである。本発明は、全てのサイズのピクセル・データ(PD)要素および他のDICOMオブジェクトを比較的小さな時間で処理できる。
【0098】
408に続く410においてサービスは、統率データ・セット入力ストリームをオペレーション・メッセージ内にパッケージする。
【0099】
410に続く412においてサービスは、メッセージ・サービスにメッセージを送る。
【0100】
414に続く416においてメッセージ・サービスは、メッセージに対応するオペレーションを決定する。
【0101】
416に続く418においてメッセージ・サービスは、データ・サービス層120にメッセージを渡す。
【0102】
418に続く420においてデータ・サービス層120は、メッセージから統率データ・セット入力ストリームをデコードする。一般に、データ・サービス層120は、メッセージ・サービスからメッセージを受信する。メッセージ・サービスは、メッセージから統率データ・セット入力ストリーム(GDSIS)を抽出して、GDSISからバイトを読み取る。メッセージ・サービスが1つのプロトコル・データ・ユニット(PDU)を構築できるまで、メッセージ・サービスは、GDSISからバイトを読み取り続ける。それから方法400は、図4bの420で継続する。
【0103】
420に続く422においてメッセージ・サービスは、トランスポート層116にプロトコル・データ・ユニット(PDU)を送る。典型的に、結合または接続が開放されているときに、メッセージ・サービスは、PDUをアッパ・サービス・レベル層118を通じてトランスポート層116に送ることができる。
【0104】
422に続く424においてトランスポート層116は、プロトコル・データ・ユニットを受信アプリケーションに伝送する。一般に、トランスポート層116は、プロトコル・データ・ユニット(PDU)をTCP/IP層126経由で伝送し、それからDICOMネットワーク102を通じてアプリケーション・プログラム130に伝送する。
【0105】
424に続く決定ブロック426において、データ要素の発信元106により、メッセージ・サービスは、全てのデータ要素が1つのバイト・ストリームに変換済みであるかどうかを決定する。全てのデータ要素が変換済みであれば、「YES」分岐に428が続く。
【0106】
428において方法400が終了する。
【0107】
残りのデータ要素の全てが変換済みでなければ、決定ブロック426に戻って、「NO」分岐に420が続く。統率データ・セット入力ストリーム(GDSIS)の処理を完了する必要があるので、方法400は、420に戻る。
【0108】
図5は、本発明の第3の例示的な方法を図示する。図5は、ファイルからデータを読み取る方法500を説明する。一般に、このデータは、DICOMオブジェクトまたは画像ファイルであり、このファイルは、関連アプリケーション・プログラム101またはDICOMプロトコルを使用して通信できる医療画像プログラムなどのアプリケーション・プログラム130である。このファイルは、DICOMネットワーク102などの通信ネットワークと共に動作する前記のサーバ128a−nまたは媒体記憶モジュール132またはメタ・データベース・モジュール134など前記の記憶装置またはシステム上にあらかじめ記憶される。図5において方法500は、502で開始する。
【0109】
502に続く504において通信エンジン104は、画像ファイルについてファイル入力ストリームを生成する。ファイル入力ストリームは、バイトの入力ストリームである。典型的に、ユーザがファイルから画像データまたはオブジェクトを読み取ることを決定すると、ユーザは、オブジェクトまたは画像ファイルを読み取るアプリケーション・コマンドを選択する。たとえば、結合アプリケーション・プログラム101は、ユーザがDICOMオブジェクトまたは画像ファイルを含むファイルを読み取るためにコマンドを選択できるようにする。特定のコマンドが選択されると、関連アプリケーション・プログラム101は、DICOMオブジェクトまたは画像ファイルを含むシステム内に読み取られるDICOMオブジェクトまたは画像ファイルについてのファイル入力ストリームを生成する。このファイル入力ストリームは、ファイル内のバイトまたはデータ要素の一部分にわたる順方向イテレータである。ファイル入力ストリームは、最初から終わりまで単一方向に読み取られる。以前に定義したように、システムは、サーバ128a−n、媒体記憶モジュール132またはメタ・データベース・モジュール134である。
【0110】
504に続く506において通信エンジン104は、画像ファイルを読み取るために入力転送構文(ITS)を生成する。一般に、通信エンジン104は、あらかじめ生成されたファイル入力ストリームを使用して、入力転送構文(ITS)を生成する。それから、この入力転送構文を使用して対応するオブジェクトまたは画像ファイルからデータ要素を読み取ることができる。
【0111】
506に続く508においてデータ要素の発信元106は、ファイル入力ストリームから各データ要素を段階的に読み取る。各データ要素106は、入力転送構文(ITS)を使用して、ファイル入力ストリームから一回に1つのデータ要素またはデータ要素の1つのブロックを段階的に読み取る。少なくとも2つの異なったデータ要素が処理されるが、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合、SQ要素は、データ要素のセットを含む。入力転送構文(ITS)によりSQ要素が読み取られると、ITSは、データ要素の1つの特定セットから一回に1つずつデータ再帰的に処理する。PD要素の場合、PD要素は、バイトまたはワードの大きなアレイを含む。入力転送構文(ITS)によりPD要素が読み取られると、ITSは、これらを片または小さな固定サイズのデータ要素として処理する。いずれの場合も、比較的小さな固定サイズのメモリのみを使用してデータ要素を処理する。
【0112】
508に続く510において通信エンジン104は、入力転送構文(ITS)を閉じる。つまり、データ要素の発信元により全てのデータ要素が読み込まれてしまった後で、入力転送構文を閉鎖する通信エンジンが閉じて、データ要素の発信元106によりデータ要素の更なる処理は、何も行われない。
【0113】
510に続く512において方法500が終了する。
【0114】
図6は、本発明の第4実施例を示す。図6は、ファイルにデータを書き込む方法600を示す。一般に、データは、DICOMオブジェクトまたは画像ファイルであり、ファイルは、DICOMプロトコルを使用して通信できる医療画像プログラムなどのアプリケーションに結合できる。ファイルは、DICOM通信ネットワークなどのネットワークと共に動作するサーバなどのシステムまたは記憶装置上にあらかじめ記憶される。図6において方法600は、602で開始する。
【0115】
602に続く604において通信エンジン104は、ファイル出力ストリームを生成する。ファイル出力ストリームは、バイト出力ストリームである。典型的に、ユーザがファイルに画像データを書き込むことを決定すると、ユーザは、関連アプリケーション・プログラム101またはアプリケーション・プログラム130からコマンドを選択して、オブジェクトまたは画像ファイルにデータを書き込む。たとえば、関連アソシエーション・プログラム101は、ユーザがコマンドを選択して、DICOMオブジェクトまたは画像の記憶用に構成されたファイルに画像データを書き込めるようにする。ある特定のコマンドが選択されると、アプリケーション・プログラム130は、DICOMオブジェクトまたは画像ファイルを含むシステムに書き込まれる画像データのためのファイル出力ストリームを生成する。このシステムは、前に定義したように、サーバ128a−n、媒体記憶モジュール132またメタ・データベース・モジュール134である。
【0116】
604に続く606においてアプリケーション・プログラム130は、出力転送構文(OTS)を生成して、オブジェクトまたは画像ファイルへ画像データを書き込む。一般に、関連アプリケーション・プログラム101またはアプリケーション・プログラム130は、事前に生成されたファイル出力ストリームを使用して出力転送構文(OTS)を生成する。出力転送構文(OTS)が生成されるとき、ファイル出力ストリームは、出力転送構文を生成するのに使用される1つのアーギュメントである。それから、OTSは、対応するオブジェクトまたは画像ファイルに画像データを書き込むために使用される。
【0117】
606に続く608においてデータ要素の受信側108は、各データ要素をファイル出力ストリームに段階的に書き込む。つまり、データ要素の受信側108が出力転送構文(OTS)を使用して、一回に1つずつデータ要素またはデータ要素のブロックをファイル出力ストリームに段階的に書き込む。図5に上述したように、少なくとも2つのタイプのデータ要素が処理され、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合は、SQ要素は、データ要素を含む。出力転送構文(OTS)によりSQ要素が書き込まれると、OTSは、データ要素の一特定セットから一回に1つずつデータ要素を再帰的に処理する。PD要素の場合は、PD要素は、バイトまたはワードの大きなアレイを含む。出力転送構文(OTS)によりPD要素が書き込まれると、OTSは、これらをデータ要素の片または小さな固定サイズとして処理する。いずれの場合も、比較的小さな固定サイズのメモリが出力転送構文(OTS)により使用されてデータ要素を処理する。
【0118】
608に続く610において通信エンジン104は、出力転送構文(OTS)を閉じる。つまり、データ要素の受信側108により全てのデータ要素をファイル出力構文に書き込んだ後で出力転送構文は、通信エンジン104を閉じて、こうしてオブジェクトまたは画像ファイルを含むファイルを効果的に閉じる。
【0119】
610に続く612において方法600が終了する。
【0120】
図7は、DICOM画像ファイル内に含まれるデータの代表的な図を示す。この特定の例は、磁気共鳴映像(MRI)DICOM画像ファイル700である。この例において、最初の794バイトは、DICOMフォーマット・ヘッダ702のために使用される。フォーマット・ヘッダ702は、画像寸法を記述し、走査に関する他のテキスト情報を保持する。ヘッダ702のサイズは、どれだけ多くの情報が記憶されるかにより変わる。この例は、109x91x2ピクセルの画像寸法であり、ピクセルあたり1バイトの解像度を有し、こうして全画像サイズが約19,838バイトであることを示す。
【0121】
画像データ704hは、ヘッダ702に続くファイル部分に記憶される。画像データも、ヘッダ702と関連情報として同一ファイル内に記憶される。
【0122】
図8は、DICOM画像ファイル内に含まれるデータを示す。この例において、DICOMヘッダ・フォーマットは、128バイトのプリアンブルを必要とする。典型的に、DICOMヘッダ・フォーマットにおいて128バイトのプリアンブルは、通常、ゼロに設定される。この128バイトのプリアンブルには、それから「D」、「I」、「C」、「M」の文字が続く。それからヘッダ情報が最後の文字「M」に続く。ヘッダ情報は「グループ」と呼ばれる1つまたはそれ以上の部分で組織される。たとえば、グループ「0002hex」は、ファイル・メタ情報グループを指定できる。このグループは、グループ長さ、ファイル・バージョン、転送構文のような3つの要素を定義できる。各グループ内で定義されるDICOMデータ要素は、画像タイプにより異なる。定義されるデータ要素の代表的な例は、2000DICOM規格のパート3にリストされている。たとえば、磁気共鳴(MR)画像ファイルは、要素0008,0060により指定できる。このタイプの画像ファイルは、MRIエコー・タイムを記述するために1つまたはそれ以上の画像ファイルを含む。
【0123】
本発明の精神と範囲から離れることなく本発明に付随する代替実施例は、当業者に明らかにある。したがって、本発明の範囲は、前記の記載よりも、むしろ特許請求の範囲により定義される。
【図面の簡単な説明】
【0124】
【図1】本発明の例示的な実施例によるシステムの機能的なブロック図である。
【図2】本発明の例示的な実施例のデータ・フロー図を示す。
【図3a】本発明の1つの例示的な方法を図示する。
【図3b】本発明の1つの例示的な方法を図示する。
【図3c】本発明の1つの例示的な方法を図示する。
【図4a】本発明の第2の例示的な方法を図示する。
【図4b】本発明の第2の例示的な方法を図示する。
【図5】本発明の第3の例示的な方法を図示する。
【図6】本発明の第4の例示的な方法を図示する。
【図7】DICOM画像ファイル内に含まれるデータの代表的な例を示す。
【図8】DICOM画像ファイル内に含まれるデータを示す。
【技術分野】
【0001】
(発明の分野)
本発明は、一般に画像伝送に関し、特に、データ要素の発信元と受信側を通じてDICOM画像をストリーミングする方法と装置に関する。
【背景技術】
【0002】
医療画像は、医療ディジタル画像通信(Digital Imaging and Communications)(DICOM)と呼ばれるネットワーク・プロトコル規格を使用して、コンピュータ間で通信できる。このDICOMネットワーク・プロトコルは、心電図波形、コンピュータ断層撮影(CT)、磁気共鳴(MR)および超音波などの医療画像およびオブジェクトの配信と表示を支援するために作成された。
【0003】
DICOMネットワーク・プロトコルは、デジタル画像データとオブジェクトを記憶し、受信し、伝送するのに使用されるフォーマットを定義する。DICOMオブジェクト・フォーマットは、典型的にヘッダと画像データを含む。ヘッダは、患者の名前、医療手順または断層撮影のタイプ、画像次元などに関する情報を含む。たとえば、あるDICOM画像ファイルは、ある医療画像の物理的次元を記述するデータを内容とするヘッダを含む。ヘッダは、この画像内に含まれる断層撮影についてのテキスト情報を内容とするデータを含む。ヘッダのサイズは、画像に記憶される情報量により異なる。ヘッダ内のデータは、1つまたはそれ以上のグループに組織できる。1つのグループは、グループ長さ、ファイル・バージョン、転送構文のような1つまたはそれ以上のデータ要素を定義するメタ・ファイル情報である。データ要素の数は、画像タイプとこの特定画像タイプの特性により異なる。
【0004】
オブジェクト・データは、典型的にヘッダ・データに続く。オブジェクト・データは、特定のオブジェクト・タイプの特性を定義するデータ要素および特定のオブジェクト・タイプに関連するオブジェクト・データを有する。オブジェクト・データは、2つおよび/または3つの次元で遂行される医療走査で得られる情報を含むことができる。たとえば、磁気共鳴画像(MRI)データは、そのMRIエコー時間を詳細に定義するデータ要素を含むDICOM画像データを有する。その上、画像ファイル・サイズを小さくするために画像データを圧縮したりカプセル化したりする。
【0005】
ほとんどのDICOMデータ要素は、小さくて、それらが収納できるデータのタイプによりサイズが限定される。たとえば、整数データ要素は、少しの整数を含む。これらのデータ要素は、いつも比較的小さく、それらの比較的小さなサイズのゆえに、ネットワークの効率と拡張性に重要または大きな影響を与えることはない。画像データなど他のタイプのDICOMデータ要素は、比較的大きいことがある。2つのタイプのDICOMデータ要素は、大きいことがあるので、特別な注意に値するが、それは、シーケンスとピクセル・データである。DICOMにおけるシーケンスは、他のデータ・セットを再帰的に収納できるデータ要素のタイプである。それらは他のデータ・セットを収納できるので、小さなデータ要素を非常に多数収納する場合またはピクセル・データを収納する場合は、それらが相対的に大きくなる。ピクセル・データは、実際の画像データに対応するタイプのデータ要素である。ピクセル・データは、相対的に大きくなるタイプのデータ要素であって、ある場合には極端に大きくなる。非常に大きなデータ・セットが通信される場合、そのデータ・セット内のほとんど全てのバイトがピクセル・データである。他のほとんどのタイプのデータ要素は、患者名、画像のタイプ、画像の日付と時間などの画像についての情報(メタ・データ)を通信する。
【0006】
DICOMは、データ・セットを伝送することにより通信する。データ・セットは、シーケンス・データ、ピクセル・データまたは他のタイプのデータなどのデータ要素の順序付き集合である。各データ要素は、通信される情報を表現する。各データ要素は、特定のタイプを有し、データ要素タイプによりサイズが異なる。たとえば、ある画像ファイルのサイズにおいて、異なった範囲を例示すれば、DICOM画像のファイル・サイズは、単一DICOM画像について約128キロバイトからあるし、または時間シーケンス、すなわちマルチ・フレームDICOM画像について約600メガバイトまでの範囲にわたる。
【0007】
DICOMデータ・セットは、1つまたはそれ以上の転送構文を使用して通信できる。転送構文は、特定のデータ・セットについてのデータのエンコーディングのタイプを決定する。DICOMネットワーク・プロトコルは、少なくとも3つのタイプの転送構文をサポートできる。すなわち、小エンディアン(endian)明示値表現、小エンディアン暗示値表現および大エンディアン明示値表現である。
【0008】
DICOMネットワーク・プロトコルの独自な機能により移送時にデータを異なった形式に変換することができる。通常のDICOMネットワーク上でDICOM画像を伝送中のDICOMデータ変換の独自な機能は、DICOMネットワーク内にメモリ資源への相対的に大きな要求を作り出す。
【0009】
DICOMネットワーク・プロトコルは、多重の層から構成される。DICOMネットワーク・プロトコルは、標準的なTCP/IPプロトコルの上に構築できる。通信ネットワーク上でデータを伝送する時に、DICOMプロトコルはネットワーク上でデータを送信する以前にデータ・セットを1つまたはそれ以上のデータ・パケットに分解する。各データ・パケットは、1つまたはそれ以上のプロトコル・データ・ユニット(PDU)を定義する。TCP/IPプロトコルにおけるような下にあるプロトコル層がデータをデータ・パケットに変換すれば、DICOMプロトコルは、ネットワーク上で通信されているデータ・セットもプロトコル・データ・ユニット(PDU)としてパッケージされることを要求する。たとえば、TCP/IPプロトコルの上にDICOMネットワーク・プロトコルが走る時に、これは実効的にデータを二重パケット化する。つまり、DICOMは、データ・セットをプロトコル・データ・ユニット(PDU)としてパッケージし、またTCP/IPは、データ・セットをデータ・パケットとしてパッケージする。このタイプのDICOM/TCP/IP層化したプロトコル構造は、通常のDICOMネットワークにおいて、メモリ資源に対して相対的に大きな要求を作り出す。その上、DICOMネットワーク・プロトコルの多重層を通じてDICOM画像を伝送することも、通常のDICOMネットワーク内でメモリ資源に対して相対的に大きな要求を作り出す。
【0010】
DICOMプロトコルは、通信を設立し維持するのに厳密な順序に従う。DICOMプロトコルのアッパ・サービス・レベル層により作動される状態機械は、DICOMネットワーク内の2つの装置の間で通信を設立し維持するための厳密な順序を規定する。たとえば、DICOMプロトコルは、接続方向性なので、DICOM結合または接続が2つの装置の間で設立済みになるまで、DICOMデータの通信は、何も起こらない。つまり、DICOM結合または接続を設立するためには、少なくとも2つのDICOMプロトコルに基づく装置が互いに通信していなければならない。DICOM結合または接続が設立済みになった後に、通信は、厳密な手順に従い続けなければならず、それからDICOM結合または接続は、順序に従った仕方で終結しなければならない。DICOMネットワーク・プロトコルにより指示される厳密な順序は、通常のDICOMネットワーク内に相対的に大きなメモリ資源の要求を作出する。
【0011】
各DICOM結合または接続は、DICOMネットワーク内でDICOMデータ・オペレーションを遂行するために使用される。DICOMオペレーションは、逐次的に、すなわち1つずつ、または並行的に遂行できる。並行的オペレーションは、DICOM内の結合ごとの非同期オペレーションと呼ばれる。通常のDICOMネットワークは、典型的にDICOMデータを含む多重の並行的または非同期オペレーションを処理し、大きなDICOMファイル・サイズは、通常のDICOMネットワーク内にメモリ資源に対する相対的に大きな要求を作出する。
【発明の開示】
【発明が解決しようとする課題】
【0012】
通常のDICOM通信ネットワークによる相対的に大きなオブジェクトの急速な処理は、DICOMプロトコル・オペレーションが効率的で高性能な仕方で遂行されることを要求する。相対的に大きなDICOMオブジェクト・ファイルを処理する時に、通常のDICOM通信ネットワークは、スピードと性能が著しく低下する。DICOMオブジェクトは、相対的に大きくなる傾向があるので、DICOMオブジェクトの通信がこの大きな画像オブジェクトを収容するように設計されていない通信ネットワークを急速に圧倒する。多重で同時的なDICOMオペレーションを処理するために、通常のDICOM通信ネットワークは、サーバに依存している。単一のDICOMファイルまたは記憶装置のオペレーションがメモリおよび処理時間などのサーバの資源の大部分を消費する場合は、DICOMサーバは、この大きなオブジェクトを処理する時に貧弱な拡張性と性能に苦しむ。これらのネットワークとサーバの性能の問題は、多重のクライアントが同時的または並行的にネットワークを使用することを試みる時に著しく悪化する。
【0013】
したがって、ネットワーク内でDICOMオブジェクトの処理中にメモリ資源の消費を限定する方法と装置の要求が存在する。
【0014】
ネットワーク内で通信されるDICOMオブジェクトのサイズに関係なくメモリの使用を限定するために、DICOM通信ネットワーク内で1つまたはそれ以上のアプリケーションを可能にする方法と装置の要求がさらに存在する。
【0015】
通信ネットワーク内の2つの装置の間でデジタル・データを伝送する改良された方法と装置のさらなる要求が存在する。
【0016】
通信ネットワーク内で作動する1つまたはそれ以上のアプリケーションを維持または改良すると共に、ネットワーク内でDICOMオブジェクトを伝送する改良された方法と装置の更なる要求が存在する。
【0017】
データ要素の発信元とデータ要素の受信側を通じてネットワーク内でDICOMオブジェクトをストリーミングする方法と装置の更なる要求が存在する。
【課題を解決するための手段】
【0018】
本発明は、データ要素の発信元とデータ要素の受信側を通じてネットワーク内のDICOMオブジェクトをストリーミングする方法と装置を供給することにより、上記の諸問題を解決する。本発明による方法と装置は、ネットワーク内のDICOMオブジェクトの処理中にメモリ資源の消費を限定する。更に本発明による方法と装置は、DICOM通信ネットワーク内の1つまたはそれ以上のアプリケーションがネットワーク内に通信されるDICOMオブジェクトのサイズに係りなくメモリの使用を限定できるようにする。その上、本発明による方法と装置は、通信ネットワーク内の2つの装置の間でデジタル・データを伝送できるようにする。最後に本発明による方法と装置は、ネットワーク内で作動する1つまたはそれ以上のアプリケーションの性能を維持または改良すると共に、ネットワーク内でDICOMオブジェクトを伝送することを可能にする。
【0019】
本発明による方法と装置は、一定量のメモリを使用して通信ネットワーク内の2つの装置の間のデジタル・データの伝送することを可能にする。たとえば、本発明による方法と装置は、限定された固定サイズのメモリのみを使用して、DICOMネットワーク内の2つの装置の間で比較的大きなファイル・サイズのDICOMオブジェクトをストリーミングできるようにする。DICOMオブジェクトまたは他のデジタル・データまたは比較的大きなファイル・サイズのオブジェクトを処理するために、本発明による方法と装置は、このオブジェクトをデータ要素の小さな固定された部分に配分する。それから本発明による方法と装置は、単一オペレーションのために一回にメモリに記憶できるデータ要素の数を限定する。それから、各データ要素がデータ要素の発信元またはデータ要素の受信側により段階的に処理され、単一のオペレーションについて多すぎるメモリの使用を回避する。こうして、本発明による方法と装置は、通信されるDICOMオブジェクトまたは画像のサイズに係りなく、小さな固定量のメモリのみを使用してDICOMオブジェクトまたは画像をストリーミングすることをDICOM通信ネットワークに可能とする。
【0020】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信する第1の例示的な方法において、この方法は、データ・ストリーム内に記憶される限定された数のデータ値を最初に定義する。次に、この方法は、第1の装置から一組のデータ素子を段階的に読み取ることにより、各データ要素が一回に1つずつ読み取られるようにする。次に、各データ要素からデータ値が抽出される。あるデータ要素が閾値サイズよりも大きければ、このデータは、比較的小さな固定サイズ・データの部分で伝送できる。最後に、この方法は、所定の限定された数のデータ値を含むデータ・ストリームを第2の装置へ伝送することにより、データ値が第2の装置にエンコードされるようにする。
【0021】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信するもう1つの例示的な方法において、本発明は、第1の装置からデジタル・データを含むファイルを受信する。次に、この方法は、デジタル・データを含むファイルについてのデータ値を含むデータ・ストリームを生成する。このデータ・ストリームに基づいて、本発明は、データ要素の発信元を生成する。それから本発明は、データ要素の発信元を通じて、このデータ・ストリームから一回に1つずつデータ要素を段階的に処理する。最後に、これらのデータ要素は、データ要素の受信側に伝送されて、データ要素の受信側の第2の装置にデータ要素をエンコードする。
【0022】
本発明の装置の実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の発信元と通信エンジンを含む。データ要素の発信元は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の発信元も、一組のデータ要素から一回に1つずつデータ要素を段階的に処理するように構成される。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータをデータ受信側に渡すことにより、抽出されたデータからデータ・ストリームを生成するように構成され、データ要素の受信側は、抽出されたデータ値を第2の装置へエンコードする。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0023】
本発明の装置のもう1つの実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の受信側と通信エンジンを含む。データ要素の受信側は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の受信側も、一組のデータ要素から一回に1つずつデータ要素を段階的に書き込むように構成される。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータ値からデータ・ストリームを生成するように形成される。その上、通信エンジンは、さらに、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0024】
このように本発明の方法と装置は、上記のように、あらゆるサイズの比較的大きなDICOMオブジェクトに含まれるデジタル・データをネットワーク内の2つのアプリケーション、装置または記憶媒体の間で伝送することができる。データ要素の発信元とデータ要素の受信側を使用して、一回に1つずつデータ要素とデータ値を段階的に処理することは、DICOMオペレーションを実行するのに必要なメモリ量を最小化する。本発明による方法と装置は、比較的大きなDICOMオブジェクトを処理するために比較的小さな一定量のメモリを供給すると共に、メモリ資源の消費を制限し、一方ではDICOMネットワーク内で作動するアプリケーションの性能を維持する。
【実施例】
【0025】
さて、図面を参照しながら本発明の特定の実施例を一層詳細に説明する。
【0026】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを通信する第1の例示的な方法において、この方法は、最初に、データ・ストリーム内に記憶されるデータ値の限定された数を定義する。次に、この方法は、第1の装置から一組のデータ要素を段階的に読み取って、一回に1つずつデータ要素が読み取られるようにする。次に、各データ要素からデータ値が抽出される。あるデータ要素が閾値サイズよりも大きければ、このデータは、比較的小さな固定サイズのデータの複数の部分で伝送できる。最後に、この方法は、所定の限定された数のデータ値を含むデータ・ストリームを第2の装置に伝送して、これにより、これらデータ値は、第2の装置にエンコードされるようにする。
【0027】
一定量のメモリの使用して第1の装置から第2の装置へデジタル・データを通信するもう1つの例示的な方法において、本発明は、第1の装置からのデジタル・データを含むファイルを受信する。次に、この方法は、デジタル・データを含むファイルについてデータ値を含むデータ・ストリームを生成する。このデータ・ストリームに基づいて、本発明は、データ要素の発信元を生成する。それから、この方法は、データ要素の発信元を通じて、データ・ストリームから一回に1つずつデータ要素を段階的に処理する。最後に、これらのデータ要素は、データ要素の受信側に伝送されて、データ要素の受信側は、これらデータ要素を第2の装置にエンコードする。
【0028】
本発明の装置の例示的な実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の発信元と通信エンジンを含む。データ要素の発信元は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の発信元もまた一組のデータ要素から一回に1つずつデータ要素を段階的に処理するように構成されている。通信エンジンは、データ要素からデータ値を抽出して、抽出されたデータ値をデータ要素の受信側に渡すことにより、抽出されたデータ値からデータ・ストリームを生成するように構成され、データ要素の受信側は、抽出されたデータ値を第2の装置にエンコードする。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0029】
本発明の装置のもう1つの実施例は、一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする通信モジュールを含む。この通信モジュールは、データ要素の受信側と通信エンジンを含む。データ要素の受信側は、第1の装置から一組のデータ要素を受信するように構成される。データ要素の受信側は、また一組のデータ要素から一回に1つずつデータ要素を段階的に書き込むように構成される。通信エンジンは、データ要素からデータ値を抽出して、これら抽出された1つのデータ値からデータ・ストリームを生成するように構成される。その上、通信エンジンは、更に、抽出されたデータ値を含むデータ・ストリームを第2の装置に伝送するように構成される。
【0030】
図1は、本発明の実施例によるシステムの機能的なブロック図を示す。このシステムは、通信モジュール100を含む。通信モジュール100は、関連アプリケーション・プログラム101とネットワークを介する他のアプリケーション・プログラムの間で伝送またはオブジェクトのストリーミングをするように構成される。その上、通信モジュール100は、関連アプリケーション・プログラム101とネットワークを介する他のアプリケーション・プログラムの間で、DICOM画像ファイルまたは他の類似タイプのデジタル画像を含むDICOMオブジェクトの伝送またはストリーミングのために構成される。たとえば、通信モジュール100は、関連アプリケーション・プログラム101とDICOMネットワーク102のような通信ネットワークを介するアプリケーション・プログラム130の間で通信して、DICOM画像ファイルまたは他の類似タイプのデジタル・オブジェクトを含むDICOMオブジェクトを送信または受信できる。
【0031】
注意すべきは、通信モジュール100は、一般にサービス・クラス・プロバイダ(SCP)と、サービス・クラス・ユーザ(SCU)の間で通信することである。SCPは、DICOMネットワーク・プロトコルで定義されたサービスへの要求を受信し、一方、SCUは、DICOMネットワーク・プロトコルで定義されたサービスへの要求を開始する。たとえば、関連アプリケーション・プログラム101は、SCUであることができ、またアプリケーション・プログラム130を実行するサーバ128a/nは、SCPであることができる。
【0032】
関連アプリケーション・プログラム101は、医療画像プログラムまたはアプリケーション・プログラムのようなDICOMアプリケーション・プログラムであり、これらはDICOM通信プロトコルまたはDICOM規格を使用する通信モジュール100により通信できる。関連アプリケーション・プログラム101は、1つまたはそれ以上のクライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワーク・ステーション、獲得モジュール、理学療法装置、表示システム、DICOM媒体、デジタル・アーカイブまたはDICOM通信プロトコルかDICOM規格を使用して作動できる他のタイプの装置上で実行できる。DICOM画像ファイルおよびDICOM画像ファイル内に収容される関連情報の代表的な例を図7と図8に示す。
【0033】
通信モジュール100は、通信エンジン104、データ要素発信元106、データ要素の受信側108、状態機械110、バッファ112およびDICOMプロトコル114のような多層プロトコルを含む。通信エンジン104は、関連アプリケーション・プログラム101と通信モジュール100の間および通信モジュール100とDICOMネットワーク102の間で、データおよび関連データ要素を処理するように構成される。通信エンジン104は、また通信モジュール100の種々の構成要素の間およびDICOMプロトコル114の多重の層の間でデータを伝送するように構成される。他の実施例による通信モジュールは、類似の機能を提供する、より少ない、または、より多くの要素を有する。
【0034】
データ要素の発信元106は、データ要素のための概念的なソースである。データ要素の発信元は、データ要素の概念的なセット上で順方向の繰返し器として機能できる。データ要素の発信元106は、一回に1つずつまたはブロックで、データ要素をサービス・クラス・ユーザー(SCU)またはクライアントまたはサーバ128a−nのようなサービス・クラス・プロバイダ(SCP)に供給する。たとえば、データ要素の発信元106は、シーケンス・データ(SQ)要素を処理できる。
【0035】
データ要素の発信元106は、また1つのピクセル・データ・デコーダを含む。ピクセル・データ・レコーダは、ピクセル・データを一回に1つずつ段階的に処理する。たとえば、ピクセル・データ・レコーダは、ピクセル・データ(PD)要素を処理する。単一のピクセル・データ要素は、数メガバイトのデータを含むので、ピクセル・データ・レコーダは、比較的小さな固定サイズのチャンクのデータを読み取ることを可能にする。ピクセル・データ要素に遭遇すると、ピクセル・データ・レコーダは、一回に全部のデータ要素を読まず、代わりに112と図示したバッファのような固定サイズのバッファにピクセル・データが段階的に読み込まれる。
【0036】
データ要素の発信元106は、ストリーミング・データ要素を含む。同様に、ストリーミング・データ要素を段階的に処理できる。
【0037】
データ要素の受信側108は、データ要素のための概念的な記憶装置である。データ要素の受信側108は、一回に1つずつまたはブロックでデータ要素をクライアントまたはサーバ128a−nのようなサービス・クラス・ユーザ(SCU)に書き込むことができる。たとえば、データ要素の受信側108は、シーケンス・データ(SQ)要素を処理できる。
【0038】
データ要素の受信側108は、またピクセル・データ・エンコーダを含む。ピクセル・データ・エンコーダは、ピクセル・データを一回に1つずつ段階的に処理する。たとえば、ピクセル・データ・エンコーダは、ピクセル・データ(PD)要素を処理する。単一のピクセル・データ要素は、数メガバイトのデータを含むので、ピクセル・データ・エンコーダは、比較的小さな固定サイズのチャンクのデータでピクセル・データを書き込むことを可能にする。ピクセル・データ要素に遭遇すると、ピクセル・データ・エンコーダは、一度に全てのデータ要素を書き込まず、代わりに112として示されるバッファのような固定サイズ・バッファに段階的にピクセル・データを書き込む。
【0039】
データ要素の受信側108は、ストリーミング・データ要素を含む。同様に、ストリーミング・データ要素を段階的に処理できる。
【0040】
状態機械110は、サービス・クラス・プロバイダ(SCP)とサービス・クラス・ユーザ(SCU)の間の結合または接続の開始、監視および処理をする。
【0041】
バッファ112は、データ要素、データ値または他のタイプのデータを記憶するように構成されたメモリ記憶装置である。バッファ112は、またデータ要素、データ値または他のタイプのデータを記憶する、より小さなバッファまたは類似のタイプのメモリ装置を含む。
【0042】
DICOMプロトコル114は、トランスポート層116、アッパ・レベル・サービス層118、データ・サービス層120およびサービス・クラス層12を含む多重層を収容する。DICOMプロトコルおよび関連層116−122の仕様、機能性および一層詳細な説明は、医療デジタル画像および通信(DICOM)規格書、PS3.1−2000、米国電気製造業協会、2000年に掲示されているが、これは参考文献として本明細書に組み込まれている。
【0043】
通信モジュール100は、関連アプリケーション・プログラム101と連絡する。通信モジュール100は、またDICOMネットワーク102などの通信ネットワークを通じて、もう1つのアプリケーション・プログラム130と連絡する。典型的に、もう1つのアプリケーション・プログラム130は、物理層124、すなわちETHERNET(登録商標)、ATM、FDDIのようなインターフェイスを通じて通信モジュール100とDICOMネットワーク経由で連絡する。さらにDICOMネットワーク102が伝送制御プロトコル/インターネット・プロトコル(TCP/IP)126を使用して他のネットワーク、コンピュータ、フラットフォームおよびアプリケーションとの連絡を更に容易にすることは、当業者には理解される。こうして、通信モジュール100は、トランスポート層112により、TCP/IP126に隣接して配置され、これによりDICOMネットワーク102と通信モジュール100の間にインターフェイスを生成する。当業者は、この構成を容易にするのに必要な方法とシステムを理解する。
【0044】
DICOMネットワーク102は、図示のようにネットワーク構成に接続される1つまたはそれ以上のサーバ128a−nを含む。いくつかの場合、ローカル・エリア・ネットワーク、すなわちLAN構成内で作動するためにDICOMネットワーク102が設立される。
【0045】
サーバ128a−nには、クライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワークステーション、獲得モジュール、理学療法装置、表示システム、DICOM媒体、デジタル・アーカイブまたはDICOM通信プロトコルまたはDICOM規格を使用して動作可能な他のタイプの装置が含まれる。DICOMネットワーク102においては、サーバ128a−nは、サービス・クラス・プロバイダ(SCP)またはサービス・クラス・ユーザ(SCU)である。
【0046】
当業者は、DICOMネットワーク102に類似して作動する通信ネットワークの他の構成をよく知っている。
【0047】
アプリケーション・プログラム130は、サーバ128a−n上で実行するように構成される。一般にアプリケーション・プログラム130は、医療画像プログラムのようなDICOMアプリケーション・プログラムまたはDICOM通信プロトコルまたはDICOM規格を使用して通信モジュール100と通信できるアプリケーション・プログラムである。アプリケーション・プログラム130は、クライアント、医療画像装置、記憶装置、情報システム、データベース、プリンタ、ワークステーション、獲得システム、理学療法装置、表示システムのような他のプラットフォーム上で実行可能であり、これらのプラットフォームは、DICOMネットワーク102に接続される。
【0048】
通信モジュール100は、また媒体記憶モジュール132およびメタ・データベース・モジュール130と連絡する。媒体記憶モジュール132は、通信モジュール100と連絡し、一時的または永久的なベースでデジタル画像データを記憶するように構成される。媒体記憶モジュール132は、ハード・ドライブ、光磁気ディスク・ドライブ、CD−RWドライブ、CD−ROMドライブのような記憶媒体または他の類似のタイプの記憶媒体を含む。注意すべきは、アプリケーション・プログラム130は、また媒体記憶モジュール132から実行されるように構成できることである。
【0049】
メタ・データベース・モジュール134は、また通信モジュール100と連絡して、一時的または永久的ベースでデジタル画像データを記憶するように構成される。メタ・データベース・モジュール134は、デジタル・データを記憶する通常のデータベースのような記憶媒体を含む。
【0050】
図2は、本発明の実施例の一般的なデータの流れの図である。この図は、ネットワークとアプリケーションの間でオブジェクトまたは画像ファイルを伝送中に、DICOMプロトコルの多重層を通るデータ・フロー200の実施例を示す。この例において、ネットワークは、ネットワーク・レベル202により表現され、アプリケーションは、アプリケーション・レベル204により表現される。図1と図2の両方における要素を参照すると、ネットワーク・レベル202は、サーバ128a−nを有するDICOMネットワーク102を含む。アプリケーション・レベル204は、通信モジュール100に関連する医療画像プログラムのような関連アプリケーション・プログラム101を含む。代わりにアプリケーション・レベルは、他のサーバ128a−n、すなわちDICOMネットワーク102内のクライアント・コンピュータなどのDICOMプロトコル可能な装置上で実行できる。通信モジュール100は、関連アプリケーション・プログラム101とサーバ128a−nの間の結合または接続を生成することにより、関連アプリケーション・プログラム101とサーバ128a−nの間のデータ通信を容易にする。通信モジュール100は、どのサービス・オブジェクト・ペア(SOP)クラスが使用されるかを決定し、SCPおよびSCUの役割を定義し、プロトコル層の間で通信するのに使用される転送構文のタイプを折衝し、DICOMネットワーク・プロトコルまたはオブジェクトかデジタル画像を処理する類似のタイプのプロトコルにより他の通信パラメータを決定することなどの標準的なDICOMネットワーク・プロトコルの詳細を処理する。注意すべきは、代わりの構成において他の装置がSCP、SCUとして機能し得ることであり、またはSCPUおよびSCUの両方として機能し得ることである。
【0051】
その上、通信モジュール100は、メモリ記憶装置、ハード・ドライブ、CD−R、CD−RWなど2つの装置の間または2つの異なったメモリ記憶装置のあらゆる他の組合せの間でデジタル・データを伝送し、またはストリーミングするのに使用される。ネットワークから装置へまたは装置からネットワークなど他の構成の間でデジタル・データを通信するためにも通信モジュール100が使用され、これらの装置は、メモリ記憶装置、ハード・ドライブ、CD−R、CD−RWまたは他の類似のタイプの装置を含むことは、当業者に理解される。
【0052】
その上、通信モジュール100は、関連アプリケーション・プログラム101およびサーバ128a−nと折衝して、関連アプリケーション・プログラム101とサーバ128a−nの間で伝送されるプロトコル・データ・ユニット(PDU)の最大サイズを定義する。PDUの最大サイズは、利用できるメモリのカレント・サイズおよび通信ネットワークの全体的な効率によって異なる。
【0053】
その上、通信モジュール100は、表示データ値の入力ストリームに読み込める所定または限定された数の表示データ値(PDV)を定義するために折衝する。所定または限定された数の表示データ値(PDV)は、利用できるメモリ記憶域のカレント・サイズおよび/または通信ネットワークの全体的な効率によって異なる。代わりに通信モジュール100は、データ入力ストリームに読み込めるデータ要素の所定または限定されたサイズを定義することができる。データ要素の所定または限定された数は、利用可能なメモリ記憶域のカレント・サイズおよび/または通信ネットワークの全体的な効率により異なる。通信装置100により処理されるデータ要素のタイプにより、これらの技法の1つまたはそれ以上が使用され、本発明により特定のデータ要素を伝送する間にメモリ資源の消費を比較的小さな固定された量に限定する。注意すべきは、表示データ値(PDV)がヘッダとペイロードを含み、これらは、バイトの配列であることである。
【0054】
通信モジュール100により上述の結合または接続の詳細が完了した後に、通信モジュール100は、ネットワーク・レベル202からアプリケーション・レベル204にデータ206を伝送することに進む。つまり、通信モジュール100は、サーバ128a−n(この例では、SCPとして作用している)から受信するデータ206を処理して、処理されたデータを関連アプリケーション・プログラム101(この例では、SCUとして作用する)に送る。典型的にデータ206は、1つまたはそれ以上のデータ要素を含むDICOMオブジェクトまたはDICOM画像ファイルである。データ206は、最初にネットワーク・レベル202において、サーバ128a−nにより処理される。サーバ128a−nは、ETHERNET(登録商標)、ATM、FDDIのような標準的なネットワーク物理層208を通じてデータ206を伝送する。
【0055】
次に、データ206は、TCP/IP210を通じて1つまたはそれ以上のデータ・パケット212の形式で、標準的なネットワーク物理層から伝送される。TCP/IP210は、DICOMオブジェクトまたはDICOM画像ファイルを含むデータ206を、1つまたはそれ以上のデータ・パケット212に変換する。この変換を実行するのに必要な方法とシステムは、当業者には理解される。
【0056】
TCP/IP210は、ソケット216を使用して、データ・パケット212をDICOMプロトコル層214に伝送する。DICOMプロトコル層214は、トランスポート218、アッパ・レベル・サービス220、データ・サービス222、サービス・クラス224を含む多重の層を収容する。ソケット216は、TCP/IP210とDICOMネットワーク・プロトコルなど、他のネットワーク・プロトコルの間の通信を容易にするアプリケーション・プログラム・インターフェイス(API)である。TCP/IP210、DICOMプロトコル層214、ソケット216を実施するのに必要な方法とシステムは、当業者には理解される。
【0057】
TCP/IP210は、データ・パケット212をトランスポート層216として知られるDICOMプロトコル層214の第1の層に伝送する。通信モジュール100は、トランス・ポート層216においてデータ・パケット212を受信して、TCP/IP210からデータ・パケット212の各々を段階的に読み取る。つまり、通信モジュール100に結合された通信エンジン(図1に104として示す)がトランスポート層216を使用して、一回に1つずつデータ・パケット212を読み取る。データ・パケット212が処理されると、通信エンジン104がデータ・パケット208をプロトコル・データ・ユニット226に変換する。プロトコル・データ・ユニット(PDU)226は、ヘッダ228と1つまたはそれ以上の表示データ値(PDV)230を含む。
【0058】
それから、各PDU226は、トランスポート層218からアッパ・レベル・サービス層218に通信エンジン104によって送られる。それから、PDUは、データ・サービス層222に伝送される。
【0059】
それから、通信エンジン104は、データ・サービス層222により受信された各PDU226から表示データ値(PDV)230を抽出する。一般に、通信エンジン104は、PDV230から表示データ値の入力ストリーム(PDVIS)232を生成する。通信エンジン104は、PDVIS232を使用してメッセージ234を形成する。
【0060】
通信エンジン104は、PDVIS232を含むメッセージ234をサービス・クラス層224に伝送する。サービス・クラス層224でデータ要素の発信元236は、各メッセージからの表示データ値の入力ストリーム(PDVIS)232からデータ要素を抽出する。データ要素の発信元236は、新しい入力転送構文(ITS)238になり、これはPDVIS232内に含まれるデータを構文解析するために使用できる。
【0061】
アプリケーション・レベル204で、入力転送構文238がバイトの入力ストリームからデータ要素240を抽出して、このデータ要素240を関連アプリケーション・プログラム101により要求される時に使用する。入力転送構文238は、ストリーミング閾値と呼ばれる属性を有する。抽出されたデータ要素がストリーミング閾値よりも長ければ、データ要素240は、ストリーミング・データ要素である。ストリーミング・データ要素は、入力転送構文238になお存在する実際のデータ素子240の代りである。このストリーミング・データ要素は、入力転送構文238を使用して、その値に段階的にアクセスすることを可能にする。段階的アクセスは、ストリーミング・データ要素が書き込まれているデータのブロックにより供給される。
【0062】
アプリケーション・レベル204からネットワーク・レベル202への下向きのデータ・フロー242のために、データ要素の発信元236が最初にサービス・クラス224を通じて移動する。それからデータ要素の発信元236は、データ・サービス222を通過する。データ・サービス222でパケッタイザ244は、データ要素の発信元236を取って出力転送構文238を生成する。出力転送構文238は、データ要素の発信元236からのデータ要素の各々を処理して、エンコードされたデータ要素をパケッタイザ244に渡す。それから、パケッタイザ244は、エンコードされたデータ要素をとって表示データ値(PDV)を生成する。
【0063】
PDVが生成されると、このPDVは、DICOM状態機械246に渡されて、そこで処理される。それからPDVは、DICOM状態機械246により、トランスポート・レベル218に渡される。トランスポート218は、PDVをTCP/IP層210へ書き出すが、それは、ネットワーク接続であるバイトの出力ストリーム248を通じて行う。
【0064】
図2を参照して上記した例示的なデータ・フローは、比較的大きなDICOMオブジェクトを処理するために限定された固定量のメモリのみを使用する。使用するメモリは、メモリ使用シナリオに関して下記のように説明できる。ネットワーク・レベルからアプリケーション・レベルに送られる1つのDICOMオブジェクトは、そのサイズが約600メガバイト(MB)であり、その内の599MBは、ピクセル・データ(PD)要素である。最大のプロトコル・データ・ユニット(PDU)サイズは、結合または接続中に折衝され、その最大サイズは、約20キロバイト(KB)である。さらに、この結合または接続は、表示データ値の入力ストリーム(PDVIS)内の表示データ値(PDV)の最大数を所定の限度、すなわち最大数の5に定義できる。注意すべきは、この所定の限度は、表示データ値(PDV)を記憶するのに使用されるバッファまたはメモリ記憶装置のサイズにより選択できることである。
【0065】
PDVISがPDVの数を5に限定すれば、ネットワークからDICOMオブジェクトを読み取るのに必要なメモリの最大量は、(5 X 20KB)+20KB、すなわち120KBである。この「+20KB」は、PDVISに配置されるPDU待ちが原因である。
【0066】
それから、アプリケーション・プログラムは、入ってくるDICOMオブジェクトをファイルに書き込み、入力転送構文(ITS)をデータ要素の発信元として出力転送構文(OTS)にファイルのために渡す。OTSは、ピクセル・データ要素をエンコードするために約10KBを使用する。その他の全てのデータ要素は、全体として個別にエンコードできるが、シーケンス・データ(SQ)要素は、例外である。全ての他のデータ要素は、通常10KBよりも比較的に小さいので、ファイルするためにデータ要素をデコードするのに使用されるメモリの最大量は、10KBになるはずである。
【0067】
こうして、ネットワークからデコードするために使用されるメモリおよびファイルにエンコードするために使用されるメモリの総量は、デコードのために約120KB、エンコードのために10KBであり、合計で130KBになるはずである。
【0068】
図3から図6は、本発明に使用される方法の実施例のフローチャートを示す。図3aから図3cおよび図4aと図4bは、ネットワークからの読取りおよびそこへの書込みのようなオペレーションを示し、図5と図6は、ファイルからの読取りと、そこへの書込みのようなオペレーションを示す。図3から図6に示す方法を採用することにより、比較的小さな固定量のメモリのみを使用して、全てのあり得るDICOMデータの相互作用を処理することができる。これらのDICOMデータの相互作用は、ネットワークからメモリ記憶装置へのデータの読取りと書込み、メモリ記憶装置からネットワークへのデータの読取りと書込み、およびネットワークからネットワークへの読取りと書込みのようなDICOMネットワークの相互作用を含む。注意すべきは、種々の構成のメモリ記憶装置およびネットワークを使用する他のタイプのDICOMデータの相互作用が本発明により実行できることである。
【0069】
図3aから図3cは、デジタル・データをネットワークからアプリケーションへ読み込む方法300を示す。一般に、デジタル・データは、DICOMオブジェクトまたは画像ファイルであり、ネットワークは、DICOM通信ネットワークであり、アプリケーションは、DICOMネットワーク・プロトコルを使用して通信できる医療画像アプリケーション・プログラムである。この方法300は、302で開始する。
【0070】
302に続く304において、通信エンジン104は、プロトコル・データ・ユニット(PDU)のサイズを折衝する。PDUのサイズを設立することにより、通信エンジン104は、デジタル・データを処理するのに必要または望ましいバッファ112内のメモリの量を監視できるようになる。その上、表示データ値(PDV)の所定の数、限度またはサイズまたは他のタイプのデータ要素または品質も、デジタル・データを処理するのに必要または望ましいバッファ112内のメモリ記憶域の量によって設立できる。典型的に、これらのステップは、状態機械110によるサービス・コントロール・プロバイダ(SCP)とサービス・コントロール・ユニット(SCU)の間の結合または接続の設立と共に実行される。アッパ・レベル・サービス層118を通じて、通信エンジン104は、方法300全体を通じて状態機械110を監視し制御する。
【0071】
304に続く306で通信エンジン104は、ネットワークからデジタル・データを段階的に読み取る。たとえば、通信エンジン104は、DICOMネットワーク102内のサーバ128a−nからDICOM画像ファイルなどのデジタル・データを要求する。DICOM画像ファイルは、デジタル画像データの1つまたはそれ以上のセットを含む。サーバ128a−nは、ソケット、アプリケーション・プログラム・インターフェイスを介してTCP/IP126を通じて通信エンジン104にデジタル画像データ・セットを伝送する。通信エンジン104は、サーバ128a−nからDICOMパケットまたはプロトコル・データ・ユニット(PDU)の形式でデジタル画像データ・セットを受信する。
【0072】
注意すべきは、ソケットを使用してTCP/IPを通じてデジタル・データを生成し伝送するのに必要な方法とシステムは、当業者に理解されることである。さらに、プロトコル・データ・ユニット(PDU)とDICOMパケットは、すでに上述のDICOMネットワーク・プロトコルの下で定義されている。
【0073】
306に続く308で通信エンジン104は、各PDUまたはDICOMパケットを段階的に読み取る。つまり、通信エンジン104は、DICOMプロトコル114のトランスポート層116を通じて読取りスレッド(図示なし)を開始する。読取りスレッドは、DICOMプロトコル114のトランスポート層116のいたるところに、一回に1つずつPDUまたはDICOMパケットの各々を段階的に読み取って伝送する。読取りスレッドは、ネットワークから伝送すべきデジタル・データのPDUまたはDICOMパケットの全てが処理されるまで、PDUまたはDICOMを処理し続ける。
【0074】
308に続く310で通信エンジン104は、PDUをアッパ・レベル・サービス層118に伝送する。結合または接続中にPDUが適当な時間に達すると、通信エンジン104によりPDUは、データ・サービス層120に伝送される。
【0075】
310に続く312で通信エンジン104は、各プロトコル・データ・ユニット(PDU)から表示データ値(PDV)を抽出する。つまり、PDUがデータ・サービス層120に受信されると、通信エンジン104は、PDUから表示データ値(PDV)を抽出する。各プロトコル・データ・ユニットは、1つまたはそれ以上の表示データ値を含む。
【0076】
312に続くサブルーチン314でオペレーション・メッセージのために表示データ値の入力ストリームが生成される。サブルーチン314は、図3cを参照して一層詳細に説明される。
【0077】
図3bにおいて、サーブ・ルーチン314は、350で始まる。350において通信エンジン104は、表示データ値を使用して、表示データ値の入力ストリームを生成する。最初、すなわち第1のプロトコル・データ・ユニット(PDU)のために、通信エンジン104で受信された抽出表示データ値(PDV)が使用されて、表示データ値の入力ストリーム(PDVIS)が生成される。後続のPDUのために抽出PDVが既存の表示データ値の入力ストリームに挿入されるか、または必要な場合は、新しい表示データ値の入力ストリームが生成される。表示データ値の入力ストリームは、本質的に比較的小さな固定量のメモリを使用して伝送できる1つまたはそれ以上のPDUからの表示データ値(PDV)のストリングである。表示データ値の入力ストリーム(PDVIS)は、オペレーション・メッセージの基礎を形成する。
【0078】
通信エンジンは、各抽出PDVを一回に1つずつデータ・サービス層120に段階的に伝送し続ける。データ・サービス層120は、上記のように各PDVを表示データ値の入力ストリーム(PDVIS)に挿入する。PDVISは、ある与えられた瞬間において、所定または限られた数のPDVを記憶するように限定される。典型的にPDVISは、一回に5PDVを記憶するように限定される。注意すべきは、所定または限定された数は、PDVおよび/またはPDVISに記憶すべきバッファまたは他のメモリ記憶装置のサイズによって決定されることである。
【0079】
350に続く決定ブロック352でデータ・サービス層は、所定または限定された数のPDVに到達したかどうかを決定する。この方法で、画像データの伝送が段階的に制御されて、全ての画像データを処理するのに必要なメモリ記憶空間の量を最小化することができる。データ要素の発信元106は、一回に1つずつ段階的にPDVを処理して、各PDVをPDVISに伝送する。所定または限定されたPDVの数に達すると、「YES」分岐をたどって354に行く。たとえば、所定または限定された数のPDVが事前に5に設定され、特定のPDVIS内に、この所定または限定された数のPDVがすでに存在すれば、そのときは、すでに限界に達している。この方法で、本発明は、メモリの使用をDICOMデータなどのデジタル・データの伝送のために使用し得る比較的小さな固定したメモリの量に監視し限定することができる。いくつかの場合には、バッファ112またはメモリ記憶装置のサイズによって、所定または限定されたサイズが設定されることに注意される。この方法により、ピクセル・データ(PD)要素および比較的大きなDICOMオブジェクトを比較的小さな固定サイズのメモリ部分で処理することができる。
【0080】
354において通信エンジン104は、表示データ値の入力ストリームから表示データ値が読み取られるまで、表示データ値の更なる処理を遅らせる。通信エンジン104は、データ・サービス層120に命令して、表示データ値の入力ストリーム(PDVIS)から表示データ値(PDV)が読み取られるまで待たされる。つまり、通信エンジン104は、1つのPDVがデータ・サービス層120にPDVISから読み取られるまで、トランスポート層116が更なるPDVをPDVISに読み込むのを防止するように命令する。1つのPDVがPDVISから読み取られると、通信エンジン104は、データ・サービス層に命令し、トランスポート層116が所定または限定された数のPDVに達するまでPDVをPDVISに渡し続けられる。
【0081】
決定ブロック352に戻ると、PDVの所定または限定された数に達していなければ、「NO」分岐をたどって、そこでサブルーチン314が終了して、316で方法300が継続する。
【0082】
316において、メッセージ・サービスは、どのオペレーションにオペレーション・メッセージが対応するかを決定する。典型的にサブ・ルーチン314内で通信エンジン104により1つのオペレーション・メッセージが生成されると、通信エンジン104は、メッセージ・サービス(図示なし)にPDVとPDVISを含むオペレーション・メッセージを送る。メッセージ・サービスは、DICOMプロトコル114のデータ・サービス層120の構成要素である。
【0083】
DICOMネットワーク・プロトコルにおいて、オペレーションは、サービス・オブジェクト・ペア(SOP)により定義される。状態機械110により設立される最初の結合または接続の間に、1つまたはそれ以上のSOPが識別できる。SOPを使用することにより、メッセージ・サービスは、メッセージが一致または対応するオペレーションを有するかどうかを決定する。
【0084】
316に続く318において、メッセージ・サービスは、オペレーション・メッセージを対応するオペレーションに伝送する。メッセージ・サービスにより、SOPがあるメッセージに対して対応する一致と識別されると、オペレーション・メッセージは、対応するオペレーションに伝送される。
【0085】
318に続く320において、オペレーション・メッセージは、後続の処理のために対応するオペレーショにより待ち行列に入れられる。メッセージが待ち行列に入れられると、この方法300は、図3cの320で継続する。
【0086】
320に続く322において、待ち行列に入れられたメッセージは、それぞれのオペレーションにより処理される。少なくとも1つの待ち行列に入れられたオペレーション・メッセージを受信する全てのオペレーションは、1つのスレッドを開始する。それから、各オペレーションについて、各スレッドが各待ち行列に入れられたオペレーション・メッセージを一回に1つずつ処理する。それから、各待ち行列に入れられたオペレーション・メッセージは、オペレーション・メッセージがそのために生成された対応するサービスに渡される。注意すべきは、DICOMネットワーク・プロトコルにより定義されるように、各オペレーションが1つの対応するサービスまたはSOPを有することである。それぞれのオペレーションのために各待ち行列に入れられたメッセージの処理が完了するまで、各スレッドは、各オペレーション・メッセージの処理を続ける。
【0087】
322に続く324において、サービスは、表示データ値の入力ストリーム(PDVIS)からデータ要素を抽出する。
【0088】
324に続く326において、サービスは、新しい入力転送構文(ITS)を生成する。サービスは、表示データ値の入力ストリーム(PDVIS)を使用して、新しいITSを生成し、この新しいITSは、PDVISに含まれるデータを構文解析するために使用できる。PDVISに含まれるデータは、一連の表示データ値(PDV)である。典型的にはデータ値は、エンコードされ、コーディングをデータ要素の標準的なメモリ表現として理解できる表現に変換するために、入力転送構文が使用できる。それから、構文解析されたデータは、通信エンジン104によりデータ要素の発信元106にストリームされる。
【0089】
326に続く328において、データ要素の発信元106は、構文解析されたデータ・ストリームを段階的に読み取る。各サービスは、データ要素の発信元106を使用して、表示データ値の入力ストリーム(PDVIS)内に収納されたデータ・ストリームから、一回にデータ要素の1つのブロックを読み取る。入力転送構文(ITS)は、またデータ要素の発信元106を通じてデータ要素を段階的に読むために使用される。
【0090】
データ要素の発信元106において、サービスにより少なくとも2つのタイプのデータ要素を処理できるが、それはシーケンス・データ(SQ)とピクセル・データ(PD)である。SQデータ要素は、データ要素の1つまたはそれ以上のセットを含むデータ要素である。SQデータ要素は、再帰的に処理できる。つまり、データ要素の1セットは、一回に1つずつのデータ要素が処理される。PD要素は、DICOMオブジェクトまたは画像ファイル内で最大のデータ要素の1つである。PD要素は、バイト(8ビット)またはワード(16ビット)の未加工のデータ配列により構成される。このタイプのデータ要素は、ストリーミングの追加の層を可能にする。サービスは、ピクセル・データを段階的に獲得でき、こうして時間の単一インスタンスにおいて、メモリ内に全てのPD値を獲得する必要性を最小化できる。ピクセル・データ(PD)要素および他のDICOMオブジェクトが比較的大きいものであることに注意される。本発明は、全てのサイズのピクセル・データ(PD)要素とDICOMオブジェクトを比較的小さな時間上の部分の中で処理できる。
【0091】
326に続く328において方法300が終了する。
【0092】
図4aと図4bは、本発明の第2の例示的な方法を示す。後述するが、図4aと図4bは、あるアプリケーションからネットワークまたは他のアプリケーションにデータを書き込む方法400を記述する。一般に、データは、DICOMオブジェクトまたは画像ファイルであり、ネットワークは、DICOM通信ネットワークであり、アプリケーションは、DICOMネットワーク・プロトコルを使用して通信できる医療画像アプリケーション・プログラムである。
【0093】
402において方法400が開始する。
【0094】
402に続く404において、通信エンジン104は、1つのデータ・セットを求める。典型的にあるユーザが結合アプリケーション・プログラム101と対話するときに、または代わりにDICOMネットワーク102内のサーバ128a−n上で実行するアプリケーション・プログラム130と対話するときに、このユーザは、特定のDICOMオブジェクトまたは画像上で特定の機能を実行したいと望むかも知れない。ユーザは、アプリケーション・プログラム101、130またはネットワーク102の特定サービスに対応する関連アプリケーション101またはアプリケーション・プログラム130内の対応するコマンド機能を選択する。このコマンド機能を受信すると、サービスは、通信エンジン104のために対応するデータ・セットを配置する。注意すべきは、あるデータ・セットは1つまたはそれ以上のデータ・セットであって、各データ・セットが1つまたはそれ以上のデータ要素を含むことである。DICOMオブジェクトまたは画像のためのデータ・セットは、媒体記憶装置モジュール132またはメタ・データ・ベース・モジュール134のような関連メモリ装置内に記憶される。
【0095】
404に続く406において選択されたサービスは、データ・セットのために新しい出力転送構文(OTS)を生成する。サービスがコマンド機能を受信すると、このサービスは、データ・セットを処理するために新しい出力転送構文(OTS)を生成する。OTSは、データ・セットをバイト・ストリームのようなデータ・ストリームにフォーマットまたは変換できる。データ・セットは、データ要素の発信元である。OTSは、データ要素の発信元をバイト・ストリームのようなデータ・ストリームにフォーマットまたは変換できる。データ要素の発信元(DES)は、データ要素の概念的なセット上の順方向イテレータである。たとえば、入力転送構文(ITS)は、表示データ値(PDV)の特定セットのためにデータ要素(DES)を生成できる。
【0096】
406に続く408においてサービスは、統率データ・セット入力ストリーム(GDSIS)を生成する。出力転送構文を使用してサービスは、統率データ・セット入力ストリーム(GDSIS)を生成する。それからGDSISは、それ自身のスレッドを使用してデータ・セットまたはデータ要素の発信元を出力転送構文を使用するバイト・ストリームのようなデータ・ストリームに変換する。GDSISは、比較的小さな固定量のメモリのみを使用して、データ・セットまたはデータ要素の発信元をデータ・ストリームに変換する。
【0097】
典型的に、出力転送構文は、データ・セットまたはデータ要素の発信元から一回に1つずつデータ要素を取り、各データ要素を一連のデータ要素またはデータ・ストリームにエンコードする。少なくとも2つのタイプのデータ要素が出力転送構文により処理されるが、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合は、SQ要素がデータ要素のセットを含む。SQ要素が出力転送構文(OTS)により読み取られると、OTSは、1つの特定データ要素のセットから一回に1つずつデータ要素を再帰的に処理する。PD要素の場合は、PD要素がバイトまたはワードの大きな配列を含む。出力転送構文(OTS)によりPD要素が読み取られると、OTSは、これらをデータ要素の片または小さな固定サイズとして処理する。いずれの場合もメモリの比較的小さな固定サイズのみがデータ要素を処理するためにOTSにより使用される。サービスは、ピクセルを段階的に獲得できるので、ある1つの瞬間にメモリ内の全てのPD値を獲得する必要性を最小化できる。注意すべきは、ピクセル・データ(PD)要素および他のDICOMオブジェクトが比較的大きいことである。本発明は、全てのサイズのピクセル・データ(PD)要素および他のDICOMオブジェクトを比較的小さな時間で処理できる。
【0098】
408に続く410においてサービスは、統率データ・セット入力ストリームをオペレーション・メッセージ内にパッケージする。
【0099】
410に続く412においてサービスは、メッセージ・サービスにメッセージを送る。
【0100】
414に続く416においてメッセージ・サービスは、メッセージに対応するオペレーションを決定する。
【0101】
416に続く418においてメッセージ・サービスは、データ・サービス層120にメッセージを渡す。
【0102】
418に続く420においてデータ・サービス層120は、メッセージから統率データ・セット入力ストリームをデコードする。一般に、データ・サービス層120は、メッセージ・サービスからメッセージを受信する。メッセージ・サービスは、メッセージから統率データ・セット入力ストリーム(GDSIS)を抽出して、GDSISからバイトを読み取る。メッセージ・サービスが1つのプロトコル・データ・ユニット(PDU)を構築できるまで、メッセージ・サービスは、GDSISからバイトを読み取り続ける。それから方法400は、図4bの420で継続する。
【0103】
420に続く422においてメッセージ・サービスは、トランスポート層116にプロトコル・データ・ユニット(PDU)を送る。典型的に、結合または接続が開放されているときに、メッセージ・サービスは、PDUをアッパ・サービス・レベル層118を通じてトランスポート層116に送ることができる。
【0104】
422に続く424においてトランスポート層116は、プロトコル・データ・ユニットを受信アプリケーションに伝送する。一般に、トランスポート層116は、プロトコル・データ・ユニット(PDU)をTCP/IP層126経由で伝送し、それからDICOMネットワーク102を通じてアプリケーション・プログラム130に伝送する。
【0105】
424に続く決定ブロック426において、データ要素の発信元106により、メッセージ・サービスは、全てのデータ要素が1つのバイト・ストリームに変換済みであるかどうかを決定する。全てのデータ要素が変換済みであれば、「YES」分岐に428が続く。
【0106】
428において方法400が終了する。
【0107】
残りのデータ要素の全てが変換済みでなければ、決定ブロック426に戻って、「NO」分岐に420が続く。統率データ・セット入力ストリーム(GDSIS)の処理を完了する必要があるので、方法400は、420に戻る。
【0108】
図5は、本発明の第3の例示的な方法を図示する。図5は、ファイルからデータを読み取る方法500を説明する。一般に、このデータは、DICOMオブジェクトまたは画像ファイルであり、このファイルは、関連アプリケーション・プログラム101またはDICOMプロトコルを使用して通信できる医療画像プログラムなどのアプリケーション・プログラム130である。このファイルは、DICOMネットワーク102などの通信ネットワークと共に動作する前記のサーバ128a−nまたは媒体記憶モジュール132またはメタ・データベース・モジュール134など前記の記憶装置またはシステム上にあらかじめ記憶される。図5において方法500は、502で開始する。
【0109】
502に続く504において通信エンジン104は、画像ファイルについてファイル入力ストリームを生成する。ファイル入力ストリームは、バイトの入力ストリームである。典型的に、ユーザがファイルから画像データまたはオブジェクトを読み取ることを決定すると、ユーザは、オブジェクトまたは画像ファイルを読み取るアプリケーション・コマンドを選択する。たとえば、結合アプリケーション・プログラム101は、ユーザがDICOMオブジェクトまたは画像ファイルを含むファイルを読み取るためにコマンドを選択できるようにする。特定のコマンドが選択されると、関連アプリケーション・プログラム101は、DICOMオブジェクトまたは画像ファイルを含むシステム内に読み取られるDICOMオブジェクトまたは画像ファイルについてのファイル入力ストリームを生成する。このファイル入力ストリームは、ファイル内のバイトまたはデータ要素の一部分にわたる順方向イテレータである。ファイル入力ストリームは、最初から終わりまで単一方向に読み取られる。以前に定義したように、システムは、サーバ128a−n、媒体記憶モジュール132またはメタ・データベース・モジュール134である。
【0110】
504に続く506において通信エンジン104は、画像ファイルを読み取るために入力転送構文(ITS)を生成する。一般に、通信エンジン104は、あらかじめ生成されたファイル入力ストリームを使用して、入力転送構文(ITS)を生成する。それから、この入力転送構文を使用して対応するオブジェクトまたは画像ファイルからデータ要素を読み取ることができる。
【0111】
506に続く508においてデータ要素の発信元106は、ファイル入力ストリームから各データ要素を段階的に読み取る。各データ要素106は、入力転送構文(ITS)を使用して、ファイル入力ストリームから一回に1つのデータ要素またはデータ要素の1つのブロックを段階的に読み取る。少なくとも2つの異なったデータ要素が処理されるが、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合、SQ要素は、データ要素のセットを含む。入力転送構文(ITS)によりSQ要素が読み取られると、ITSは、データ要素の1つの特定セットから一回に1つずつデータ再帰的に処理する。PD要素の場合、PD要素は、バイトまたはワードの大きなアレイを含む。入力転送構文(ITS)によりPD要素が読み取られると、ITSは、これらを片または小さな固定サイズのデータ要素として処理する。いずれの場合も、比較的小さな固定サイズのメモリのみを使用してデータ要素を処理する。
【0112】
508に続く510において通信エンジン104は、入力転送構文(ITS)を閉じる。つまり、データ要素の発信元により全てのデータ要素が読み込まれてしまった後で、入力転送構文を閉鎖する通信エンジンが閉じて、データ要素の発信元106によりデータ要素の更なる処理は、何も行われない。
【0113】
510に続く512において方法500が終了する。
【0114】
図6は、本発明の第4実施例を示す。図6は、ファイルにデータを書き込む方法600を示す。一般に、データは、DICOMオブジェクトまたは画像ファイルであり、ファイルは、DICOMプロトコルを使用して通信できる医療画像プログラムなどのアプリケーションに結合できる。ファイルは、DICOM通信ネットワークなどのネットワークと共に動作するサーバなどのシステムまたは記憶装置上にあらかじめ記憶される。図6において方法600は、602で開始する。
【0115】
602に続く604において通信エンジン104は、ファイル出力ストリームを生成する。ファイル出力ストリームは、バイト出力ストリームである。典型的に、ユーザがファイルに画像データを書き込むことを決定すると、ユーザは、関連アプリケーション・プログラム101またはアプリケーション・プログラム130からコマンドを選択して、オブジェクトまたは画像ファイルにデータを書き込む。たとえば、関連アソシエーション・プログラム101は、ユーザがコマンドを選択して、DICOMオブジェクトまたは画像の記憶用に構成されたファイルに画像データを書き込めるようにする。ある特定のコマンドが選択されると、アプリケーション・プログラム130は、DICOMオブジェクトまたは画像ファイルを含むシステムに書き込まれる画像データのためのファイル出力ストリームを生成する。このシステムは、前に定義したように、サーバ128a−n、媒体記憶モジュール132またメタ・データベース・モジュール134である。
【0116】
604に続く606においてアプリケーション・プログラム130は、出力転送構文(OTS)を生成して、オブジェクトまたは画像ファイルへ画像データを書き込む。一般に、関連アプリケーション・プログラム101またはアプリケーション・プログラム130は、事前に生成されたファイル出力ストリームを使用して出力転送構文(OTS)を生成する。出力転送構文(OTS)が生成されるとき、ファイル出力ストリームは、出力転送構文を生成するのに使用される1つのアーギュメントである。それから、OTSは、対応するオブジェクトまたは画像ファイルに画像データを書き込むために使用される。
【0117】
606に続く608においてデータ要素の受信側108は、各データ要素をファイル出力ストリームに段階的に書き込む。つまり、データ要素の受信側108が出力転送構文(OTS)を使用して、一回に1つずつデータ要素またはデータ要素のブロックをファイル出力ストリームに段階的に書き込む。図5に上述したように、少なくとも2つのタイプのデータ要素が処理され、それはシーケンス・データ(SQ)要素とピクセル・データ(PD)要素である。シーケンス・データ(SQ)要素の場合は、SQ要素は、データ要素を含む。出力転送構文(OTS)によりSQ要素が書き込まれると、OTSは、データ要素の一特定セットから一回に1つずつデータ要素を再帰的に処理する。PD要素の場合は、PD要素は、バイトまたはワードの大きなアレイを含む。出力転送構文(OTS)によりPD要素が書き込まれると、OTSは、これらをデータ要素の片または小さな固定サイズとして処理する。いずれの場合も、比較的小さな固定サイズのメモリが出力転送構文(OTS)により使用されてデータ要素を処理する。
【0118】
608に続く610において通信エンジン104は、出力転送構文(OTS)を閉じる。つまり、データ要素の受信側108により全てのデータ要素をファイル出力構文に書き込んだ後で出力転送構文は、通信エンジン104を閉じて、こうしてオブジェクトまたは画像ファイルを含むファイルを効果的に閉じる。
【0119】
610に続く612において方法600が終了する。
【0120】
図7は、DICOM画像ファイル内に含まれるデータの代表的な図を示す。この特定の例は、磁気共鳴映像(MRI)DICOM画像ファイル700である。この例において、最初の794バイトは、DICOMフォーマット・ヘッダ702のために使用される。フォーマット・ヘッダ702は、画像寸法を記述し、走査に関する他のテキスト情報を保持する。ヘッダ702のサイズは、どれだけ多くの情報が記憶されるかにより変わる。この例は、109x91x2ピクセルの画像寸法であり、ピクセルあたり1バイトの解像度を有し、こうして全画像サイズが約19,838バイトであることを示す。
【0121】
画像データ704hは、ヘッダ702に続くファイル部分に記憶される。画像データも、ヘッダ702と関連情報として同一ファイル内に記憶される。
【0122】
図8は、DICOM画像ファイル内に含まれるデータを示す。この例において、DICOMヘッダ・フォーマットは、128バイトのプリアンブルを必要とする。典型的に、DICOMヘッダ・フォーマットにおいて128バイトのプリアンブルは、通常、ゼロに設定される。この128バイトのプリアンブルには、それから「D」、「I」、「C」、「M」の文字が続く。それからヘッダ情報が最後の文字「M」に続く。ヘッダ情報は「グループ」と呼ばれる1つまたはそれ以上の部分で組織される。たとえば、グループ「0002hex」は、ファイル・メタ情報グループを指定できる。このグループは、グループ長さ、ファイル・バージョン、転送構文のような3つの要素を定義できる。各グループ内で定義されるDICOMデータ要素は、画像タイプにより異なる。定義されるデータ要素の代表的な例は、2000DICOM規格のパート3にリストされている。たとえば、磁気共鳴(MR)画像ファイルは、要素0008,0060により指定できる。このタイプの画像ファイルは、MRIエコー・タイムを記述するために1つまたはそれ以上の画像ファイルを含む。
【0123】
本発明の精神と範囲から離れることなく本発明に付随する代替実施例は、当業者に明らかにある。したがって、本発明の範囲は、前記の記載よりも、むしろ特許請求の範囲により定義される。
【図面の簡単な説明】
【0124】
【図1】本発明の例示的な実施例によるシステムの機能的なブロック図である。
【図2】本発明の例示的な実施例のデータ・フロー図を示す。
【図3a】本発明の1つの例示的な方法を図示する。
【図3b】本発明の1つの例示的な方法を図示する。
【図3c】本発明の1つの例示的な方法を図示する。
【図4a】本発明の第2の例示的な方法を図示する。
【図4b】本発明の第2の例示的な方法を図示する。
【図5】本発明の第3の例示的な方法を図示する。
【図6】本発明の第4の例示的な方法を図示する。
【図7】DICOM画像ファイル内に含まれるデータの代表的な例を示す。
【図8】DICOM画像ファイル内に含まれるデータを示す。
【特許請求の範囲】
【請求項1】
一定量のメモリを使用して第1の装置から第2の装置にデジタル・データを通信する方法であって、前記デジタル・データがデータ要素を定義し、
前記第1の装置からの前記デジタル・データを表現するバイトの入力ストリームを供給し、
前記バイトの入力ストリームからデータ要素の発信元を生成し、
第2の装置で受信される前記デジタル・データを表現するバイトの出力ストリームを生成し、
前記バイトの出力ストリームに1つまたはそれ以上のバイトを供給するように構成されたデータ要素の受信側を生成し、
前記データ要素の発信元およびデータ要素の受信側を使用するように構成された通信エンジンを生成し、
前記データ要素の発信元からデータを要求し、
前記バイトの入力ストリームからデータ要素に次のバイトを変換し、
前記データ要素の受信側に前記データ要素を供給し、
前記データ要素をバイトに変換し前記バイトの出力ストリームに前記バイトを供給することを含む前記方法。
【請求項2】
前記第1の装置は、バイトのストリームへの変換のために構成された選択可能な少なくとも1つのファイルを含み、前記データ要素の発信元が生成される請求項1記載の方法。
【請求項3】
前記データ要素の発信元は、入力転送構文を含む請求項2記載の方法。
【請求項4】
前記第1の装置は、前記バイトの入力ストリームを供給するように構成されたネットワーク接続を含む請求項1記載の方法。
【請求項5】
前記バイトの入力ストリームは、表示データ値を含むプロトコル・データ・ユニットを含み、前記表示データ値は、バイト配列を含む請求項4記載の方法。
【請求項6】
前記バイト配列は、表示データ値の入力ストリーム内に配置できる請求項4記載の方法。
【請求項7】
前記データ要素の発信元は、前記表示データ値の入力ストリームから生成される入力転送構文を含む請求項6記載の方法。
【請求項8】
前記表示データ値の入力ストリームは、所定または限定数の表示データ値をバッファすることに限定されている請求項6記載の方法。
【請求項9】
前記第2の装置は、バイトの出力ストリームを含むファイル・システムである請求項1記載の方法。
【請求項10】
前記データ要素の受信側は、前記バイトの出力ストリームから生成される請求項9記載の方法。
【請求項11】
前記データ要素の受信側は、前記バイトの出力ストリームから生成される出力転送構文を含む請求項10記載の方法。
【請求項12】
前記第2の装置は、バイトの出力ストリームを受信するように構成されたネットワーク接続を含むネットワークである請求項1記載の方法。
【請求項13】
前記バイトの出力ストリームは、表示データ値を含むプロトコル・データ・ユニットを生成するように構成されたパケッタイザを含む請求項12記載の方法。
【請求項14】
前記データ要素の受信側は、前記パケッタイザにバイトを供給する請求項13記載の方法。
【請求項15】
前記データ要素の受信側は、前記パケッタイザにより生成される出力転送構文である請求項14記載の方法。
【請求項16】
入力データ構文を前記データ要素の発信元は、バイト・リミットを供給するように構成されたストリーミング閾値を更に含む請求項1記載の方法。
【請求項17】
データ要素を含むバイトのストリームが前記バイト・リミットを超える場合は、前記データ要素は、ストリーミング・データ要素である請求項16記載の方法。
【請求項18】
前記ストリーミング・データ要素は、前記入力転送構文から得られる増分値を含む請求項17記載の方法。
【請求項19】
前記データ要素の受信側は、ストリーミング・データ要素を供給し、前記データ要素の受信側は、出力転送構文を含む請求項1記載の方法。
【請求項20】
前記データ要素の受信側は、前記ストリーミング・データ要素から値を固定ブロック・サイズで要求する請求項19記載の方法。
【請求項21】
各ブロックが受信されると、前記出力転送構文が前記ストリーミング・データ要素値をエンコードする請求項20記載の方法。
【請求項22】
前記第1の装置は、バイトの入力ストリームを供給できる装置である請求項1記載の方法。
【請求項23】
前記第1の装置は、データベース、テープ、CD、記憶媒体のうちの1つからなる請求項22記載の方法。
【請求項24】
前記第2の装置は、バイトの出力ストリームを受信できる装置である請求項1記載の方法。
【請求項25】
前記第1の装置は、データベース、テープ、CD、記憶媒体のうちの1つからなる請求項23記載の方法。
【請求項26】
一定量のメモリを使用して第1の装置から第2の装置にデータを通信する方法であって、前記デジタル・データがデータ要素とデータ値を定義し、
データ・ストリーム内に記憶すべき限定された数のデータ値を定義し、
前記第1の装置からデータ要素のセットを段階的に読み取り、各データ要素を1回に1つずつ読み取り、
各データ要素から1つのデータ値を抽出し、
限定数のデータ値のみによってデータ・ストリームを生成し、
データ値の所定の限度に達すれば、限定数のデータ値を含むデータ・ストリームを第2の装置に伝送し、
前記データ・ストリームからデータ値を抽出することを含む前記方法。
【請求項27】
限定された数のデータ値を定義することは、前記第1の装置と前記第2の装置の間の結合を折衝することを更に含む請求項1記載の方法。
【請求項28】
前記データ・ストリームを伝送することは、前記データ・ストリームとデータ値を含む伝送に先立ってメッセージを定義し、前記メッセージのために適当なオペレーションを決定し、後続の処理のために前記メッセージを待ち行列に入れることを更に含む請求項1記載の方法。
【請求項29】
前記データ・ストリームから前記データ値を抽出することは、前記データ・ストリーム内に含まれる前記データ値を構文解析するために使用できる転送構文を生成することを更に含む請求項1記載の方法。
【請求項30】
前記デジタル・データは、DICOMオブジェクト、DICOM画像ファイルまたはDICOMに基づく通信ネットワーク・プロトコルを使用して伝送できるオブジェクトの1つから構成される請求項1記載の方法。
【請求項31】
データ・ストリーム内に記憶される限定された数のデータ値の定義は、前記データ値の数を5またはそれ以下にセットする請求項1記載の方法。
【請求項32】
前記データ要素は、プロトコル・データ・ユニットであり、前記データ値は、表示データ値である請求項1記載の方法。
【請求項33】
前記データは、データ要素のセットを定義するシーケンス・データ要素からなり、受信されるデータ要素のセットを段階的に読み取ることにより、各データ要素は、一回に1つずつ読み取られるようにされる請求項1記載の方法であって、一回に1つずつデータ要素を処理して段階的にデータのセットを処理し、データ要素の全てのセットから全てのデータ要素が処理されるまで段階的に処理する請求項1記載の方法。
【請求項34】
前記データは、ビットのデータ配列を定義するピクセル・データ要素から構成され、受信されるデータ要素のセットを段階的に読み取ることにより一回に1つずつ各データ要素を読み取ることは、データ要素のブロックとしてバイトのデータ配列を段階的に処理することを更に含む請求項1記載の方法。
【請求項35】
前記データ・ストリームは、表示データ値の入力ストリームである請求項1記載の方法。
【請求項36】
前記第1の装置は、ネットワークであり、前記第2の装置は、ネットワークである請求項1記載の方法。
【請求項37】
前記第1の装置は、ネットワークであり、前記第2の装置は、記憶媒体である請求項1記載の方法。
【請求項38】
前記第1装置は、記憶媒体であり、前記第2の装置は、ネットワークである請求項1記載の方法。
【請求項39】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを含むファイルを通信する方法であって、前記デジタル・データは、
データ要素とデータ値を定義し、
第1の装置からデジタル・データを含むファイルを受信し、
通信される各データ要素から1つのデータ値を抽出し、
デジタル・データを含む前記ファイルについてデータ値を含む1つのデータ・ストリームを生成し、
前記データ・ストリームに基づいて1つのデータ要素の発信元を生成し、
前記データ要素の発信元を通じて前記データ・ストリームから一回に1つずつデータ値を段階的に処理し、
第2の装置に前記データ値を伝送するステップを含む前記方法。
【請求項40】
前記ファイルは、DICOMオブジェクト、DICOM画像ファイルまたはDICOMに基づく通信ネットワーク・プロトコルを使用して送信できるオブジェクトのうちの1つからなる請求項39記載の方法。
【請求項41】
データ要素発信元を生成することは、一回に1つずつデータ値を段階的に読み取るように構成された入力転送構文を生成することを更に含む請求項39記載の方法。
【請求項42】
データ要素の発信元を生成することは、一回に1つずつデータ値を段階的に書き込むように構成された出力転送構文を生成することを更に含む請求項39記載の方法。
【請求項43】
前記データ要素の発信元を通じて前記データ・ストリームから一回に1つずつ前記データ値を段階的に処理することは、1つのデータ・ストリーム内に記憶されるデータ値の最大数を5またはそれ以下に定義することを更に含む請求項39記載の方法。
【請求項44】
前記データ要素は、プロトコル・データ・ユニットであり、前記データ値は、表示データ値である請求項39記載の方法。
【請求項45】
前記データは、データ要素のセットを定義するシーケンス・データ要素により構成され、前記受信されるデータ値のセットを実施可能に処理することにより一回に1つずつ各データ値が読み取られることは、一回に1つずつデータ値を読み取ってデータ値を段階的に処理し、データ要素の全てのセットから全てのデータ値を処理済みになるまで処理することを更に含む請求項39記載の方法。
【請求項46】
前記データは、バイトのデータ配列を定義するピクセル・データ要素で構成され、受信されるデータ値のセットを段階的に処理することにより一回に1つずつ各データが読み取られることは、データ値のブロックとしてバイトのデータ配列を段階的に処理することを更に含む請求項39記載の方法。
【請求項47】
前記データ・ストリームは、表示データ値の入力ストリームである請求項39記載の方法。
【請求項48】
前記第1の装置は、記憶媒体であり、前記第2の装置は、ネットワークである請求項39記載の方法。
【請求項49】
前記第1の装置は、ネットワークであり、前記第2の装置は、記憶媒体である請求項39記載の方法。
【請求項50】
一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする装置であって、
1つの通信モジュールを含み、この通信モジュールは、
第1の装置からデータ要素のセットを供給するように構成され、更に前記データ要素のセットから一回に1つずつデータ要素を段階的に読み取るように構成されたデータ要素の発信元と、
前記データ要素の発信元から各データ要素を送信するように構成された通信エンジンと、
前記データ通信エンジンからデータ要素を段階的に受信して各データ要素をデータ・ストリームにエンコードするように構成され、前記エンコードされたデータ・ストリームを第2の装置に送信するように更に構成されたデータ要素の受信側を含む前記装置。
【請求項1】
一定量のメモリを使用して第1の装置から第2の装置にデジタル・データを通信する方法であって、前記デジタル・データがデータ要素を定義し、
前記第1の装置からの前記デジタル・データを表現するバイトの入力ストリームを供給し、
前記バイトの入力ストリームからデータ要素の発信元を生成し、
第2の装置で受信される前記デジタル・データを表現するバイトの出力ストリームを生成し、
前記バイトの出力ストリームに1つまたはそれ以上のバイトを供給するように構成されたデータ要素の受信側を生成し、
前記データ要素の発信元およびデータ要素の受信側を使用するように構成された通信エンジンを生成し、
前記データ要素の発信元からデータを要求し、
前記バイトの入力ストリームからデータ要素に次のバイトを変換し、
前記データ要素の受信側に前記データ要素を供給し、
前記データ要素をバイトに変換し前記バイトの出力ストリームに前記バイトを供給することを含む前記方法。
【請求項2】
前記第1の装置は、バイトのストリームへの変換のために構成された選択可能な少なくとも1つのファイルを含み、前記データ要素の発信元が生成される請求項1記載の方法。
【請求項3】
前記データ要素の発信元は、入力転送構文を含む請求項2記載の方法。
【請求項4】
前記第1の装置は、前記バイトの入力ストリームを供給するように構成されたネットワーク接続を含む請求項1記載の方法。
【請求項5】
前記バイトの入力ストリームは、表示データ値を含むプロトコル・データ・ユニットを含み、前記表示データ値は、バイト配列を含む請求項4記載の方法。
【請求項6】
前記バイト配列は、表示データ値の入力ストリーム内に配置できる請求項4記載の方法。
【請求項7】
前記データ要素の発信元は、前記表示データ値の入力ストリームから生成される入力転送構文を含む請求項6記載の方法。
【請求項8】
前記表示データ値の入力ストリームは、所定または限定数の表示データ値をバッファすることに限定されている請求項6記載の方法。
【請求項9】
前記第2の装置は、バイトの出力ストリームを含むファイル・システムである請求項1記載の方法。
【請求項10】
前記データ要素の受信側は、前記バイトの出力ストリームから生成される請求項9記載の方法。
【請求項11】
前記データ要素の受信側は、前記バイトの出力ストリームから生成される出力転送構文を含む請求項10記載の方法。
【請求項12】
前記第2の装置は、バイトの出力ストリームを受信するように構成されたネットワーク接続を含むネットワークである請求項1記載の方法。
【請求項13】
前記バイトの出力ストリームは、表示データ値を含むプロトコル・データ・ユニットを生成するように構成されたパケッタイザを含む請求項12記載の方法。
【請求項14】
前記データ要素の受信側は、前記パケッタイザにバイトを供給する請求項13記載の方法。
【請求項15】
前記データ要素の受信側は、前記パケッタイザにより生成される出力転送構文である請求項14記載の方法。
【請求項16】
入力データ構文を前記データ要素の発信元は、バイト・リミットを供給するように構成されたストリーミング閾値を更に含む請求項1記載の方法。
【請求項17】
データ要素を含むバイトのストリームが前記バイト・リミットを超える場合は、前記データ要素は、ストリーミング・データ要素である請求項16記載の方法。
【請求項18】
前記ストリーミング・データ要素は、前記入力転送構文から得られる増分値を含む請求項17記載の方法。
【請求項19】
前記データ要素の受信側は、ストリーミング・データ要素を供給し、前記データ要素の受信側は、出力転送構文を含む請求項1記載の方法。
【請求項20】
前記データ要素の受信側は、前記ストリーミング・データ要素から値を固定ブロック・サイズで要求する請求項19記載の方法。
【請求項21】
各ブロックが受信されると、前記出力転送構文が前記ストリーミング・データ要素値をエンコードする請求項20記載の方法。
【請求項22】
前記第1の装置は、バイトの入力ストリームを供給できる装置である請求項1記載の方法。
【請求項23】
前記第1の装置は、データベース、テープ、CD、記憶媒体のうちの1つからなる請求項22記載の方法。
【請求項24】
前記第2の装置は、バイトの出力ストリームを受信できる装置である請求項1記載の方法。
【請求項25】
前記第1の装置は、データベース、テープ、CD、記憶媒体のうちの1つからなる請求項23記載の方法。
【請求項26】
一定量のメモリを使用して第1の装置から第2の装置にデータを通信する方法であって、前記デジタル・データがデータ要素とデータ値を定義し、
データ・ストリーム内に記憶すべき限定された数のデータ値を定義し、
前記第1の装置からデータ要素のセットを段階的に読み取り、各データ要素を1回に1つずつ読み取り、
各データ要素から1つのデータ値を抽出し、
限定数のデータ値のみによってデータ・ストリームを生成し、
データ値の所定の限度に達すれば、限定数のデータ値を含むデータ・ストリームを第2の装置に伝送し、
前記データ・ストリームからデータ値を抽出することを含む前記方法。
【請求項27】
限定された数のデータ値を定義することは、前記第1の装置と前記第2の装置の間の結合を折衝することを更に含む請求項1記載の方法。
【請求項28】
前記データ・ストリームを伝送することは、前記データ・ストリームとデータ値を含む伝送に先立ってメッセージを定義し、前記メッセージのために適当なオペレーションを決定し、後続の処理のために前記メッセージを待ち行列に入れることを更に含む請求項1記載の方法。
【請求項29】
前記データ・ストリームから前記データ値を抽出することは、前記データ・ストリーム内に含まれる前記データ値を構文解析するために使用できる転送構文を生成することを更に含む請求項1記載の方法。
【請求項30】
前記デジタル・データは、DICOMオブジェクト、DICOM画像ファイルまたはDICOMに基づく通信ネットワーク・プロトコルを使用して伝送できるオブジェクトの1つから構成される請求項1記載の方法。
【請求項31】
データ・ストリーム内に記憶される限定された数のデータ値の定義は、前記データ値の数を5またはそれ以下にセットする請求項1記載の方法。
【請求項32】
前記データ要素は、プロトコル・データ・ユニットであり、前記データ値は、表示データ値である請求項1記載の方法。
【請求項33】
前記データは、データ要素のセットを定義するシーケンス・データ要素からなり、受信されるデータ要素のセットを段階的に読み取ることにより、各データ要素は、一回に1つずつ読み取られるようにされる請求項1記載の方法であって、一回に1つずつデータ要素を処理して段階的にデータのセットを処理し、データ要素の全てのセットから全てのデータ要素が処理されるまで段階的に処理する請求項1記載の方法。
【請求項34】
前記データは、ビットのデータ配列を定義するピクセル・データ要素から構成され、受信されるデータ要素のセットを段階的に読み取ることにより一回に1つずつ各データ要素を読み取ることは、データ要素のブロックとしてバイトのデータ配列を段階的に処理することを更に含む請求項1記載の方法。
【請求項35】
前記データ・ストリームは、表示データ値の入力ストリームである請求項1記載の方法。
【請求項36】
前記第1の装置は、ネットワークであり、前記第2の装置は、ネットワークである請求項1記載の方法。
【請求項37】
前記第1の装置は、ネットワークであり、前記第2の装置は、記憶媒体である請求項1記載の方法。
【請求項38】
前記第1装置は、記憶媒体であり、前記第2の装置は、ネットワークである請求項1記載の方法。
【請求項39】
一定量のメモリを使用して第1の装置から第2の装置へデジタル・データを含むファイルを通信する方法であって、前記デジタル・データは、
データ要素とデータ値を定義し、
第1の装置からデジタル・データを含むファイルを受信し、
通信される各データ要素から1つのデータ値を抽出し、
デジタル・データを含む前記ファイルについてデータ値を含む1つのデータ・ストリームを生成し、
前記データ・ストリームに基づいて1つのデータ要素の発信元を生成し、
前記データ要素の発信元を通じて前記データ・ストリームから一回に1つずつデータ値を段階的に処理し、
第2の装置に前記データ値を伝送するステップを含む前記方法。
【請求項40】
前記ファイルは、DICOMオブジェクト、DICOM画像ファイルまたはDICOMに基づく通信ネットワーク・プロトコルを使用して送信できるオブジェクトのうちの1つからなる請求項39記載の方法。
【請求項41】
データ要素発信元を生成することは、一回に1つずつデータ値を段階的に読み取るように構成された入力転送構文を生成することを更に含む請求項39記載の方法。
【請求項42】
データ要素の発信元を生成することは、一回に1つずつデータ値を段階的に書き込むように構成された出力転送構文を生成することを更に含む請求項39記載の方法。
【請求項43】
前記データ要素の発信元を通じて前記データ・ストリームから一回に1つずつ前記データ値を段階的に処理することは、1つのデータ・ストリーム内に記憶されるデータ値の最大数を5またはそれ以下に定義することを更に含む請求項39記載の方法。
【請求項44】
前記データ要素は、プロトコル・データ・ユニットであり、前記データ値は、表示データ値である請求項39記載の方法。
【請求項45】
前記データは、データ要素のセットを定義するシーケンス・データ要素により構成され、前記受信されるデータ値のセットを実施可能に処理することにより一回に1つずつ各データ値が読み取られることは、一回に1つずつデータ値を読み取ってデータ値を段階的に処理し、データ要素の全てのセットから全てのデータ値を処理済みになるまで処理することを更に含む請求項39記載の方法。
【請求項46】
前記データは、バイトのデータ配列を定義するピクセル・データ要素で構成され、受信されるデータ値のセットを段階的に処理することにより一回に1つずつ各データが読み取られることは、データ値のブロックとしてバイトのデータ配列を段階的に処理することを更に含む請求項39記載の方法。
【請求項47】
前記データ・ストリームは、表示データ値の入力ストリームである請求項39記載の方法。
【請求項48】
前記第1の装置は、記憶媒体であり、前記第2の装置は、ネットワークである請求項39記載の方法。
【請求項49】
前記第1の装置は、ネットワークであり、前記第2の装置は、記憶媒体である請求項39記載の方法。
【請求項50】
一定量のメモリを使用してネットワーク内の2つの装置の間でデジタル・データをストリーミングする装置であって、
1つの通信モジュールを含み、この通信モジュールは、
第1の装置からデータ要素のセットを供給するように構成され、更に前記データ要素のセットから一回に1つずつデータ要素を段階的に読み取るように構成されたデータ要素の発信元と、
前記データ要素の発信元から各データ要素を送信するように構成された通信エンジンと、
前記データ通信エンジンからデータ要素を段階的に受信して各データ要素をデータ・ストリームにエンコードするように構成され、前記エンコードされたデータ・ストリームを第2の装置に送信するように更に構成されたデータ要素の受信側を含む前記装置。
【図1】
【図2】
【図3a】
【図3b】
【図3c】
【図4a】
【図4b】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3a】
【図3b】
【図3c】
【図4a】
【図4b】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2008−178140(P2008−178140A)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願番号】特願2008−64423(P2008−64423)
【出願日】平成20年3月13日(2008.3.13)
【分割の表示】特願2002−526106(P2002−526106)の分割
【原出願日】平成13年9月4日(2001.9.4)
【出願人】(503080486)エマジェオン、インコーポレイテッド (1)
【Fターム(参考)】
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願日】平成20年3月13日(2008.3.13)
【分割の表示】特願2002−526106(P2002−526106)の分割
【原出願日】平成13年9月4日(2001.9.4)
【出願人】(503080486)エマジェオン、インコーポレイテッド (1)
【Fターム(参考)】
[ Back to top ]