JP2019513445A - 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム - Google Patents

撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム Download PDF

Info

Publication number
JP2019513445A
JP2019513445A JP2018551278A JP2018551278A JP2019513445A JP 2019513445 A JP2019513445 A JP 2019513445A JP 2018551278 A JP2018551278 A JP 2018551278A JP 2018551278 A JP2018551278 A JP 2018551278A JP 2019513445 A JP2019513445 A JP 2019513445A
Authority
JP
Japan
Prior art keywords
node
message
module
connection
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018551278A
Other languages
English (en)
Other versions
JP6980689B2 (ja
Inventor
ビン ホー
ビン ホー
ミングイ ジア
ミングイ ジア
シュエビン ジョウ
シュエビン ジョウ
ジュンフェン シー
ジュンフェン シー
フアイジ ワン
フアイジ ワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2019513445A publication Critical patent/JP2019513445A/ja
Application granted granted Critical
Publication of JP6980689B2 publication Critical patent/JP6980689B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/20ICT specially adapted for the handling or processing of medical images for handling medical images, e.g. DICOM, HL7 or PACS
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Primary Health Care (AREA)
  • Epidemiology (AREA)
  • Biomedical Technology (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明は、撮像システム、及び、撮像システムの複数のノード間における通信のための通信プラットフォームを提案する。撮像システムのノードは、ネットワークを介してデータメッセージを受信するためのプロトコルモジュール510と、プロトコルモジュールからデータメッセージのデータフィールドを受信するためのネットワークモジュール520と、少なくとも1つのサービスモジュール530−1、…、530−nとを備え、データフィールドは、データメッセージの種類を示すためのメッセージ識別子(MsgID)と、ペイロードフィールドとを含み、各サービスモジュール530−1、…、530−nは、データメッセージのペイロードを取り扱う少なくとも1つのメッセージハンドラ532を備え、ネットワークモジュール520は、ディスパッチャ521と、複数のキュー523と、コールバックモジュール522と、メッセージ識別子と複数のキューとの間の第1のマッピング及びメッセージ識別子(MsgID)とコールバックハンドラとの間の第2のマッピングを記憶するためのメモリ524とを備え、ディスパッチャ521は、メッセージ識別子(MsgID)と第1のマッピングとに基づいて、複数のキュー523のうちの1つにデータメッセージをディスパッチするように構成され、コールバックモジュール522は、第2のマッピングに基づいて、複数のキューの各々にあるデータメッセージを処理するように構成され、各コールバックハンドラは、サービスモジュールにおけるメッセージハンドラに向けられる。

Description

本発明は、概して、医療撮像システムなどの撮像システムに関し、より具体的には、撮像システムにおける複数のノード間における通信のための通信プラットフォームに関し、コンピュータ断層撮影(CT:computed tomography)への特定の応用とともに説明されるが、以下の内容は、例えばMRI(磁気共鳴撮像、Magnetic Resonance Imaging)、PET(陽電子放射断層撮影、Positron Emission Tomography)、PET−CTなどの他の撮像システムにも適応する。
図1は、WO2012/073167において説明されるようなCT撮像システム100などの従来の撮像システムを示す。撮像システム100は、固定ガントリー102と、固定ガントリー102により回転可能に支持された回転ガントリー104とを含む。回転ガントリー104は、長手軸又はz軸の周りで検査領域106の周囲を回転する。カウチなどの支持体108は、検査領域106内で対象者を支持し、走査前、走査中、及び/又は走査後にx、y、及び/又はz軸に対して対象者を配置するために使用され得る。x線管などの放射源110は、回転ガントリー104により支持され、検査領域106の周りを回転ガントリー104とともに回転し、及び、検査領域106を横断する放射線を照射する。ソースコリメータ112は、照射された放射線をコリメートして、検査領域106を横断する概ねファン、くさび、又は錐形の放射線ビームを生成する。検査領域106をまたいで放射源110の反対側に位置する放射線感受性ディテクターアレイ114は、検査領域106を横断する放射線を検出して放射線を示す投影データを生成する複数のディテクターピクセルを含む。再現器116は、投影データを再現して、検査領域106を表すボリュメトリック像データを生成する。イメージプロセッサ118は、ボリュメトリック像データを処理して、検出された放射線を表す1つ又は複数の像を生成する。ディスプレイ120は、1つ又は複数の像を提示するために使用される。汎用コンピューティングシステムは、オペレーターコンソール122として機能し、ディスプレイなどの出力デバイスと、例えばキーボード、マウス、及び/又はその他のものなどの入力デバイスとを含む。コンソール122に存在するソフトウェアは、臨床ワークフローを制御することを含め、システム100の動作をオペレーターが制御することを可能にする。制御システムは、ガントリーホスト124として機能し、典型的には固定ガントリー102の内部に配備される。ガントリーホスト124は、支持体108の移動を制御すること、及び、例えば回転ガントリー104の回転などの走査フローを制御することを含む、様々なコンポーネントのための制御を提供する。
最近、様々なフラットパネルなどのより多くのコンポーネントが、撮像システムに導入されるように提案されている。図2は、CT撮像システムなどの撮像システム200を示す。図1に示す撮像システム100と比べて、撮像システム200は、コンソール210及びガントリーホスト220に加えて、左パネル210、右パネル220、及びCTボックス230をさらに備える。それらのコンポーネント210〜230に存在するソフトウェアは、システム100の動作をオペレーターが制御することを可能にする。各コンポーネントは、互いに異なってもよく、及び、コンソール210のOS(例えばMicrosoft Windows)及びガントリーホスト220のOS(例えばLinux(登録商標))と異なってもよい各自のオペレーティングシステム(OS:operation system)を含んでもよい。例えば、フラットパネルのOSは、android、iOS、Linux(登録商標)、及びMicrosoft Windowsなどであり得る。
US2005/0232291A1は、メッセージがメッセージ検証プログラムを備える受け手プログラムに送信される前に、メッセージキューイングソフトウェア環境内でメッセージを検証する方法を開示する。
US9092282B1は、キューマネージャー上で動作するチャンネルを監視する方法を開示する。チャンネルインスタンスの総数と、キューマネージャー上で動作する指定されたチャンネルの各々のインスタンスとの両方が経時的に監視される。
図2を参照すると、コンソール210、ガントリーホスト220、及び様々なノード230〜250などの撮像システム200の複数のノード間における通信を可能にするために、通信ネットワークが、すべてのこれらのノードを相互接続するように配備される。複数のノードの各々が、他のノードと異なり得る各自のOSを含むので、想定される解決策は、例えば、ノードの各ペア間の通信を可能にするためにノードの各ペアに対して1つのソケット接続など、ネットワーク層でより多くのソケット接続を生成することであり得る。しかし、本発明の発明者らは、図9に示されるように、このような解決策が多くの欠点をもつことを認識している。
各ノードは、ネットワーク層にネットワークモジュール920を備え、ネットワーク層より上のサービス層に1つ又は複数のサービスモジュール930−1、930−2を備える。送信/受信キューは、ネットワークモジュール920におけるキュー923と、各サービスモジュール930−1、930−2におけるキュー933とを含め、ネットワーク層とサービス層との各々において実施されることとなる。通常、高パフォーマンスの又は異なる種類のサービスモジュールのために、2つ以上のスレッドが、異なる種類のメッセージを取り扱うために使用される。各サービスモジュール930−1、930−2はいくつかのメッセージハンドラを備え、異なるメッセージハンドラは、異なる種類のデータメッセージを取り扱う。サービスモジュールの種類は、異なるオペレーティングシステムに対して同じではない場合があるので、ソースコードは再使用され得ない。
ディスパッチャも比較的単純である。すべてのタイプのメッセージを受信するために1つのスレッドが使用される。サービス層の異なるサービスモジュールにメッセージをディスパッチするためにネットワーク層に1つのスイッチ921が必要とされ、各サービスモジュールが対象のメッセージを逐次構文解析するために別のスイッチ932がさらに必要とされる。これは、それほどリアルタイムではなく、高パフォーマンスを達成することができない。さらに、サービス層は、メッセージデータキャッシュ/キュー、スレッドを生成及び管理する必要があり、対象のメッセージを処理するなどのそれ自体のタスクに注力することができない。新しい種類のデータメッセージが撮像システム200に導入された場合、サービスモジュール930−1、930−2に対応したソースコードが各サービスモジュールに対して変更される必要がある。図2に示されるように、ノード210〜250などの2つ以上のノードが存在する場合、すべてのノード210〜250のすべてのサービスモジュールに対応したソースコードに対する変更が必要とされる。
従って、撮像システムにおける複数のノード間における通信のための改善された通信プラットフォーム又はアーキテクチャを提供することが有益である。
本発明の第1の態様の一実施形態によれば、撮像システムにおける複数のノードのうちのノードが提案される。撮像システムは、撮像システムにおける複数のノード間における通信のためのネットワークを備える。ノードは、ネットワークを介してデータメッセージを受信するためのプロトコルモジュールと、プロトコルモジュールからデータメッセージのデータフィールドを受信するためのネットワークモジュールと、少なくとも1つのサービスモジュールと、を備え、データフィールドは、データメッセージの種類を示すメッセージ識別子と、ペイロードフィールドとを備え、各サービスモジュールは、データメッセージのペイロードを取り扱う少なくとも1つのメッセージハンドラを備え、ネットワークモジュールは、ディスパッチャと、複数のキューと、コールバックモジュールと、メッセージ識別子と複数のキューとの間の第1のマッピング及びメッセージ識別子とコールバックハンドラとの間の第2のマッピングを記憶するためのメモリと、を備え、ディスパッチャは、メッセージ識別子と第1のマッピングとに基づいて複数のキューのうちの1つにデータメッセージをディスパッチするように構成され、コールバックモジュールは、第2のマッピングに基づいて複数のキューの各々にあるデータメッセージを処理するように構成され、各コールバックハンドラは、サービスモジュールにおけるメッセージハンドラに向けられる。
図9に示す前述の想定される解決策によると、それがメッセージを受信した後、ネットワークモジュールのディスパッチャが、メッセージの種類を確認するように構成され、ディスパッチャは、サービス層における1つ又は複数のサービスモジュール930−1、930−2の各サービスモジュールに対して、メッセージが対象となるか否かを判定し、メッセージがサービスモジュールに対して対象となる場合、サービスモジュールにメッセージをディスパッチする。典型的には、ネットワーク層において、各サービスモジュール930−1、930−2のためにキュー923−1、923−2が生成され、1つのサービスモジュールに対する対象のメッセージは、同じキューにプッシュされ、サービス層のサービスモジュールにより受信キュー933にプルされ、次に、サービス層の各サービスモジュール930−1、930−2において、ディスパッチャが、逐次受信キュー933内のメッセージを構文解析するように構成される。
提案される解決策では、メッセージは、ネットワーク層において完全に異なる手法でディスパッチされ、上述のキューもデータキャッシュもサービス層に必要とされない。ネットワーク層における複数のキューのうちの各キューは、特定のサービスモジュールに割り当てられるのではなく、各キューは、1つ又は複数の種類のデータメッセージに関係する。ネットワークモジュールのディスパッチャは、データメッセージの種類と複数のキューとの間のマッピングに基づいて、複数のキューのうちの1つにデータメッセージをディスパッチするように構成される。一実施形態において、すべての種類のデータメッセージは、それらのスケジューリング技法に応じて、異なるキューにディスパッチされ得る。例えば、逐次的に取り扱われる種類のデータメッセージは、1つのキューにディスパッチされ得、並列に取り扱われる種類のデータメッセージは、別のキューにディスパッチされ得る。別の一実施形態において、すべての種類のデータメッセージが、レイテンシ要求に応じて、異なるキューにディスパッチされ得る。例えば、ほとんど遅延を伴わないか、まったく遅延を伴わずに取り扱われるべき種類のデータメッセージは1つのキューにディスパッチされ得、より大きな遅延許容値を伴う種類のデータメッセージは、別のキューにディスパッチされ得る。
さらに、提案されるネットワークモジュールはサービス層にデータメッセージを単純に渡すのではなく、コールバックモジュールが、メッセージ識別子とコールバックハンドラとの間のマッピングに基づいて、各データメッセージに対して、サービス層におけるメッセージハンドラのエンターアドレスなどのコールバックハンドラを直接提供し得る。従って、サービス層ではデータメッセージをキューに入れる必要がなく、ネットワークモジュールは、サービス層における対応するメッセージハンドラにデータメッセージを直接送達することができる。
新しい種類のデータメッセージが撮像システム200に導入された場合、以前はサービス層のスイッチャー932及びキュー933により行われていた作業が、ここではネットワーク層により行われるので、以前はすべてのノードのすべてのサービスモジュールのスイッチャー932及びキュー933のすべてに対して要求されていた大量のソースコード変更作業の必要がなくなる。新しい種類のデータメッセージのための関連するマッピングを追加することによる第1のマッピング及び第2のマッピングの非常に単純な構成変更を除いて、ネットワーク層におけるソースコードを変更する必要がない。従って、導入された新しいアプリケーション/サービス又は新しいノードに起因して新しい種類のデータメッセージが導入されたとき、撮像システム200を簡単に拡張することができる。
第1のマッピング及び第2のマッピングは、事前構成され得るか、又は動的に構成され得る。
本発明の別の実施形態によると、ネットワークモジュールは、メッセージ識別子と、メッセージ識別子をもつデータメッセージがディスパッチされる先となる複数のキューのうちの1つを示すためのキューアイデンティティ値と、メッセージ識別子をもつデータメッセージを取り扱うためのサービスモジュールのメッセージハンドラに向けられたコールバックハンドラとをサービスモジュールから受信し、受信されたメッセージ識別子(MsgID)、受信されたキューアイデンティティ値、及び受信されたコールバックハンドラに基づいて、第1のマッピングと第2のマッピングとを更新するように構成されたレジスタをさらに備える。
このようにすると、サービスモジュールのすべてが他のノードへの接続を確立する、又はキューイングを取り扱うのではないものの、各種類のデータメッセージがどのキューに経路設定又はディスパッチされることになるかをネットワークモジュールに知らせることにより、その対象のメッセージをどのようにキューに入れるかを柔軟に設定又は構成することが依然として可能であり、コールバックハンドラを設定することにより、その対象のメッセージの各々に対してメッセージハンドラを柔軟に構成することもできる。その結果、すべての種類のサービスが、簡単にネットワークに配備され得る。クライアントは、対象のサーバへの接続を生成することを必要とせず、任意のデータメッセージの送信及び/又は受信を取り扱うことを必要とせず、クライアントは、対象のメッセージに対するそのコールバックをレジスタに入れること、及び、その対象のメッセージがどのようにキューに入れられることになるかを設定することしか必要としない。例えば、クライアントは、複数のキューのうちの1つ又は複数にその対象のメッセージを割り当てることにより、どの種類のメッセージが逐次的に取り扱われるか、どの種類のメッセージが並列に取り扱われるか、又は、どの種類のメッセージが専用の非共有キューにおいて取り扱われるかをカスタマイズし得る。
本発明の別の実施形態によると、サービスモジュールは、メッセージ識別子と、メッセージ識別子をもつデータメッセージがディスパッチされる先となる複数のキューのうちの1つを示すためのキューアイデンティティ値と、コンフィギュレーションデータに基づいて、メッセージ識別子をもつデータメッセージを取り扱うためのサービスモジュールのメッセージハンドラに向けられたコールバックハンドラとを生成するようにさらに構成される。
本発明の別の実施形態によると、ネットワークモジュールは、メッセージ識別子をサービスモジュール(530−1、…、530−n)のために受信し、受信されたメッセージ識別子に対応したマッピングを除去することにより、受信されたメッセージ識別子に基づいて第1のマッピングと第2のマッピングとを更新するように構成されたアンレジスタをさらに備える。
ある種類のメッセージがサービスモジュールにとってもはや対象とならない場合、サービスモジュールは、そのメッセージ識別子をネットワークモジュールのアンレジスタに送信することにより、この種類のメッセージをアンレジスタし得る。従って、サービスモジュールは、対象となるメッセージの種類を動的に構成し得る。
本発明の別の実施形態によると、複数のキューは、第1のキューと第2のキューとを備え、第1のキューに割り当てられるスレッドの数は、第2のキューに割り当てられるスレッドの数と異なる。例えば、第1のキューには、その中のメッセージの同期した取り扱いを可能にするために単一のスレッドが割り当てられ得る一方で、第2のキューには、より高いスループットを可能にするためにより多くのスレッドが割り当てられ得る。
いくつかの実施形態において、サービスモジュールは、複数のキューのうちのキューに割り当てられたスレッドの数を示すための値をネットワークモジュールに送信するようにさらに構成される。
このようにすると、データメッセージのキューイングが各サービスモジュール自体により行われないで場合であっても、サービスモジュールは、依然として、キュー内のデータメッセージの処理性能をカスタマイズするために、ネットワークモジュールにおけるキューのためにスレッドの数を構成することができる。例えば、サービスモジュールは、どの種類のデータメッセージがスレッドプールの単一のスレッドにより取り扱われるか、又は、何らかの他の種類のデータメッセージと共有されるスレッドにより取り扱われるかをカスタマイズし得る。
異なる種類のデータメッセージは、異なるスケジューリング技法で取り扱われる。例えば、位置フィードバックを伝達するいくつかの種類のデータメッセージに関しては、最新のメッセージのみが取り扱われることを必要とするのに対して以前のものはドロップされ得るが、ECG信号などの生体信号を伝達するためのデータメッセージなどの何らかの他の種類のデータメッセージの場合、データメッセージはドロップされない。異なるスケジューリング技法を使用して第1のキューと第2のキューとを生成することにより、異なるスケジューリング技法を要求するデータメッセージが別々のキューで適切に取り扱われ得、互いに影響を与えない。
本発明の別の実施形態によると、1つ又は複数のメッセージ識別子が、複数のキューのうちの1つにマッピングされる。
このようにすると、データメッセージの種類ごとに1つのキューを生成する必要がなく、データメッセージの種類の選択されたセットが同じキューを共有し得る。
本発明の別の実施形態によると、ネットワークモジュールは、データフィールドとノード識別子とをプロトコルモジュールに送信するように構成され、ノード識別子は、データフィールドが送信される先の1つ又は複数のノードを示し、プロトコルモジュールは、データフィールドとノード識別子とに基づいて、データメッセージを生成するように構成される。
このようにして、ネットワーク層におけるデータメッセージの送信は、接続指向というよりはノード指向になるように設計される。従来、ネットワーク層におけるデータメッセージの送信は接続指向である。すなわち、サービスモジュールの各ペアの間に接続が確立され、ネットワーク層でノードの各ペアの間に複数の接続が確立される。その結果、多くのデータメッセージが不必要に同期される。提案される解決策では、ネットワーク層におけるデータメッセージの送信はノード指向である。従って、接続の複雑さは呼び出し元から隠される。
本発明の別の実施形態によると、複数のノードが、マスターノードと少なくとも1つのスレーブノードとを備え、ノードのプロトコルモジュールは、接続モジュールとメモリとを備え、マスターノードのメモリは、1つ又は複数のノードの接続情報を記憶するように構成され、ノードの接続情報は、ノードのノード識別子とノードアドレスと接続ステータスとを含み、マスターノードの接続モジュールは、接続制御メッセージをノードから受信するように構成され、接続制御メッセージは、ノードのノードアドレスであって、ネットワーク内で固有であり、動的に規定されるノードアドレスと、ノードのノード識別子であって、ネットワーク内で固有である、ノードのノード識別子とを含み、マスターノードの接続モジュールは、受信された接続制御メッセージに基づいて接続情報を更新するように、及び、接続情報に基づいて接続テーブルを送信するようにさらに構成され、接続テーブルは、ノード識別子とノードアドレスとの間のマッピングを示す。
いくつかの実施形態において、スレーブノードの接続モジュールは、接続制御メッセージを送信するように構成され、スレーブノードの接続モジュールは、接続テーブルをマスターノードから受信するように、及び、接続テーブルに基づいて1つ又は複数のノードの各々への接続を確立するようにさらに構成される。
このようにして、複数のノード間の接続は、各ノードのためのノード識別子及び/又はノードアドレスを事前固定することなく確立され得る。従って、個々のノードの追加及び/又は除去は柔軟であり得、ノードアドレスが動的に構成され得る。
一例において、マスターノードはガントリーホストである。CTシステム又はPET−CTシステムなどの撮像システムでは、ガントリーホストが不可欠であり、従って、マスターノードとして機能することに適している。ガントリーホストがない又はガントリーホストがなくてもよい他の撮像システムでは、別のノードが、マスターノードとして機能するように選択され得る。例えば、MRIシステムでは、勾配増幅器及び/又はRF増幅器のための制御装置が、マスターノードとして機能するように選択され得る。
本発明の別の実施形態によると、マスターノードのプロトコルモジュールは、接続解除イベントハンドリングモジュールをさらに備え、マスターノードの接続モジュールは、ノードの接続ステータスが記憶された接続情報に基づいて接続解除状態になったときに、接続解除イベントを生成し、接続解除イベントハンドリングモジュールに接続解除イベントを送信するようにさらに構成され、マスターノードのメモリは、接続解除イベントと少なくとも1つの動作との間の第3のマッピングを記憶するようにさらに構成され、接続解除イベントハンドリングモジュールは、接続解除イベントを受信し、第3のマッピングに基づいて、接続解除イベントに応答して少なくとも1つの動作を実施するように構成される。
このようにして、マスターノードは、すべての他のノードの接続ステータスを監視することができ、接続障害に対して必要なアクションをとり得る。例えば、例えば支持体を動かすための移動コマンドの実行中に接続障害が発生したとき、移動により発生するあらゆるリスク又は危険を避けるために、そのような移動がすぐに停止される。
本発明の別の実施形態によると、プロトコルモジュール(510−M、510−S)はクロスプラットフォームである。すなわち、プロトコルモジュールは、Android、iOS、Linux(登録商標)、Microsoft Windowsなどの様々なプラットフォームにわたって適用可能である。例えば、プロトコルモジュールは、Googleにより提供されるZeroMQ及びプロトコルバッファ(PB:Protocol Buffer)をベースとし得る。言い換えると、プロトコルモジュールは、異種混成ネットワークを介して通信を実施するように構成される。
本発明の第2の態様の一実施形態によれば、複数の前述のノードと、複数のノード間における通信のためのネットワークとを備える撮像システムが提案される。
本発明の第3の態様の一実施形態によれば、実行されたときに、ネットワークを通じて撮像システム内の複数のノード間における通信の方法を実施するコンピュータプログラム命令を備えるコンピュータ製品が提案される。本方法は、プロトコル層において、ネットワークを介してデータメッセージを受信するステップと、ネットワーク層において、プロトコルモジュール(520)からデータメッセージのデータフィールドを受信するステップであって、データフィールドが、メッセージの種類を示すためのメッセージ識別子(MsgID)とペイロードフィールドとを備える、ステップと、メッセージ識別子(MsgID)と、メッセージ識別子と複数のキューとの間の第1のマッピングとに基づいて、複数のキューのうちの1つにデータメッセージをディスパッチするステップと、メッセージ識別子(MsgID)とコールバックハンドラとの間の第2のマッピングに基づいて、複数のキューの各々にあるデータメッセージを処理するステップであって、各コールバックハンドラが、データメッセージのペイロードを取り扱うためにサービス層のメッセージハンドラに向けられる、ステップと、サービス層において、データメッセージのペイロードを取り扱うステップとを有する。
本発明の他の目的及び利点が、添付図面に関連付けて記載された説明を参照することでより明らかとなり、簡単に理解され得る。
以下、本発明が実施形態とともに図面を参照しながら、さらに詳細に言及及び説明される。
CT撮像システムなどの従来の撮像システムを示す図である。 本発明の一実施形態に従ったCT撮像システムなどの例示的な撮像システムを示す図である。 本発明の一実施形態に従った撮像システムの複数のノード間における通信のための例示的なソフトウェアアーキテクチャを示す図である。 本発明の一実施形態に従ったプロトコル層の接続を確立する例示的なフローを示す図である。 本発明の一実施形態に従ったノードのプロトコルモジュールとネットワークモジュールとサービスモジュールとを示す図である。 本発明の一実施形態に従ったマスターノードの例示的なプロトコルモジュールと、スレーブノードの例示的なプロトコルモジュールとを示す図である。 本発明の一実施形態に従った例示的なネットワークモジュールと例示的なプロトコルモジュールとのアーキテクチャを示す図である。 本発明の一実施形態に従った少なくとも1つのサービスモジュールを備える例示的なサービス層のアーキテクチャを示す図である。 別の想定される解決策に従ったノードのプロトコル層とネットワーク層とサービス層とを示す図である。 本発明の一実施形態に従ったガントリーホスト又はコンソールなどのサービスを提供するための例示的なノードのアーキテクチャを示す図である。
図中の同じ参照符号は、同様の又は対応する特徴及び/又は機能を示す。
特定の実施形態に関連して、及び特定の図面を参照しながら本発明が説明されるが、本発明はそれに限定されず、特許請求の範囲のみにより限定される。説明される図面は、概略図にすぎず非限定的である。図面において、要素のうちのいくつかの寸法は、例示を目的として誇張される場合があり、一定の縮尺で描かれない場合がある。
図3は、本発明の一実施形態に従った撮像システムの複数のノード間における通信のための例示的なアーキテクチャを示す。図3を参照すると、アーキテクチャは、複数のノード間における通信の基盤として機能する通信基盤310を備える。通信基盤は、ノードを接続すること、並びに、メッセージを送信、受信、及びディスパッチすることを担う。通信基盤310は、有線又は無線ネットワークを備え得る。通信基盤310は、異種混成ネットワーク311を備え得る。異種混成ネットワークは、異なるオペレーティングシステム、異なるプロトコル、及び/又は異なるアクセス技術を使用してコンピュータ又は他のデバイスを接続するネットワークとして規定される。本アーキテクチャは、様々なノードに存在するアプリケーションのためのサービスを提供することを担う複数のサービスプロバイダー320を備える。例えば、複数のサービスプロバイダー320は、セッションマネージャー321、移動のためのIMovement322、ビーム制限のためのIBL323、ワークフローのためのIWorkflow324、仮想コンポーネント325、ハードウェア更新326、他の接続点327などのうちの1つ又は複数を備え得る。アーキテクチャは、複数のアプリケーション330をさらに備え、各アプリケーション330は、サービスを提供するために、及び/又はサービスにアクセスするためのユーザーインターフェースとして機能するために、特定のノードにおいて動作する。複数のアプリケーション330は、コンソール331、ガントリーホスト332、及び、左パネル333、右パネル334、及びCTボックス335などの様々なパネルのうちの1つ又は複数を備え得る。例えば、コンソール331は、IWorkflow324などのサービスを提供し得、ガントリーホスト332は、IMovement323及びIBL325などの移動サービスを提供し得、左パネル331及び右パネル332は、オペレーターがコンソール331及びガントリーホスト332により提供されるサービスなどのサービスにアクセスすることを可能にする。複数のアプリケーション330は、android、iOS、Linux(登録商標)、及びMicrosoft Windowsなどの異なるオペレーティングシステムに基づき得る。CTシステムなどのいくつかの撮像システムでは、ガントリーホスト332が不可欠であるのに対して、左パネル333、右パネル334などの他のアプリケーション330は任意選択的である。
図5は、本発明の一実施形態に従ったノード500のプロトコルモジュール510−M、510−S、ネットワークモジュール520、及び少なくとも1つのサービスモジュール530−1、…、530−nを示す。図4は、本発明の一実施形態に従ったプロトコル層の接続を確立する例示的なフローを示す。図6は、本発明の一実施形態に従った、スレーブノード610のプロトコルモジュール612及びネットワークモジュール614、並びに、マスターノード620との対話を示す。
図5を参照すると、各ノード500は、それがマスターノードであるか否かに応じてプロトコルモジュール510−M又は510−Sを備え、さらに、ネットワークモジュール520、及び1つ又は複数のサービスモジュール530−1から530−nを備える。
マスターノードのプロトコルモジュール510−Mは、接続モジュール512−Mとメモリ516−Mとを備える。スレーブノードのプロトコルモジュール510−Sは、接続モジュール512−Sとメモリ516−Sとを備える。
マスターノードのメモリ516−Mは、1つ又は複数のノードの接続情報を記憶するように構成される。ノードの接続情報は、ノードのノード識別子とノードアドレスと接続ステータスとを含む。ノード識別子は、ノードを一意に識別するためのノードの名前又は任意の値であり得る。ノードアドレスは、通信ネットワークからノードにアクセスできる任意のアドレスであり得る。一実施形態において、ノードの接続情報を記憶するためのデータ構造体「NodeInfo」は、次に示すように、IPアドレス「ipAddress」、任意選択的なMACアドレス「MAC」、ノード識別子「roleType」、接続ステータス「isOnline」、及び、ノードから最新の接続制御メッセージを受信した時点を示すための任意選択的なタイムスタンプ「lastTime」を含み得る。
Figure 2019513445
マスターノードの接続モジュール512−Mは、接続制御メッセージをノードから受信するように構成される。接続制御メッセージは、ノードのノードアドレスとノード識別子とを含む。マスターノードの接続モジュール512−Mは、受信された接続制御メッセージに基づいて、接続情報を更新するように構成される。マスターノードの接続モジュール512−Mは、接続情報に基づいて、接続テーブルを生成するように、及び、好ましくは事前に規定された時間間隔で、例えば3秒ごとに、すべてのノードに接続テーブルをパブリッシュするようにさらに構成される。一例において、接続テーブルは、すべてのオンラインノードのノード識別子とノードアドレスとの間のマッピングを示す。別の一例において、接続テーブルは、すべてのノードのノード識別子とノードアドレスとオンラインステータスとの間のマッピングを示す。各スレーブノードがマスターノードから接続テーブルを受信した後、各スレーブノードは、接続テーブル中のノードアドレスを使用することにより、そのスレーブノード自体と接続テーブル内のノードとの間における接続を確立することができる。さらに、スレーブノードは、ノードのオンラインステータスを確認するように、及び、ノードがオフラインになった場合に1つ又は複数の所定のアクションをとるようにさらに構成され得る。一実施形態によると、スレーブノードの接続モジュール512−Sは、接続制御メッセージを送信するように構成される。接続制御メッセージは、スレーブノードのノードアドレスの変化などのスレーブノードのステータスを適時マスターノードに知らせるために、定期的に、例えば1秒ごとに、スレーブノードにより送信され得る。スレーブノードの接続モジュール512−Sは、接続テーブルをマスターノードから受信するように、及び、接続テーブルに基づいて、1つ又は複数のノードの各々への接続を確立するようにさらに構成される。スレーブノードのメモリ516−Sは、それ自体のノード識別子、それ自体のノードアドレス、及び確立された接続を記憶するように構成され得る。
いくつかの実施形態において、マスターノードのプロトコルモジュール510−Mは、接続解除イベントハンドリングモジュール514−Mをさらに備える。マスターノードの接続モジュール512−Mは、ノードの接続ステータスが記憶された接続情報に基づいて接続解除状態になったときに、接続解除イベントを生成するように、及び、接続解除イベントハンドリングモジュール514−Mに接続解除イベントを送信するようにさらに構成される。マスターノードのメモリ516−Mは、接続解除イベントと少なくとも1つの動作との間の第3のマッピングを記憶するようにさらに構成される。接続解除イベントハンドリングモジュール514−Mは、接続解除イベントを受信するように、及び、第3のマッピングに基づいて、接続解除イベントに応答して少なくとも1つの動作を実施するように構成される。
次に、図4を参照して、一実施形態に従ったマスターノード410のプロトコルモジュールと、スレーブノード420のプロトコルモジュールと、その間における相互接続とが説明される。
ステップ422において、スレーブノード420は、マスターノード410に接続制御メッセージ432を送信する。スレーブノード420から接続制御メッセージ432を受信した後、マスターノード410は、ステップ412において、記憶された接続情報440を更新する。接続情報440は、ハッシュマップに記憶され得る。特に、ステップ4120において、マスターノード410は、記憶された接続情報にノード420が存在するか否かを確認する。マスターノード410に以前に知られていない新しいノードなど、記憶された接続情報440にノード420が存在しない場合、マスターノード410は、ステップ4122において、ノード識別子と、接続制御メッセージ432からのノードのノードアドレスと、任意選択的に接続制御メッセージ432の受信時点とを記憶することを含め、受信された接続制御メッセージに基づいて、記憶されたハッシュマップ440にスレーブノード420のための新しいエントリーを生成し得る。ノード420がハッシュマップ440などの記憶された接続情報に既に存在する場合、マスターノード410は、ステップ4124において、変化が存在する場合にノードアドレスを更新すること、及び、接続制御メッセージ432の受信時点を記録することなど、接続制御メッセージに基づいてノード420のためのエントリーを更新することを行い得る。スレーブノードから接続制御メッセージを受信した後、マスターノード410は、isOnlineをtrueに設定するなど、スレーブノードのステータスをオンラインに設定する。
マスターノード410は、接続テーブル434をパブリッシュするように構成され得る。接続テーブル434は、すべてのオンラインノードのためのノード識別子とノードアドレスとの第3のマッピングを含み得る。接続テーブル434を受信した後、スレーブノード420は、ステップ424において、接続テーブルに基づいて1つ又は複数の接続を確立又は再確立し得る。特に、ステップ4240において、スレーブノード420は、スレーブノード420自体とオンラインノードとの間における接続が既に確立されたか否かを確認し得る。まだ確立されていない場合、スレーブノード420は、例えばメソッド「nodeEnter(NodeInfo node)」を呼び出すために、そのオンラインノードのノード識別子とノードアドレスとに基づいて、スレーブノード420自体とオンラインノードとの間における接続を確立し得る。スレーブノードのプロトコルモジュールは、メソッド「nodeEnter(NodeInfo node)」が呼び出されたときに、ポート及びサービス構成により接続を確立するように構成され得る。
図4を参照すると、マスターノード410は、ステップ414において、各ノードの接続ステータスを監視するようにさらに構成され得る。一実施形態において、マスターノード410が所定の期間にわたってスレーブノードから接続制御メッセージを一切受信しなかった場合、マスターノード410は、例えば設定is Onlineがfalseに設定されるなど、スレーブノードのステータスをオフラインに設定する。ノードの接続ステータスがオフラインとなったことがステップ4140において検出された後、マスターノード410は、接続解除イベントを生成し、ステップ4142において、接続解除イベントに応答して、少なくとも1つの動作を実施する。例えば、スレーブがオフラインであるときには、支持体の移動は危険であり、できる限り迅速に停止されなければならない。
さらに、接続解除イベントは、他の手段により、例えば、物理的なリンクのステータスを監視することにより生成され得る。例えば、ZeroMQネットワークモニターは、アイドル状態のネットワークを十分に使用するために、ステップ4144において、ソケット接続を確認して、確立された接続の接続解除を検出したときに接続解除イベントを送信するために使用され得る。
ノードのプロトコルモジュール510−M、510−Sは、ネットワークを介してデータメッセージを送信及び受信するようにさらに構成される。いくつかの実施形態において、ノードのプロトコルモジュール510−M、510−Sは、次の2つのメソッド、すなわち「ireq ()」と「ipub ()」とのうちの1つによりデータメッセージを送信するように構成され得る。メソッド「ireq ()」は、応答を要求するメッセージを送信するために使用され、メソッド「ipub ()」は、1つ又は複数のノードにメッセージを送信するために使用され、応答は要求されない。データメッセージが受信された後、プロトコル層は、受信されたデータメッセージのデータフィールドをネットワークモジュール520に、及び、いくつかの実施形態において、ネットワークモジュール520のディスパッチャ521に送達する。
本発明の一実施形態によると、プロトコルモジュール510のインターフェースは、次のように規定される。
Figure 2019513445
図5を再度参照すると、ネットワークモジュール520は、ディスパッチャ521と複数のキュー523とコールバックモジュール522とメモリ524とを備える。メモリ524は、メッセージ識別子と複数のキューとの間の第1のマッピングと、メッセージ識別子MsgIDとコールバックハンドラとの間の第2のマッピングとを記憶する。ディスパッチャ521は、メッセージ識別子MsgIDと第1のマッピングとに基づいて、複数のキュー523のうちの1つにデータメッセージをディスパッチするように構成され、コールバックモジュール522は、第2のマッピングに基づいて、複数のキューの各々にあるデータメッセージを処理するように構成される。各コールバックハンドラは、サービスモジュールにおけるメッセージハンドラに向けられる。複数のキュー523が、初期化中に生成され得、及び/又は、動的に生成され得る。いくつかの実施形態によれば、キューとメッセージ識別子との間のマッピングは、1対1の又は1対多であり得、コールバックハンドラとメッセージ識別子との間のマッピングは、1対1である。
本発明の一実施形態によれば、ディスパッチャ521の疑似コードは、次のように説明され得る。
Figure 2019513445
いくつかの実施形態に従って、1つ又は複数のメッセージ識別子は、複数のキューのうちの1つにマッピングされる。言い換えると、1つ又は複数の種類のデータメッセージがメッセージグループにグループ化され、同じメッセージグループのデータメッセージが同じキューにディスパッチされる。表1は、例示的な第1のマッピングを示す。5つのメッセージグループが表1に示されるが、他の実施形態においては必要に応じてより多くの又はより少ないメッセージグループが規定され得る。
Figure 2019513445
1つのメッセージグループ「移動コマンド」は、例えば、ガントリーの目標傾倒角度を伝達するための種類のメッセージ、対象者支持体の目標水平位置及び/又は目標垂直位置を伝達するための種類のメッセージなどを含む、移動コマンドを伝達する種類のメッセージのためのものである。このグループ内のすべてのメッセージが、キュー「movement_cmd」にディスパッチされる。1つのメッセージグループ「位置フィードバック」は、例えば、現在の傾倒角度などのガントリー104の現在位置を伝達するための種類のメッセージ、対象者支持体108の現在位置を伝達するための種類のメッセージなどを含む、位置フィードバックを伝達する種類のメッセージのためのものである。このグループ内のすべてのメッセージは、キュー「movement_pf」にディスパッチされる。1つのメッセージグループ「ECGデータ」は、ECGデータを伝達する種類のメッセージである。このグループ内のすべてのメッセージは、キュー「movement_ecg」にディスパッチされる。1つのメッセージグループ「ワークフローコマンド」は、例えば、患者登録簿のための種類のメッセージ、配向選択のための種類のメッセージ、検査カード選択のための種類のメッセージなどを含む、ワークフローコマンドを伝達する種類のメッセージである。このグループ内のすべてのメッセージは、キュー「workflow_wf」にディスパッチされる。1つのメッセージグループ「患者リスト」は、患者リストを伝達する種類のメッセージのためのものである。このグループ内のすべてのメッセージは、キュー「workflow_patient list」にディスパッチされる。
異なるキューは、異なるスケジューリング技法、異なるキューイング/デキューイングポリシー、及び/又は異なる数のスレッドを使用してもよい。一実施形態において、キュー「movement_pf」の場合、キュー内のメッセージは、リアルタイムで取り扱われる。すなわち、コールバックモジュール522は、対応するコールバックハンドラを呼び出して、リアルタイムでメッセージを取り扱う。しかし、最新のメッセージが最も新しく更新された位置フィードバックを伝達するので、最新のメッセージのみが取り扱われることを必要とするのに対して、以前のものはドロップされ得る。一実施形態において、キュー「movement_ecg」の場合、キュー内のメッセージは、リアルタイムで逐次取り扱われ、ECGデータの完全な集合が要求されるので、どのメッセージもドロップされない。一例において、ドロップされるメッセージは、ネットワークモジュールによりドロップされ、代替的には、ドロップされるメッセージは、サービス層又はアプリケーション層に渡されて、次にそこでドロップされ得る。一実施形態において、キュー「movement_ms」及びキュー「workflow_wf」の各々の場合、メッセージは、メッセージ間のコンフリクトを避けるために、単一のスレッドにより同期された手法で取り扱われることを必要とする。例えば、対象者支持体を水平に動かすことなどの移動コマンドが、同じ種類の移動コマンドが実行されているときに来た場合、後のコマンドは、以前のコマンドが完了となるまで実行されない。一実施形態において、キュー「workflow_patient list」の場合、データの量が大きく、メッセージが取り扱いに比較的長い時間を必要とするので、メッセージは他の種類のメッセージと共有されずに別々のタスクキュー内で取り扱われる。
ネットワークモジュール520は、レジスタ525をさらに備え得る。レジスタ525は、メッセージ識別子MsgIDと、メッセージ識別子をもつデータメッセージが経路設定される先となる複数のキューのうちの1つを示すためのキューアイデンティティ値と、メッセージ識別子をもつデータメッセージを取り扱うためのメッセージハンドラに向けられたコールバックハンドラとをサービスモジュールから受信するように、及び、受信されたメッセージ識別子とキューアイデンティティ値とコールバックハンドラとに基づいて、第1のマッピングと第2のマッピングとを更新するように構成される。特に、メッセージ識別子とキューアイデンティティ値との間のマッピングを生成するために、第1のマッピング内に新しいエントリーが生成され得、メッセージ識別子とコールバックハンドラとの間のマッピングを生成するために、第2のマッピング内に新しいエントリーが生成され得る。複数のキュー523が動的に生成され得るいくつかの実施形態において、レジスタユニット525は、受信されたキュー名をもつキューが存在するか否かを確認し、存在しない場合は、受信されたキュー名をもつキューを生成するようにさらに構成され得る。
本発明の一実施形態によると、レジスタ525の疑似コードは、次のように説明され得る。
Figure 2019513445
いくつかの実施形態において、レジスタ525は、キューのためのスレッドプールの数を設定するようにさらに構成される。一例において、キュー内のデータメッセージが同期して取り扱える場合、キューのためのスレッドプールの数は1に設定され得る。別の一例において、キュー内のデータメッセージが非同期で取り扱える場合、キューのためのスレッドプールの数は2以上に設定され得る。この場合、レジスタ525は、例えば、次のメソッドにより、キューに割り当てられたスレッドプールの数を示すための値をサービスモジュール530から受信するようにさらに構成される。
void register(int msgID, String queueName, int threadNumber, INetBasisCallback callback);
ネットワークモジュール520は、アンレジスタ526をさらに備え得る。アンレジスタ526は、メッセージ識別子MsgIDをサービスモジュールから受信するように、及び、受信されたメッセージ識別子に基づいて、第1のマッピングと第2のマッピングとを更新するように構成される。特に、受信されたメッセージ識別子に関係するマッピングは、第1マッピングと第2のマッピングとから除去される。レジスタ525を呼び出すことにより、サービスモジュールは、対象のメッセージを追加し得、アンレジスタ526を呼び出すことにより、サービスモジュールは、もはや対象とならないメッセージを除去し得る。従って、サービスモジュールは、いずれのソースコードも変化させる必要なく、その対象のメッセージを動的に変更することができる。
本発明の一実施形態に従った、アンレジスタ526の疑似コードは、次のように説明され得る。
Figure 2019513445
図7は、本発明の一実施形態に従った例示的なネットワークモジュール720及び例示的なプロトコルモジュール710のアーキテクチャを示す。図7を参照すると、下から上に向かう方向において、ネットワークモジュール720が下層すなわちプロトコル層710からメッセージを受信し、受信されたメッセージをディスパッチし、次に、受信されたメッセージを、コールバックハンドラを介してより高い層すなわちサービス層により取り扱われるように渡す。上から下に向かう方向において、ネットワークモジュール720がより高い層からメッセージを、すなわちサービス層から、他のノードに送信される様々な種類のメッセージを受信し、プロトコル層710にこれらのメッセージを送信する。サービス層から受信されたメッセージは、iSession、iNetwork、PB(ビーム位置決め、position beam)、BL(ビーム制限、beam limitation)などの、様々なサービスのためのメッセージを含む。
本発明の一実施形態によると、ネットワークモジュールのインターフェースは、次のように規定され得る。
Figure 2019513445
図5を再度参照すると、ノード500は、少なくとも1つのサービスモジュール530−1、…、530−nを備える。各サービスモジュールは、データメッセージのペイロードを取り扱うための少なくとも1つのメッセージハンドラ532を備える。各メッセージハンドラ532は、メッセージハンドラ532のエンターアドレスに向けられた対応するコールバックハンドラによりネットワークモジュールにより呼び出され得る。
図8は、本発明の一実施形態に従った少なくとも1つのサービスモジュールを備える例示的なサービス層800のアーキテクチャを示す。2つのサービスモジュール、すなわちワークフローサービスのための1つのサービスモジュール810と、移動サービスのための他方のサービスモジュール820とが図8に示されるが、より多くの又はより少ないサービスモジュールが構成に使用され得る。一実施形態によると、サービスモジュールは、Androidにおける遠隔サービスコンポーネント、或いは、Microsoft Windows又は任意の他の適切なオペレーティングシステムにおけるCOMコンポーネントを介して実施され得る。
いくつかの実施形態において、サービスモジュールは、単一のサービスのメッセージを取り扱うように、又は複数のサービスのメッセージを取り扱うように構成され得る。例えば、ビーム位置を制御するためのサービス、及びビーム制限のためのサービスは両方とも同じノード、すなわちガントリーホストにより提供され、したがって、これらの2つのサービスのためのメッセージは、1つのサービスモジュールにおいて取り扱われるように設計され得る。
いくつかの実施形態において、サービスは、1つのノードにより提供又は実行されるが、2つ以上のノードによりアクセスされ得る。例えば、走査フローを制御するためのサービスは、コンソールにより提供されるが、左パネル、右パネル、及び操作ボックスなどの異なるノードによりアクセスされ得る。同じサービスにアクセスするための異なるノードのサービスモジュールは、同じであり得るか、又は異なり得る。一実施形態において、同じサービスにアクセスするための異なるノードのサービスモジュール間において、メッセージIDテーブルは同じであり得、日付型は同じであり得るが、同じ種類のメッセージを取り扱うためのメッセージハンドラは異なり得る。
サービスモジュールのメッセージハンドラは、メッセージを処理することと、アプリケーション層などの上層にメッセージを渡すこととを担う。いくつかの実施形態において、メッセージハンドラは、1つのメッセージをアプリケーション層における2つ以上のアプリケーションに渡すように構成され得る。
図10は、本発明の一実施形態に従ったガントリーホスト又はコンソールなどの、サービスを提供するための例示的なノードのソフトウェアアーキテクチャを示す。示されるアーキテクチャは、プロトコル、ネットワーク、並びにサービス層1010及びアプリケーション層1020を備える。アプリケーション層1020は、サービスを提供するためのビジネスプラットフォーム1024と、他のノードがその提供されるサービスにアクセスすることを可能にするプラグイン1022とを備える。
いくつかの実施形態において、複数のノードのうちのいくつかは、コンソール及びガントリーホストなどのサービスを提供するように構成される(以下、ビジネスノードと呼ばれる)。ビジネスノードは主に、応答サーバ及びパブリッシュサーバとして機能する。図10を参照すると、ビジネスノードの場合、ビジネスノードは、主にインターフェース「res ()」を介してメッセージを受信し、インターフェース「pub ()」を介してメッセージを送信する。応答サーバは、マルチワーカーモードにより実施されなければならず、サービスプロバイダーは、対象のコマンドを記録し、対象のコマンドを並列に取り扱う。
図10を参照すると、プラグイン1022は、コマンドハンドラ、状態機械、いくつかのステータステーブル、ステータスモニター、及びデータパブリッシャを備え得る。
異なるノードのためのステータステーブルは異なり得る。例えば、移動制御サービスを提供するガントリーホストにおいて、ステータステーブルは、移動軸のためのステータス値、接続のためのステータス値、及び/又は、位置フィードバックのためのステータス値を含み得る。例えば、ワークフローサービスを提供するコンソールでは、ステータステーブルは、走査フローのためのステータス値を含み得る。
モニターは、タイマーを始動させて、3秒ごとなどの所定の時間間隔にわたってそのスレーブノードに対するすべてのステータステーブルを更新するスレッドである。ガントリーホストにおいて、モニターは、物理的な接続のオンラインステータスを確認するように、及び、特定の接続がオフラインになった場合、進行中の移動を停止するようにさらに構成され得る。コンソールにおいて、モニターは、プロシージャデータが適時にパブリッシュされることを確実にし得る。
本明細書において説明される技術的な処理は、様々な手段により実施される。例えば、これらの技術は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにおいて実施される。ハードウェアにより実施する場合、処理ユニットは、1つ又は複数の特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、デジタル信号処理デバイス(DSPD:digital signal processing device)、プログラム可能論理デバイス(PLD:programmable logic device)、フィールドプログラム可能ゲートアレイ(FPGA:field programmable gate array)、プロセッサ、制御装置、マイクロ制御装置、マイクロプロセッサ、本明細書において説明される機能を実施するように設計された他の電子ユニット、又はそれらの組み合わせにおいて実施される。ソフトウェアを使用する場合、実施は本明細書において説明される機能を実施するモジュール(例えば、プロシージャ、関数など)を通して行われ得る。ソフトウェアコードは、メモリユニットに記憶され、プロセッサにより実行される。
さらに、請求項に記載された主題の態様は、請求項に記載された主題の様々な態様を実施するためのコンピュータ又はコンピューティングコンポーネントを制御するためのソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせを製造するための標準的なプログラミング及び/又はエンジニアリング技術を使用した方法、装置、システム、又は製品として実装される。本明細書において使用される「製品」という用語は、任意のコンピュータ可読デバイス、キャリア、又は媒体からアクセス可能なコンピュータプログラムを包含するように意図される。例えば、コンピュータ可読媒体は、限定されないが、磁気記憶デバイス(例えば、ハードディスク、フロッピーディスク、磁気ストリップ…)、光ディスク(例えば、コンパクトディスク(CD:compact disk)、デジタル多用途ディスク(DVD:digital versatile disk)…)、スマートカード、及びフラッシュメモリデバイス(例えば、カード、スタック、キードライブ…)を含み得る。もちろん、当業者は、本明細書において説明される範囲又は趣旨から逸脱することなく、この構成に多くの変形がなされることを認識する。
本出願において使用される場合、プロトコルモジュール、ネットワークモジュール、サービスモジュール、コールバックモジュール、接続モジュール、接続解除イベントハンドリングモジュールなどの「モジュール」、「ディスパッチャ」、「キュー」、「レジスタ」、「アンレジスタ」、「剪断波ディテクター」などの「推定器」、「性質推定器」及び「撮像符号化器」という用語は、プロセッサ又はコンピュータに関係するエンティティ、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は実行中のソフトウェアを表すことが意図されるが、特に、それらの用語は、ソフトウェア、又は実行中のソフトウェアを表す。例えば、コンポーネントは、限定されないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、エグゼキュータブル、実行のスレッド、プログラム、及び/又はコンピュータである。例示として、サーバ上で動作するアプリケーションとサーバとの両方が、コンポーネントであり得る。1つ又は複数のコンポーネントは、実行のプロセス及び/又はスレッド内に存在し、コンポーネントは、1つのコンピュータに局在するか、及び/又は、2つ以上のコンピュータ間に分散される。
ここまでに説明されていることは、1つ又は複数の実施形態の例を含む、もちろん、前述の実施形態を説明することを目的としてコンポーネント又は方法の考えられるすべての組み合わせを説明することは不可能であるが、当業者は様々な実施形態の多くのさらなる組み合わせ及び順列が可能であることを認識する。従って、説明される実施形態は、添付の請求項の趣旨及び範囲内に入るすべてのこのような代替例、変更例、及び変形例を包含することが意図される。さらに、「含む」という用語が詳細な説明又は特許請求の範囲において使用される限りにおいて、「含む」という用語は、請求項において移行句として使用されるときに「備える」が解釈されるのと同様に、「備える」という用語と同様の手法で非排他的であることが意図される。

Claims (15)

  1. 撮像システムにおける複数のノードのうちのノードであって、前記撮像システムは、前記撮像システムにおける前記複数のノード間における通信のためのネットワークを備え、前記ノードは、
    前記ネットワークを介してデータメッセージを受信するためのプロトコルモジュールと、
    前記プロトコルモジュールから前記データメッセージのデータフィールドを受信するためのネットワークモジュールと、
    少なくとも1つのサービスモジュールと、を備え、
    前記データフィールドは、前記データメッセージの種類を示すメッセージ識別子と、ペイロードフィールドとを備え、
    各サービスモジュールは、前記データメッセージのペイロードを取り扱う少なくとも1つのメッセージハンドラを備え、
    前記ネットワークモジュールは、ディスパッチャと、複数のキューと、コールバックモジュールと、前記メッセージ識別子と前記複数のキューとの間の第1のマッピング及び前記メッセージ識別子とコールバックハンドラとの間の第2のマッピングを記憶するためのメモリと、を備え、
    前記ディスパッチャは、前記メッセージ識別子と前記第1のマッピングとに基づいて前記複数のキューのうちの1つに前記データメッセージをディスパッチし、
    前記コールバックモジュールは、前記第2のマッピングに基づいて前記複数のキューの各々にある前記データメッセージを処理し、前記各コールバックハンドラは、前記サービスモジュールにおける前記メッセージハンドラに向けられる、
    ノード。
  2. 前記ネットワークモジュールは、
    前記メッセージ識別子と、前記メッセージ識別子をもつ前記データメッセージがディスパッチされる先となる前記複数のキューのうちの1つを示すためのキューアイデンティティ値と、前記メッセージ識別子をもつ前記データメッセージを取り扱うための前記サービスモジュールの前記メッセージハンドラに向けられた前記コールバックハンドラとを前記サービスモジュールから受信し、
    受信された前記メッセージ識別子、受信された前記キューアイデンティティ値、及び受信された前記コールバックハンドラに基づいて、前記第1のマッピングと前記第2のマッピングとを更新する、
    レジスタをさらに備える、請求項1に記載のノード。
  3. 前記サービスモジュールは、さらに、前記メッセージ識別子と、前記メッセージ識別子をもつ前記データメッセージがディスパッチされる先となる前記複数のキューのうちの1つを示すための前記キューアイデンティティ値と、コンフィギュレーションデータに基づいて、前記メッセージ識別子をもつ前記データメッセージを取り扱うための前記サービスモジュールの前記メッセージハンドラに向けられた前記コールバックハンドラとを生成する、請求項2に記載のノード。
  4. 前記ネットワークモジュールは、さらに、
    前記メッセージ識別子を前記サービスモジュールのために受信し、
    前記受信されたメッセージ識別子に対応した前記マッピングを除去することにより、前記受信されたメッセージ識別子に基づいて前記第1のマッピングと前記第2のマッピングとを更新する、
    アンレジスタを備える、請求項2に記載のノード。
  5. 前記複数のキューは、第1のキューと第2のキューとを備え、前記第1のキューに割り当てられるスレッドの数は、前記第2のキューに割り当てられるスレッドの数と異なる、請求項1に記載のノード。
  6. 前記サービスモジュールは、さらに、前記複数のキューのうちのキューに割り当てられたスレッドの数を示すための値を前記ネットワークモジュールに送信する、請求項5に記載のノード。
  7. 前記1つ又は複数のメッセージ識別子が、前記複数のキューのうちの1つにマッピングされる、請求項1に記載のノード。
  8. 前記ネットワークモジュールは、前記データフィールドとノード識別子とを前記プロトコルモジュールに送信し、前記ノード識別子は、前記データフィールドが送信される先の1つ又は複数のノードを示し、
    前記プロトコルモジュールは、前記データフィールドと前記ノード識別子とに基づいて、前記データメッセージを生成する、
    請求項1に記載のノード。
  9. 前記複数のノードが、マスターノードと少なくとも1つのスレーブノードとを備え、
    前記ノードの前記プロトコルモジュールは、接続モジュールとメモリとを備え、
    前記マスターノードの前記メモリは、前記1つ又は複数のノードの接続情報を記憶し、前記ノードの前記接続情報は、前記ノードのノード識別子とノードアドレスと接続ステータスとを含み、
    前記マスターノードの前記接続モジュールは、接続制御メッセージを前記ノードから受信し、前記接続制御メッセージは、
    前記ノードの前記ノードアドレスであって、ネットワーク内で固有であり、動的に規定される前記ノードアドレスと、
    前記ノードの前記ノード識別子であって、前記ネットワーク内で固有である、前記ノードの前記ノード識別子とを含み、
    前記マスターノードの前記接続モジュールは、前記受信された接続制御メッセージに基づいて前記接続情報を更新するように、及び、前記接続情報に基づいて接続テーブルをさらに送信し、前記接続テーブルは、前記ノード識別子と前記ノードアドレスとの間のマッピングを示す、
    請求項1に記載のノード。
  10. 前記マスターノードはガントリーホストである、請求項9に記載のノード。
  11. 前記マスターノードの前記プロトコルモジュールは、接続解除イベントハンドリングモジュールをさらに備え、
    前記マスターノードの前記接続モジュールは、さらに、前記ノードの前記接続ステータスが記憶された前記接続情報に基づいて接続解除状態になったときに、接続解除イベントを生成し、前記接続解除イベントハンドリングモジュールに前記接続解除イベントを送信し、
    前記マスターノードの前記メモリは、前記接続解除イベントと少なくとも1つの動作との間の第3のマッピングをさらに記憶し、
    前記接続解除イベントハンドリングモジュールは、前記接続解除イベントを受信し、前記第3のマッピングに基づいて、前記接続解除イベントに応答して少なくとも1つの動作を実施する、
    請求項9に記載のノード。
  12. 前記スレーブノードの前記接続モジュールは、接続制御メッセージを送信し、
    前記スレーブノードの前記接続モジュールは、前記接続テーブルを前記マスターノードから受信し、前記接続テーブルに基づいて前記1つ又は複数のノードの各々への接続をさらに確立する、
    請求項9に記載のノード。
  13. 前記プロトコルモジュールはクロスプラットフォームである、請求項1に記載のノード。
  14. 請求項1に記載の複数のノードと、
    前記複数のノード間における通信のためのネットワークとを備える、
    撮像システム。
  15. 実行されたときに、ネットワークを通じて撮像システム内の複数のノード間における通信の方法を実施するコンピュータプログラム命令を備えるコンピュータ製品であって、前記方法は、
    プロトコル層において、
    前記ネットワークを介してデータメッセージを受信するステップと、
    ネットワーク層において、
    前記データメッセージのデータフィールドを受信するステップであって、前記データフィールドが、メッセージの種類を示すためのメッセージ識別子とペイロードフィールドとを備える、ステップと、
    前記メッセージ識別子と、前記メッセージ識別子と前記複数のキューとの間の第1のマッピングとに基づいて、複数のキューのうちの1つに前記データメッセージをディスパッチするステップと、
    前記メッセージ識別子とコールバックハンドラとの間の第2のマッピングに基づいて、前記複数のキューの各々にある前記データメッセージを処理するステップであって、前記各コールバックハンドラが、前記データメッセージのペイロードを取り扱うためにサービス層のメッセージハンドラに向けられる、ステップと、
    前記サービス層において、
    前記データメッセージの前記ペイロードを取り扱うステップとを有する、
    コンピュータ製品。
JP2018551278A 2016-03-31 2017-03-27 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム Active JP6980689B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN2016077979 2016-03-31
CNPCT/CN2016/077979 2016-03-31
EP16173298.7 2016-06-07
EP16173298 2016-06-07
PCT/EP2017/057162 WO2017167674A1 (en) 2016-03-31 2017-03-27 An imaging system and a communication platform for communication among a plurality of nodes of the imaging system

Publications (2)

Publication Number Publication Date
JP2019513445A true JP2019513445A (ja) 2019-05-30
JP6980689B2 JP6980689B2 (ja) 2021-12-15

Family

ID=58387845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018551278A Active JP6980689B2 (ja) 2016-03-31 2017-03-27 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム

Country Status (6)

Country Link
US (1) US10904318B2 (ja)
EP (1) EP3436993B1 (ja)
JP (1) JP6980689B2 (ja)
CN (1) CN108885900B (ja)
RU (1) RU2018138001A (ja)
WO (1) WO2017167674A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405271B2 (en) * 2017-12-06 2022-08-02 Honor Device Co., Ltd. Method for reducing power consumption and device
JP7245083B2 (ja) * 2019-03-12 2023-03-23 キヤノン株式会社 放射線撮影システム及び放射線撮影システムの制御方法
JP7313164B2 (ja) 2019-03-12 2023-07-24 キヤノン株式会社 放射線撮影システム及び放射線撮影システムの制御方法
CN111371596B (zh) * 2020-02-25 2022-07-05 中国航空无线电电子研究所 基于fc-ae总线的数据分发服务软件
CN114257559B (zh) * 2021-12-20 2023-08-18 锐捷网络股份有限公司 一种数据报文的转发方法及装置
CN116779112A (zh) * 2023-08-25 2023-09-19 神州医疗科技股份有限公司 一种基于com组件的医学影像处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050232291A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Mechanism for validating the message format for message channels
JP2007174666A (ja) * 2005-12-22 2007-07-05 Intuitive Surgical Inc マルチ優先度メッセージング
JP2010004310A (ja) * 2008-06-20 2010-01-07 Alaxala Networks Corp パケット中継装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764955A (en) * 1995-10-19 1998-06-09 Oasys Group, Inc. Gateway for using legacy telecommunications network element equipment with a common management information protocol
US7720910B2 (en) 2002-07-26 2010-05-18 International Business Machines Corporation Interactive filtering electronic messages received from a publication/subscription service
US9730100B2 (en) * 2002-10-28 2017-08-08 MeshDynamics Terse message networks
US7293038B2 (en) 2003-02-25 2007-11-06 Bea Systems, Inc. Systems and methods for client-side filtering of subscribed messages
US7200676B2 (en) * 2003-03-26 2007-04-03 Microsoft Corporation Transmitting and receiving messages through a customizable communication channel and programming model
US7698369B2 (en) * 2004-05-27 2010-04-13 Strongmail Systems, Inc. Email delivery system using metadata on emails to manage virtual storage
US20070268903A1 (en) * 2006-05-22 2007-11-22 Fujitsu Limited System and Method for Assigning Packets to Output Queues
WO2008147567A1 (en) 2007-05-25 2008-12-04 The Charles Stark Draper Laboratory, Inc. Integration and control of medical devices in a clinical environment
US9712498B2 (en) * 2009-10-14 2017-07-18 Trice Imaging, Inc. Systems and devices for encrypting, converting and interacting with medical images
US20110235630A1 (en) * 2010-03-23 2011-09-29 Jie Hui Techniques for prioritizing traffic
US8793691B2 (en) * 2010-04-15 2014-07-29 Salesforce.Com, Inc. Managing and forwarding tasks to handler for processing using a message queue
CN103229212A (zh) 2010-11-30 2013-07-31 皇家飞利浦电子股份有限公司 具有基于恒定方差的加权因子的迭代重建算法
US9240950B2 (en) * 2011-03-23 2016-01-19 Hughes Network Systems, Llc System and method for providing quality of service over dedicated local loop networks
US9183064B2 (en) 2011-12-30 2015-11-10 General Electric Company Intelligent mediation of messages in a healthcare product integration platform
US9092282B1 (en) 2012-08-14 2015-07-28 Sprint Communications Company L.P. Channel optimization in a messaging-middleware environment
WO2014100311A1 (en) * 2012-12-21 2014-06-26 Volcano Corporation Adaptive interface for a medical imaging system
US10257287B2 (en) 2013-08-28 2019-04-09 Physio-Control, Inc. Real-time data distribution system for patient monitoring devices, cardiac defibrillators and associated information delivery systems
US9571412B2 (en) * 2014-11-21 2017-02-14 Cavium, Inc. Systems and methods for hardware accelerated timer implementation for openflow protocol
US10148575B2 (en) * 2014-12-22 2018-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive load balancing in packet processing
US9894013B2 (en) * 2015-02-03 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Early queueing network device
US10333846B2 (en) * 2016-02-19 2019-06-25 Citrix Systems, Inc. Systems and methods for routing network packets between multi-core intermediaries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050232291A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Mechanism for validating the message format for message channels
JP2007174666A (ja) * 2005-12-22 2007-07-05 Intuitive Surgical Inc マルチ優先度メッセージング
JP2010004310A (ja) * 2008-06-20 2010-01-07 Alaxala Networks Corp パケット中継装置

Also Published As

Publication number Publication date
WO2017167674A1 (en) 2017-10-05
JP6980689B2 (ja) 2021-12-15
EP3436993B1 (en) 2023-07-05
CN108885900A (zh) 2018-11-23
EP3436993A1 (en) 2019-02-06
US20190098074A1 (en) 2019-03-28
US10904318B2 (en) 2021-01-26
RU2018138001A (ru) 2020-04-30
CN108885900B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
JP6980689B2 (ja) 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム
CN105051698B (zh) 用于基础设施即服务云中故障管理的方法和布置
AU2014235300B2 (en) Multi-layered storage administration for flexible placement of data
CN102202078B (zh) 一种用于配置服务器场的多个异类角色的方法和系统
US8165426B2 (en) Workflow-based management of medical image data
US20130018693A1 (en) Dynamically Allocating Business Workflows
US20120221728A1 (en) Administering Medical Digital Images With Intelligent Analytic Execution Of Workflows
US20120221346A1 (en) Administering Medical Digital Images In A Distributed Medical Digital Image Computing Environment
CN108322325B (zh) 一种虚拟机管理方法及装置
US20130097456A1 (en) Managing Failover Operations On A Cluster Of Computers
US20130096951A1 (en) Business transaction capture and replay with long term request persistence
US20120221354A1 (en) Administering Medical Digital Images In A Distributed Medical Digital Image Computing Environment With Medical Image Caching
US10474491B2 (en) Method and apparatus for managing cloud server in cloud environment
JP2002219122A (ja) 医学システムアーキテクチャ
US20150195128A1 (en) Apparatus and method for supporting configuration management of virtual machine, and apparatus and method for brokering cloud service using the configuration management supporting apparatus
US9342369B2 (en) System and method for increasing throughput of a PaaS system
US20190079896A1 (en) Virtualizing connection management for virtual remote direct memory access (rdma) devices
US9832137B1 (en) Provisioning system and method for a distributed computing environment using a map reduce process
US9742840B2 (en) Integration of user interfaces for different physically distributed medical applications
US8914485B2 (en) Methods and apparatus for in-process client-side context managers
CA2978231A1 (en) Methods and systems for requesting access to limited service instances
JP5715880B2 (ja) 医用情報処理システム
Ranganath et al. Communication patterns for interconnecting and composing medical systems
US8650308B2 (en) Methods and apparatus for client-side context managers
CN111045778B (zh) 一种虚拟机的创建方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211019

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211117

R150 Certificate of patent or registration of utility model

Ref document number: 6980689

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150