以下、適宜図面を参照しながら本発明を実施するための代表的な形態を説明する。なお、これらの図面において、同一の構成要素には原則として同一の符号を与えるか、同一であることを明示することにより、繰り返して利用する場合には重複する説明を省略する。
===第1の実施形態===
本発明の第1の実施形態を説明する。この実施形態は、処理時間の予測結果を検査技師に表示する自動分析システムの例である。
<システム構成>
図1は、本発明の第1の実施形態における自動分析システムの構成を示すブロック図である。
図1に示す通り、自動分析システム10は、複数のモジュールを含むモジュール群11と、管理サーバ12と、操作端末13とからなり、各構成要素はEthernet(登録商標)などを用いたLAN(Local Area Network)を介して接続される。また、管理サーバ12は、病院ネットワーク14を介して電子カルテシステムなどの病院の他のシステムと接続される。
モジュール群11は、前処理を担う投入モジュール101、遠心モジュール102、開栓モジュール103、分注モジュール104、後処理を担う収納モジュール105、搬送処理を担う搬送モジュール111、および、生化学・免疫の分析処理を担う分析モジュール121から成り、図1に示すように配置される。すなわち、図1の例では、収納モジュール105に投入モジュール101が隣接し、投入モジュール101に遠心モジュール102が隣接し、遠心モジュール102に開栓モジュール103が隣接し、開栓モジュール103に分注モジュール104が隣接し、分注モジュール104に搬送モジュール111が隣接し、搬送モジュール111に分析モジュール121が隣接するように、各モジュールが配置される。
これらの各モジュールはそれぞれが検体の搬入出を行う複数本の搬送路を内部に備えており、隣接するモジュールの搬送路同士が連結されることで、モジュール間の検体の受け渡しを可能としている。たとえば、投入モジュール101上の下側のライン101aは図の左から右へ(すなわち収納モジュール105から搬入された検体を遠心モジュール102に搬出する方向に)検体を搬送することができ、上側のライン101bは右から左へ検体を搬送することができる。分注モジュール104は、子検体が新たに生成されるラインを持つとともに、親検体および子検体の各々を搬送モジュール111または開栓モジュール103へ選択的に搬送できるようになっている。
次に基本的な検査の流れを説明する。まず、検査技師が検体を投入モジュール101上のトレイに設置する。設置された検体は、ロボットアームまたはXYZ機構などで構成される処理機構で検体ホルダに架設された後、遠心モジュール102に搬送される。遠心モジュール102に搬送された検体は検査依頼に応じて3〜5分の間遠心分離がなされ、開栓モジュール103に搬送される。開栓モジュール103に運ばれた検体は、栓を外され分注モジュール104に搬送される。
分注モジュール104に搬送された検体は、検査依頼に応じて1つ以上の子検体に分注される。具体的には、分注モジュール104は、搬入された元の検体(親検体)の一部または全部から一つ以上の子検体を生成する。例えば、親検体の全部を含む一つの子検体を生成してもよいし、親検体の一部をさらに分割して、分割された検体のそれぞれを子検体として生成してもよい。親検体は、各モジュールの上側のライン(ライン101b等)を介して収納モジュール105まで搬送され、収納される。分注された子検体は、搬送モジュール111を介して分析モジュール121へ搬送される。分析モジュール121に搬送された検体は検査依頼に応じた項目の分析がなされ廃棄される。
なお、図1の例では投入モジュール101、遠心モジュール102、開栓モジュール103、分注モジュール104、搬送モジュール111、および分析モジュール121をそれぞれ1台ずつ示したが、モジュールの数および種類はこれより多くても少なくてもよい。たとえば、上記のほか、閉栓を行うモジュール、外注向けに分類処理を行うモジュール、および親検体を冷蔵しておくモジュールなどの、他の前処理・後処理のモジュールがあってもよい。さらに、生化学および免疫以外の項目、たとえば遺伝子や細菌を分析する分析モジュールがあってもよく、複数の項目を一度に分析可能なモジュールがあってもよい。さらに、検査室のレイアウトに応じて搬送モジュールの数および配置を変更してもよい。
また、管理サーバ12は処理負荷等に応じて2台以上あってもよい。操作端末13は検査室のレイアウトおよび運用に応じて2台以上あってもよいし、管理サーバ12の入出力機能を操作端末13として代用してもよい。また、管理サーバ12とモジュール群11の間に仲介装置を設置してもよく、その場合、後述の管理サーバ12の機能を分散配置してもよい。
<機能構成>
次に、図2を用いて、自動分析システム10の機能構成を説明する。
モジュール群11を構成する投入モジュール101、遠心モジュール102、開栓モジュール103、分注モジュール104、収納モジュール105、搬送モジュール111および分析モジュール121の各々は、制御部211を有して成る。
管理サーバ12は、イベント収集部221、モデル推定部222、シミュレーション部223、サンプル統合部224、イベントDB225、モデルDB226、サンプルDB227および予測結果DB228を有して成る。
操作端末13は、入力部231および出力部232を有して成る。
<機能とハードウェアの対応>
次に図2に示す自動分析システム10の各構成要素と、当該構成要素を実現しているハードウェアおよびソフトウェアとの対応を説明する。
モジュール群11を構成するモジュールの制御部211は、各モジュールのCPU(Central Processing Unit)がROM(Read Only Memory)または外部記憶装置に格納されたプログラムをRAM(Read Access Memory)に読み込み、通信I/F(Interface)、搬送および検査処理を行うためセンサ、コントローラ、アクチュエータ等のハードウェアを制御することで実現される。
管理サーバ12のハードウェア構成を図27に示す。管理サーバ12のイベント収集部221、モデル推定部222、シミュレーション部223、サンプル統合部224、イベントDB225、モデルDB226、サンプルDB227および予測結果DB228は、管理サーバ12のCPU2701がROM(図示省略)または外部記憶装置2702に格納されたプログラムをRAM2703に読み込み、通信I/F2704、マウス2705、キーボード2706、ディスプレイ2707等を制御することで実現される。
すなわち、以下の説明においてイベント収集部221、モデル推定部222、シミュレーション部223およびサンプル統合部224が実行する処理は、実際には上記のプログラムに従う管理サーバ12のCPU2701によって実行され、イベントDB225、モデルDB226、サンプルDB227および予測結果DB228に格納されるデータは、実際には管理サーバ12のRAM2703または外部記憶装置2702に格納される。
操作端末13の入力部231、出力部232は、操作端末13のCPUがROMまたは外部記憶装置に格納されたプログラムをRAMに読み込み、通信I/F、マウス、キーボード、ディスプレイ等を制御することで実現される。
<搬送機構>
次に、図3を用いて、各モジュールの処理機構を説明する。
投入モジュール101もしくは収納モジュール105から搬入されるとき、または、分注モジュール104で子検体が新たに作成されるとき、検体301はホルダ303に架設される。このホルダ303は、読み書き可能なRFID(Radio Frequency Identification)タグ304を有しており、検体が架設される際に、検体301に貼られたバーコード302の識別情報がRFIDタグ304に記録される。架設されたホルダ303は、ベルトライン305によってモジュール内およびモジュール間を搬送される。また、モジュール内において、処理または分岐があるときにはストッパ306が検体301を一時停止させ、RFIDリーダ307が検体の識別情報を読み取り、その情報に従った搬送や処理が行われる。その際には、各モジュールの処理内容に応じた処理機構308が処理を行う。たとえば投入モジュール101であれば、ロボットアームを用いてトレイから検体301を取り出し、ホルダ303へ架設する処理を行う。
なお、本実施例では、検体301を搬送する手段としてベルトライン305を用いているが、ロボットアーム等を用いてもよい。また、ストッパ306を用いて検体301を止める代わりに、ベルトライン305自体を停止させてもよい。また、検体301の識別情報はホルダのRFIDタグ304に一旦書き込み、搬送および処理をする際には、RFIDタグ304からそのデータを読み込むものとしたが、バーコードリーダ(図示省略)がバーコード302を毎回読み取ってもよいし、RFIDタグ固有のIDとバーコード302の識別情報とを管理サーバ12で紐づけて管理してもよい。
<論理モデル>
次に図4を用いて、実際のモジュールが図1に示すような複数の処理機構および搬送路を有する場合に、単一の処理機構と搬送路を持つ論理単位に分けることを目的としたモジュール群11のシミュレーション上の論理モデルを説明する。
モジュール群11の論理モデルは、論理モジュール401、搬入点402、搬出点403および論理コネクション404から成るグラフとして表現される。ここで、論理モジュール401は、各種処理、モジュール間の搬入出、分岐または合流等のために、ストッパ等の機構によって検体が滞留する領域を表す。たとえば、各論理コネクション404は、遠心モジュール102で遠心処理を行うために検体が滞留する領域、または、開栓モジュール103で開栓処理を行うために検体が滞留する領域に対応する。図4では、この論理モジュール401を実線の長方形として表示する。
搬入点402は、投入モジュール101または収納モジュール105のトレイなどから新たに検体が搬入されたり、分注モジュール104で新たに子検体が生成されたりする箇所を表す。図4では、この搬入点402を実線の円として表示する。また、搬出点403は、搬入点402とは逆に、収納モジュール105のトレイまたは分析モジュール121の廃棄エリアに検体が搬出される箇所を表す。図4では、この搬出点403を破線の円として表示する。
論理コネクション404は、論理モジュール401、搬入点402、搬出点403の接続関係を表す。なお、本実施形態では図3で示したように、検体がベルトライン305によって搬送されるため、図4では、この論理コネクション404を、搬送方向が対応づけられた矢印として表示する。
次に投入モジュール101について具体的に論理モデルの構成を説明する。図1で示したように、投入モジュール101は上下2つのライン(搬送路)を有し、上のライン101bは右から左へ、下のライン101aは左から右へ検体を搬送できる。したがって、投入モジュール101は2つの論理モジュールを含み、上のライン101bに対応する論理モジュールは右の論理モジュール(すなわち遠心モジュール102に対応する論理モジュール)から検体を搬入し左の論理モジュール(すなわち収納モジュール105に対応する論理モジュール)に検体を搬送するように論理コネクションを形成し、下のライン101aに対応する論理モジュールは左の論理モジュールから検体を搬入し右の論理モジュールに検体を搬送するように論理コネクションを形成する。また、下のライン101aにはトレイから検体が搬入されるので、下のライン101aに対応する論理モジュールは搬入点402からの検体を搬送するように論理コネクションを形成する。
後述にて詳しく説明するが、上記の論理モデルの構造に基づいて、検体の処理および搬送をシミュレーションすることで処理時間のサンプルが得られる。その際、処理と搬送に実績値から推定される各論理モジュールの滞在時間の確率分布を用いることで、ばらつきを含む検体の処理時間を推定することができる。
なお、本実施形態においては、実際のハードウェアの構造と1対1で対応する、省略のない論理モデルを用いるが、一部の処理機構または搬送路を省略または統合してもよい。たとえば、シミュレーションにかかる処理負荷に応じて、分注モジュール104から開栓モジュール103方向に戻るラインを搬出点403として、収納モジュール105で搬入点402を設定してもよい。
<データ構造>
次に図5を用いて、イベントDB225に格納されるイベントデータD1000を説明する。
イベントデータD1000は、トレイからの取り込みまたは分注による検体の生成によって新たに検体が搬入されたタイミング(生成イベントと呼ぶ)、検体がモジュールの中で滞留可能な領域に搬入されたタイミング(搬入イベントと呼ぶ)、および、検体がその領域から搬出されたタイミング(搬出イベントと呼ぶ)を表すものであって、検体を識別するための検体ID(D1001)と、事象が起きた時刻(D1002)と、イベントが生じた論理モデル上の場所を表すモデルIDと、イベントの種類を表すイベントタイプ(D1003)とから成る。たとえば、検体A(検体ID=101)が11時50分00秒に投入モジュール101から搬入されたとき、投入モジュール101の搬入点402のモデルIDを1011とすると、イベントデータD1000は{101、11:50:00、1011、生成}のようになる。同様に、検体が投入モジュール101から遠心モジュール102に11時50分6秒に搬出されたとき、下側のラインに対応する論理モジュール401のモデルIDを1012とすると、イベントデータD1000は{101、11:50:06、1012、搬出}のようになる。
後述するモデルDB226に格納される種々のデータは、イベントデータD1000に基づいて生成される。
次に図6を用いて、モデルDB226に格納される搬入間隔データD2000を説明する。
搬入間隔データD2000は、搬入点402における搬入の時間間隔の確率モデルのパラメータを表す。ここで、搬入は人的要因によるところが大きいためにパラメトリックな分布を仮定できないとの前提に基づいて、本実施形態では、幅5秒、範囲を0秒から1200秒とした正規化された度数分布を仮定し、モデルID(D2001)と、小さい方から数えた領域(すなわち、度数分布をヒストグラムで表した場合の各々の棒の幅に相当する範囲)の番号を示す領域No(D2002)と、その領域で搬入される可能性を表す比率(D2003)から成る搬入間隔データD2000をモデルDB226に格納する。
たとえば、投入モジュール101において、{28秒、19秒、21秒、16秒、11秒}という間隔で検体が搬入された場合、投入モジュール101の搬入点402のモデルIDを1011とすると、{1011、3(10秒〜15秒)、0.2}、{1011、4(15秒〜20秒)、0.4}、{1011、5(20秒〜25秒)、0.2}、{1011、6(25秒〜30秒)、0.2}といったデータが格納されることになる。
具体的には、上記の例の場合、時間間隔0秒〜5秒、5秒〜10秒、10秒〜15秒、15秒〜20秒、20秒〜25秒および25秒〜30秒の範囲の領域Noがそれぞれ「1」、「2」、「3」、「4」、「5」および「6」である。領域No「4」に注目すると、上記の搬入間隔の全データ数が5であり、それらのうち15秒〜20秒の範囲のデータが「19秒」と「16秒」の2つであるため、この範囲に対応する比率(D2003)の値は2/5すなわち0.4となる。
なお、本実施形態では度数分布を用いたが、他の分布を仮定してもよい。
次に図7を用いて、モデルDB226に格納される滞在時間データD3000を説明する。
滞在時間データD3000は、論理モジュール401で検体が搬入されてから搬出されるまでの滞在時間の確率モデルのパラメータを表す。ここで、滞在時間の分布は、たとえば、分注モジュールにおける分注数や、分析モジュールにおける分析項目数などといった処理項目に依存して変化するため多峰性となるが、一つ一つの峰は装置による処理であるため平均的な値の周辺に分布することが想定される。そこで、本実施形態では混合正規分布を仮定し、滞在時間データD3000は、モデルID(D3001)と、正規分布の番号を表す分布No(D3002)と、その分布の混合係数(D3003)と、平均(D3004)と、分散(D3005)とから成る。
なお、開栓モジュール103などではチューブの形状などに滞在時間が依存せず、その分布が単峰性となるため単一の正規分布を仮定してもよいが、混合正規分布で表現しておき、1つの分布以外の混合係数を0に設定することで単一の正規分布も表現できるので、本実施形態では分布が単峰性であるか多峰性であるかにかかわらず混合正規分布で表現する。また、本実施形態では滞在時間のばらつきが大きい分注モジュール104において、変動の要因となる分注数のパターンが10前後であることから、正規分布の混合数は10(固定値)とする。なお、混合数は必要に応じてそれより多くしても少なくしてもよい。
たとえば、あるモジュールにおける滞在時間の分布が単峰性となるある場合では、そのモジュールのモデルID(D3001)に対応する分布No(D3002)のうち、分布No「1」に対応する混合係数が1となり、分布No「2」〜「10」に対応する混合係数が0となる。また、あるモジュールにおける滞在時間の分布が単峰性となる別の場合では、分布No「1」「2」の平均が一致し、かつその2つの混合係数の和が1となり、分布No「3」〜「10」に対応する混合係数が各々0となる。なお、前者の例においては、分布No「1」に対応する平均(D3004)および分散(D3005)で表される単一の正規分布と一致する。一方、別のモジュールにおける滞在時間の分布が2つの峰を含む多峰性となるある場合では、そのモジュールのモデルID(D3001)に対応する分布No(D3002)のうち、分布No「1」および「2」に対応する混合係数の和が1となり、分布No「3」〜「10」に対応する混合係数が0となる。また、別のモジュールにおける滞在時間の分布が2つの峰を含む多峰性となる別の場合では、分布No「1」「2」の平均と、No「3」「4」の平均がそれぞれ一致し、かつ、分布No「1」〜「4」の混合係数の和が1となり、分布No「5」〜「10」に対応する混合係数が各々0となる。すなわち、混合分布を用いる場合は、1つの分布によって一つの峰が形成される場合と、2つ以上の分布の合成によって一つの峰が形成される場合がある。
また、処理項目によって滞在時間が分類できる場合には、処理項目別の分布を作成することで予測精度を向上することができる。たとえば、すべての親検体を吸い出す分注処理は、測定に必要な分だけ分注する処理より時間を要する。このような処理項目の違いをあらかじめ切り分けることで高い精度を得ることができる。
また、本実施形態では、パラメータは固定値であるが、数日前のイベントデータ等に基づいて事前分布を設定してもよい。たとえば、病院の患者数は曜日と時間帯によって傾向が似通ってくるので、曜日と時間帯ごとに処理時間のデータを収集しておいて、その平均および分散に基づく事前分布を設定しておくことで、比較的少ないデータでも精度を向上できる。さらに、本実施例では混合正規分布を用いたが、他の分布を仮定してもよい。ただし、とくに分注モジュールや分析モジュールについては、滞在時間が処理項目によって段階的に変動するため、多峰性の分布を用いるべきである。
次に図8を用いて、モデルDB226に格納される搬送時間データD4000を説明する。
搬送時間データD4000は、ある論理モジュール(または搬入点)から他の論理モジュール(または搬出点)へ検体を搬送するのに必要な搬送時間の確率モデルのパラメータを表す。ここで、実際のモジュール間の搬送はベルトラインで行われることを鑑みて、単純な正規分布を仮定し、搬送時間データD4000は、搬入元モデルID(D4001)と、搬入先モデルID(D4002)と、正規分布の平均(D4003)と、分散(D4004)とから成る。なお、本実施形態では、パラメータは固定値であるが、数日前のイベントデータ等に基づいて事前分布を設定してもよい。さらに、本実施形態では正規分布を用いたが、他の分布を仮定してもよい。
次に図9を用いて、モデルDB226に格納される分岐方向データD5000を説明する。
分岐方向データD5000は、ある論理モジュール(または搬入点)から搬送できる他の論理モジュール(または搬出点)が複数あった場合、それぞれの論理モジュール(または搬出点)が搬出先として選択される確率を表し、搬入元モデルID(D5001)と、搬出先モデルID(D5002)と、選択の比率(D5003)とから成る。
次に図10を用いて、サンプルDB227に格納されるサンプル予測値D6000を説明する。
サンプル予測値D6000は、シミュレーションによって生成される検体の処理時間のサンプル値であって、検体ID(D6001)と、シミュレーションの識別番号を表すシミュレーションNo(D6002)と、処理時間(D6003)とから成る。
なお、同じモデルに基づいて実行されたシミュレーション結果に同じシミュレーションNo(D6002)が割り当てられる。たとえば、10:00から10:10までの10分間に発生した事象に関するイベントデータD1000から、搬入間隔データD2000、滞在時間データD3000、搬送時間データD4000および分岐方向データD5000が生成され、それらに基づくN回のシミュレーションが実行された場合、それらのN回のシミュレーションの結果として得られたN個の処理時間(D6003)に同一のシミュレーションNo(D6002)が与えられる。
次に図11を用いて、予測結果DB228に格納される予測結果データD7000を説明する。予測結果データD7000は、サンプル予測値D6000を統合したデータであって、予測結果が正規分布となることを仮定し、検体ID(D7001)と、平均(D7002)と、分散(D7003)とから成る。例えば、ある検体について上記のように一つのモデルに基づいてN回のシミュレーションが実行された場合、その結果として得られたN個の処理時間(D6003)の平均および分散がそれぞれ平均(D7002)および分散(D7003)として格納される。
<処理フロー>
次に図12を用いて、処理時間の予測処理の概略を説明する。
各種モジュールの制御部211は、検体を検出した際に随時イベントデータD1000を生成し、管理サーバ2012に送信する。
管理サーバ12のイベント収集部221は、定期的に各種モジュールの制御部211から送られてくるイベントデータD1000を収集し、イベントDB225に格納する(ステップS101)。
次に、管理サーバ12のモデル推定部222が、10分前から現在までのイベントデータD1000を用いて、シミュレーションで使うモデルを表す搬入間隔データD2000、滞在時間データD3000、搬送時間データD4000、および分岐方向データD5000を生成し、それらをモデルDB226に格納する(ステップS102)。
なお、例えば遠心モジュール102は、一般に、個々の検体ごとにではなく、複数の検体をまとめて遠心分離を行う。このため、遠心分離が行われる間隔は、個々の検体が遠心モジュール102に搬入される間隔より長くなる。モデルを生成するために使用されるイベントデータD1000の時間間隔(上記の例では10分前から現在までの10分間)が遠心分離の間隔より短い場合、イベントデータD1000のサンプル数の不足のため、生成されたモデルの精度、および、それに依存するシミュレーションの精度が極端に低下する可能性がある。本実施形態ではこのようなバッチ処理タイプのモジュールが、少なくとも10分間で1回以上は処理を完了するとの前提に基づいて、10分前から現在までの10分間のイベントデータD1000を用いた。しかし、各モジュールにおける処理の実際の実行間隔、および、シミュレーションに用いるモデルの精度に対する要求の高さ等に応じて、それよりも長い時間または短い時間のイベントデータD1000を用いてもよい。
一般に、モデルを生成するために使用されるイベントデータD1000の時間間隔が長くなるほど、モデルの生成に使用されるイベントデータD1000のサンプル数が増えるため、生成されるモデルの精度は高くなる。しかし、イベントの発生状況は時間と共に変化する。例えば病院の繁忙期と閑散期ではイベントの発生状況が異なるため、繁忙期に取得されたイベントデータD1000から生成されたモデルに基づくシミュレーションの精度は、繁忙期の処理時間を算出する際には十分であるとしても、閑散期の処理時間を算出する際には十分でない可能性がある。
本実施形態では、1日の時間を、1日より短い長さの複数の時間帯(たとえば10分ごと)に分割し、現在の時刻に近い時間帯(望ましくは、最も近い時間帯)のイベントデータD1000に基づいてモデルを生成し、そのモデルに基づいてシミュレーションを行うことによって、イベントの発生状況の相違に起因するシミュレーション精度の低下の防止が図られる。さらに、既に説明したように、病院の患者数は曜日および時間帯に依存して傾向が似通うため、現在と同一の曜日の、現在と同一の(または近い)時間帯のイベントデータD1000をシミュレーションに利用することもできる。
なお、上記のように、モデルを生成するために使用されるイベントデータD1000の時間間隔が長くなるほど、サンプル数の増加によるモデルの精度の向上が期待できるが、イベントの発生状況の変化に対する追従性は低下する。このため、両者を考慮して適切な時間間隔を設定する必要がある。
次に、管理サーバ12のシミュレーション部223が、ステップS102において生成されたモデルに基づいて、100回のシミュレーションを行い、検査技師が操作端末13の入力部231を介して指定した検体の処理時間のサンプル予測値D6000を100個ずつ算出し、それらをサンプルDB227に格納する(ステップS103)。なお、本実施形態ではシミュレーション回数を100回としたが、管理サーバ12の処理性能に応じて増減してもよい。
次に、管理サーバ12のサンプル統合部224が、検査技師によって指定された各検体のサンプル予測値D6000から処理時間の期待値(すなわち平均値)および分散を算出し、それらをそれぞれ平均(D7002)および分散(D7003)として含む予測結果データD7000を作成し、それを予測結果DB228に格納する。そして、サンプル統合部224は、操作端末13の出力部232を介して、検査技師に処理時間の期待値と標準偏差の3倍(3σ値)の値を出力する(ステップS104)。なお、ばらつきを表す値として本実施形態では標準偏差の3倍(3σ値)を出力するものとしたが、分散、標準偏差またはそれらに基づいて算出される他の値がばらつきを表す値として出力してもよい。具体的には、3σよりも大きい値(たとえば4σ値)または小さい値(たとえばσ値)を出力してもよい。
次に図13を用いて、確率分布の推定処理(ステップS102)を詳しく説明する。
まず、モデル推定部222は、10分前から現在までのイベントデータD1000の中で、モデルIDがiである搬入点における生成イベントの時刻の集合を作成する(式(1))。
ここで、モデル推定部222は、G(i)の各要素が式(2)について式(3)を満たすようにG(i)を作成する。
そして、モデル推定部222は、式(4)で与えられるj番目とj+1番目の搬入の時間間隔の度数分布を作成し、それをN−1で割って正規化することで搬入間隔データD2000を作成する(ステップS201)。
次に、モデル推定部222は、10分前から現在までのイベントデータD1000の中で、モデルIDがiである論理モジュールに対する検体(検体ID=j)の搬出イベントと搬入イベントの時間差、すなわち検体の滞在時間の実測値xi,jの集合Xiを作成する(式(5))。
本実施形態では滞在時間xiが混合正規分布に従うと仮定しているので、k番目の混合正規分布の混合係数をπk、平均をμk、分散をσk 2とすると、モデルIDがiである論理モジュールにおける滞在時間xiの確率分布P(xi)は式(6)によって求められる。
ここで、N(・,・)は正規分布を表す。そこで、モデル推定部222は、統計的推定手法の一つであるEM(Expectation Maximization)アルゴリズムを用いて混合係数πk、平均μkおよび分散σk 2を計算し、滞在時間データD3000を作成する(ステップS202)。なお、本処理においてモンテカルロ法など別の推定手法を使ってもよい。また、混合係数、平均、分散などのパラメータに事前分布を導入した場合は、変分ベイズ法等の別の統計的推定手法を使うことで推定することができる(ステップS202)。
次に、モデル推定部222は、10分前から現在までのイベントデータD1000の中で、モデルIDがsである搬送元の論理モジュール(または搬入点)から、それに直接つながっているモデルIDがtである搬送先の論理モジュール(または搬出点)へ搬送された検体(検体ID=j)の搬出イベントと搬入イベントの時間差、すなわち検体の搬送時間の実測値xs,t,jの集合Xs,t,jを作成する(式(7))。
本実施形態では、搬送時間xs,tが単一の正規分布に従うと仮定しているので、モデル推定部222は、平均μおよび分散σ2を計算し、搬送時間データD4000を作成する(ステップS203)。
最後に、モデル推定部222は、10分前から現在までのイベントデータD1000の中で、モデルIDがsである搬送元の論理モジュール(または搬入点)から、それに直接つながっているモデルIDがtである搬送先の論理モジュール(または搬出点)へ搬送された検体の総数Count(s,t)について、sとtのすべての組合せごとに式(8)で与えられる比率を計算し、分岐方向データD5000を作成する(ステップS204)。
次に、図14を用いて、シミュレーション(ステップS103)の一回分の処理を詳しく説明する。
まず、シミュレーション部223は、シミュレーションにおける時刻を表す時刻変数tに現時刻を設定する(ステップS301)。
次に、シミュレーション部223は、イベントデータD1000から各検体の最新の搬入イベントを抽出する。ここで、本実施形態では搬送機構としてベルトラインを用いているので、検体はFIFO(First In First Out)で処理が行われる。そこで、論理モデル上の各論理モジュールは最大容量がそれぞれの装置構造によって定められたキューであるとして、シミュレーション部223は、発生時刻が古い順番に抽出したイベントの検体IDを該当する論理モジュールに追加する。具体的には、たとえば、管理サーバ12が各論理モジュールに搬入された検体のIDが格納されるキュー構造のデータを保持し、そこに、上記のように抽出したイベントの検体IDが追加される。そして、滞在時間データD3000で決定される混合正規分布から滞在時間のサンプル値を取得し、搬入イベントの発生時刻とサンプル値の時間を合算した時刻に搬出予約を登録する。ここで、搬出予約とは、各論理モジュールに搬入され、かつ、まだ搬出されていない検体が搬出される時刻の予約である。たとえば、管理サーバ12は、論理モジュールごとにその論理モジュールからの検体の搬出時刻の予約を示す情報を保持してもよい。この場合、上記のように算出された時刻を搬出時刻の予約を示す情報として保持することによって、搬出予約が登録される。以上の手順を行うことで、検体が実際に搬送、処理されている順番を保持し、かつシミュレーション開始時点で処理が開始されている検体があることを考慮することができる(ステップS302)。
次に、シミュレーション部223は、論理モデル上の各搬入点に関して、生成予約が登録されていなければ、搬入間隔データD2000で決定される度数分布から搬出間隔のサンプル値を取得し、現時刻(すなわち現在の時刻変数tが示すシミュレーション時刻)とサンプル値の時間を合算した時刻に生成予約を登録する(ステップS303)。
次に、シミュレーション部223は、論理モデル上の各搬入点に関して、現時刻より前の生成予約が登録されているならば、その搬入点に検体を生成する。そして、その搬入点に接続されている論理モジュールに検体を追加する。具体的には、シミュレーション部223は、当該論理モジュールに相当するキュー構造のデータに、当該検体のIDを追加する。ここで、接続される論理モジュールが複数ある場合は、分岐方向データD5000の比率に基づいて搬送先となる論理モジュールを選択し、その論理モジュールに検体を追加する(ステップS304)。
次に、シミュレーション部223は、新しく論理モジュールに追加された検体があるならば、滞在時間データD3000で決定される混合正規分布から滞在時間のサンプル値を取得し、現時刻とサンプル値の時間を合算した時刻を求める。そして、その検体が属している論理モジュールに、上記の合算によって求められた時刻の搬出予約を登録する(ステップS305)。
なお、後述するように、ステップS303〜S310のループが繰り返し実行されるため、たとえばステップS305も繰り返し実行される。一般に、ステップS305を複数回実行することによって取得される滞在時間の複数のサンプル値は互いに異なるが、その出現確率は、ステップS202において推定された滞在時間の確率分布に従う。ステップS302において取得される滞在時間のサンプル値についても同様である。さらに、同様に、ステップS303において取得される搬出間隔のサンプル値は、ステップS201において取得された搬入間隔の度数分布に従い、後述するステップS306において取得される搬送時間のサンプル値は、ステップS203において推定された搬送時間の確率分布に従う。また、ステップS304および後述するステップS306では、複数回の選択の結果が、ステップS203において計算された分岐の比率に従うように、搬送先の論理モジュールが選択される。
このようなサンプル値は、公知の方法によって取得することができる。たとえば正規分布または混合正規分布を用いた場合、その分布から、公知の方法によって容易に直接サンプリングすることができる。しかし、正規分布等は一例であり、それ以外の分布を用いてもよい。その際、直接サンプリングしづらい分布を用いた場合は、たとえば、正規分布等のサンプリングしやすい提案分布を別途作成し、SIR(Sampling Importance Re-sampling)などを用いることによって、サンプル値を取得することができる。
次に、シミュレーション部223は、論理モジュールに現時刻以前の搬出予約が登録されているならば、搬送時間データD4000で決定される正規分布から搬送時間のサンプル値を取得し、現時刻とサンプル値の時間を合算した時刻を求める。そして、シミュレーション部223は、前記論理モジュールから1つ検体を取り出し(すなわちその論理モジュールに相当するキュー構造のデータから、最も早く登録された検体IDを1つ取り出し)、その検体が次に搬送される搬送先の論理モジュールにその検体の搬入予約を登録する。ここで、搬送先の論理モジュールが複数ある場合、その検体の搬送経路が分かっているならば、その検体に指示されている論理モジュールに検体を搬送する。負荷等に応じて動的に分岐方向が変化する場合は、分岐方向データD5000の比率に基づいて搬送先となる論理モジュールを選択する。なお、検査技師によって指定された検体に関しては、少なくともその検体が必要としている処理項目を達成するために不可欠な論理モジュールを経由するように分岐方向を決定する(ステップS306)。
ここで、搬入予約とは、ある論理モジュールから搬出された検体がその次の論理モジュールに搬入される時刻の予約である。たとえば、管理サーバ12は、論理モジュールごとにその論理モジュールへの検体の搬入時刻の予約を示す情報を保持してもよい。この場合、ステップS306において算出された時刻を搬入時刻の予約を示す情報として保持することによって、搬入予約が登録される。
次に、シミュレーション部223は、論理モジュールに現時刻以前の搬入予約が登録されていて、論理モジュールに登録されている検体が最大容量に達していないならば、搬入予約されている検体を前記論理モジュールに追加する(ステップS307)。なお、管理サーバ12は、各論理モジュールの最大容量(すなわちそこに搬入可能な検体の数)を示す情報を保持してもよい。例えば、論理モジュールがキュー構造のデータである場合、そのキューの長さが最大容量を示す。
次に、シミュレーション部223は、検査技師に指定されている検体について、処理が完了したならば、シミュレーションの現在時刻(時刻変数t)とシミュレーション開始時刻の差をその検体の処理時間のサンプル値としてサンプル予測値D6000に登録する(ステップS308)。
次に、シミュレーション部223は、時刻変数tを200msec後に進める。なお、本実施例では200msecとしたが、管理サーバ12の性能に応じてこれより長くしても、短くしてもよい(ステップS309)。
最後に、シミュレーション部223は、シミュレーションの終了条件が満たされたか否かを判定し(ステップS310)、満たされた場合には処理を終了し、満たされない場合はステップS303に戻る。本実施形態では、検査技師に指定された検体のすべての処理時間のサンプル値が計算されたか、シミュレーションの現在時刻(時刻変数t)がシミュレーション開始時刻から60分以上先になった場合に、シミュレーションの終了条件が満たされたと判定する。なお、本実施形態ではシミュレーションの終了条件として設定されたシミュレーション開始からの経過時間を60分としたが、管理サーバ12の処理能力に応じてこれより長くしても、短くしてもよい。
結局、上記の処理によって、各論理モジュールの滞在時間の確率分布および各搬送路の搬送時間の確率分布に基づいて、各論理モジュールにおける検体の搬入時刻および搬出時刻が推定され、検体ごとに搬入時刻と搬出時刻との間の時間(詳細には、各モジュールにおける搬入時刻と搬出時刻との間の時間、および、各モジュールにおける搬出時刻と次のモジュールにおける搬入時刻との間の時間)が合計され、これが当該検体の処理時間として出力される。
なお、上記の実施形態では、ベルトラインによる検体の搬送を想定しているため、各論理モジュール及び搬送路においてFIFOの処理が行われる。例えば、ある論理モジュールにおいて、ある検体が搬入され、その検体の搬出時刻が滞在時間の確率分布に基づいて算出され、その時刻が搬出予約として登録された場合、実際にその時刻に当該論理モジュールから搬出される(すなわちその論理モジュールに相当するキュー構造のデータから取り出される)のは、当該論理モジュールにその時点で滞留している検体のうち、最も早く搬入された検体(すなわちそのキュー構造のデータに最も早く登録された検体)である。
しかし、例えばロボットアームのような、検体の追い越しが可能な搬送手段が用いられる場合、シミュレーションにおいてFIFOの処理は適用されない。例えば、上記のようにある検体について算出された搬出時刻が搬出予約として登録された場合、当該搬出時刻に、当該検体が搬出される。
<ユーザインターフェース>
次に図15を用いて、処理時間を予測する検体の指定と削除の方法、および予測結果の表示方法を説明する。
操作端末13の出力部232に表示される予測処理時間モニタ(G100)は、指定する検体の検体IDを表示する検体IDボックス(G101)と、追加ボタン(G102)と、削除ボタン(G103)と、予測結果リスト(G104)とから成る。
検査技師が、入力部231を介して、検体IDボックス(G101)に検体IDを入力し、追加ボタン(G102)を押すことで、処理時間を予測したい検体を指定することができる。指定された検体の処理時間は、登録されてから次のシミュレーションが行われた時点で予測結果リスト(G104)に表示され、シミュレーションが行われるごとに更新される。この予測結果リスト(G104)には検体IDと対応する処理時間の期待値(予測処理時間(平均))と、標準偏差を3倍した値(予測のばらつき)(3σ値)とが表示される。これらは、それぞれ、予測結果データ(D7000)の検体ID(D7001)、平均(D7002)および分散(D7003)に対応する。
上記の手順で指定された検体は、検査が完了するか、検査技師が入力部231を介して、該当する検体の行を選択した上で、削除ボタン(G103)を押すと予測結果リストから削除される。
この予測処理時間モニタ(G100)を利用することで、検査技師またはドクタは処理時間の期待値だけでなくばらつきも把握できるので、効率的な作業計画を立てられるとともに、患者に的確な検査完了時間を伝えることができる。
次に図16を用いて、モジュールの処理時間の表示方法を説明する。
操作端末13の出力部232に表示されるリアルタイム処理時間モニタ(G200)は、一覧ビュー(G201)と、詳細ビュー(G202)とから成る。
一覧ビュー(G201)には、各モジュールの滞在時間の期待値が一覧表示される。
詳細ビュー(G202)には、指定したモジュールの処理時間の確率分布が表示される。詳細ビュー(G202)左側にモジュールのリストが表示され、検査技師が入力部231を介して表示させたいモジュールを選択することで、確率分布が表示されるモジュールを指定できる。
例えば、操作端末13から管理サーバ12に選択されたモジュールを識別する情報が送信され、それに応じて、管理サーバ12が、選択されたモジュールの処理時間の確率分布(ステップS102において推定されたもの)を操作端末13に出力し、操作端末13がその確率分布のグラフを出力部232に表示してもよい。
このリアルタイム処理時間モニタ(G200)を利用することで、検査技師はシステムへの負荷と、依頼傾向を把握できるので、たとえば緊急検体が到着した際にシステムに投入せず手作業で前処理を行った後、一般的な分析装置に組み込まれている割り込み機能を使って優先分析するなどの柔軟な検査を実施することができる。
以上に説明したように、本実施形態によれば、検査の処理時間の予測値だけでなくその予測値の信用度合(すなわちばらつき)が分かるので、検査技師は、処理時間とその信用度合を加味した作業計画を立案できる。
また、各モジュールの処理時間の特性、たとえば、分注数または分析項目数による処理時間の違いに合わせて確率分布を仮定し、最近の実測値から分布の形状を推定するので、正確な予測ができる。
また、稼働している自動分析システムの最近の実測値に基づいて処理時間を予測するので、時間帯、曜日、その日が休み明けか否か、などに依存する処理時間の変動、および、モジュールまたは試薬の異常に起因する処理時間の変動にも柔軟にも対応できる。
また、前記予測手順はサンプル値を増やすことで予測精度を高めることができる方法であり、その際のサンプル値を取得する処理(シミュレーション)は並列実行可能なので、複数台の管理サーバ12を使って分散処理させることもできる。
===第2の実施形態===
次に本発明の第2の実施形態を説明する。この実施形態は、予想される処理時間が、予め定めた以上の確率で目標とする時間を超える場合、混雑解消および優先処理を実施する自動分析システムの例を示す。
<システム構成>
図17は、本発明の第2の実施形態における自動分析システムの構成図である。
図17に示す通り、自動分析システム2010は、複数のモジュールを含むモジュール群2011と、管理サーバ2012と、操作端末2013とから成り、各構成要素はEthernet(登録商標)などを用いたLANを介して接続される。また、管理サーバ2012は、病院ネットワーク2014を介して電子カルテシステムなどの病院の他のシステムと接続される。
モジュール群2011は、前処理を担う投入モジュール2101、遠心モジュール2102、開栓モジュール2103、分注モジュール2104、後処理を担う収納モジュール2105、搬送処理を担う搬送モジュール2111〜2114と分岐モジュール2115、2116、分析処理を担う生化学分析モジュール2121、2123および遺伝子分析モジュール2122、2124から成り、図17で示すように配置される。すなわち、図17の例では、収納モジュール2105に投入モジュール2101が隣接し、投入モジュール2101に遠心モジュール2102が隣接し、遠心モジュール2102に開栓モジュール2103が隣接し、開栓モジュール2103に分注モジュール2104が隣接し、分注モジュール2104に搬送モジュール2111が隣接し、搬送モジュール2111に分岐モジュール2115が隣接し、分岐モジュール2115に搬送モジュール2112および2113が隣接し、搬送モジュール2112に分岐モジュール2116が隣接し、分岐モジュール2116に搬送モジュール2114が隣接し、搬送モジュール2113に分析モジュール2121が隣接し、分析モジュール2121に分析モジュール2122が隣接し、搬送モジュール2114に分析モジュール2123が隣接し、分析モジュール2123に分析モジュール2124が隣接するように、各モジュールが配置される。
これらの各モジュールはそれぞれが検体の搬入出を行う複数本の搬送路を内部に備えており、隣接するモジュールの搬送路同士が連結されることで、モジュール間の検体の受け渡しを可能としている。たとえば、投入モジュール2101上の下側のライン2101aと中央のライン2102bは左から右へ(すなわち収納モジュール2105から搬入された検体を遠心モジュール2102に搬出する方向に)検体を搬送でき、上側のライン21101cは右から左へ検体を搬送することができる。分注モジュール2104は、子検体が新たに生成されるラインを持つとともに、親検体および子検体の各々を搬送モジュール111または開栓モジュール103へ選択的に搬送できるようになっている。
なお、本実施形態では、投入モジュール2101以外のモジュールも同様に左から右へ検体を搬送する2本の搬送路を備えてもよい。その場合、各モジュールは、それらの2つの搬送路のうち一方を用いて各モジュールに搬入された検体について、当該モジュールによる処理を行わずに、その次のモジュールに搬出してもよい。たとえば、分注モジュール2104が左から右へ(すなわち開栓モジュール2103から搬送された検体を搬送モジュール2111に搬出する方向に)検体を搬送する2つの搬送路を備える場合、分注モジュール2104は、それらのうち一方の搬送路から搬入された検体については、分注処理を実行して親検体及び子検体をそれぞれ次のモジュール(たとえば搬送モジュール2111)に搬出し、もう一方の搬送路から搬入された検体については、分注処理を実行せずに次のモジュールに搬出してもよい。このような場合、検体をモジュールに搬入する搬送路を選択することによって、各モジュールにおける処理の実行の有無を選択することができる。後述する分注後回し処理は、このような搬送路の選択によって実現される。なお、前記搬送路の選択は、搬送機構に応じて搬入元のモジュールで選択されても、搬送先のモジュールで選択されてもよい。
また、図2の例では投入モジュールを1台、遠心モジュールを1台、開栓モジュールを1台、分注モジュールを1台、搬送モジュールを4台、分岐モジュールを2台、生化学分析モジュールを2台、遺伝子分析モジュールを2台示したが、第1の実施形態と同様に、これよりモジュールの数が多くても少なくてもよい。また、他の種類の処理モジュールが接続されていてもよい。
また、管理サーバ2012は処理負荷等に応じて2台以上あってもよい。また、操作端末2013は検査室のレイアウトおよび運用に応じて2台以上あってもよいし、管理サーバ2012の入出力機能を操作端末2013として代用してもよい。また、管理サーバ2012とモジュール群2011の間に仲介装置を設置してもよく、その場合、後述の管理サーバ2012の機能を分散配置してもよい。
<機能構成>
次に、図18を用いて、自動分析システム2010の機能構成を説明する。
モジュール群2011を構成する投入モジュール101、遠心モジュール102、開栓モジュール103、分注モジュール104、収納モジュール105、搬送モジュール111、および分析モジュール121の各々は、制御部211を有して成る。
管理サーバ2012は、イベント収集部221、モデル推定部222、シミュレーション部223、サンプル統合部224、イベントDB225、モデルDB226、サンプルDB227、予測結果DB228、進捗管理部241、指示部242、および検体情報DB243を有して成る。
操作端末13は、入力部231および出力部232を有して成る。
<機能とハードウェアの対応>
次に図18に示す自動分析システム2010の各構成要素と、当該構成要素を実現しているハードウェアおよびソフトウェアとの対応を説明する。
モジュール群2011を構成するモジュールの制御部211は、各モジュールのCPUがROMまたは外部記憶装置に格納されたプログラムをRAMに読み込み、通信I/F、搬送および検査処理を行うためセンサ、コントローラ、アクチュエータ等のハードウェアを制御することで実現される。
本実施形態の管理サーバ2012のハードウェア構成は、第1の実施形態の管理サーバ12のハードウェア構成と同様である(図27参照)。すなわち、管理サーバ2012のイベント収集部221、モデル推定部222、シミュレーション部223、サンプル統合部224、イベントDB225、モデルDB226、サンプルDB227、予測結果DB228、進捗管理部241、指示部242、検体情報DB243は、管理サーバ2012のCPU2701がROM(図示省略)または外部記憶装置2702に格納されたプログラムをRAM2703に読み込み、通信I/F2704、マウス2705、キーボード2706、ディスプレイ2707等を制御することで実現される。
すなわち、以下の説明においてイベント収集部221、モデル推定部222、シミュレーション部223、サンプル統合部224、進捗管理部241および指示部242が実行する処理は、実際には上記のプログラムに従う管理サーバ2012のCPUによって実行され、イベントDB225、モデルDB226、サンプルDB227、予測結果DB228および検体情報DB243に格納されるデータは、実際には管理サーバ2012のRAMまたは外部記憶装置に格納される。
操作端末2013の入力部231、出力部232は、操作端末13のCPUがROMまたは外部記憶装置に格納されたプログラムをRAMに読み込み、通信I/F、マウス、キーボード、ディスプレイ等を制御することで実現される。
<搬送機構>
本実施形態における各モジュールの処理機構は、第1の実施形態と同様であるため(図3参照)、説明を省略する。
<論理モデル>
次に図19を用いて、処理時間を予測するために用いるモジュール群2011の論理モデルを説明する。
モジュール群2011の論理モデルは、論理モジュール401、搬入点402、搬出点403および論理コネクション404から成るグラフとして表現される。図19に示す論理モデルは、図17に示したモジュールの接続関係を表現するものである。第2の実施形態のモジュールの接続関係(図17)が第1の実施形態のモジュールの接続関係(図1)より複雑になっているため、第2の実施形態の論理モデルの構成(図19)も第1の実施形態の論理モデルの構成(図4)と比べて複雑になっている。しかし、それを構成する各要素(論理モジュール401、搬入点402、搬出点403、論理コネクション404)の役割は第1の実施形態で説明したものと同様である。
なお、本実施形態では、図17を参照して説明したように、各モジュールに左から右の方向に検体を搬送する2つの搬送路が含まれる。そして、それらの一方の搬送路から搬出された検体が次のモジュールのいずれの搬送路に搬入されるかを選択することができる。このため、このようなモジュール群2011を表現する論理モデルに含まれる各論理モジュールは、右から左の方向の搬送に対応する1つの論理モジュールと、左から右の方向の搬送に対応する2つの論理モジュールと、を含む。そして、左から右の方向の搬送に対応する2つの論理モジュールの各々から搬出された検体が、次のモジュールにおける対応する左から右の方向の搬送に対応する2つの論理モジュールのいずれにも搬入できるよう、2つの論理モジュールとその次の2つの論理モジュールとを平行する方向に接続する論理コネクションに加えて、それらを交差する方向に接続する論理コネクションも設けられる。
<データ構造>
イベントDB225のイベントデータD1000、モデルDB226の搬入間隔データD2000、滞在時間データD3000、搬送時間データD4000、分岐方向データD5000、サンプルDB227のサンプル予測値D6000、および予測結果DB228の予測結果データD7000は、第1の実施形態と同様であるため(図5〜図11参照)、説明を省略する。
次に図20を用いて、検体情報DB243に格納される依頼データD8000を説明する。
依頼データD8000は、検体になされた依頼内容を表すものであって、検体を識別するための検体ID(D8001)と、依頼の緊急性を表す優先度(D8002)と、モジュールでの処理内容を識別するための処理項目ID(D8003)とから成る。この依頼データD8000は、検体が自動分析システム2010で処理されるのに先立って電子カルテシステム等で定義され、検体情報DB243に格納される。
次に図21を用いて、検体情報DB243に格納される目標データD9000を説明する。
目標データD9000は、課せられた依頼に対する処理の目標を表すものであって、依頼の緊急性を表す優先度(D9001)と、モジュールの処理内容を表す処理項目ID(D9002)と、処理の目標時間(D9003)とから成る。この目標データD9000は、検査技師によって予め登録される。
<処理フロー>
次に図22を用いて、処理時間の予測に基づいた混雑解消制御の概略を説明する。
各種モジュールの制御部211は、検体を検出すると、随時イベントデータD1000を生成し、管理サーバ2012に送信する。
管理サーバ2012のイベント収集部221は、定期的に各種モジュールの制御部211から送られてくるイベントデータD1000を収集し、イベントDB225に格納する(ステップS2101)。
次に、管理サーバ2012のモデル推定部222が、10分前から現在までのイベントデータD1000を用いて、シミュレーションで使うモデルを表す搬入間隔データD2000、滞在時間データD3000、搬送時間データD4000、分岐方向データD5000を生成し、それらをモデルDB226に格納する(ステップS2102)。ここで、モデル推定処理は第1の実施形態で説明したもの(図12のステップS102および図13参照)と同様であるため、詳細な説明は省略する。
次に、管理サーバ2012のシミュレーション部223が、ステップS2102において生成されたモデルに基づいて、現在時刻から20分先までのシミュレーションを100回行い、その間に処理が完了した検体の処理時間のサンプル予測値D6000をサンプルDB227に格納する(ステップS2103)。ここで、シミュレーションの実行処理は第1の実施形態と同様であるため、詳細な説明を省略する(図14参照)。
次に、管理サーバ2012のサンプル統合部224が、検査技師によって指定された各検体のサンプル予測値D6000から処理時間の期待値(すなわち平均値)および分散を算出し、それらをそれぞれ平均(D7002)および分散(D7003)として含む予測結果データD7000を作成し、それを予測結果DB228に格納する(ステップS2104)。
次に、管理サーバ2012の進捗管理部241が、検体に対する処理が目標時間内で終わるか否かの予測に基づいて、混雑解消が必要か否かを判定する(S2105)。この判定の詳細については後述する(図23参照)。目標時間内に処理が終わると予測された場合、混雑解消が不要であると判定され、処理を終了する。目標時間内に処理が終わらないと予測された場合、混雑解消が必要であると判定され、ステップS2106およびステップS2107が実行される。
混雑解消が必要である場合、混雑解消制御(ステップS2106)および交換制御(ステップS2107)が実行される。混雑解消制御は、低速搬入制御および分注後回し制御を含む。これらについて説明する。
まず管理サーバ2012の指示部242が、混雑解消制御の指示を投入モジュール2101、分注モジュール2104および収納モジュール2105の制御部211に送信する。この指示を受信した投入モジュール2101および収納モジュール2105の制御部211は、たとえば4秒間隔で検体を搬入できるところを8秒間隔で検体を搬入するといったように、検体を低速で搬入する(低速搬入制御)。また、この指示を受信した分注モジュール2104の制御部211は、分注モジュール2104に搬入された検体に対する分注処理のうち、優先度の高くない処理項目に関する分注処理、および、すべての親検体を吸い出す分注処理(分離分注)を一旦取りやめ、それらの検体を収納モジュール等に搬送しておき、それらの検体については後で分注処理を行うようにする(分注後回し制御)。
なお、上記の各モジュールの制御部211は、一定期間(たとえば1分)以上指示を受信しなくなった時点で混雑解消のための前記処理を中止し、平常通りの処理に戻す。また、本実施形態ではユーザへ確認することなく分注後回し制御を実施するものしたが、ユーザの許可なしに処理時間が遅くなることを避ける必要がある場合は、ユーザに分注後回し制御の可否を確認し、許可された検体のみについて分注後回し制御をしてもよい。
次に、管理サーバ2012の指示部242が、バッチ処理を行う同種類のモジュールが2つ以上ある場合、それらのモジュールの処理開始順を確認する。一般に、バッチ処理を行うモジュールは、搬入された検体の数が所定の数に達すると、バッチ処理を開始する。また、検体の数が所定の数に達していない場合でも、所定の時刻が経過した(すなわちタイムアウトした)場合にも、処理を開始する。このため、既に搬入されている検体の数が多いか、または、タイムアウトの時刻が近いモジュールの処理が先に開始されると予想される。次に、指示部242は、後に処理を開始すると予想された(すなわち搬入されている検体の数が少ない)モジュールの中に、目標時間内に処理が終わらないと予測される未搬送の検体の予約が含まれており、かつ、先に処理を開始すると予想されたモジュールの中に、目標時間までに余裕のある未搬送の検体の予約があれば、その2つの搬送先を交換する指示を各モジュールに送信する。この指示を受けたモジュールは、指示に従い搬送先を変更して処理を行う(交換制御)。
ここで、未搬送の検体の予約とは、図14のシミュレーションで扱われる搬入予約等とは異なり、検体を実際にモジュールに搬送するために参照される情報である。たとえば、遺伝子分析モジュール(2122、2124)がバッチ処理を行うと仮定すると、これから遺伝子分析が行われる検体であって、まだ遺伝子分析モジュールに搬送されていない検体について、いずれかの遺伝子分析モジュールに搬送される予約が登録される。各モジュールの制御部211が、各検体のIDとその検体がこれから搬送されるモジュールのIDとを対応付ける情報を予約情報として保持し、その予約情報を参照して、各検体の搬送先を決定してもよい。その場合、管理サーバ2012の指示部242は、上記のような搬送先の交換の指示を、上記の予約情報を保持するモジュールの制御部211に送信し、その指示を受けた制御部211が予約情報を更新する。その結果、検体が実際に搬送されるモジュールが変更される。
交換制御の具体的な例を説明する。この例において、遺伝子分析モジュール(2122、2124)は数十本の検体をバッチ的に処理する。この遺伝子分析モジュールのうち、遺伝子分析モジュール2122はあと20検体搬入された時点で処理を開始し、遺伝子分析モジュール2124はあと3検体搬入された時点で処理を開始すると仮定する。また、遺伝子分析モジュール2122には目標時間に間に合いそうにない検体Aの搬入予約があり、遺伝子分析モジュール2124には目標時間までに余裕のある検体Bの搬入予約があると仮定する。このとき、交換制御によって、これら2つの搬入予約が交換され、検体Aが遺伝子分析モジュール2124、検体Bが遺伝子分析モジュール2122に搬送されることになる。
なお、バッチ処理できるモジュールが複数あるとき、一般的には片方が一杯になるまで搬送が続けられるように制御されることが多い。そのため、ほとんどの場合、先に処理を開始するモジュールに予約の空きがないので、前記のように交換を行う必要があるが、もし途中で予約がキャンセルされるなど空きが生じる場合には、単純に検体Aの搬送先を変更すればよい。
次に図23を用いて、混雑解消が必要か否かを判定する処理(ステップS2105)を詳しく説明する。
まず、進捗管理部241は、検体情報DB243の依頼データD8000を参照して、作成された各検体の予測結果データD7000の中に優先度が高い検体が含まれているか否かを判定する(ステップS2201)。優先度の高い検体が含まれていると判定された場合、進捗管理部241は、ステップS2202を実行する。一方、優先度の高い検体が含まれていないと判定された場合、混雑解消は不要である(No)と判断し、処理を終了する。なお、本実施形態では、優先度の高くない検体は検体情報DB243の目標データD90000に登録されている目標時間を考慮していないが、必要に応じても考慮しても良い。
なお、各検体の優先度は、予め各検体に付与されている。一般に、救急搬送された患者から採取された検体等、緊急性の高い検体に高い優先度が与えられる。この優先度は、例えば病院ネットワーク2014に含まれる電子カルテシステムによって付与され、管理サーバ2012に入力される。具体的には、例えば管理サーバ2012が各検体のIDとその検体に付与された優先度とを対応付ける情報を保持してもよい。各検体の優先度が高いか否かは、各検体に付与された優先度が所定の値より高いか否かに基づいて判断されてもよい。例えば、各検体に、「高い」または「低い」の2段階の優先度のいずれかが付与される場合、ステップS2201では、優先度として「高い」が付与された検体が含まれているか否かが判定される。また、各検体の優先度は、容態が急変した患者の検体などの分析を迅速化するために検査室で優先度を変更できる。具体的には、投入モジュール2101や各種分析モジュールに用意された緊急検体用の投入位置を介して投入したとき、ならびに、管理サーバ2012に直接変更指示したときに変更されうる。こういった場合、前記電子カルテシステムで付与された優先度に依らず、新しい優先度が割り当てなおされる。
予測結果データD7000の中に優先度が高い検体が含まれている場合、その各検体について、検体情報DB243の目標データD9000に登録されている目標時間と、式(9)で与えられる予想総処理時間の差が負となる場合が1回以上起こるか否かを判定する(ステップS2202)。
ここで、現在時刻をTn、検体が投入された時刻をTi、処理時間の期待値をE、標準偏差をσとする。その結果、上記の差が負になる場合が1回以上起こる(すなわち、優先度の高い検体の処理時間が目標時間を超える確率が所定の値を超える)と判定された場合には、進捗管理部241は混雑解消が必要である(No)と判断し処理を終了し、一度も負にならなかった場合には、混雑解消は不要(Yes)であると判断して処理を終了する。
次に図24を用いて、管理サーバ2012の指示部242が投入モジュール2101、分注モジュール2104、収納モジュール2105の制御部211に指示を送信する処理を詳しく説明する。
まず、指示部242は、低速搬入制御が実施できるモジュールがあるか否かを判定する(ステップS2301)。ここで、低速搬入制御ができるモジュールとは、投入モジュールまたは収納モジュールといったトレイなどから検体を取り込む機能を有し、かつ、後述のGUIによって制御の許可を得ているモジュールである。低速搬入制御が実施できるモジュールがあると判定された場合、指示部242はステップS2302を実行する。低速搬入制御が実施できるモジュールがないと判定された場合、指示部242はステップS2303を実施する。
低速搬入制御が実施できるモジュールがあると判定された場合、指示部242は、該当するすべてのモジュールの制御部211に対して、低速搬入制御の指示を送信し(ステップS2302)、その後、ステップS2303を実施する。この結果、低速搬入制御の指示を受けたモジュールが通常より遅い間隔で検体をトレイなどから取り込むことによって、システム内に検体が停滞することが防止される。
低速搬入制御が実施できないと判定されたか、または、低速搬入制御の指示の送信が終了した場合、指示部242は、分注後回し制御が実施できるモジュールがあるか否かを判定する(ステップS2303)。ここで、分注後回し制御が実施できるモジュールとは、モジュールが分注モジュールであり、かつ、後述のGUIによって制御の許可を得ているモジュールである。分注後回し制御が実施できるモジュールがあると判定された場合、指示部242はステップS2304を実施し、実施できるモジュールがなければ処理を終了する。
分注後回し制御を実施できるモジュールがあると判定された場合、指示部242は、該当するすべてのモジュールの制御部211に対して、分注後回し制御の指示を送信する。この結果、後回し制御の指示を受けたモジュールは、緊急性のない項目に関する分注処理、分離分注を一旦取りやめ、収納モジュール等に搬送する。そして、緊急性の高い検体の予想処理時間が目標時間を超過しなくなった時点で処理を再開する(ステップS2304)。
<ユーザインターフェース>
次に図25を用いて、混雑解消に関する制御状態の表示方法を説明する。
操作端末13の出力部232に表示される制御状態モニタ(G2100)は、状態ビュー(G2101)から成る。状態ビュー(G2101)には、自動分析システム2010のモジュール群2011の俯瞰図が表示される。この中で制御可能なモジュールについては、吹き出しによって制御状態も表示される。図25においては、投入モジュール2101および分注モジュール2104が混雑解消制御(それぞれ、低速搬入制御および分注後回し制御)を実施している一方、収納モジュール2105は混雑解消制御が許可されていない状態を表している。
この制御状態モニタ(G2100)を利用することで、検査技師は制御のON/OFFによって混雑しているか否かを把握できるとともに、分注後回しなどによって報告順番の入れ替わりが起こることなどを瞬時に把握できる。
次に図26を用いて、混雑解消制御の実施許可を設定する方法を説明する。
操作端末13の出力部232に表示される制御設定画面(G2200)は、許可リスト(G2201)から成る。
許可リスト(G2201)は、混雑解消制御が実施可能なモジュール(投入モジュール2101、分注モジュール2104、収納モジュール2105)の制御が許可されているか否かを表示するとともに、その許可状態を変更するためのボタン(G2202、G2203、G2204)から成る。
検査技師は、入力部231を介して、混雑解消制御の実施許可を与えたいモジュールのボタンを指定することができる。たとえば、図26の例では、それぞれ投入モジュール2101および分注モジュール2104に対応するボタンG2202およびG2203に「ON」が表示され、収納モジュール2105に対応するボタンG2204に「OFF」が表示されている。これは、投入モジュール2101および分注モジュール2104に制御許可が与えられ、収納モジュール2105には制御許可が与えられていないことを表している。
以上に説明したように、本実施形態によれば、検査の処理時間を予測できるだけでなく、その予測の信用度合(すなわちばらつき)が分かるので、優先度の高い検体が予め定めた以上の確率で目標時間を超える可能性がある場合、優先度の高くない検体の処理を抑制することで、優先度の高い検体がより優先処理されるように自動分析システムを制御できる。
また、稼働している自動分析システムの最近の実測値に基づいて処理時間を予測するので、時間帯、曜日、その日が休み明けか否か、などに依存する処理時間の変動、および、モジュールまたは試薬の異常に起因する処理時間の変動にも柔軟にも対応できる。
また、前記予測手順はサンプル値を増やすことで予測精度を高めることができる方法であり、その際のサンプル値を取得する処理(シミュレーション)は並列実行可能なので、複数台の管理サーバ12を使って分散処理させることもできる。