(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110712
(43)【公開日】2024-08-16
(54)【発明の名称】医用データ処理装置、システム及び方法
(51)【国際特許分類】
G16H 10/40 20180101AFI20240808BHJP
G06Q 10/0633 20230101ALI20240808BHJP
【FI】
G16H10/40
G06Q10/0633
【審査請求】未請求
【請求項の数】24
【出願形態】OL
(21)【出願番号】P 2023015459
(22)【出願日】2023-02-03
(71)【出願人】
【識別番号】594164542
【氏名又は名称】キヤノンメディカルシステムズ株式会社
(74)【代理人】
【識別番号】110001771
【氏名又は名称】弁理士法人虎ノ門知的財産事務所
(72)【発明者】
【氏名】奥畑 大悟
(72)【発明者】
【氏名】西岡 昂彦
(72)【発明者】
【氏名】松本 直樹
【テーマコード(参考)】
5L010
5L049
5L099
【Fターム(参考)】
5L010AA07
5L049AA07
5L099AA03
(57)【要約】
【課題】ワークフローを適切に実行すること。
【解決手段】実施形態に係る医用データ処理装置は、記憶部と、実行部とを備える。記憶部は、ワークフローに含まれる複数の解析アプリケーションのそれぞれ又は前記複数の解析アプリケーションのそれぞれにおいて実行される複数の処理のそれぞれについて、前記ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された定義情報を記憶する。実行部は、前記定義情報に基づいて、前記ワークフローを実行し、ワークフローの実行状況に応じて、前記複数の解析アプリケーションのうちの一の解析アプリケーションに入力される入力データ又は前記複数の処理のうちの一の処理に入力される入力データの入手元を切り換える処理、及び、前記複数の解析アプリケーションの実行順序又は前記複数の処理の実行順序を変更する処理の少なくともいずれかの処理を実行する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ワークフローに含まれる複数の解析アプリケーションのそれぞれ又は前記複数の解析アプリケーションのそれぞれにおいて実行される複数の処理のそれぞれについて、前記ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行し、ワークフローの実行状況に応じて、前記複数の解析アプリケーションのうちの一の解析アプリケーションに入力される入力データ又は前記複数の処理のうちの一の処理に入力される入力データの入手元を切り換える処理、及び、前記複数の解析アプリケーションの実行順序又は前記複数の処理の実行順序を変更する処理の少なくともいずれかの処理を実行する実行部と、
を備える、医用データ処理装置。
【請求項2】
前記実行部は、前記一の解析アプリケーションに入力される前記入力データの入手元を切り換えて、他の解析アプリケーションの中間データを前記入力データとして前記一の解析アプリケーションに入力する、請求項1に記載の医用データ処理装置。
【請求項3】
前記実行部は、前記一の処理に入力される前記入力データの入手元を切り換えて、前記一の処理を実行する解析アプリケーションとは異なる他の解析アプリケーションの中間データを前記入力データとして前記一の処理に入力する、請求項1に記載の医用データ処理装置。
【請求項4】
前記実行部は、前記一の処理に入力される前記入力データの入手元を切り換えて、前記一の処理とは異なる他の処理のデータを前記入力データとして前記一の処理に入力する、請求項1に記載の医用データ処理装置。
【請求項5】
前記定義情報に対して前記ワークフローの実況状況ごとの前記入力データ及び前記出力データを設定する設定部を更に備える、請求項1に記載の医用データ処理装置。
【請求項6】
前記入手元が切り換えられた後の変更後の前記ワークフローを表示部に表示させる表示制御部を更に備える、請求項1に記載の医用データ処理装置。
【請求項7】
前記入手元が切り換えられた後に前記一の解析アプリケーションに入力された前記入力データ、又は、前記一の処理に入力された前記入力データを表示部に表示させる表示制御部を更に備える、請求項1に記載の医用データ処理装置。
【請求項8】
前記一の処理に用いられる入力データの属性と、前記他の処理のデータの属性を表示部に表示させる表示制御部を更に備える、請求項4に記載の医用データ処理装置。
【請求項9】
前記実行部は、前記ワークフローの実行状況として前記ワークフローの実行のエラーが発生した場合、前記定義情報に基づいて、前記一の解析アプリケーションに入力される前記入力データの入手元を前記エラーが発生した場合の入手元に切り換えるか、又は、前記一の処理に入力される前記入力データの入手元を前記エラーが発生した場合の入手元に切り換えることにより前記ワークフローを変更し、
更に、前記ワークフローが変更した原因、及び、ワークフローの変更の内容を表示部に表示させる表示制御部を備える、請求項1に記載の医用データ処理装置。
【請求項10】
ワークフローに含まれる解析アプリケーションにおいて実行される処理に対して、前記ワークフローの実行状況ごとに、入力される入力データが設定される定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行し、前記ワークフローの実行状況に応じて、前記処理に入力される入力データを切り換える処理を実行する実行部と、
を備える、医用データ処理装置。
【請求項11】
前記定義情報には、前記ワークフローの実行状況が第1の実行状況である場合、前記処理に入力される入力データとして第1の入力データが設定され、前記ワークフローの実行状況が第2の実行状況である場合、前記処理に入力される入力データとして前記第1の入力データに対して代替可能な第2の入力データが設定されており、
前記実行部は、前記ワークフローの実行状況が前記第1の実行状況である場合、前記処理に前記第1の入力データを入力して前記処理を実行し、前記ワークフローの実行状況が前記第2の実行状況である場合、前記処理に前記第2の入力データを入力して前記処理を実行する、
請求項10に記載の医用データ処理装置。
【請求項12】
前記定義情報には、前記処理に対して、前記ワークフローの実行状況ごとに、複数の前記入力データが設定されるとともに、前記複数の入力データのそれぞれに対応する優先度が更に設定され、
前記実行部は、前記優先度に応じて、前記複数の入力データの中から前記処理に入力される入力データを切り換える、請求項10に記載の医用データ処理装置。
【請求項13】
ワークフローに含まれる複数の解析アプリケーションのそれぞれの最終的な実行結果について必要か否かを示す情報が設定された定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行する実行部と、
を備え、
前記実行部は、前記複数の解析アプリケーションのうちの一の解析アプリケーションにより生成された中間データを他の解析アプリケーションに入力し、前記中間データを用いて当該他の解析アプリケーションを実行する場合、前記一の解析アプリケーションの最終的な実行結果について必要でないことを示す情報、及び、前記他の解析アプリケーションの最終的な実行結果について必要であることを示す情報が前記定義情報に設定されているときには、前記一の解析アプリケーションが前記中間データを生成するまで前記一の解析アプリケーションを実行し、前記中間データが生成された時点で前記一の解析アプリケーションの実行を終了し、生成された前記中間データを前記他の解析アプリケーションに入力し、入力された前記中間データを用いて前記他の解析アプリケーションを実行する、
医用データ処理装置。
【請求項14】
前記実行部は、前記一の解析アプリケーションの実行が終了した時点で、前記他の解析アプリケーションの実行を開始する、請求項13に記載の医用データ処理装置。
【請求項15】
最終的な実行結果が生成されるまで前記一の解析アプリケーションを実行する場合と比較して、前記中間データが生成されるまで前記一の解析アプリケーションを実行する場合のリソースの節約量を表示部に表示させる表示制御部を更に備える、請求項13に記載の医用データ処理装置。
【請求項16】
複数の解析アプリケーションを含むワークフローを実行する実行部と、
前記ワークフローの実行中にエラーが発生した場合、後続の処理を実行するか否かについての指示を受け付ける受付部と、
前記受付部により受け付けられた指示に基づいて、前記後続の処理の実行を制御する制御部と、
を備える、医用データ処理装置。
【請求項17】
ワークフローに含まれる複数の解析アプリケーションのそれぞれ又は前記複数の解析アプリケーションのそれぞれにおいて実行される複数の処理のそれぞれについて、前記ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行し、ワークフローの実行状況に応じて、前記複数の解析アプリケーションのうちの一の解析アプリケーションに入力される入力データ又は前記複数の処理のうちの一の処理に入力される入力データの入手元を切り換える処理、及び、前記複数の解析アプリケーションの実行順序又は前記複数の処理の実行順序を変更する処理の少なくともいずれかの処理を実行する実行部と、
を備える、システム。
【請求項18】
ワークフローに含まれる解析アプリケーションにおいて実行される処理に対して、前記ワークフローの実行状況ごとに、入力される入力データが設定される定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行し、前記ワークフローの実行状況に応じて、前記処理に入力される入力データを切り換える処理を実行する実行部と、
を備える、システム。
【請求項19】
ワークフローに含まれる複数の解析アプリケーションのそれぞれの最終的な実行結果について必要か否かを示す情報が設定された定義情報を記憶する記憶部と、
前記定義情報に基づいて、前記ワークフローを実行する実行部と、
を備え、
前記実行部は、前記複数の解析アプリケーションのうちの一の解析アプリケーションにより生成された中間データを他の解析アプリケーションに入力し、前記中間データを用いて当該他の解析アプリケーションを実行する場合、前記一の解析アプリケーションの最終的な実行結果について必要でないことを示す情報、及び、前記他の解析アプリケーションの最終的な実行結果について必要であることを示す情報が前記定義情報に設定されているときには、前記一の解析アプリケーションが前記中間データを生成するまで前記一の解析アプリケーションを実行し、前記中間データが生成された時点で前記一の解析アプリケーションの実行を終了し、生成された前記中間データを前記他の解析アプリケーションに入力し、入力された前記中間データを用いて前記他の解析アプリケーションを実行する、
システム。
【請求項20】
複数の解析アプリケーションを含むワークフローを実行する実行部と、
前記ワークフローの実行中にエラーが発生した場合、後続の処理を実行するか否かについての指示を受け付ける受付部と、
前記受付部により受け付けられた指示に基づいて、前記後続の処理の実行を制御する制御部と、
を備える、システム。
【請求項21】
ワークフローに含まれる複数の解析アプリケーションのそれぞれ又は前記複数の解析アプリケーションのそれぞれにおいて実行される複数の処理のそれぞれについて、前記ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された定義情報に基づいて、前記ワークフローを実行することと、
ワークフローの実行状況に応じて、前記複数の解析アプリケーションのうちの一の解析アプリケーションに入力される入力データ又は前記複数の処理のうちの一の処理に入力される入力データの入手元を切り換える処理、及び、前記複数の解析アプリケーションの実行順序又は前記複数の処理の実行順序を変更する処理の少なくともいずれかの処理を実行することと、
を含む、方法。
【請求項22】
ワークフローに含まれる解析アプリケーションにおいて実行される処理に対して、前記ワークフローの実行状況ごとに、入力される入力データが設定される定義情報に基づいて、前記ワークフローを実行することと、
前記ワークフローの実行状況に応じて、前記処理に入力される入力データを切り換える処理を実行することと、
を含む、方法。
【請求項23】
ワークフローに含まれる複数の解析アプリケーションのそれぞれの最終的な実行結果について必要か否かを示す情報が設定された定義情報に基づいて、前記ワークフローを実行することと、
前記複数の解析アプリケーションのうちの一の解析アプリケーションにより生成された中間データを他の解析アプリケーションに入力し、前記中間データを用いて当該他の解析アプリケーションを実行する場合、前記一の解析アプリケーションの最終的な実行結果について必要でないことを示す情報、及び、前記他の解析アプリケーションの最終的な実行結果について必要であることを示す情報が前記定義情報に設定されているときには、前記一の解析アプリケーションが前記中間データを生成するまで前記一の解析アプリケーションを実行し、前記中間データが生成された時点で前記一の解析アプリケーションの実行を終了し、生成された前記中間データを前記他の解析アプリケーションに入力し、入力された前記中間データを用いて前記他の解析アプリケーションを実行することと、
を含む、方法。
【請求項24】
複数の解析アプリケーションを含むワークフローを実行することと、
前記ワークフローの実行中にエラーが発生した場合、後続の処理を実行するか否かについての指示を受け付けることと、
受け付けられた指示に基づいて、前記後続の処理の実行を制御することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書及び図面に開示の実施形態は、医用データ処理装置、システム及び方法に関する。
【背景技術】
【0002】
各種の医用画像診断装置から得られたDICOM(Digital Imaging and Communications in Medicine)データに対して、AI(Artificial Intelligence)等の解析アプリケーションを自動で実行する医用データ処理装置がある。なお、DICOMデータとは、DICOM規格に則ったデータである。そして、医用データ処理装置は、解析結果がユーザに確認可能となるように、解析結果を出力する。本明細書において、以下、「解析アプリケーション」を「アプリ」と略記する場合がある。
【0003】
かかる医用データ処理装置は、DICOMデータを用いて、複数のアプリを含むワークフローを実行する。例えば、医用データ処理装置は、複数のアプリの実行順序や各アプリを実行する際の各種の条件等が定義された定義情報にしたがって、ワークフローを実行する。ここで、例えば、あるアプリの実行結果(処理結果)を他のアプリに入力し、他のアプリが、入力された処理結果を用いて起動する場合がある。
【0004】
図1は、従来の医用データ処理装置が実行する処理の一例を説明するための図である。例えば、定義情報には、アプリAの実行が完了した後、すなわち、アプリAの実行が失敗しなかった場合に、アプリBを実行することが定義されている。また、定義情報には、アプリAは、アプリAの処理の結果A´をアプリBに出力し、アプリBは、結果A´を用いて処理を行い、アプリBの処理の結果Bを出力することが定義されている。医用データ処理装置は、このような定義情報にしたがってワークフローを実行する場合、
図1に示すように、まず、アプリAを実行し、アプリAの実行が完了した後、アプリAの処理の結果A´を用いてアプリBを実行する。これにより、アプリBの処理の結果Bが出力される。
【0005】
例えば、アプリAは、DICOMデータとして、時系列の複数の3次元CT画像データ(4次元CT画像データ)を用いて、灌流画像を生成するアプリである。また、アプリBは、結果A´を用いて、被検体の脳主幹動脈閉塞(large vessel occlusion:LVO)についての所定の解析(例えば、脳梗塞に関する解析)を行うアプリである。アプリAは、処理の結果Aとして還流画像を生成するものの、アプリBに対して出力する処理の結果A´として、複数の3次元CT画像データのうち、被検体に投与された造影剤の濃度が最も高い3次元CT画像データを選択する。そして、アプリBは、アプリAから出力された造影剤の濃度が最も高い3次元CT画像データを用いて、LVOについての所定の解析を行い、解析結果を結果Bとして出力する。
【0006】
ワークフローに含まれる複数のアプリの他の例について説明する。例えば、ワークフローには、磁気共鳴(Magnetic Resonance:MR)データを用いて拡散強調画像(Diffusion Weighted Image:DWI)を生成するアプリと、MRデータを用いて還流画像(Perfusion Weighted Image:PWI)を生成するアプリと、これらの2つのアプリにより生成されたDWIとPWIを用いてDWIとPWIのミスマッチを得るためのミスマッチ解析を行うアプリとが含まれる。
【0007】
ここで、後続のアプリに入力されて使用されるデータ(入力データ)を生成する前段のアプリの実行が失敗する場合がある。この場合、エラーとなりワークフローの処理が途中で終了してしまい、後続処理が動作せず、ユーザが期待する結果が得られない。また、複数のアプリが並列して実行される場合に、複数のアプリのうちいずれかのアプリの実行が失敗する場合がある。この場合においても、エラーとなりワークフローの処理が途中で終了してしまい、後続処理が動作せず、ユーザが期待する結果が得られない。以下、これらのエラーが発生する場合の3つの例を以下に説明する。
【0008】
1つ目の例は、エラーが発生するまでに、後続のアプリで使用されるデータが生成されていても、生成されたデータを活用できない場合である。
図2は、エラーが発生する場合の1つ目の例を説明するための図である。
図2に示すようにアプリAでは、処理Aが実行される。処理Aにおいて、処理A-1が実行された後に、処理A-2が実行される。処理A-1により、アプリBで使用される結果A´が生成され、処理A-2により、結果Aが生成される。
【0009】
ここで、
図2に示すように、処理A-1の実行が完了し、アプリBで使用される結果A´が生成された場合であっても、処理A-2の実行が失敗することがある。このとき、アプリAの実行が失敗し、エラーが発生したと判定される。上述したように、定義情報には、アプリAの実行が失敗しなかった場合に、アプリBを実行することが定義されている。すなわち、定義情報には、アプリAの実行が失敗した場合に、アプリBを実行しないことが定義されている。このため、ワークフローを実行する医用データ処理装置は、エラーが発生した時点で処理の実行を停止し、後続処理を動作させない。すなわち、アプリBが実行されない。このように、アプリBで使用される結果A´が生成されているにも関わらず、アプリBが実行されずにワークフローの処理が停止してしまう場合がある。
【0010】
2つ目の例は、あるアプリAにおいてエラーが発生したために、アプリAが、アプリAの後続のアプリBで使用されるデータを生成できなかったが、アプリAと互換性を有する他のアプリCがアプリBで使用されるデータを生成している場合である。このとき、アプリCにより生成されたデータは、アプリBで使用されない。例えば、アプリAの実行が失敗した場合、ワークフローを実行する医用データ処理装置は、アプリAの実行が失敗してエラーが発生した時点で、処理の実行を停止し、後続処理を動作させない。このように、アプリBで使用されるデータがアプリCにより生成されている場合であっても、ワークフローの処理が停止してしまう場合がある。なお、アプリの種類や構成によっては、1つのアプリ内で実行されている処理を複数の処理に分割することで、この1つのアプリを複数のアプリに分割することができない場合がある。
【0011】
3つ目の例について説明する。例えば、あるアプリAとあるアプリBとの2つのアプリが、並列して実行されるとともに、共通の前処理を実行しており、アプリAが、アプリAにより実行された前処理の結果を用いて処理Aを実行し、アプリBが、アプリBにより実行された前処理の結果を用いて処理Bを実行する場合を想定する。この場合、アプリAによる前処理の実行が失敗した場合であっても、アプリAの処理Aにおいて用いられる前処理の結果は、アプリBにより生成されている。しかしながら、ワークフローを実行する医用データ処理装置は、アプリAの前処理の実行が失敗してエラーが発生した時点で、処理の実行を停止し、後続処理を動作させない。このように、アプリAの処理Aで使用される前処理の結果がアプリBにより生成されている場合であっても、ワークフローの処理が停止してしまう場合がある。
【0012】
したがって、これらのことから、エラーが発生したもののワークフローの処理が継続して実行されることが可能な場合であっても、ワークフローの処理が停止してしまう場合がある。よって、エラーが発生した場合であっても、ワークフローの処理の停止を抑制することが望まれる。すなわち、ワークフローが適切に実行されることが望まれる。
【0013】
また、後続のアプリの結果のみを把握することをユーザが求めている場合であっても、前段のアプリが後続のアプリの処理に用いられるデータを後続のアプリに出力した後も動作し続けるため、医用データ処理装置のCPU(Central Processing Unit)等のプロセッサ及びメモリ等のリソースが無駄に消費される場合がある。
図3は、リソースが無駄に消費される場合の一例を説明するための図である。
図3に示すように、アプリAは、アプリBで使用される結果A´を生成し、結果A´をアプリBに出力した後も、
図3の破線の枠で囲まれた範囲が示すように、処理を実行し続ける。これは、アプリA自体は、最終的に処理の結果Aを出力するアプリであるからである。そして、アプリBは、アプリAの実行が完了した後でないと実行できない。ここで、ユーザは、アプリAの処理の結果Aではなく、アプリBの処理の結果Bを把握することを求めている。したがって、ユーザからすると、アプリAが結果A´を出力した後に処理を実行し続けることは、無駄な動作であると考えられる。よって、リソースが無駄に消費されることが抑制されることが望まれる。すなわち、ワークフローが適切に実行されることが望まれる。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2011-198053号公報
【特許文献2】特開2012-168821号公報
【特許文献3】特開2014-191603号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
本明細書及び図面に開示の実施形態が解決しようとする課題の一つは、ワークフローを適切に実行することである。ただし、本明細書及び図面に開示の実施形態により解決しようとする課題は上記課題に限られない。後述する実施形態に示す各構成による各効果に対応する課題を他の課題として位置付けることもできる。
【課題を解決するための手段】
【0016】
実施形態に係る医用データ処理装置は、記憶部と、実行部とを備える。記憶部は、ワークフローに含まれる複数の解析アプリケーションのそれぞれ又は前記複数の解析アプリケーションのそれぞれにおいて実行される複数の処理のそれぞれについて、前記ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された定義情報を記憶する。実行部は、前記定義情報に基づいて、前記ワークフローを実行し、ワークフローの実行状況に応じて、前記複数の解析アプリケーションのうちの一の解析アプリケーションに入力される入力データ又は前記複数の処理のうちの一の処理に入力される入力データの入手元を切り換える処理、及び、前記複数の解析アプリケーションの実行順序又は前記複数の処理の実行順序を変更する処理の少なくともいずれかの処理を実行する。
【図面の簡単な説明】
【0017】
【
図1】
図1は、従来の医用データ処理装置が実行する処理の一例を説明するための図である。
【
図2】
図2は、エラーが発生する場合の1つ目の例を説明するための図である。
【
図3】
図3は、リソースが無駄に消費される場合の一例を説明するための図である。
【
図4】
図4は、第1の実施形態に係る医用データ処理システム及び医用データ処理装置の構成例を示す図である。
【
図5】
図5は、第1の実施形態に係る定義情報が変更される場合の一例を説明するための図である。
【
図6】
図6は、第1の実施形態において、ディスプレイ及び端末の少なくとも1つに表示される変更後のワークフローと処理A´に入力された入力データ(インプットデータ)の一例を示す図である。
【
図7】
図7は、第1の実施形態に係る医用データ処理装置の処理回路が有する各処理機能によって行われる処理の流れを示すフローチャートである。
【
図8】
図8は、第1の実施形態の変形例に係る定義情報が変更される場合の一例を説明するための図である。
【
図9】
図9は、第2の実施形態に係る定義情報が変更される場合の一例を説明するための図である。
【
図10】
図10は、第2の実施形態に係る実行機能が実行する処理の一例を説明するための図である。
【
図11】
図11は、第2の実施形態において、ディスプレイ及び端末の少なくとも1つに表示される、アプリDに入力された入力データ(インプットデータ)の一例を示す図である。
【
図12】
図12は、第3の実施形態に係る変更前の定義情報の一例を示す図である。
【
図13】
図13は、第3の実施形態に係る変更後の定義情報の一例を示す図である。
【
図14】
図14は、第4の実施形態に係る受付画面の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら、医用データ処理装置、システム及び方法の実施形態及び変形例について詳細に説明する。なお、本願に係る医用データ処理装置、システム及び方法は、以下に示す実施形態及び変形例によって限定されるものではない。また、実施形態は、処理内容に矛盾が生じない範囲で他の実施形態、変形例又は従来技術との組み合わせが可能である。同様に、変形例は、処理内容に矛盾が生じない範囲で実施形態、他の変形例又は従来技術との組み合わせが可能である。
【0019】
(第1の実施形態)
図4は、第1の実施形態に係る医用データ処理システム100及び医用データ処理装置150の構成例を示す図である。
【0020】
図4に示すように、本実施形態に係る医用データ処理システム100は、医用診断装置群110と、医用画像保管装置120と、端末130と、医用データ処理装置150とを含む。ここで、各装置は、ネットワーク160を介して互いに通信可能に接続されている。本実施形態に係る医用データ処理システム100及び医用データ処理装置150は、例えば、病院や診療所等の医療施設に設置され、医師等のユーザによる診断を支援する。医用データ処理システム100は、例えば、システムの一例である。
【0021】
医用診断装置群110は、複数の医用診断装置の集合である。かかる医用診断装置の一例としては、X線CT(Computed Tomography)装置、超音波診断装置、磁気共鳴イメージング(Magnetic Resonance Imaging:MRI)装置、X線診断装置、PET(Positron Emission Tomography)装置、及び、SPECT(Single Photon Emission Computed Tomography)装置等の各種の医用画像診断装置が挙げられる。
【0022】
X線CT装置は、CT画像を生成する。超音波診断装置は、超音波画像を生成する。MRI装置は、MRI画像を生成する。X線診断装置は、X線画像及びアンギオ画像を生成する。PET装置は、PET画像を生成する。SPECT装置は、SPECT画像を生成する。CT画像、超音波画像、MRI画像、X線画像、アンギオ画像、PET画像及びSPECT画像は、いずれもDICOMデータであり、医用データであり、医用画像である。
【0023】
医用画像保管装置120は、各種の医用画像を保管する。具体的には、医用画像保管装置120は、ネットワーク160を介して医用診断装置群110から医用画像を取得し、取得された医用画像を医用画像保管装置120内の記憶回路に記憶させて保管する。また、例えば、医用画像保管装置120は、PACS(Picture Archiving and Communication System)等によって実現され、DICOMに準拠した形式で医用画像を保管する。医用画像保管装置120は、サーバやワークステーション等のコンピュータ機器によって実現される。
【0024】
端末130は、ユーザにより利用される端末であり、各種の医用データを表示する。例えば、端末130は、ネットワーク160を介して医用画像保管装置120及び医用データ処理装置150から医用画像や解析処理の解析結果、画像処理の処理結果等の各種の医用データを取得する。そして、端末130は、取得された医用データを端末130が備えるディスプレイに表示させる。端末130が備えるディスプレイは、表示部の一例である。例えば、端末130は、ワークステーションやパーソナルコンピュータ、タブレット端末等のコンピュータ機器によって実現される。
【0025】
医用データ処理装置150は、医用データに対して各種の解析処理や各種の画像処理を行う。例えば、医用データ処理装置150は、ネットワーク160を介して医用診断装置群110又は医用画像保管装置120から医用データを取得する。そして、医用データ処理装置150は、取得された医用データに対して各種の解析処理や各種の画像処理を行う。医用データ処理装置150は、各種の解析処理を行うため、解析サーバ又は解析装置とも称される。例えば、医用データ処理装置150は、サーバやワークステーション等のコンピュータ機器によって実現される。なお、以下の説明では、1台の医用データ処理装置150が以下に説明する各種の処理を実行する場合について説明するが、複数の医用データ処理装置150が以下に説明する各種の処理を分散して実行してもよい。
【0026】
図4に示すように、医用データ処理装置150は、通信インタフェース151と、記憶回路152と、入力インタフェース153と、ディスプレイ154と、処理回路155とを備える。
【0027】
通信インタフェース151は、医用データ処理装置150と、医用データ処理装置150にネットワーク160を介して接続された他の装置との間で送受信される各種情報及び各種データの伝送及び通信を制御する。通信インタフェース151は、処理回路155に接続されている。通信インタフェース151は、他の装置により送信されたデータを受信する。この場合、通信インタフェース151は、受信されたデータを処理回路155に送信する。また、通信インタフェース151は、処理回路155により送信されたデータを受信する。この場合、通信インタフェース151は、受信されたデータを他の装置に送信する。例えば、通信インタフェース151は、ネットワークカードやネットワークアダプタ、NIC(Network Interface Controller)等によって実現される。
【0028】
記憶回路152は、各種データ及び各種プログラムを記憶する。記憶回路152は、処理回路155に接続されている。記憶回路152は、処理回路155による制御を受けて、処理回路155により送信されたデータを記憶する。また、記憶回路152に記憶されているデータは、処理回路155により読み出される。例えば、記憶回路152は、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子や、ハードディスク、光ディスク等によって実現される。
【0029】
記憶回路152は、定義情報152aを記憶している。定義情報152aは、ワークフローの実行に関する定義を示す。例えば、定義情報152aには、ワークフローに含まれる複数のアプリの実行順序や各アプリを実行する際の各種の条件等が定義されている。本実施形態では、医用データ処理装置150は、定義情報152aにしたがって、ワークフローを実行する。
【0030】
入力インタフェース153は、医師等のユーザから各種指示及び各種情報の入力操作を受け付ける。入力インタフェース153は、処理回路155に接続されている。入力インタフェース153は、ユーザから受け付けた操作を電気信号に変換して処理回路155に送信する。例えば、入力インタフェース153は、トラックボール、スイッチボタン、マウス、キーボード、操作面へ触れることで操作を受け付けるタッチパッド、表示画面とタッチパッドとが一体化されたタッチスクリーン、光学センサを用いた非接触入力インタフェース、及び音声入力インタフェース等によって実現される。なお、本明細書において、入力インタフェース153は、マウス、キーボード等の物理的な操作部品を備えるものだけに限られない。例えば、装置とは別体に設けられた外部の入力機器から入力操作に対応する電気信号を受け取り、この電気信号を処理回路155へ送信する電気信号の処理回路も入力インタフェース153の例に含まれる。
【0031】
ディスプレイ154は、各種情報及び各種データを表示する。ディスプレイ154は、処理回路155に接続されている。ディスプレイ154は、処理回路155による制御を受けて、処理回路155により送信された各種情報及び各種データを表示する。例えば、ディスプレイ154は、液晶ディスプレイやCRT(Cathode Ray Tube)ディスプレイ、タッチパネル等によって実現される。ディスプレイ154は、表示部の一例である。
【0032】
処理回路155は、医用データ処理装置150全体を制御する。例えば、処理回路155は、入力インタフェース153を介してユーザから受け付けた操作に応じて、各種の解析処理や各種の画像処理を行う。また、例えば、処理回路155は、ネットワーク160を介して医用診断装置群110又は医用画像保管装置120により送信された医用データを取得する。そして、処理回路155は、取得された医用データを記憶回路152に記憶させる。
【0033】
図1に示すように、処理回路155は、設定機能155aと、実行機能155bと、表示制御機能155cとを有する。設定機能155aは、例えば、設定部の一例である。実行機能155bは、例えば、実行部の一例である。表示制御機能155cは、例えば、表示制御部の一例である。
【0034】
処理回路155は、例えば、プロセッサによって実現される。その場合に、上述した各処理機能は、コンピュータによって実行可能なプログラム(医用データ処理プログラム)の形態で記憶回路152に記憶される。そして、処理回路155は、記憶回路152に記憶された各プログラムを読み出し、読み出された各プログラムを実行することで、各プログラムに対応する各処理機能を実現する。換言すると、処理回路155は、各プログラムを読み出した状態で、
図4に示される各処理機能を有することとなる。
【0035】
なお、処理回路155は、複数の独立したプロセッサを組み合わせて構成され、各プロセッサが各プログラムを実行することによって各処理機能を実現するものとしてもよい。また、処理回路155が有する各処理機能は、単一又は複数の処理回路に分散又は統合されて実現されてもよい。また、処理回路155が有する各処理機能は、回路等のハードウェアとソフトウェアとの混合によって実現されても構わない。また、ここでは、各処理機能に対応する各プログラムが単一の記憶回路152に記憶される場合の例を説明したが、各プログラムが複数の記憶回路に分散して記憶されてもよい。例えば、各処理機能に対応する各プログラムが複数の記憶回路に分散して記憶され、処理回路155が、各記憶回路から各プログラムを読み出して実行する構成としても構わない。
【0036】
以上、本実施形態に係る医用データ処理システム100及び医用データ処理装置150の構成の一例について説明した。本実施形態に係る医用データ処理システム100及び医用データ処理装置150は、以下に説明するように、ワークフローを適切に実行するように構成されている。
【0037】
第1の実施形態では、実行機能155bが、アプリA及びアプリBを含むワークフローを実行する。なお、アプリA及びアプリBは、並列に実行される。ここで、本実施形態では、このような実行機能155bによるワークフローの実行に先立って、定義情報152aが示すワークフローの実行に関する定義がユーザにより変更される。なお、定義の変更とは、定義の追加、定義の少なくとも一部の削除、及び、定義の少なくとも一部の修正等を含む概念である。
【0038】
図5は、第1の実施形態に係る定義情報152aが変更される場合の一例を説明するための図である。
図5には、定義情報152aに登録されている定義の一例が示されている。
図5の例において、矢印はデータの流れを示す。また、実線の矢印は、ユーザによる変更が行われる前のデータの流れ、すなわち、定義情報152aに元々定義されていたデータの流れを示す。また、破線の矢印は、ユーザにより追加されたデータの流れ、すなわち、ユーザによる追加を受け付けたデータの流れを示す。以下の説明では、ユーザによりデータの流れが追加される前の定義情報152aを「変更前の定義情報152a」と称し、変更前の定義情報152aに対してユーザによりデータの流れが追加された定義情報152aを「変更後の定義情報152a」と称する。
【0039】
図5には、変更後の定義情報152aが示す定義が示されている。このため、変更前の定義情報152aについて説明する。変更前の定義情報152aには、アプリAとアプリBとを並列して実行することが定義されている。また、変更前の定義情報152aには、アプリAにおいて、処理Aを実行した後に、処理Aの処理の結果が処理A´に入力され、処理Aの処理の結果を用いて処理A´を行い、処理A´の処理の結果AをアプリAの処理の結果AとしてアプリAが出力することが定義されている。また、変更前の定義情報152aには、アプリBにおいて、処理Bを実行した後に、処理Bの処理の結果が処理B´に入力され、処理Bの処理の結果を用いて処理B´を行い、処理B´の処理の結果BをアプリBの処理の結果BとしてアプリBが出力することが定義されている。変更前の定義情報152aでは、これらのことが元々定義されている。
【0040】
次に、ユーザにより定義情報152aが変更される場合について説明する。設定機能155aは、変更前の定義情報152aが示す定義をワークフローのダイアグラムのような表現でディスプレイ154及び端末130の少なくとも1つに表示させる。例えば、ディスプレイ154及び端末130の少なくとも1つに表示される変更前の定義情報152aが示す定義は、
図5に示す変更後の定義情報152aが示す定義から2つの破線の矢印が削除された定義である。設定機能155aは、ユーザによる各種の変更が可能なように定義情報152aを表示させる。ユーザは、ワークフローのダイアグラムのような表現で定義情報152aが表示されることにより、複数のアプリの実行順序や、各アプリ内で実行される複数の処理の実行順序等の各種の条件を直感的に容易に把握することができる。なお、
図5の例では、ダイアグラムの粒度が、アプリ単位、及び、アプリ単位よりも詳細な処理(アルゴリズム)単位である場合を示しているが、ダイアグラムの粒度は、これらに限られない。一つの結果を生成する単位であれば、どのような単位であってもよい。また、同様の定義ができるならば、表示される表現はダイアグラムに限られない。
【0041】
ここで、処理Aと処理Bとが互換性があり、このため、処理Aの処理の結果と処理Bの処理の結果とについても互換性がある場合について説明する。この場合、例えば、処理Aの実行が失敗して処理Aの処理の結果が処理A´に入力されない場合であっても、処理Bの実行が失敗せずに完了していれば、処理Bの処理の結果を用いて処理A´を実行することが可能である。同様に、処理Bの実行が失敗して処理Bの処理の結果が処理B´に入力されない場合であっても、処理Aの実行が失敗せずに完了していれば、処理Aの処理の結果を用いて処理B´を実行することが可能である。
【0042】
そこで、ユーザは、入力インタフェース153を操作することにより、処理Aの実行が失敗した場合、処理Bの処理の結果を処理A´に入力することを意味する
図5に示す破線の矢印を処理Bから処理A´に向けて設定する。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、処理Aの実行が失敗した場合、処理Bの処理の結果を処理A´に入力することを意味する破線の矢印を処理Bから処理A´に向けて設定する。これにより、定義情報152aには、処理Aの実行が失敗した場合、処理Bの処理の結果を処理A´に入力し、処理Bの処理の結果を用いて処理A´を実行することが定義される。より詳細には、定義情報152aには、処理Aのエラーの発生というイベントと、処理Bの処理の結果を処理A´に入力し、処理Bの処理の結果を用いて処理A´を実行することとが対応付けられて登録される。
【0043】
また、ユーザは、入力インタフェース153を操作することにより、処理Bの実行が失敗した場合、処理Aの処理の結果を処理B´に入力することを意味する
図5に示す破線の矢印を処理Aから処理B´に向けて設定する。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、処理Bの実行が失敗した場合、処理Aの処理の結果を処理B´に入力することを意味する破線の矢印を処理Aから処理B´に向けて設定する。これにより、定義情報152aには、処理Bの実行が失敗した場合、処理Aの処理の結果を処理B´に入力し、処理Aの処理の結果を用いて処理B´を実行することが定義される。より詳細には、定義情報152aには、処理Bのエラーの発生というイベントと、処理Aの処理の結果を処理B´に入力し、処理Aの処理の結果を用いて処理B´を実行することとが対応付けられて登録される。
【0044】
このようにして定義情報152aが変更された後、実行機能155bは、変更後の定義情報152aにしたがってワークフローを実行する。例えば、実行機能155bは、処理Aのエラーの発生というイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、処理Bの処理の結果を処理A´に入力し、処理Bの処理の結果を用いて処理A´を実行する。また、実行機能155bは、処理Bのエラーの発生というイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、処理Aの処理の結果を処理B´に入力し、処理Aの処理の結果を用いて処理B´を実行する。
【0045】
なお、イベントは、ワークフローの実行状況を表す。すなわち、実行機能155bは、定義情報152aに基づいて、ワークフローを実行し、ワークフローの実行状況に応じて、複数の処理のうちの一の処理(処理A´又は処理B´)に入力される入力データの入手元を切り換える処理を実行する。また、実行機能155bは、一の処理に入力される入力データの入手元を切り換えて、一の処理を実行するアプリ(アプリA又はアプリB)とは異なる他のアプリ(アプリB又はアプリA)の中間データを入力データとして一の処理に入力する。また、実行機能155bは、一の処理に入力される入力データの入手元を切り換えて、一の処理とは異なる他の処理(処理B又は処理A)のデータを入力データとして一の処理に入力する。また、実行機能155bは、ワークフローの実行状況としてワークフローの実行のエラーが発生した場合、定義情報152aに基づいて、一の処理に入力される入力データの入手元をエラーが発生した場合の入手元に切り換えることによりワークフローを変更する。
【0046】
したがって、上述した設定機能155aは、定義情報152aに対してワークフローの実行状況ごとに、各処理に入力される入力データ及び各処理から出力される出力データを設定する。また、定義情報152aは、ワークフローに含まれる複数のアプリのそれぞれにおいて実行される複数の処理のそれぞれについて、ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された情報である。
【0047】
なお、
図5に示す例において、設定機能155aは、各処理(処理A、処理A´、処理B、処理B´)に入力されて当該処理に用いられることが可能な入力データのデータ種別と、各処理から出力される出力データのデータ種別とをディスプレイ154及び端末130の少なくとも1つに表示させてもよい。データ種別とは、例えば、2次元画像、3次元画像、CT画像、n(nは自然数)枚の心拍特定時相の画像等を指す。これにより、ユーザは、処理毎に、必要な入力データのデータ種別及び出力データのデータ種別を容易に把握することができるため、ワークフローの実行状況に応じて切り換える入力データの設定を容易に行うことができる。
【0048】
また、設定機能155aは、データ種別に代えて、入力データが備える複数の要件(例えば、2次元画像であるのか3次元画像であるのか、画像の解像度、画像の種類、動画であるのか又は静止画であるのか等)を示すアイコンを、入力データが入力される処理の入力に対応する箇所に表示させてもよい。同様に、設定機能155aは、データ種別に代えて、出力データが備える複数の要件(例えば、2次元画像であるのか3次元画像であるのか、画像の解像度、画像の種類、動画であるのか又は静止画であるのか等)を示すアイコンを、出力データが出力される処理の出力に対応する箇所に表示させてもよい。ユーザは、アイコンを確認することで、どの処理の出力と、どの処理の入力とを接続させたらよいかを容易に判断することができる。
【0049】
ここで、第1の実施形態に係るアプリAの処理A、処理A´及び結果A並びにアプリBの処理B、処理B´及び結果Bの具体例について説明する。例えば、アプリAに入力されるデータは、第1のDICOMシリーズ及び第2のDICOMデータであり、アプリBに入力されるデータも、第1のDICOMシリーズ及び第2のDICOMデータである。なお、第1のDICOMシリーズは、例えば、被検体の所定部位が描出された時系列の複数の医用画像である。また、第2のDICOMシリーズは、第1のDICOMシリーズに描出された被検体の所定部位と同一の被検体の所定部位が描出された時系列の複数の医用画像である。第1のDICOMシリーズと第2のDICOMシリーズとは、例えば、同一の医用診断装置により生成された複数の医用画像であるものの、第1のDICOMシリーズと第2のDICOMシリーズとでは、撮像されたタイミングが異なる。なお、第1のDICOMシリーズと第2のDICOMシリーズとが、異なる医用診断装置により生成されてもよい。
【0050】
そして、アプリAの処理A及びアプリBの処理Bの両方の処理は、第1のDICOMシリーズと第2のDICOMシリーズとの位置合わせを行う処理である。そして、処理Aは、処理Aの後続の処理A´に、処理Aの処理の結果として位置合わせの結果を出力する。また、処理Bは、処理Bの後続の処理B´に、処理Bの処理の結果として位置合わせの結果を出力する。このように、処理Aと処理Bとが互換性があり、処理Aの処理の結果と処理Bの処理の結果とについても互換性がある。
【0051】
処理A´は、入力された位置合わせの結果を用いて、位置合わせされた第1のDICOMシリーズと第2のDICOMシリーズとの差分を計算し、計算された差分を結果Aとして出力する。また、処理B´は、入力された位置合わせの結果を用いて、位置合わせされた第1のDICOMシリーズと第2のDICOMシリーズとを重ね合わせて、重ね合わせられた結果を結果Bとして出力する。
【0052】
上述したように、第1の実施形態に係る医用データ処理システム100及び医用データ処理装置150は、処理A又は処理Bの実行に失敗した場合であっても、ユーザが望む形で、後続の処理を継続して実行する。したがって、第1の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、エラーが発生した場合であっても、ユーザが望む形で、ワークフローの処理の停止を抑制することができる。このため、既に実行した処理が無駄にならず、アプリの実行の効率を向上させることができる。よって、ワークフローを適切に実行することができる。
【0053】
また、手動での処理の再実行が不要になり、ユーザの負担を軽減することができる。また、アプリA及びアプリBがサードパーティ製のアプリであっても、アプリA及びアプリBの中間処理やデータの流れを可視化した上で、イベントが発生した場合の処理A´又は処理B´に入力されるデータの切り替えをユーザに設定させることで、より詳細なワークフローを組めるようにすることができる。
【0054】
なお、設定機能155bは、定義情報152aに、エラーの発生という1つのイベントに対して、1つの処理ではなく複数の処理を対応付けて登録するとともに、各処理に優先度を対応付けて登録してもよい。そして、実行機能155bは、エラーの発生というイベントを検知した場合、優先度の高い処理から順に処理の実行の可否を判断し、実行することが可能と判断された処理を実行するようにしてもよい。
【0055】
そして、表示制御機能155cは、ワークフローの実行の終了というイベントを検知した場合に、変更後のワークフロー(組み換えられたワークフロー)と、処理A´又は処理B´に入力された入力データ(アプリB又はアプリAの中間データ)をディスプレイ154及び端末130の少なくとも1つに表示させる。なお、ワークフローの実行の終了というイベントは、入力インタフェース153を介してユーザにより処理回路155に入力される。表示制御機能155cは、かかるイベントが入力された場合に、変更後のワークフローと、処理A´又は処理B´に入力された入力データをディスプレイ154及び端末130の少なくとも1つに表示させる。なお、表示制御機能155cは、端末130に変更後のワークフローと入力データを表示させる場合、通信インタフェース151を介して端末130に、変更後のワークフローと入力データを送信する。端末130は、変更後のワークフローと入力データを受信すると、受信された変更後のワークフローと入力データを端末130のディスプレイに表示する。表示制御機能155cは、端末130に他のデータを表示させる場合も、同様の処理を行う。
【0056】
図6は、第1の実施形態において、ディスプレイ154及び端末130の少なくとも1つに表示される変更後のワークフローと処理A´に入力された入力データ(インプットデータ)の一例を示す図である。
図6に示すように、表示制御機能155cは、変更後のワークフローのダイアグラムを表示させる。
図6の例では、変更後のワークフローのダイアグラムにおいて、破線の矢印が本来のデータの流れ(本来のパス)を示し、実線の幅が細い矢印が変更後のデータの流れ(変更後のパス)を示し、実線の幅が太い矢印が従来通りのデータの流れ(従来通りのパス)を示す。したがって、ユーザは、表示された変更後のワークフローのダイアグラムから、直感的に容易に変更前のワークフローのデータの流れ及び変更後のワークフローのデータの流れを把握することができる。また、ユーザは、変更後のワークフローが意図したワークフローとなっているか否かを容易に確認することができる。
【0057】
また、
図6に示すように、表示制御機能155cは、処理A´に入力されたインプットデータ(入力データ)をディスプレイ154及び端末130の少なくとも1つに表示させる。
図6の例では、表示制御機能155cは、インプットデータとして位置合わせの結果を示す医用画像を表示させる。したがって、ユーザは、処理A´に入力されたデータを直感的に容易に把握することができる。また、ユーザは、意図したデータが処理A´に入力されているか否かを容易に確認することができる。
【0058】
また、変更後のワークフローのダイアグラムや処理A´に入力された入力データを表示することで、ユーザは、正しく処理が行われているか否かを容易に確認することができる。このことは、より効率的なワークフローをユーザに発見させることを支援することに繋がる。
【0059】
また、
図6に示すように、表示制御機能155cは、処理A´で用いられるインプットデータの属性と、実際に処理Bから出力されて処理A´に入力されたインプットデータの属性とを比較可能なようにディスプレイ154及び端末130の少なくとも1つに表示させる。
図6の例では、表示制御機能155cは、処理A´で用いられるインプットデータの属性として、「optimal」を表示させる。例えば、医用画像にはタグ(tags)が付加されており、このタグには各種の属性が登録される。また、表示制御機能155cは、実際に処理Bから出力されて処理A´に入力されたインプットデータの属性として、「optimal」を表示させる。このように、表示制御機能155cは、一の処理(処理A´)で用いられる入力データの属性と、他の処理(処理B)のデータの属性をディスプレイ154及び端末130の少なくとも1つに表示させる。ユーザは、2つの属性を確認することで、ユーザは、意図したデータが処理A´に入力されているか否かを容易に確認することができる。
図6に示す場合、両者の属性が一致しているため、ユーザは、意図したデータが処理A´に入力されていることを容易に確認することができる。
【0060】
なお、両者の属性が一致していない場合、ユーザは、意図していないデータが処理A´に入力されていることを容易に確認することができる。この場合、表示制御機能155cは、ワークフローの変更、又は、エラーが発生した処理の手動での再実行を行うための指示をユーザから受け付けるための受付画面をディスプレイ154及び端末130の少なくとも1つに表示させてもよい。そして、医用データ処理装置150は、ユーザから受け付けた指示にしたがって、処理を実行してもよい。
【0061】
また、
図6に示すように、表示制御機能155cは、どのような原因で、どのようなワークフローの変更が起こったのかを示すメッセージをディスプレイ154及び端末130の少なくとも1つに表示させる。すなわち、表示制御機能155cは、ワークフローが変更した原因、及び、ワークフローの変更の内容を示すメッセージをディスプレイ154及び端末130の少なくとも1つに表示させる。例えば、表示制御機能155cは、かかるメッセージとして、「アプリAの処理Aがエラー終了したため、互換性のあるアプリBの処理Bを代わりに使用し、処理A´を継続しました。」というメッセージを表示させる。これにより、ユーザは、どのような原因で、どのようなワークフローの変更が起こったのかを容易に把握することができる。
【0062】
また、
図6に示すように、表示制御機能155cは、アプリAの処理Aの実行が失敗した原因をユーザに容易に把握させることが可能なエラーコードをディスプレイ154及び端末130の少なくとも1つに表示させる。
図6の例では、表示制御機能155cは、「エラーコード:1」及び「Parameter XXX is invalid for the input data」を表示させる。これにより、ユーザは、アプリAの処理Aの実行が失敗した原因を容易に把握することができる。
【0063】
次に、医用データ処理装置150により実行される処理の流れについて、
図7を用いて説明する。
図7は、第1の実施形態に係る医用データ処理装置150の処理回路155が有する各処理機能によって行われる処理の流れを示すフローチャートである。
【0064】
なお、
図7に示すステップS101の処理と、ステップS102以降の処理とは非同期で実行される。ただし、ステップS101の処理と、ステップS102以降の処理とが同期をとって実行されてもよい。
【0065】
図7に示すように、まず、設定機能155aは、入力インタフェース153を介して入力されたユーザの指示に基づいて、定義情報152aを変更する(ステップS101)。
【0066】
実行機能155bは、ワークフローの実行を開始する(ステップS102)。そして、イベントが発生すると(ステップS103)、実行機能155bは、発生したイベントがワークフローの実行を終了するというイベントであるか否かを判定する(ステップS104)。
【0067】
発生したイベントがワークフローの実行を終了するというイベントではない場合(ステップS104:No)、実行機能155bは、発生したイベントに対して所定の処理が設定されているか否かを判定する(ステップS105)。例えば、ステップS105では、発生したイベントに所定の処理が対応付けられているか否かを判定することで、発生したイベントに対して所定の処理が設定されているか否かを判定する。例えば、発生したイベントに所定の処理が対応付けられている場合、実行機能155bは、発生したイベントに対して所定の処理が設定されていると判定する。一方、発生したイベントに所定の処理が対応付けられていない場合、実行機能155bは、発生したイベントに対して所定の処理が設定されていないと判定する。
【0068】
発生したイベントに対して所定の処理が設定されていない場合(ステップS105:No)、再びイベントが発生すると(ステップS103)、ステップS104以降の処理が再び実行される。すなわち、イベントが発生するたびに、ステップS104以降の処理が実行される。
【0069】
発生したイベントに対して所定の処理が設定されている場合(ステップS105:Yes)、実行機能155bは、イベントに設定されている所定の処理を実行することで、ワークフローを組み換えたり、処理の実行順序を変更したりする(ステップS106)。そして、再びイベントが発生すると(ステップS103)、ステップS104以降の処理が再び実行される。
【0070】
一方、発生したイベントがワークフローの実行を終了するというイベントである場合(ステップS104:Yes)、実行機能155bはワークフローの実行を終了し、表示制御機能155cは、ステップS106において、ワークフローが組み換えられたり、処理の実行順序が変更されたりしたか否かを判定する(ステップS107)。
【0071】
ワークフローが組み換えられたり、処理の実行順序が変更されたりした場合(ステップS107:Yes)、表示制御機能155cは、変更後のワークフローとインプットデータ(中間データ)をディスプレイ154及び端末130の少なくとも1つに表示させ(ステップS108)、
図7に示す処理を終了する。また、ワークフローが組み換えられておらず、処理の実行順序が変更されていない場合(ステップS107:No)にも、
図7に示す処理が終了される。
【0072】
以上、第1の実施形態に係る医用データ処理システム100及び医用データ処理装置150について説明した。第1の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、上述したように、ワークフローを適切に実行することができる。
【0073】
なお、第1の実施形態では、定義情報152aが、ワークフローに含まれる複数のアプリのそれぞれにおいて実行される複数の処理のそれぞれについて、ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された情報である場合について説明した。しかしながら、定義情報152aは、これに限られない。例えば、定義情報152aは、ワークフローに含まれる複数のアプリのそれぞれについて、ワークフローの実行状況ごとに、入力される入力データ及び出力する出力データが設定された情報であってもよい。この場合、実行機能155bは、定義情報152aに基づいて、ワークフローを実行し、ワークフローの実行状況に応じて、複数のアプリのうちの一のアプリに入力される入力データの入手元を切り換える処理を実行する。具体例を挙げて説明すると、実行機能155bは、一のアプリに入力される入力データの入手元を切り換えて、他のアプリの中間データを入力データとして一のアプリに入力する。更に具体的に説明すると、実行機能155bは、ワークフローの実行状況としてワークフローの実行のエラーが発生した場合、定義情報152aに基づいて、一のアプリに入力される入力データの入手元をエラーが発生した場合の入手元に切り換えることによりワークフローを変更する。そして、表示制御機能155cは、入手元が切り換えられた後に一のアプリに入力された入力データをディスプレイ154及び端末130の少なくとも1つに表示させる。
【0074】
(第1の実施形態の変形例)
第1の実施形態では、医用データ処理装置150が、ワークフローの実行状況に応じて、複数のアプリのうちの一のアプリに入力される入力データ又は複数の処理のうちの一の処理に入力される入力データの入手元を切り換える場合について説明した。しかしながら、医用データ処理装置150は、ワークフローの実行状況に応じて、記憶回路152に記憶された複数のデータの中から処理に用いられるデータを選択し、選択されたデータを入力データとして当該処理に入力してもよい。そこで、このような変形例を、第1の実施形態の変形例として説明する。なお、第1の実施形態の変形例の説明において、上述した第1の実施形態と異なる点を主に説明し、上述した第1の実施形態と同様の構成の説明を省略する場合がある。
【0075】
変形例では、実行機能155bが、例えば、1つのアプリXを含むワークフローを実行する。ここで、本変形例では、このような実行機能155bによるワークフローの実行に先立って、定義情報152aが示すワークフローの実行に関する定義がユーザにより変更される。
【0076】
図8は、第1の実施形態の変形例に係る定義情報152aが変更される場合の一例を説明するための図である。
図8には、定義情報152aに登録されている定義の一例が示されている。
図8の例において、矢印はデータの流れを示す。
図8には、変更後の定義情報152aが示す定義が示されている。具体的には、
図8は、変更前の定義情報152aに対して、シリーズDを処理Aに入力することを示す矢印、シリーズEを処理Aに入力することを示す矢印、及び、シリーズD及びシリーズEのそれぞれの優先度が設定された変更後の定義情報152aを示す。シリーズA~Eについて説明すると、シリーズA~Eのそれぞれのシリーズは、被検体の所定部位が描出された時系列の複数の医用画像である。ただし、シリーズA~Eは、互いに、撮像されたタイミングが異なる。シリーズA~Eは、同一の医用診断装置により生成されたシリーズであってもよいし、同一の医用診断装置により生成されたシリーズでなくてもよい。シリーズA~Eは予め記憶回路152に記憶されている。
【0077】
変更前の定義情報152aについて説明すると、変更前の定義情報152aには、シリーズA、シリーズB及びシリーズCの3つのシリーズをアプリXの処理Aに入力し、シリーズA、シリーズB及びシリーズCの3つのシリーズを用いて処理Aを実行することが定義されている。また、変更前の定義情報152aには、処理Aの処理の結果AをアプリXが出力することが定義されている。変更前の定義情報152aでは、これらのことが元々定義されている。
【0078】
次に、ユーザにより定義情報152aが変更される場合について説明する。設定機能155aは、変更前の定義情報152aが示す定義をワークフローのダイアグラムのような表現でディスプレイ154及び端末130の少なくとも1つに表示させる。設定機能155aは、ユーザによる各種の変更が可能なように定義情報152aを表示させる。ユーザは、ワークフローのダイアグラムのような表現で定義情報152aが表示されることにより、アプリXの処理Aで実行される処理に用いられる3つのシリーズの種類等の各種の条件を直感的に容易に把握することができる。
【0079】
ここで、シリーズCとシリーズDとが互換性があり、シリーズCとシリーズEとも互換性がある。したがって、実行機能155bは、シリーズCの代わりにシリーズDを用いて処理Aを実行することができる。また、実行機能155bは、シリーズCの代わりにシリーズDを用いても処理Aを実行することができる。
【0080】
そこで、ユーザは、入力インタフェース153を操作することにより、
図8に示すように、シリーズA、シリーズB及びシリーズCを用いた処理Aの実行が失敗した場合に、新たに、シリーズCに代えてシリーズD又はシリーズEを用いて処理Aを実行することを定義情報152aに設定する。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、シリーズA、シリーズB及びシリーズCを用いた処理Aの実行が失敗した場合に、新たに、シリーズCに代えてシリーズD又はシリーズEを用いて処理Aを実行することを定義情報152aに設定する。更に具体的には、設定機能155aは、シリーズCの代わりに使用可能なシリーズとしてシリーズD及びシリーズEをマークする。
【0081】
このとき、ユーザは、入力インタフェース153を操作することにより、シリーズD及びシリーズEのそれぞれに優先度を設定する。この優先度は、シリーズCを用いた処理Aの実行に失敗した場合に、シリーズD及びシリーズEのどちらのシリーズを優先的に使用するかを示す。優先度が高いほうのシリーズが優先的に使用される。本変形例では、処理Aの実行が完了するまで、優先度が高いシリーズから順に使用される。具体的には、実行機能155bは、処理Aの実行が完了するまで、シリーズCの代わりに使用可能なシリーズとしてマークされた複数のシリーズのうち、優先度が高いシリーズから順に処理Aに入力し、入力されたシリーズを使用して処理Aを実行する。
【0082】
図8の例では、ユーザが、シリーズDの優先度として「高」を設定し、シリーズEの優先度として「低」を設定した場合が示されている。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、シリーズDの優先度として「高」を設定し、シリーズEの優先度として「低」を設定する。これにより、シリーズEの優先度よりもシリーズDの優先度が高くなる。このため、シリーズEよりもシリーズDのほうが優先的に使用される。
【0083】
以上の処理により、定義情報152aには、シリーズA、シリーズB及びシリーズCを用いた処理Aの実行が失敗した場合に、新たに、シリーズA、シリーズB及びシリーズDを処理Aに入力し、シリーズA、シリーズB及びシリーズDを用いて処理Aを実行し、シリーズA、シリーズB及びシリーズDを用いた処理Aの実行が失敗した場合に、新たに、シリーズA、シリーズB及びシリーズEを処理Aに入力し、シリーズA、シリーズB及びシリーズEを用いて処理Aを実行することが定義される。
【0084】
より詳細には、定義情報152aには、シリーズA、シリーズB及びシリーズCを用いて実行された処理Aのエラーの発生というイベントと、シリーズA、シリーズB及びシリーズDを処理Aに入力し、シリーズA、シリーズB及びシリーズDを用いて処理Aを実行することとが対応付けられて登録される。また、定義情報152aには、シリーズA、シリーズB及びシリーズDを用いて実行された処理Aのエラーの発生というイベントと、シリーズA、シリーズB及びシリーズEを処理Aに入力し、シリーズA、シリーズB及びシリーズEを用いて処理Aを実行することとが対応付けられて登録される。
【0085】
このように、定義情報152aには、ワークフローに含まれるアプリにおいて実行される処理Aに対して、ワークフローの実行状況ごとに、入力される入力データが設定されている。
【0086】
このようにして定義情報152aが変更された後、実行機能155bは、変更後の定義情報152aにしたがって
図8に示すようにワークフローを実行する。例えば、実行機能155bは、シリーズA、シリーズB及びシリーズCを用いて実行された処理Aのエラーの発生というイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、シリーズA、シリーズB及びシリーズDを処理Aに入力し、シリーズA、シリーズB及びシリーズDを用いて処理Aを実行する。
【0087】
そして、実行機能155bは、シリーズA、シリーズB及びシリーズDを用いて実行された処理Aのエラーの発生というイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、シリーズA、シリーズB及びシリーズEを処理Aに入力し、シリーズA、シリーズB及びシリーズEを用いて処理Aを実行し、アプリXは、処理Aの結果Aを出力する。このように、本変形例によれば、エラーが発生した場合であっても、処理Aを継続して実行することができる。
【0088】
上述したように、実行機能155bは、定義情報152aに基づいて、ワークフローを実行し、ワークフローの実行状況に応じて、処理Aに入力される入力データを切り換える処理を実行する。
【0089】
また、上述したように、定義情報152aには、ワークフローの実行状況が第1の実行状況である場合、処理Aに入力される入力データとして第1の入力データが設定され、ワークフローの実行状況が第2の実行状況である場合、処理Aに入力される入力データとして第1の入力データに対して代替可能な第2の入力データが設定される。そして、実行機能155bは、ワークフローの実行状況が第1の実行状況である場合、処理Aに第1の入力データを入力して処理Aを実行し、ワークフローの実行状況が第2の実行状況である場合、処理Aに第2の入力データを入力して処理Aを実行する。ここで、第1の実行状況は、例えば、シリーズA、シリーズB及びシリーズCを用いた処理Aの実行が失敗してエラーが発生した状況である。また、第2の実況状況は、例えば、シリーズA、シリーズB及びシリーズDを用いた処理Aの実行が失敗してエラーが発生した状況である。また、第1の入力データは、例えば、シリーズA、シリーズB及びシリーズCの3つのシリーズである。また、第2の入力データは、例えば、シリーズA、シリーズB及びシリーズDの3つのシリーズである。
【0090】
また、定義情報152aには、処理Aに対して、ワークフローの実行状況ごとに、複数の入力データ(例えば、シリーズD及びシリーズE)が設定されるとともに、複数の入力データのそれぞれに対応する優先度が設定される。そして、実行機能155bは、優先度に応じて、複数の入力データの中から処理Aに入力される入力データを切り換える。
【0091】
ここで、第1の実施形態の変形例に係る処理A及び結果Aの具体例について説明する。例えば、処理Aは、シリーズAとシリーズBとの位置合わせを行う際にシリーズCを使用する処理である。具体的には、処理Aは、シリーズCを基準として、シリーズCとシリーズAとを位置合わせし、シリーズCとシリーズBとを位置合わせする。ここで、シリーズCに含まれる医用画像が不明瞭な場合や臓器セグメンテーションに失敗した場合等には、位置合わせが失敗する。そして、処理Aの実行が完了すると、処理Aは、位置合わせの結果を結果Aとして出力する。
【0092】
なお、本変形例に係る技術は、複数のアプリを含むワークフローにも適用できる。例えば、4次元CT画像データを用いて灌流画像を生成するアプリCと、アプリCの結果を用いて用いて、LVOについての所定の解析(例えば、脳梗塞に関する解析)を行うアプリDとがワークフローに含まれている場合について説明する。アプリCは、最終的な処理の結果として還流画像を生成するものの、アプリDに対して出力する処理の結果として、複数の3次元CT画像データのうち、被検体に投与された造影剤の濃度が最も高い3次元CT画像データを選択し、選択された3次元CT画像データをアプリDに出力する。そして、アプリDは、アプリCから出力された造影剤の濃度が最も高い3次元CT画像データを用いて、LVOについての所定の解析を行い、解析結果を出力する。
【0093】
実行機能155bは、アプリCから出力された3次元CT画像データだけでなく、X線CT装置から医用データ処理装置100に送信された3次元CT画像データを用いてアプリDを実行することができる。このため、アプリCからアプリDへの3次元CT画像データの出力が失敗した場合、実行機能155bは、X線CT装置から医用データ処理装置150に送信された3次元CT画像データを用いてアプリDを実行してもよい。
【0094】
上述したように、第1の実施形態の変形例に係る医用データ処理システム100及び医用データ処理装置150は、処理Aの実行に失敗した場合であっても、ユーザが望む形で、処理Aを継続して実行する。したがって、第1の実施形態の変形例に係る医用データ処理システム100及び医用データ処理装置150によれば、エラーが発生した場合であっても、ユーザが望む形で、ワークフローの処理の停止を抑制することができる。このため、既に実行した処理が無駄にならず、アプリの実行の効率を向上させることができる。よって、ワークフローを適切に実行することができる。
【0095】
なお、上述した第1の実施形態及び第1の実施形態の変形例では、エラーが発生した場合に、実行機能155bが、ワークフローを自動で組み換える場合について説明した。しかしながら、実行機能155bは、ワークフローが実行される前に、ワークフローを自動で組み換えてもよい。実行機能155bが、ワークフローが実行される前に、ワークフローを自動で組み換える場合、複数の処理から出力される複数の出力データが、特定の処理に入力されるように、ワークフローを自動で組み換える。これにより、複数の処理のいずれかの実行が失敗した場合であっても、実行機能155bは、特定の処理を実行することができる。したがって、ワークフローに冗長性を持たせることが可能になる。
【0096】
また、特定の処理Uに入力される入力データとして、特定の処理Uに入力される入力データを生成するためだけの目的の処理Vの出力データが特定の処理Uに入力されている場合に、他の処理Wの出力データを用いて特定の処理Uを実行することが可能なことがある。この場合、実行機能155bは、処理Vを実行せずに、処理Wの出力データを特定の処理Uに入力し、処理Wの出力データを用いて特定の処理Uを実行してもよい。これにより、ワークフロー全体の処理量を減少させることができる。
【0097】
(第2の実施形態)
医用データ処理装置150は、ユーザが優先的に把握したい結果に応じて、ワークフローを組み換えて、組み換えられたワークフローを実行してもよい。そこで、このような実施形態を、第2の実施形態として説明する。なお、第2の実施形態の説明において、上述した第1の実施形態と異なる点を主に説明し、上述した第1の実施形態と同様の構成の説明を省略する場合がある。
【0098】
第2の実施形態では、実行機能155bが、アプリC及びアプリDを含むワークフローを実行する。このような実行機能155bによるワークフローの実行に先立って、定義情報152aが示すワークフローの実行に関する定義がユーザにより変更される。
【0099】
図9は、第2の実施形態に係る定義情報152aが変更される場合の一例を説明するための図である。
図9の例において、矢印はデータの流れを示す。
【0100】
図9には、変更後の定義情報152aに登録されている定義の一例が示されている。このため、変更前の定義情報152aについて説明する。変更前の定義情報152aには、アプリCを実行することが定義されている。また、変更前の定義情報152aには、アプリCの実行が完了した後、アプリDを実行することが定義されている。また、変更前の定義情報152aには、アプリCは、アプリCの処理の結果(中間データ)C´をアプリDに出力するとともに最終的な処理の結果Cを出力することが定義されている。また、変更前の定義情報152aには、結果C´を用いてアプリDを実行し、アプリDの処理の結果Dを出力することが定義されている。変更前の定義情報152aでは、これらのことが元々定義されている。
【0101】
次に、ユーザにより定義情報152aが変更される場合について説明する。設定機能155aは、変更前の定義情報152aが示す定義をワークフローのダイアグラムのような表現でディスプレイ154及び端末130の少なくとも1つに表示させる。この際、設定機能155aは、ユーザによる各種の変更が可能なように定義情報152aを表示させる。なお、
図9の例では、ダイアグラムの粒度が、アプリ単位である場合を示しているが、ダイアグラムの粒度は、これらに限られない。一つの結果を生成する単位であれば、どのような単位であってもよい。また、同様の定義ができるならば、表示される表現はダイアグラムに限られない。
【0102】
ここで、ユーザが、アプリCの結果C及びアプリDの結果Dのうち、アプリDの結果Dのみを把握したい場合について説明する。この場合、ユーザが結果Dを把握するために、結果Dは表示される必要がある。また、結果Dを表示させるために結果Dを破棄しないようにする必要がある。一方で、結果Cは表示されなくてもよいし、結果Cが破棄されてもよい。
【0103】
そこで、ユーザは、入力インタフェース153を操作することにより、結果C及び結果Dのそれぞれに対する優先度の項目、画面表示の項目、及び、破棄可能の項目に、各種の情報を登録する。優先度の項目には、ユーザが結果を把握したい場合には、ユーザが結果を把握したいことを示す「高」が設定され、ユーザが結果を把握したくない場合には、ユーザが結果を把握したくないことを示す「低」が設定される。なお、結果ではなく、処理に対して優先度が設定されてもよい。
【0104】
また、画面表示の項目には、ユーザが結果を画面表示させたい場合には、結果を画面表示させることを示す「はい」が設定され、ユーザが結果を画面表示させたくない場合には、結果を画面表示させないことを示す「いいえ」が設定される。
【0105】
また、破棄可能の項目には、ユーザが結果を破棄させたい場合には、結果が破棄可能であることを示す「はい」が設定され、ユーザが結果を破棄させたくない場合には、結果が破棄可能ではないことを示す「いいえ」が設定される。
【0106】
具体例を挙げて説明すると、ユーザは、入力インタフェース153を操作することにより、結果Dに対する優先度の項目に、ユーザが結果Dを把握したいことを示す「高」を設定し、結果Dに対する画面表示の項目に、結果Dを画面表示させることを示す「する」を設定し、結果Dに対する破棄可能の項目に、結果Dが破棄可能ではないことを示す「いいえ」を設定する。具体的には、設定機能155aが、入力インタフェース153を介して受け付けたユーザの操作に基づいて、結果Dに対する優先度の項目に、ユーザが結果Dを把握したいことを示す「高」を設定し、結果Dに対する画面表示の項目に、結果Dを画面表示させることを示す「する」を設定し、結果Dに対する破棄可能の項目に、結果Dが破棄可能ではないことを示す「いいえ」を設定する。
【0107】
また、ユーザは、入力インタフェース153を操作することにより、結果Cに対する優先度の項目に、ユーザが結果Cを把握したくないことを示す「低」を設定し、結果Cに対する画面表示の項目に、結果Cを画面表示させないことを示す「しない」を設定し、結果Cに対する破棄可能の項目に、結果Cが破棄可能であることを示す「はい」を設定する。具体的には、設定機能155aが、入力インタフェース153を介して受け付けたユーザの操作に基づいて、結果Cに対する優先度の項目に、ユーザが結果Cを把握したくないことを示す「低」を設定し、結果Cに対する画面表示の項目に、結果Cを画面表示させないことを示す「しない」を設定し、結果Cに対する破棄可能の項目に、結果Cが破棄可能であることを示す「はい」を設定する。
【0108】
ここで、優先度の項目に設定される「高」及び「低」は、最終的な実行結果について必要か否かを示す情報といえる。したがって、定義情報152aには、ワークフローに含まれる複数のアプリのそれぞれの最終的な実行結果について必要か否かを示す情報が設定されている。
【0109】
このようにして定義情報152aが変更された後、実行機能155bは、変更後の定義情報152aにしたがってワークフローを実行する。例えば、変更後の定義情報152aでは、結果Cに対する優先度の項目に「低」が設定され、結果Cに対する画面表示の項目に「しない」が設定され、結果Cに対する破棄可能の項目に「はい」が設定されている。このことから、アプリCの処理を最後まで実行して結果Cを生成する必要はないことが分かる。
【0110】
また、例えば、変更後の定義情報152aにおいて、結果Dに対する優先度の項目に「高」が設定され、結果Dに対する画面表示の項目に「はい」が設定され、結果Dに対する破棄可能の項目に「いいえ」が設定されている。このことから、アプリDの処理を最後まで実行して結果Dを生成する必要があることが分かる。
【0111】
そこで、
図10に示すように、実行機能155bは、アプリDの実行に使用されるアプリCの中間データC´を生成するまでアプリCを実行し、中間データC´が生成された時点でアプリCの実行を終了する。そして、実行機能155bは、アプリCから出力される中間データC´をアプリDに入力し、中間データC´を用いてアプリDを実行する。そして、アプリDから結果Dが出力される。表示制御機能155cは、結果Dをディスプレイ154及び端末130の少なくとも1つに表示させる。なお、
図10は、第2の実施形態に係る実行機能155bが実行する処理の一例を説明するための図である。
【0112】
すなわち、実行機能155bは、複数のアプリのうちの一のアプリCにより生成された中間データを他のアプリDに入力し、中間データを用いて他のアプリDを実行する場合、一のアプリCの最終的な実行結果について必要でないことを示す情報、及び、他のアプリDの最終的な実行結果について必要であることを示す情報が定義情報152aに設定されているときには、一のアプリCが中間データを生成するまで一のアプリCを実行し、中間データが生成された時点で一のアプリCの実行を終了し、生成された中間データを他のアプリDに入力し、入力された中間データを用いて他のアプリDを実行する。
【0113】
また、実行機能155bは、一のアプリCの実行が終了した時点で、他のアプリDの実行を開始する。
【0114】
図10の破線の枠で囲まれた範囲が示すように、実行機能155bは、結果C´をアプリDに出力した後は、無駄にアプリCの実行を継続し続けることなく、アプリCの実行を終了する。これにより、例えば、プロセッサ等により実現される処理回路155の処理負荷が軽減される。また、メモリ等により実現される記憶回路152には、不要なデータが記憶されないので、記憶回路152の記憶容量を圧迫せずに済む。したがって、第2の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、医用データ処理装置150のリソースを無駄に消費することを抑制することができる。
【0115】
また、実行機能155bは、アプリCの実行の完了を待つのではなく、アプリCの実行を途中で終了した時点で、アプリDの実行を開始する。このため、第2の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、ワークフロー全体の処理の時間を短縮することができる。
【0116】
以上のことから、第2の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、ワークフローを適切に実行することができる。
【0117】
ここで、アプリC及びアプリDの具体例について説明する。例えば、アプリCは、DICOMデータとして、時系列の複数の3次元CT画像データを用いて、灌流画像を生成するアプリである。また、アプリDは、結果C´を用いて、被検体の脳主幹動脈閉塞についての所定の解析(例えば、脳梗塞に関する解析)を行うアプリである。アプリCは、処理の結果Cとして還流画像を生成するものの、アプリDに対して出力する処理の結果C´として、複数の3次元CT画像データのうち、被検体に投与された造影剤の濃度が最も高い3次元CT画像データをアプリDに出力する。そして、アプリDは、アプリCから出力された造影剤の濃度が最も高い3次元CT画像データを用いて、LVOについての所定の解析を行い、解析結果を結果Dとして出力する。
【0118】
そして、表示制御機能155cは、ワークフローの実行の終了というイベントを検知した場合に、アプリDに入力された入力データである結果C´(アプリCの中間データ)をディスプレイ154及び端末130の少なくとも1つに表示させる。
【0119】
図11は、第2の実施形態において、ディスプレイ154及び端末130の少なくとも1つに表示される、アプリDに入力された入力データ(インプットデータ)の一例を示す図である。
図11に示すように、表示制御機能155cは、アプリDに入力された入力データとして、被検体に投与された造影剤の濃度が最も高い3次元CT画像データをディスプレイ154及び端末130の少なくとも1つに表示させる。したがって、ユーザは、アプリDに入力されたデータを直感的に容易に把握することができる。また、ユーザは、意図したデータがアプリDに入力されているか否かを容易に確認することができる。
【0120】
また、アプリDに入力された入力データを表示することで、ユーザは、正しく処理が行われているか否かを容易に確認することができる。このことは、より効率的なワークフローをユーザに発見させることを支援することに繋がる。
【0121】
また、
図11に示すように、表示制御機能155cは、アプリDで用いられるインプットデータの属性と、実際にアプリCから出力されてアプリDに入力されたインプットデータの属性とを比較可能なようにディスプレイ154及び端末130の少なくとも1つに表示させる。
図11の例では、表示制御機能155cは、アプリDで用いられるインプットデータの属性として、「optimal」を表示させる。例えば、医用画像にはタグ(tags)が付加されており、このタグには各種の属性が登録される。また、表示制御機能155cは、実際にアプリCから出力されてアプリDに入力されたインプットデータの属性として、「optimal」を表示させる。このように、表示制御機能155cは、一のアプリ(アプリD)で用いられる入力データの属性と、他のアプリ(アプリC)のデータの属性をディスプレイ154及び端末130の少なくとも1つに表示させる。ユーザは、2つの属性を確認することで、ユーザは、意図したデータがアプリDに入力されているか否かを容易に確認することができる。
図11に示す例では、両者の属性が一致しているため、ユーザは、意図したデータがアプリDに入力されていることを容易に確認することができる。
【0122】
なお、両者の属性が一致していない場合、ユーザは、意図していないデータがアプリDに入力されていることを容易に確認することができる。この場合、表示制御機能155cは、ワークフローの変更、又は、エラーが発生した処理の手動での再実行を行うための指示をユーザから受け付けるための受付画面をディスプレイ154及び端末130の少なくとも1つに表示させてもよい。そして、医用データ処理装置150は、ユーザから受け付けた指示にしたがって、処理を実行してもよい。
【0123】
また、
図11に示すように、表示制御機能155cは、どのような原因でアプリDの実行を開始し、どのような原因でアプリCの実行が終了したのかを説明するメッセージをディスプレイ154及び端末130の少なくとも1つに表示させる。具体的には、表示制御機能155cは、メッセージ「アプリDの実行に必要なデータがそろったため、アプリDを開始しました。アプリCの結果は破棄可能なため、強制終了しました。」をディスプレイ154及び端末130の少なくとも1つに表示させる。これにより、ユーザは、どのような原因でアプリDの実行を開始し、どのような原因でアプリCの実行が終了したのかを容易に把握することができる。
【0124】
また、
図11に示すように、表示制御機能155cは、リソースがどれだけ節約したかを示す「節約リソース RAM:4GB(1分間) CPU:8 Core(1分間)」をディスプレイ154及び端末130の少なくとも1つに表示させる。なお、実行機能155bが、過去のリソースの使用量から、リソースがどれだけ節約されたかを推定する。そして、表示制御機能155cが、推定されたリソースの使用量を表示させる。すなわち、表示制御機能155cは、最終的な実行結果が生成されるまで一のアプリCを実行する場合と比較して、中間データが生成されるまで一のアプリCを実行する場合のリソースの節約量をディスプレイ154及び端末130の少なくとも1つに表示させる。これにより、ユーザは、リソースをどれだけ節約したかを容易に把握することができる。
【0125】
また、本実施形態では、表示制御機能155cは、ユーザが把握したい結果Dをディスプレイ154及び端末130の少なくとも1つに表示させる。一方で、表示制御機能155cは、ユーザが把握したくない結果Cについては表示させない。したがって、ユーザが把握したくない結果Cを表示させないことで、ユーザは、効率よく結果を確認することができる。
【0126】
以上、第2の実施形態に係る医用データ処理システム100及び医用データ処理装置150について説明した。第2の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、上述したように、ワークフローを適切に実行することができる。
【0127】
(第3の実施形態)
医用データ処理装置150は、ワークフローの実行状況に応じて、複数のアプリの実行順序を変更する処理を実行してもよい。そこで、このような実施形態を、第3の実施形態として説明する。なお、第3の実施形態の説明において、上述した実施形態や上述した変形例と異なる点を主に説明し、上述した実施形態や上述した変形例と同様の構成の説明を省略する場合がある。
【0128】
第3の実施形態では、実行機能155bが、処理E、処理F及びサマリレポートを含むワークフローを実行する。ここで、サマリレポートは、処理Eの結果E及び処理Fの結果Fを集約し、集約された内容をディスプレイ154及び端末130の少なくとも1つに表示させるためのアプリである。したがって、サマリレポートは、医師などのユーザに所見を書き込ませるためのアプリではない。このような実行機能155bによるワークフローの実行に先立って、定義情報152aが示すワークフローの実行に関する定義がユーザにより変更される。
【0129】
図12は、第3の実施形態に係る変更前の定義情報152aの一例を示す図である。
図12に示すように、変更前の定義情報152aには、処理Eを実行し、処理Eの結果Eをサマリレポートに入力することが定義されている。また、変更前の定義情報152aには、処理Fを実行し、処理Fの結果Fをサマリレポートに入力することが定義されている。
【0130】
以下、結果Eが非造影検査の結果であり、結果Fが造影検査の結果である場合について説明する。この場合、サマリレポートは、非造影検査の結果と造影検査の結果とを集約したレポートを表示させる。通常、サマリレポートには、先に非造影検査の結果が入力され、その後、造影検査の結果が入力される。非造影検査の結果が入力されるタイミングと、造影検査の結果が入力されるタイミングとの時間差が大きい場合、ユーザは、まずは非造影検査の結果のみが記述された個別のレポートを確認し、その後、非造影検査の結果と造影検査の結果とを集約したレポートを確認したいという要望がある。
【0131】
そこで、ユーザは、上述した要望を満たすために、
図12の変更前の定義情報152aを変更する。
図13は、第3の実施形態に係る変更後の定義情報152aの一例を示す図である。
【0132】
ユーザは、入力インタフェース153を操作することにより、
図13に示すように、処理Aから結果Aが出力されてから所定時間(例えば3分)内に処理Bから結果Bが出力されていない場合、結果Aが個別レポートに入力されるように、結果Aから個別レポートに向けて矢印を設定する。なお、個別レポートは、入力された結果を所定のレポートの形式に変更してディスプレイ154及び端末130の少なくとも1つに表示させるためのアプリである。すなわち、個別レポートは、入力された結果を個別のレポートとして表示させる。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されていない場合、結果Aが個別レポートに入力されるように、結果Aから個別レポートに向けて矢印を設定する。これにより、変更後の定義情報152aには、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されていない場合、結果Aを個別レポートに入力することが定義される。より詳細には、定義情報152aには、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されていないというイベントと、結果Aを個別レポートに入力することとが対応付けられて登録される。
【0133】
また、ユーザは、入力インタフェース153を操作することにより、定義情報152aに、処理Aから結果Aが出力されてから所定時間経過後に処理Bから結果Bが出力された場合、結果Bをサマリレポートに入力するとともに、結果Aをサマリレポートに入力するという定義を追加する。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、定義情報152aに、処理Aから結果Aが出力されてから所定時間経過後に処理Bから結果Bが出力された場合、結果Bをサマリレポートに入力するとともに、結果Aをサマリレポートに入力するという定義を追加する。より詳細には、定義情報152aには、処理Aから結果Aが出力されてから所定時間経過後に処理Bから結果Bが出力されたというイベントと、結果A及び結果Bをサマリレポートに入力することとが対応付けられて登録される。
【0134】
また、ユーザは、入力インタフェース153を操作することにより、定義情報152aに、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力された場合、結果A及び結果Bをサマリレポートに入力するという定義を追加する。具体的には、設定機能155aは、入力インタフェース153を介して受け付けたユーザの操作に基づいて、定義情報152aに、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力された場合、結果A及び結果Bをサマリレポートに入力するという定義を追加する。より詳細には、定義情報152aには、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されたというイベントと、結果A及び結果Bをサマリレポートに入力することとが対応付けられて登録される。
【0135】
このようにして定義情報152aが変更された後、実行機能155bは、変更後の定義情報152aにしたがってワークフローを実行する。例えば、実行機能155bは、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されていないというイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、結果Aを個別レポートに入力する。これにより、ユーザは、まずは非造影検査の結果のみが記述された個別のレポートを確認することができる。
【0136】
また、実行機能155bは、処理Aから結果Aが出力されてから所定時間経過後に処理Bから結果Bが出力されたというイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、結果A及び結果Bをサマリレポートに入力する。これにより、ユーザは、その後、非造影検査の結果と造影検査の結果とを集約したレポートを確認することができる。
【0137】
また、実行機能155bは、処理Aから結果Aが出力されてから所定時間内に処理Bから結果Bが出力されたというイベントを検知すると、このイベントに対応づけられた処理を実行する。具体的には、実行機能155bは、結果A及び結果Bをサマリレポートに入力する。これにより、ユーザは、速やかに、非造影検査の結果と造影検査の結果とを集約したレポートを確認することができる。
【0138】
以上、第3の実施形態に係る医用データ処理システム100及び医用データ処理装置150について説明した。上述したように、実行機能155bは、ワークフローの実行状況に応じて、複数のアプリの実行順序を変更する処理を実行する。したがって、第3の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、ワークフローを適切に実行することができる。
【0139】
なお、実行機能155bは、ワークフローの実行状況に応じて、複数のアプリの実行順序を変更する処理と同様の方法によって、ワークフローの実行状況に応じて、ワークフローに含まれる複数の処理の実行順序を変更する処理を実行してもよい。
【0140】
(第4の実施形態)
上述した第1の実施形態等において、医用データ処理装置150は、エラーが発生した場合であっても、継続して処理又はアプリを実行する場合について説明した。しかしながら、エラーが発生した場合、医用データ処理装置150は、継続して処理又はアプリを実行するかどうかをユーザに確認してもよい。そこで、このような実施形態を、第4の実施形態として説明する。なお、第4の実施形態の説明において、上述した実施形態や上述した変形例と異なる点を主に説明し、上述した実施形態や上述した変形例と同様の構成の説明を省略する場合がある。
【0141】
第4の実施形態では、エラーが発生した場合、表示制御機能155cは、継続して処理又はアプリを実行するか否かについての指示をユーザから受け付けるための受付画面をディスプレイ154及び端末130の少なくとも1つに表示させる。受付画面には、エラーの原因が描出されている。なお、表示制御機能155cは、ユーザが使用する端末にメールで受付画面を送信し、かかる端末に受付画面を表示させてもよい。また、表示制御機能155cは、受付画面を表示させるアプリケーションを実行することにより、受付画面を表示させてもよい。
【0142】
図14は、第4の実施形態に係る受付画面の一例を示す図である。表示制御部155cは、エラーの発生というイベントを検知すると、
図14に示す受付画面をディスプレイ154及び端末130の少なくとも1つに表示させる。なお、
図14の例は、ワークフローに含まれるアプリG、アプリH及びアプリIのうちアプリGのエラーが発生していることを示す。このワークフローは、アプリGを実行し、アプリGの結果をアプリIに入力し、アプリHを実行し、アプリHの結果をアプリIに入力し、アプリGの結果及びアプリHの結果を用いてアプリIを実行し、アプリIの結果を出力する。
【0143】
例えば、このようなアプリG、アプリH及びアプリIは、例えば、MRデータを用いてDWIを生成するアプリ、MRデータを用いてPWIを生成するアプリ、及び、これらの2つのアプリにより生成されたDWIとPWIを用いてDWIとPWIのミスマッチを得るためのミスマッチ解析を行うアプリである。
【0144】
図14に示す受付画面では、エラーの原因として、アプリGから出力される出力データ(アプリIに入力されてアプリIで使用されるデータ)が壊れていることが示されている。
【0145】
また、
図14に示す受付画面では、既存データのみでアプリ処理を続行するのか、アプリGの結果を使用せず続行するのか、アプリGを再実行してから続行するのか、あるいは、アプリIの実行をキャンセルするのかという4つの指示の候補の中から、エラーの原因に応じて絞り込まれた2つの指示の候補がユーザにより選択可能に表示されている。
【0146】
例えば、表示制御機能155cは、4つの指示の候補の中から、エラーの原因に応じて成功する可能性が比較的高い2つの指示の候補(アプリGの結果を使用せず続行、実行キャンセル)に絞り込んで、絞り込まれた2つの指示の候補をユーザにより選択可能に表示させる。このように、表示制御機能155cは、複数の指示の候補の中から、エラーの原因に応じて実行可能な指示の候補に絞り込む。
図4の例では、アプリIは、上述した機能に加え、アプリGの結果を使用せずに、アプリHの結果のみを用いてアプリIの結果を生成し出力することができる。このため、表示制御機能155cは、指示の候補として、「アプリGの結果を使用せず続行」をユーザにより選択可能に表示させる。このようにして、表示制御機能155cは、ワークフローの実行中にエラーが発生した場合、後続の処理を実行するか否かについての指示を受け付ける。表示制御機能155cは、受付部の一例でもある。なお、受け付けられた指示に基づく処理が、今後の当該イベント発生時のデフォルトとして実行機能155bにより自動実行されてもよい。
【0147】
そして、実行機能155bは、ユーザにより選択された指示に基づいて、ワークフローの実行を制御する。例えば、ユーザにより選択された指示が「アプリGの結果を使用せず続行」である場合、実行機能155bは、アプリGの結果を使用せずにアプリHの結果のみを使用してアプリIを実行し、アプリIの結果を出力する。また、ユーザにより選択された指示が「実行キャンセル」である場合、実行機能155bは、継続の処理を行わずに、ワークフローの処理を終了する。このようにして、実行機能155bは、ワークフローの実行を制御する。このような、ワークフローの実行を制御する実行機能155bは、制御部の一例である。
【0148】
以上、第4の実施形態に係る医用データ処理システム100及び医用データ処理装置150について説明した。上述したように、実行機能155bは、ユーザにより選択された指示に基づいて、ワークフローの実行を制御する。したがって、第4の実施形態に係る医用データ処理システム100及び医用データ処理装置150によれば、ユーザの要望に応えるように、ワークフローを適切に実行することができる。
【0149】
また、上述した実施形態の説明で用いた「プロセッサ」という文言は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等の回路を意味する。ここで、記憶回路152にプログラムを保存する代わりに、プロセッサの回路内にプログラムを直接組み込むように構成しても構わない。この場合には、プロセッサは回路内に組み込まれたプログラムを読み出し実行することで機能を実現する。また、各実施形態の各プロセッサは、プロセッサごとに単一の回路として構成される場合に限らず、複数の独立した回路を組み合わせて一つのプロセッサとして構成され、その機能を実現するようにしてもよい。
【0150】
ここで、プロセッサによって実行されるプログラムは、ROM(Read Only Memory)や記憶回路等に予め組み込まれて提供される。なお、このプログラムは、これらの装置にインストール可能な形式又は実行可能な形式のファイルでCD(Compact Disk)-ROM、FD(Flexible Disk)、CD-R(Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な非一過性の記憶媒体に記録されて提供されてもよい。また、このプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードされることによって提供又は配布されてもよい。例えば、このプログラムは、上述した各処理機能を含むモジュールで構成される。実際のハードウェアとしては、CPUが、ROM等の記憶媒体からプログラムを読み出して実行することにより、各モジュールが主記憶装置上にロードされて、主記憶装置上に生成される。
【0151】
以上説明した少なくとも一つの実施形態によれば、ワークフローを適切に実行することができる。
【0152】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0153】
100 医用データ処理システム
150 医用データ処理装置
155 処理回路
155a 設定機能
155b 実行機能
155c 表示制御機能