(57)【要約】【課題】医療装置製造業者が、プロプライエタリ情報を共有する必要なく、相互運用性を求めるエンドユーザのニーズを満たす。【解決手段】インターフェイス装置が、ファーストパーティ医療装置に対して1つまたは複数のリンクを実現するように構成され、ファーストパーティ医療装置はそれぞれ、プロプライエタリプロトコルを用いて通信する。このインターフェイス装置は、プロプライエタリプロトコルと、第2のリンクを介してインターフェイス装置にアクセス可能な第2のプロトコルとの間で翻訳することができる。サードパーティ医療装置を、第2のリンクを介してインターフェイス装置に接続するように構成するために、第2のプロトコルの詳細をサードパーティに供給することができる。【選択図】図４
2015222588.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
メモリと、
それぞれが医療装置の対応するデータインターフェイスに接続するように構成された複数の第1のハードウェア接続ポートと、
サードパーティ装置に接続するように構成された少なくとも1つの第2のハードウェアポートと
を備える装置であって、
前記第1のハードウェア接続ポートを介して、前記医療装置の1つまたは複数と通信するために使用される少なくとも1つのファーストパーティ通信プロトコルを認識し、
前記第2のハードウェアポートを介して、前記サードパーティ装置と通信するために使用される第2の通信プロトコルを認識し、
前記少なくとも1つのファーストパーティ通信プロトコルのそれぞれからデータを同時に受信し、
前記医療装置のそれぞれによって返送されたデータを前記メモリに記憶し、
前記データを前記サードパーティ装置に供給するように、前記プロセッサを構成するプログラム命令を、前記メモリが含み、
前記第2の通信プロトコルが、前記少なくとも1つのファーストパーティ通信プロトコルとは異なる、装置。
【請求項２】
前記第2の通信プロトコルに従って前記サードパーティ装置から、前記医療装置の少なくとも1つ向けのコマンドを識別するデータを受信し、
前記コマンドを識別する前記データをメモリに記憶し、
記憶した前記データに基づき、前記少なくとも1つのファーストパーティ通信プロトコルに従って、前記医療装置の少なくとも1つにコマンドを供給する
ように、前記プログラム命令が前記プロセッサを構成する、請求項1に記載の装置。
【請求項３】
前記サードパーティ装置とのネットワークソケット接続を確立し、
ネットワークポートを、接続されている各医療装置と関連付け、
前記ネットワークポートに関連付けられた前記医療装置からのデータであって、前記第2の通信プロトコルに従い、前記医療装置に関連付けられた前記ネットワークポートを用いて返送されるデータを供給する
ように、前記プログラム命令が前記プロセッサを構成する、請求項1に記載の装置。
【請求項４】
前記サードパーティ装置とのネットワークソケット接続を確立し、
前記サードパーティ装置に対する前記接続の状態を監視するためにネットワークポートを割り当て、
前記割り当てられたネットワークポートを識別する要求が、タイムアウト期間内に受信されなかった場合、エラー状態に応答する
ように、前記プログラム命令が前記プロセッサを構成する、請求項1に記載の装置。
【請求項５】
前記ネットワークソケット接続がTCP/IPソケット接続であり、前記ネットワークポートがTCP/IPポートである、請求項3または4に記載の装置。
【請求項６】
それぞれが、前記第1のハードウェアポートのそれぞれのハードウェアポートに接続された複数の医療装置と、
前記少なくとも1つの第2のハードウェアポートに接続されたサードパーティ医療装置であって、前記第2のハードウェアポートを介して通信することによって、前記複数の医療装置にデータを供給すること、または前記複数の医療装置からデータを受信することの少なくとも一方を実施するように構成された、サードパーティ医療装置と
をさらに備え、
前記サードパーティ医療装置が、前記少なくとも1つのファーストパーティ通信プロトコルではなく、前記第2の通信プロトコルを用いて通信するように構成される、請求項1から4のいずれか一項に記載の装置。
【請求項７】
前記プロセッサが、複数のファーストパーティ通信プロトコルを認識するように構成され、前記複数のファーストパーティ通信プロトコルのそれぞれが、特定の医療装置に対応する、請求項1から4のいずれか一項に記載の装置。
【請求項８】
前記第1のハードウェア接続ポートの少なくともいくつかがシリアルポートを備え、前記第2のハードウェアポートがネットワーク接続ポートを備える、請求項1から4のいずれか一項に記載の装置。
【請求項９】
前記プロセッサが、第1のバスを用いて前記複数の第1のハードウェア接続ポートと通信し、第2のバスを用いて前記少なくとも1つの第2のハードウェアポートと通信するように構成される、請求項1から4のいずれか一項に記載の装置。
【請求項１０】
各医療装置は、それぞれのリンクを経由して前記プロセッサと通信するのみである、請求項1から9のいずれか一項に記載の装置。
【請求項１１】
前記リンクは、有線または無線リンクである、請求項10に記載の装置。
【請求項１２】
前記プロセッサは、各医療装置を周期的にポーリングするように構成されていて、前記メモリは、前記サードパーティ装置から要求を受信したときのために、各々のポーリングされた装置のためのキャッシュデータを記憶する、請求項1から11のいずれか一項に記載の装置。
【請求項１３】
前記プロセッサは、各医療装置から一方的更新を受信するように構成されている、請求項1から9のいずれか一項に記載の装置。
【請求項１４】
前記プロセッサは、一方的更新をサードパーティ装置に供給するように構成されている、請求項13に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、医療装置間での確実な相互運用のための方法およびシステムに関する。
【背景技術】
【０００２】
プロセッサベースの装置が急増し続けており、医療分野においても、この進行中の傾向は例外でない。例えば、医療処置には、1つまたは複数のプロセッサベースの医療装置の使用を伴うことがある。これらの医療装置には、それだけに限られるものではないが、手術器具、患者監視機器、および患者支援装置が含まれ得る。各装置のプロセッサは、装置の制御、データの収集および交換、ならびに他のタスクのために使用することができる。
【０００３】
処置に使用される医療装置は、単一の製造業者、または複数の異なる製造業者によって供給されることがある。いずれの場合にも、医療装置のエンドユーザは、ある製造業者からの装置を、別の製造業者の装置と相互連結させたい場合、選択が制限されることがある。特に、医療装置の各製造業者は、データの収集および交換のために独自の通信プロトコルを使用することがある。通常、これらのプロトコルの詳細は、プロプライエタリ(proprietary)である。自社の競争上の地位を保護し、高品質の動作を保証するために、製造業者がプロプライエタリ情報を競合者と共有したがらないのは無理からぬことである。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書にて論じる本発明の実施形態によって、医療装置製造業者が、プロプライエタリ情報を共有する必要なく、相互運用性を求めるエンドユーザのニーズを満たすことが可能となる。例示的な一実施形態では、インターフェイス装置が、ファーストパーティ医療装置に対して1つまたは複数のリンクを実現するように構成され、ファーストパーティ医療装置はそれぞれ、プロプライエタリプロトコルを用いて通信する。このインターフェイス装置は、プロプライエタリプロトコルと、第2のリンクを介してインターフェイス装置にアクセス可能な第2のプロトコルとの間で翻訳するように構成することができる。サードパーティ医療装置を、第2のリンクを介してインターフェイス装置に接続するように構成するために、第2のプロトコルの詳細をサードパーティに供給することができる。第2のリンクを使用すると、1つまたは複数のサードパーティ医療装置は、ファーストパーティ医療装置のプロプライエタリプロトコルに関するいかなる情報も有する必要なく、ファーストパーティ医療装置との間で情報を送受信することができる。
【０００５】
一実施形態では、ファーストパーティ医療装置は、複数の手術器具、および関連する支援機器であり、サードパーティ医療装置は、それらの手術器具および支援機器を監視し、制御するために使用される制御局である。手術器具および支援機器は、物理的なプロプライエタリ通信プロトコルを使用するそれぞれの接続を介してインターフェイス装置に接続することができる。例えば、一実施形態では、手術器具は、プロプライエタリシリアル通信プロトコルを使用する。インターフェイス装置は、ファーストパーティ装置向けのシリアルプロトコルと、イーサネット（登録商標）接続を介して制御局が利用可能な第2のプロトコルとの間で翻訳することができる。
【０００６】
例示的な方法は、インターフェイス装置を用い、第1のインターフェイスを介して第1の医療装置をポーリングし、また、第2のリンクを介して受信したサードパーティ装置からのクライアント要求用のサーバとして働かせる段階を含む。例えば、第2のリンクは、イーサネット（登録商標）または他のネットワークリンクを介して実現されるTCP/IPプロトコルスタックなどのネットワーク接続を備えることができる。インターフェイス装置は、各ファーストパーティ医療装置と、それぞれの第1のインターフェイスを介して通信することができ、一方そのインターフェイス装置自体は、第2のインターフェイスを介してサードパーティ装置と通信している。インターフェイス装置は、それぞれのファーストパーティ医療装置に対応するネットワークポート(TCP/IPポートなど)を用いて行われたクライアント要求に応答して、それぞれのファーストパーティ医療装置から利用可能なデータを作成することができる。別の例として、インターフェイス装置は、特定のファーストパーティ医療装置向けのコマンドおよび設定などのデータを受信することができ、その対象装置は、コマンドおよび設定がそこを介して供給されるポートに従って識別される。それに応答して、インターフェイス装置は、そのデータを対応するファーストパーティ装置プロトコルに変換し、第1のインターフェイスを介してそのデータを送信することができる。
【０００７】
上述の例示的な実施形態は、本発明の主題を限定、またはその範囲を規定するために言及するものではなく、本発明の主題の理解を助けるための例を示すものである。例示的な実施形態について、詳細な説明で論じ、そこでさらに説明する。本明細書を検討し、かつ/または特許請求する主題の1つまたは複数の実施形態を実施することによって、様々な実施形態から得られる利点をさらに理解することができよう。
【０００８】
本明細書の残る部分において、完全かつ実施可能な開示をより具体的に記載する。本明細書では、以下の添付の図を参照する。
【図面の簡単な説明】
【０００９】
【図１】例示的な医療装置の群を示す図である。
【図２】ファーストパーティ製造業者が、インターフェイス装置の実施形態を使用することによって、いかにして自社の装置を、サードパーティハードウェアを用いて動作させることが可能となるかを例示する図である。
【図３】インターフェイス装置によって実行される例示的な方法の諸段階を示す流れ図である。
【図４】ファーストパーティ医療装置、インターフェイス装置、およびサードパーティ装置間でのデータの交換を示すデータ流れ図である。
【図５Ａ】インターフェイス装置によって実行することができる例示的な処理方法を示す流れ図である。
【図５Ｂ】インターフェイス装置によって実行することができる例示的な処理方法を示す流れ図である。
【発明を実施するための形態】
【００１０】
次に、例示による様々な実施形態、および代替の実施形態、ならびに添付の図面を詳細に参照していく。各例は、説明のために示すものであり、限定として示すものではない。改変および変形を行うことが可能であることは当業者には明白であろう。例えば、一実施形態の一部として例示または説明している特徴を、別の実施形態に用いて、さらなる実施形態を生み出すことができる。したがって、この開示は、改変形態および変形形態も、添付の特許請求の範囲、およびそれらの均等物の範囲内に含まれるものとして含むものである。
【００１１】
以下の詳細な説明では、特許請求する主題の完全な理解が得られるように、数多くの具体的な詳細を記載している。しかし、特許請求する主題は、これらの具体的な詳細がなくとも実践できることが当業者には理解されよう。他の事例においては、特許請求する主題が分かりにくくならないように、当業者には既知であろう方法、装置、またはシステムについては詳細に説明していない。
【００１２】
図1は、例示的な医療装置の群100を示す図である。この例では、医療処置を受ける患者(図示せず)を支える台102または他の支持体が設けられている。例えば、関節鏡検査および内視鏡検査などの処置では、いくつかの医療装置を使用することがあるが、本発明の主題は、任意の種類の医療処置に使用される任意の種類の機器の例において使用できることが認識されよう。
【００１３】
この例では、複数の装置には、処置中にマイクロ波または他のエネルギーを組織に印加するために使用されるアブレーションプローブ104が含まれる。アブレーションプローブ104は、プロセッサによって制御されるエネルギー源106を含む。ドライバ110を伴うシェーバハンドピック108は、関節鏡視下手術および他の処置に用いて、骨または他の構造を削ぐことができ、電力およびトルクは、ユーザの入力に応答したプロセッサまたはマイクロコントローラによる指示に従って、ドライバ110により供給される。カメラシステム112、およびカメラヘッド114を、モニタ116とともに用いて、処置中に患者の解剖学的特徴を見ることができる。流体管理システム118を用いて、処置中に手術孔内の1つまたは複数の流体の容量を制御することができ、この制御は、システム118のプロセッサの動作によって指示される1つまたは複数のポンプ、弁などを使用することによって行う。
【００１４】
さらなる機器(図示せず)を用いて、処置中に患者の生命徴候を監視し、流体、呼吸などを与えることができる。こうした機器の一部または全てを、マイクロプロセッサ、マイクロコントローラ、および他の装置などのプロセッサによって制御することができる。医療装置は、1つまたは複数のマイクロプロセッサを特徴とすることができ、装置のアーキテクチャは限定されるものではない。
【００１５】
医療装置100は、データインターフェイスを介してデータを供給し、かつ/またはコマンドを受信するように設計することができる。例えば、装置同士を互いに、かつ/または制御システム120に連結して、データを供給する、コマンドを受信するなどを行うことができるように、これらの装置にシリアルポート、または他のポートを設けることができる。制御システム120は、様々な種類の装置を制御するように適合させることができるユーザインターフェイスを実現するように構成することができる。例えば、制御システム120は、コンピュータワークステーション、スタンドアロン装置、あるいはグラフィカルユーザインターフェースおよび/またはタッチインターフェイスを実現することができる他の何らかの種類の装置を備えることができる。別の例として、制御システム120は、マッピングして、インジケータライト、ダイアル、発光ダイオード(LED)出力などとともに装置に入力を供給し、装置からの出力を供給できるボタン、つまみ、スライダ、および他の機械的インターフェイスを特徴とすることができる。
【００１６】
上記のように、エンドユーザが、異なる製造業者によって供給された装置を使用したいときに、問題が生じることがある。具体的には、装置100はシリアルポート、または他の通信ポートを含み得るのに、ある製造業者からの装置が、他の製造業者には利用可能でないプロプライエタリプロトコルを用いて通信し得るということがある。例えば、装置104、106、108、110、112、114、116、および118の製造業者(「ファーストパーティ」製造業者)が、自社装置を、異なる製造業者(「サードパーティ」製造業者)によって供給された制御システム120を用いて動作させたい場合があるが、装置104〜118で使用する通信プロトコルの詳細を共有することができないということがあり得る。この例では、装置104〜118は全て、同じ製造業者によって供給されている。しかし、別の例として、装置104〜118のいくつかは、サードパーティ製造業者によって供給されたものでもよく、サードパーティ製造業者の制御システム120と直接相互連結させることができる。ユーザは、ファーストパーティ製造業者によって供給された少なくとも1つの装置を使用したい場合があり、インターフェイス装置122を使用すると、そのようにすることができる。
【００１７】
別の例として、ファーストパーティ製造業者は、別のパーティ(「フォースパーティ」)によって供給された装置を事実上供給することができ、ファーストパーティ製造業者は、相互運用の目的でフォースパーティ装置の制御プロトコルにアクセスすることができる。本明細書では、例示の目的で、「フォースパーティ」装置は、ファーストパーティ装置と同じとして扱うことができる。
【００１８】
図2は、ファーストパーティ製造業者が、いかにして自社の装置を、サードパーティハードウェアを用いて動作させることが可能となるかを例示する図である。この例では、インターフェイス装置122が、装置104〜118と、サードパーティ制御器120との間のブリッジとなるように設けられている。インターフェイス装置122は、リンク126、128、130、および132をそれぞれ介して装置106、110、112、および118の対応するデータインターフェイスに接続するように構成された複数の第1のハードウェア接続ポート124を特徴とする。インターフェイス装置122はまた、サードパーティ制御器120へのリンク136を実現する第2のハードウェア接続ポート134を特徴とする。この例では、装置104、108、114、および116は、それぞれのベースユニットに連結され、インターフェイス装置122に独立に連結されてはいないが、特定の装置群、および装置間のデータ流れの構成が、単なる例示の目的で示されていることが理解されよう。諸実施形態には、この例で示す個数よりも多数の、または少数のハードウェア接続ポート124の使用が含まれる。
【００１９】
インターフェイス装置122は、プロセッサ138、およびメモリ140を備える。メモリ140は、プロセッサ138によって実行して、装置104〜118で使用する1つまたは複数のプロトコルと、装置120で使用するプロトコルとの間で翻訳することができるプログラム命令142を含む。データ144は、装置104〜118の1つまたは複数から受信したデータ、装置120から受信したデータ、インターフェイス装置122の作業データ、および/または装置104〜120の1つまたは複数に送信すべきデータを表す。プロセッサ138は、それだけに限られるものではないが、マイクロプロセッサ、マイクロコントローラなどを含む適切な任意の処理装置を備えることができる。
【００２０】
一実施形態では、プロセッサ138は、第1のバス146にアクセスし、ハードウェア接続ポート124を介してデータを送受信することができ、一方、第2のバス148を用い、ハードウェア接続ポート134を介してデータを送受信することができるマルチタスクプロセッサを備える。ポート134は、例えば、RJ45ポートを備え、プロセッサ138をイーサネット（登録商標）(IEEE 802.3)ネットワークインターフェイスを実現するように構成することができるが、いくつかの実施形態では、ネットワーク制御器などのコプロセッサを用いて、ネットワークインターフェイスを管理することもできる。RJ45ポートに加えて、またはその代わりに、他の実施形態では、適切な任意のシリアルまたは無線インターフェイスを使用することができる。
【００２１】
各ポート124は、その対応する医療装置に対して適切な物理的リンクを実現するように構成することができる。本明細書では、全てのポートを「ポート124」として示しているが、ポート124として標示した様々な事例の構成(例えば物理的コネクタの個数および種類)を変えることができることが理解されよう。例えば、ファーストパーティ製造業者および/または特定の装置に依存して、ポート124は、RS-232接続、USB接続など、同じ構成、または異なる構成のシリアルポートを備えることができる。別の例として、1つまたは複数のポート124は、パラレルポート、RJ45、または他のポート、あるいは他の任意の物理的リンクを備えることができる。無線技術の使用が医療環境に適している場合には、無線技術(例えば、IEEE 802.11、802.16、または別の無線技術)を用いて、ポート124の1つまたは複数、および/またはポート134への物理的リンクを同様に実現することができる。一方、または両方ともに使用できる物理的接続の他の例には、イーサネット（登録商標）、RS-485、RS-422、および赤外線(IR)が含まれる。
【００２２】
本明細書では示していないが、インターフェイス装置122は、追加の特徴を含むことができる。例えば、装置104〜120の1つまたは複数が、そのデータインターフェイスにおいて電力を取り出すように構成されている場合、インターフェイス装置122の対応するポートを、インターフェイス装置122に接続された適切な電源から電力(必要であれば、例えば+5V DC)を供給するように構成することができる。さらに、単一のリンク136が示されているが、インターフェイス装置122は、第2のプロトコルを介してデータおよびコマンドを中継する複数の物理的接続をサポートすることもできる。
【００２３】
いずれにせよ、装置106、110、112、および118と、各それぞれのリンク126、128、130、および132上で使用されるファーストパーティのプロプライエタリプロトコルに従って通信するように、プログラム命令142はプロセッサ138を構成する。ファーストパーティプロトコルは、装置で使用する任意の数の通信プロトコルを含むことができる。場合によっては、全ての装置が、同じプロプライエタリプロトコルを使用することがある。一方、場合によっては、装置106、110、112、および118の1つまたは複数が、装置に特有の通信プロトコルを有することもある。
【００２４】
ファーストパーティ通信プロトコルの数または種類に関わらず、プログラム命令142により、プロトコルに従ってプロセッサ138にデータおよび/またはコマンドを送受信させることが可能となる。第2の通信プロトコルを用いて装置120と通信するように、プログラム命令142はプロセッサ138をさらに構成し、第2の通信プロトコルの詳細をサードパーティに知らせて、装置120を装置106〜118と相互運用させることができる。この通信の例について、図3〜5に関して以下で論じる。
【００２５】
図3は、装置122などのインターフェイス装置によって実行される例示的な方法300の諸段階を示す流れ図である。ブロック302は、それぞれのファーストパーティ装置のファーストパーティ通信プロトコルに従って、物理的接続を検証する、適切なハンドシェイキングを実行するなど、ファーストパーティ装置(例えば、図2の装置106〜118)に接続する段階を表す。「ファーストパーティ装置」には、「サードパーティ装置」を供給するエンティティとは別のエンティティによって規定された通信プロトコルを用いて通信するいかなる医療装置も含まれ得る。典型的には、ファーストパーティ装置は全て、同じエンティティから考案されたものでよいが、ファーストパーティ装置には、ある通信プロトコルを制御された形で共有するある製造業者の群から供給された装置も含まれ得る。上記のように、ファーストパーティ装置は全て、共通であるがプロプライエタリなプロトコルを共有することができ、または、様々なファーストパーティ装置によって、異なるファーストパーティプロトコルを使用することもできる。
【００２６】
ブロック304は、第2の通信プロトコルに従って、サードパーティ装置(例えば、図2の装置120)に接続する段階を表す。一実施形態では、ブロック304は、クライアント-サーバ関係を確立する段階を含み、第2の通信プロトコルは、一組のポーリングおよびエラー処理規則を指定して、サードパーティ装置に対するリンクを成立させたまま確保する。第2の通信プロトコルは、ファーストパーティプロトコルとは異なり、サードパーティ装置の販売業者は、第2の通信プロトコルの詳細を利用することができる。
【００２７】
サードパーティ装置に対するリンクが成立したままである間、インターフェイス装置は、サードパーティ装置によって行われた要求に応答し、特定の装置または機能を識別することができる。この様子を、図3のブロック306、308、および310で表す。
【００２８】
ブロック306は、特定のファーストパーティ装置を参照して、要求またはコマンドを受信する段階を表す。例えば、一実施形態では、各ファーストパーティ装置または機能に独自のTCP/IPポート番号が割り当てられ、したがって、要求を供給する際、またデータを受信する際、サードパーティ装置は、そのTCP/IPポート番号を用いて参照することができる。
【００２９】
ブロック308は、適切なファーストパーティインターフェイスを介して、対応する装置に要求またはコマンドを供給するなど、それぞれのファーストパーティプロトコルを用いて、対応するファーストパーティ装置と通信する段階を表す。ブロック308は、ファーストパーティ装置からデータを受信する段階をさらに含むことができる。ブロック310は、ファーストパーティ装置からのデータを、第2の通信プロトコルに従って供給する段階を表す。例えば、ファーストパーティ装置からのデータを適切に変換し、次いでサードパーティ装置に送信することができる。データには、状態更新、設定変更の確認などが含まれ得る。いくつかの実施形態では、特定のファーストパーティ装置に関連するデータおよびメッセージは、そのファーストパーティ装置に特定して関連付けられたTCP/IPポートを用いて、インターフェイス装置により中継される。
【００３０】
いくつかの実施形態では、インターフェイス装置は、ブロック306でコマンドを受信し、そのコマンドを適切なファーストパーティプロトコルに変換し、次いでブロック308で、そのコマンドをファーストパーティ装置に中継し、その後ファーストパーティ装置は、それに応答してデータを返送する。次いで、ブロック310で、返送されたデータを変換し、サードパーティ装置に送信することができる。しかし、以下で説明するように、いくつかの実施形態では、インターフェイス装置は、「アスクミー(ask-me)」ベースで動作し、パラレルプロセスを用いてファーストパーティおよびサードパーティ装置と通信するものであり、すなわち、インターフェイス装置は、ファーストパーティ装置を周期的にポーリングし、サードパーティ装置から要求を受信したときのために、各装置からのキャッシュデータを準備している。
【００３１】
ファーストパーティ装置をポーリングするのに加えて、またはその代わりに、ファーストパーティ装置によって、インターフェイス装置に対して「一方的更新(unsolicited update)」としてデータを供給することができる。同様に、サードパーティ装置からの要求を待つことに加えて、またはその代わりに、インターフェイス装置は、1つまたは複数のファーストパーティ装置からの更新データの受信に応答して、一方的更新をサードパーティ装置に供給することができる。
【００３２】
図4は、ファーストパーティ医療装置(106、110、および118)、インターフェイス装置122、およびサードパーティ装置120の三者間でのデータ交換を示すデータ流れ図400である。本明細書では、説明しやすいようにファーストパーティ装置を3台示しているが、当然ながら、その原理は、装置の台数に関わらず適用可能である。
【００３３】
この例では、インターフェイス装置122は、装置106にデータを供給しており、装置106はそれに応答している。具体的には、ハンドシェイキングデータ402が、インターフェイス装置122によって供給されたコマンド404でインターリーブされており、装置106は、インターリーブされたハンドシェイキングデータ402および応答データ406で応答している。ハンドシェイキングルーチンを用い、1つまたは複数のファーストパーティプロトコルに従って、ファーストパーティ装置のそれぞれとの通信を最初に確立することができる。例えば、このルーチンには、各装置向けのファーストパーティプロトコルに従って、物理的リンクを検証する、装置106を認可されたものとして認証する、また、その他の形でデータ通信チャネルを準備する段階が含まれ得る。ハンドシェイキングデータ402はまた、この図で示すように、コマンドおよび応答でインターリーブすることができ、したがって通信リンクの保全性が検証されることになる。特定のハンドシェイキングおよびデータプロトコル(すなわち、ファーストパーティプロトコル)は、当然ながら個々の装置の特徴に依存することになり、参照番号402の使用は、単なる例示の目的にすぎず、全ての装置が同じハンドシェイキングデータ/プロトコルを使用することを意味するものではない。
【００３４】
インターフェイス装置122は、ファーストパーティ装置をポーリングすることができるが、ファーストパーティ装置は、ポーリングサイクルを待って更新を供給する必要はない。そうではなく、ファーストパーティ装置110で示すように、実施形態によっては、一方的更新データ408(この例では、ハンドシェイキングデータ402でインターリーブされている)を含むデータストリームの受信をサポートすることができる。例えば、ファーストパーティ装置110は、装置の内部状態、および/または装置によって監視される外部状態に基づいた状態更新を有することができる。インターフェイス装置122によって一方的更新を受信し、それを用いて現在のデータセット413を更新することができる。
【００３５】
ファーストパーティ装置118が、ハンドシェイキングデータ402、ポーリング要求410、およびコマンド404を含む、インターリーブされたデータストリームを受信している様子が示されている。この例は、様々なファーストパーティ装置向けに、ハンドシェイキング、ポーリング、およびコマンドのこのように様々に組み合わせて、適切に使用することができることを示している。
【００３６】
インターフェイス装置122はまた、サードパーティ装置120ともハンドシェイキングルーチンを実施するが、ここでは、第2の通信プロトコルに従う。例えば、一実施形態では、インターフェイス装置122は、上記の通り、完全なTCP/IP通信スタックを確立する。この例では、専用のTCP/IP「ハートビートポート」が示されており、サードパーティ装置120とインターフェイス装置122との間のメッセージ412および414によって、通信が検証されている。装置120と122との間の通信リンクを成立させたまま確保することによって、装置122は、サードパーティ制御器120に一方的更新を供給することができる。したがって、装置データおよび/または状態が変更されると、ポーリングサイクルが完了するのを待つよりも迅速にサードパーティ制御器120を更新することができる。一例として、ファーストパーティ装置の1台がカメラまたは他の監視ツールを備え、そこにエラーが生じ、通信が途切れた場合、サードパーティ制御器を直ちに更新することができる。ハートビートポートを介した通信を検証することができない場合、サードパーティ装置120で適切なエラー状態を示すことができ、例えば、装置120および122のどちらも、接続の復旧を試みることができ、装置120は、接続が復旧するまでデータを利用することができないことを示す。
【００３７】
図4は、破線を用いて追加のポート、具体的には装置106、110、および118それぞれの専用ポートを示している。いくつかの実施形態では、各装置は、第2の通信プロトコルに従って規定された対応するポート番号を有する。例えば、416で示すように、サードパーティ装置120は、第2のプロトコルに従い、ファーストパーティ装置106に対応するTCP/IPポートを用いてコマンドを供給することができる。コマンドデータ419は、メモリから抽出し、またそこに記憶することができ、次いで対応する装置向けのファーストパーティプロトコルに従ったコマンドとして供給することができる。例えば、コマンドデータ419をストリーム402-404-402に翻訳して、ファーストパーティ装置106に供給することができる。それに応答して、402-406-402のデータストリームからのデータを用いて、現在のデータ413を更新し、次いで418で示すように、第2のプロトコルに従って供給することができる。
【００３８】
インターフェイス装置122はまた、ファーストパーティ装置110に対応するTCP/IPポートも実現する。例えば、インターフェイス装置122によって一方的更新(402-408-402で示す)を用いて、現在のデータ413を更新することができる。更新の発生に応答して、インターフェイス装置122は、420で示すように、それ自体が、装置110用のポートを介してサードパーティ装置120に一方的更新を供給することができる。
【００３９】
この例では、装置118用のポートもある。例えば、サードパーティ装置120は、422で示すように、そのポートを用いて、コマンドおよびデータを求める要求を供給することができる。それに応答して、インターフェイス装置122は、コマンドデータを更新し、上記の402-410-404データストリームを発行する。例えば、図2では、装置120からの要求は、1つまたは複数の装置からデータを求める要求でよく、かつ/またはそれらの装置に対するコマンドを含むことができ、流体管理システム118に流量を増減させるコマンドを含む、装置120からの要求などがある。一実施形態では、装置120は、流体管理システム118専用のTCP/IPポート番号に対して、第2の通信プロトコル用に発行された構文に従ってコマンドを識別するデータとともに要求を発行する。一例として、流量を増大させるコマンドは「Flow++」と記述したASCIIメッセージを含むことができる。
【００４０】
図2では、プロセッサ138は、装置120からのクライアント要求のポート番号に基づいて、そのコマンドが流体管理システム118向けのものであることを識別することができる。プロセッサ138は、そのASCIIメッセージを流体管理システム118向けの適切なコマンド構文に変換し、流体管理システム118向けの特定のプロトコルを用い、リンク132を介してそのコマンドを中継することができる。流体管理システム118が次回ポーリングされるとき、またはファーストパーティプロトコルに従って一方的更新を次回供給するとき、流体管理システム118が供給するデータには、そのコマンドに対する応答が反映されることになる。
【００４１】
別の例として、いくつかの実施形態では、装置(図2の装置112など)を、画像データを表示するように構成することができる。装置120は、カメラシステム112用のポート番号を介して要求を供給し、所望のデータを識別する適切な構文(例えば、「UpdateImage()」と記述したASCIIメッセージなど)を供給することによって、カメラシステム112から現在の画像データを要求することができる。それに応答して、インターフェイス装置122は、リンク130を介してそのコマンド/要求を中継し、現在のデータを受信し、次いでリンク136を介して現在のデータを供給することができる。さらに、またはその代わりに、カメラシステム112(または別の装置)は、インターフェイス装置122によって供給される周期的なクエリまたはpingに応答して、現在のデータをインターフェイス装置122に供給することができる。現在のデータは、装置120が136を介してアクセスしやすいように、インターフェイス装置122のメモリ140にキャッシュすることができる。
【００４２】
ファーストパーティ装置間のデータストリームについて上記ではシーケンスとして論じたが、いくつかの実施形態では、シーケンスによるポーリング、またはパラレルポーリングも使用することができる。しかし、実施形態には、インターフェイス装置122がマルチタスキングをサポートするものも含まれ、したがってインターフェイス装置122と、様々なファーストパーティ装置との間で様々な通信を同時に行うことができる。同様に、インターフェイス装置122とサードパーティ装置120との間の通信も同時に(かつ装置122とファーストパーティ装置との間の通信と同時に)行うことができる。
【００４３】
図4の一例として、サードパーティ装置120は、418および420で示すデータを、それぞれのポートを介して同時に受信することができる。この期間中、ハートビートポートを介して、通信412および414を行って、接続の成立を確保することができる。また、この期間中、インターフェイス装置122は、418および420で示すデータとは無関係のデータを供給および/または受信することができ、例えば、インターフェイス装置は、データ418および420を供給している間も、そのデータを供給したそれぞれのファーストパーティ装置からさらに新しいデータが送られている途中であることがあり、また、それぞれの接続を介して、さらなるコマンドを他のファーストパーティ装置に供給することができる。
【００４４】
分かりやすいように、416、418、420、および422では、別個のデータストリーム構成要素は示していない。個々のポート内では、適切なハンドシェイキングを行って、ポートの成立性を確保し、第2のプロトコルに従って交換されたデータの保全性を確保できることが理解されよう。
【００４５】
図5A〜5Bは、インターフェイス装置によって実行することができる例示的な処理方法500を示す流れ図である。概括的な原理については図3を参照しながら上記で論じたが、図5A〜5Bは、医療事例で求められる、堅牢な接続性を実現し、数多くの更新を行うために使用できる、より詳細な例を示す。この例では、方法500は、502から開始し、並列した2つの分岐504(図5Aに示す)および506(図5Bに示す)を含む。インターフェイス装置のプロセッサによって並列スレッドを実行することができる場合、各分岐は、それ自体のスレッドを備えることができ、またはこれらの分岐を、マルチタスキング可能なプロセッサを用いて実施することができる。さらに、プロセッサは、各ファーストパーティ装置について、分岐504の事例を実現することができ、分岐504の様々な事例を用いて、接続されている装置を同時に接続することができる。
【００４６】
分岐504の各事例は、それぞれのファーストパーティ装置との通信を表す。ブロック508は、ファーストパーティ装置が接続されているかを判定する段階を表す。この段階は、当技術分野で既知のように、ライン電圧レベル、インピーダンスなどに基づいて物理的接続が存在するか判定する段階を含むことができる。装置が接続されている場合、ブロック510で、適切なハンドシェイキングを実施して、初期接続を確立することができる。
【００４７】
ブロック511で、本方法は、装置からの更新メッセージがあるかどうかを確認する。装置が一方的更新を供給していた場合、本方法はブロック516に進み、このブロックは、ファーストパーティ装置から返送されたデータに基づいて、インターフェイス装置のメモリ内の現在のデータを更新する段階を表し、この段階については後述する。装置からデータを受信しなかった場合、本方法はブロック512に進み、このブロックは、ファーストパーティ装置プロトコルに従って装置に「ping」または他の識別可能なメッセージを送信することによって、その装置をポーリングする段階を表す。
【００４８】
一実施形態では、各ファーストパーティ装置は、250ミリ秒ごとにポーリングされるが、当然ながら他の時間間隔も使用することができ、数回の再試行を試みることができる。したがって図5Aは、再試行が必要であるかを判定する段階を表す再試行ブロックを含む。再試行が必要である場合、流れはブロック512に戻る。そうでない場合、すなわち再試行が必要でない場合、流れはブロック514に進み、このブロックは、装置タイムアウトがあるか、または装置が予期せぬ応答、もしくは不明朗な応答を供給しているかを判定する段階を表す。そうである場合、適切なエラー処理ルーチンをトリガすることができ、例えば、エラー状態を提示する前に、全体的なポーリングシーケンスを限定された回数で再試行するよう試みることができる。次いで、流れは、分岐504が、ブロック512まで1レベル後戻りして、ポーリングを再試行している間、「キープアライブ」コマンドを供給する段階に進む。一実施形態では、ポーリングシーケンスを4回試みた(各試みにおいて、再試行回数を使い果たし、また、その結果タイムアウトになった)後、本方法は、ブロック510に戻って、装置を再度識別しようと試みる。
【００４９】
しかし、ブロック512で、ポーリングした装置がそのポーリングに応答した場合(すなわち、ブロック514でタイムアウトしない)、ブロック516に達する。ブロック516は、ファーストパーティ装置から返送されたデータに基づいて、インターフェイス装置のメモリ内の現在のデータを更新する段階を表す。インターフェイス装置は、各ファーストパーティ装置のデータフォーマットおよび通信プロトコルを認識し、返送されたデータをメモリ内に記憶するように構成されている。データは、インターフェイス装置に固有のフォーマットを用いて記憶する、ファーストパーティプロトコルに従って供給されたフォーマットで記憶する、または第2の通信プロトコルに従って変換し記憶することができる。適切なエラー処理ルーチンを用いて、上記のように応答を検証することができ、例えば、チェックサムデータまたは他のコーディングが問題を示す場合、エラー状態を示すことができる。この場合もやはり「キープアライブ」要求が供給され、流れはブロック511〜512に戻り、データがあるか再度確認し、必要であれば装置をポーリングする。
【００５０】
いくつかの実施形態では、接続されているファーストパーティ装置の全てを、分岐504に従って接続し通信させることができる。しかし、他の実施形態では、装置を順次ポーリングすることもできる。さらに、このルーチンには、装置を接続/切断する際の適切な操作を含めることができ、すなわち新しい装置が接続されると、ポーリングシーケンスを開始することができ、ある装置が切断されると、適切な段階を踏んでポーリング工程を終えることができる。実際には、接続が確立された後、ハンドシェイキング要求、およびキープアライブ要求を、状態更新およびサービス更新でインターリーブすることができる。
【００５１】
コマンドをファーストパーティ装置に供給すべき場合、その装置をポーリングする際にコマンドを供給する、またはその装置に対する別個のメッセージとして供給することができる。上記は、インターフェイス装置が、ファーストパーティ装置の通信プロトコルを理解するので、実行することができる。例えば、特定の装置向けの電力レベルコマンドを、コマンドメッセージ内の特定のオフセットで指定することができ、かつ/または特定のビットシーケンスを要求して、コマンドをトリガすることができる。かかるコマンドを供給すべき場合、インターフェイス装置は、適切なビットストリームを構築することができ、そのビットストリームを適切に時間調整されたメッセージに含めることができる。
【００５２】
方法500はまた、分岐506を含み、この分岐は、第2のプロトコルに従ってサードパーティ装置と通信するためのインターフェイスを維持する段階を表す。プロプライエタリに保持されるファーストパーティ装置のプロトコルとは異なり、第2のプロトコルは、サードパーティ製造業者と共有することができる。さらに、第2のプロトコルは、装置に特有ではなく、第2のプロトコルは、複数の様々な装置(例えば、インターフェイス装置に接続されている全てのファーストパーティ装置)とデータ交換するために使用することができる。
【００５３】
ブロック520は、サードパーティ装置が、第2のプロトコルを用いて通信を行うポートに接続されているか判定する段階を表す。例えば、RJ45接続を使用する場合、ブロック520は、物理的接続が存在するか判定する段階を表すことができる。ブロック522は、ハンドシェイキングを行い、接続を介して適切なネットワーク通信チャネルをセットアップする段階を表す。いくつかの実施形態では、この段階には、接続されている各ファーストパーティ装置に対応するTCP/IPポートを開いて、TCP/IPソケット接続などのネットワークソケット接続を確立する段階が含まれる。ブロック524および526は、ハンドシェイキング工程中/後、エラーが生じたか、またはタイムアウトがあるかを判定する段階を表す。そうである場合、流れはブロック522に戻って、ハンドシェイキングを再度試みる。
【００５４】
例えば、サードパーティ機器は、少なくとも250ミリ秒ごとに「チェックイン」することが予期され得るが、当然ながら異なる時間間隔を指定することができる。したがって、いくつかの実施形態では、インターフェイス装置は、接続中状態を確保するために、あるネットワークポート(例えば、TCP/IPポート)を、サードパーティ装置への接続状態を監視するために使用する「ハートビート」ポートとして割り当てるように構成される。ブロック524〜526は、「ハートビート」ポートを介して交換されたメッセージに基づき、連続して行うことができ、より一般的に言えば、ハートビートTCP/IPポートを介して少なくともある要求が受信されているかどうかを判定する段階を表す。ハートビートが検出されない場合、インターフェイス装置は、エラー状態に応答することができる。
【００５５】
エラー/タイムアウトがない場合、本方法はブロック528に進み、このブロックは、データを求める要求、またはコマンドがサードパーティ装置から受信されているかを判定する段階を表す。ブロック528で要求が受信されている場合、本方法はブロック530に進み、このブロックは、要求を復号する段階を表す。第2の通信プロトコルによって、装置をアドレシングし、データを求める要求、装置コマンドなどをフォーマットする構文を指定することができ、インターフェイス装置は、その構文を認識することができる。例えば、特定の装置向けの特定のTCP/IPポート番号を介して要求を行うことができ、この要求には、コマンドおよび/または1つまたは複数のデータ項目を求める要求が含まれ得る。したがって、ブロック528は、いくつかのTCP/IPポートを同時に監視する段階を含むことを意味する。実際には、いくつかのスレッドを維持することができ、各スレッドは、対応するTCP/IPポートを介して要求および応答を協調させるためのものである。
【００５６】
図5Bに戻ると、チェックサムまたは他のエラー補正ルーチン点検を行うことができる。この例では、チェックサムエラーがあると、流れはエラー状態を経てブロック522に戻り、ハンドシェイキングを再度試みる。チェックサムエラーがないものとすると、ブロック532で示すように、データを求める要求および/またはコマンドを処理することができる。データ項目を求める要求については、インターフェイス装置は、そのコマンドを待ち行列に記憶し、したがってそのコマンドは、次回のポーリング期間で装置に供給されることになる。コマンドは、インターフェイス装置に固有のフォーマットを用いて記憶する、第2の通信プロトコルに従って供給されたフォーマットで記憶する、またはファーストパーティプロトコルで変換し、待ち行列に入れることができる。要求にコマンドが含まれる場合、インターフェイス装置は、そのコマンドを受信した直後にファーストパーティプロトコルを用いてそのコマンドを送信用に変換することによって直接応答することができる。
【００５７】
ブロック528に戻ると、この例では、要求を受信しなかった場合(または受信した要求が処理済である場合)、本方法はブロック534に進み、このブロックは供給すべきデータがあるかを判定する段階を表す。上記のように、いくつかの実施形態では、インターフェイス装置は、一方的更新を供給することができ、したがってサードパーティ機器は最新のデータを有することになる。一例として、このインターフェイス装置は、ファーストパーティ機器から受信したデータ項目に関連するタイムスタンプおよび/または状態ビットを用いて、そのデータ項目がサードパーティ機器に供給されたかを判定することができる。
【００５８】
供給すべきデータがある場合、ブロック536でそのデータにアクセスし、次いでブロック538で第2の通信プロトコルに従ったフォーマットで供給する。上記のように、データは、元のデータフォーマットを用いて記憶する、または記憶時に変換することができる。いずれにせよ、インターフェイス装置は、ファーストパーティ通信プロトコルと、サードパーティ装置と通信するために使用するプロトコルとを理解するので、データを変換することが可能である。例えば、特定の装置向けのプロトコルによって、装置の状態情報(例えば、装置電力レベル、温度など)が、特定のビットパターンを用いたシリアルデータストリーム中の特定のオフセットとして含まれていることを特定することができる。インターフェイス装置は、シリアルデータシーケンス中の装置の状態情報を識別し、そのビットパターンを翻訳し、その状態情報をメモリに記憶するようにプログラミングすることができる。データの変換時に、インターフェイス装置は、第2の通信プロトコルの構文に従ってメッセージを構築し、次いでそのメッセージを適切に(例えば、状態が更新されている装置に対応するTCP/IPポートを介してASCIIメッセージを送信することによって)送信することができる。
【００５９】
図5A〜5Bに示す方法は、単なる例示の目的で示すものにすぎない。例えば、実施形態によっては、サードパーティ装置からのクエリに応答して現在のデータを返送することができる。例えば、ブロック530における要求が現在のデータを求める要求である場合、ブロック532で、インターフェイス装置は、第1のインターフェイスを介し、ファーストパーティプロトコルを用いて、更新されたデータ項目用のクエリを供給することができ、更新されたデータが返送されると、ブロック536および538で、そのデータを送信するために、第2のプロトコルを用いて変換することができる。
【００６０】
実際には、インターフェイス装置はまた、エラー、および装置のシャットダウンなどの他の事象が生じたときに、ポーリングルーチンおよびデータ交換ルーチンに入る、またそこから出る適切なルーチンを実行することができる。さらに、インターフェイス装置は、管理工程、およびセキュリティ工程も同様にサポートすることができる。
【００６１】
一実施形態では、インターフェイス装置は、第2のインターフェイスを介してアクセスを検証する認証ルーチン、および/またはインターフェイス装置に管理コマンドを供給するルーチンを含む。例えば、管理コマンドに応答して、様々なファーストパーティ装置ポートをイネーブルまたはロックすること、ネットワークオプションを設定すること、および装置パラメータを調整することができる。いくつかの実施形態では、管理インターフェイスを用いて、追加のファーストパーティ装置をサポートするインターフェイス装置プログラミング、および/またはサポートしているファーストパーティ通信プロトコルに対する変更を更新することができる。
【００６２】
一般的な考慮事項
本明細書では、「適合された」または「構成された」とはオープンな意味であり、追加のタスクまたは段階を実施するように適合された、または構成された装置を排除しない包含的な用語である。さらに、「に基づく」とは、オープンで包含的な意味であり、1つまたは複数の記載された条件または値に「に基づく」工程、段階、計算、または他の行為は、実際には、それらの記載されたもの以外の追加の条件または値に基づくこともできることを意味する。本明細書に含まれる見出し、列挙、および番号付けは、単に説明しやすくするためのものにすぎず、限定を意味するものではない。
【００６３】
本発明の主題の態様に従った実施形態は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実施することができる。一実施形態では、コンピュータは、プロセッサを備えることができる。プロセッサは、プロセッサに結合されたランダムアクセスメモリ(RAM)などのコンピュータ可読媒体を備える、またはそこに対するアクセスを有する。プロセッサは、1つまたは複数のコンピュータプログラムを実行して、上記のようにファーストパーティおよびサードパーティ機器と相互作用するなど、メモリ内に記憶されたコンピュータ実行可能なプログラム命令を実行する。
【００６４】
かかるプロセッサは、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、およびステートマシンを備えることができる。かかるプロセッサは、PLC、プログラマブル割込み制御器(PIC)、プログラマブルロジックデバイス(PLD)、プログラマブル読取り専用メモリ(PROM)、電子プログラマブル読取り専用メモリ(EPROMもしくはEEPROM)、または他の類似のデバイスなど、プログラム可能な電子デバイスをさらに備えることができる。
【００６５】
かかるプロセッサは、媒体、例えば、有形、かつ非一時的なコンピュータ可読媒体を備える、またはそうした媒体と通信することができ、媒体は、プロセッサによって実行すると、そのプロセッサに、本明細書に記載の段階を、実行する、またはプロセッサによって支援することによって、実施させることができる命令を記憶することができる。コンピュータ可読媒体の実施形態には、それだけに限られるものではないが、サーバ内のプロセッサなどのプロセッサにコンピュータ可読命令を供給することが可能なあらゆる電子、光学、磁気、または他の記憶装置が含まれ得る。
【００６６】
媒体の他の例には、それだけに限られるものではないが、フロッピー（登録商標）ディスク、CD-ROM、磁気ディスク、メモリチップ、ROM、RAM、ASIC、構成されたプロセッサ(configured processor)、あらゆる光媒体、あらゆる磁気テープもしくはその他の磁気媒体、またはコンピュータプロセッサがそこから読み取ることができる他のいかなる媒体も含まれる。また、ルータ、プライベートもしくはパブリックネットワーク、または他の伝送装置など、様々な他の装置もやはり、コンピュータ可読媒体を含むことができる。記載のプロセッサ、および処理は、1つまたは複数の構造とすることができ、1つまたは複数の構造に分散させることもできる。プロセッサは、本明細書に記載の方法(または方法の一部)の1つまたは複数を実行するコードを備えることができる。
【００６７】
本発明の主題について、本発明の特定の実施形態に関して詳細に説明してきたが、当業者であれば、前述の理解が得られると、かかる実施形態の改変形態、変形形態、および均等物を容易に作製できることが理解されよう。したがって、本発明の開示は、限定ではなく例示の目的で提示してきたものであり、当業者には容易に明白となるように、本発明の主題に対するかかる改変、変更、および/または追加を含めることを排除するものではないことを理解されたい。
【符号の説明】
【００６８】
100  医療装置の群
102  台
104  アブレーションプローブ
106  エネルギー源
108  シェーバハンドピック
110  ドライバ
112  カメラシステム
114  カメラヘッド
116  モニタ
118  流体管理システム
120  制御システム
【図１】
2015222588.tif 000003
【図２】
2015222588.tif 000004
【図３】
2015222588.tif 000005
【図４】
2015222588.tif 000006
【図５Ａ】
2015222588.tif 000007
【図５Ｂ】
2015222588.tif 000008