以下に、図面を参照して、本発明にかかる排他制御システム、排他制御プログラム、および排他制御方法の実施の形態を詳細に説明する。
(実施の形態にかかる排他制御方法の一実施例)
図1は、実施の形態にかかる排他制御方法の一実施例を示す説明図である。図1において、排他制御システム100は、異なる装置間でカルテ情報を同期し、異なる装置間でカルテ情報を排他制御するシステムである。
排他制御は、カルテ情報を排他的に更新することである。排他制御は、例えば、いずれかの装置がカルテ情報を更新する権限を有している最中に、他の装置が同じカルテ情報を更新することを禁止することである。カルテ情報を更新する権限は、例えば、排他権限と呼ばれる。排他制御は、カルテ情報を排他的に読出および更新することであってもよい。排他制御は、例えば、いずれかの装置がカルテ情報を読出または更新している最中に、他の装置が同じカルテ情報を読出および更新することを禁止することであってもよい。
ここで、カルテ情報の排他制御は、在宅医療において利用されることがある。例えば、医療施設に設けられる院内装置と、患者の自宅や福祉施設を訪問する医師に所持される端末装置との間で、カルテ情報に対して排他制御することが望まれる。具体的には、医師が所持する端末装置で、医師が患者の自宅を訪問中でも、患者のカルテ情報を更新可能にしている最中には、院内装置では、当該患者のカルテ情報を更新不可能に制御することが好ましい。
これに対し、クラウド上に排他制御中のカルテ情報を管理するデータベースを用意し、院内装置と端末装置とがクラウド上のデータベースを参照して、自装置でのカルテ情報の更新可否を判断することにより、カルテ情報の排他制御を実現する場合が考えられる。しかしながら、この場合、実際には院内装置でカルテ情報を更新しても問題が発生しないような状況でも、院内装置でカルテ情報を更新不可能になってしまうことがある。
例えば、院内装置が、ネットワーク障害などにより、クラウド上のデータベースを参照することができなくなると、院内装置は、端末装置がいずれのカルテ情報を更新中であるかを把握不可能になってしまう。このため、院内装置は、実際には端末装置がカルテ情報を更新中ではなく、院内装置でカルテ情報を更新しても問題が発生しないとしても、すべてのカルテ情報を更新不可能になってしまう。
そこで、本実施の形態では、医療施設に対応する装置が記憶する排他制御対象であるカルテ情報を示す制御情報を基準として、医療施設に設けられる装置と医療従事者に所持される装置との間で排他的にカルテ情報を更新可能にする排他制御方法について説明する。かかる排他制御方法によれば、医療施設に対応する装置は、通信状況に関わらず、医療施設においてカルテ情報を更新可能にすることができる。
図1の例では、排他制御システム100は、第1の装置101と、第2の装置102と、第3の装置103とを含む。
第1の装置101は、医療施設110に対応し、医療施設110におけるカルテ情報の更新を制御するコンピュータである。医療施設110は、例えば、病院や診療所などである。第1の装置101は、例えば、医療施設110に設けられた院内端末(不図示)におけるカルテ情報の更新を制御する。院内端末は、医療従事者が医療施設110に居る際に利用するコンピュータである。医療従事者は、例えば、医師や看護師などである。
第2の装置102は、患者の所在地120を訪問する医療従事者に所持され、カルテ情報を更新可能なコンピュータである。医療従事者は、例えば、医師や看護師などである。所在地120は、例えば、患者の自宅や患者が通う福祉施設などである。第3の装置103は、クラウド130上に存在し、第1の装置101と第2の装置102と通信可能なコンピュータである。
(1-1)第1の装置101は、排他制御対象であるカルテ情報を特定するための第1の情報を記憶する。第1の情報は、例えば、排他制御対象であるカルテ情報を示す制御情報を含む。第1の情報は、例えば、排他制御対象ではないカルテ情報を示す制御情報を含み、排他制御対象であるカルテ情報を間接的に特定可能にしてもよい。第1の装置101は、例えば、排他制御対象であるカルテ情報を示す制御情報を記憶する第1のテーブルT1を有する。制御情報は、例えば、カルテ情報を示す識別情報を含む。
第1の装置101は、第1のカルテ情報の更新要求を受け付ける。第1のカルテ情報の更新要求は、第1のカルテ情報を更新可能にするために、第1のカルテ情報についての排他権限を要求することを示す情報である。第1の装置101は、例えば、院内端末から、第1のカルテ情報の更新要求を受け付ける。
第1の装置101は、第1のカルテ情報の更新要求を受け付けると、第1の情報に基づき、第1のカルテ情報が更新可能であるか否かを判定する。第1の装置101は、例えば、第1のカルテ情報の更新要求を受け付けると、第1のテーブルT1に第1のカルテ情報を示す第1の制御情報が登録済みであるか否かを確認する。ここでは、第1の制御情報が登録済みではない場合が、第1のカルテ情報が更新可能な場合に対応する。
第1の装置101は、判定した結果に基づき、第1のカルテ情報の更新を制御する。第1の装置101は、例えば、第1のテーブルT1に第1の制御情報が登録済みである場合には、第1のカルテ情報の更新を禁止する。第1の装置101は、具体的には、第1のテーブルT1に第1の制御情報が登録済みである場合には、院内端末に第1のカルテ情報についての排他権限の取得失敗を示す失敗通知を送信し、院内端末による第1のカルテ情報の更新を禁止する。
一方で、第1の装置101は、例えば、第1のテーブルT1に第1の制御情報が登録済みでない場合には、第1のテーブルT1に第1の制御情報を登録し、第1のカルテ情報の更新を許可する。第1の装置101は、具体的には、第1のテーブルT1に第1の制御情報が登録済みでない場合には、第1のテーブルT1に第1の制御情報を登録し、院内端末に第1のカルテ情報についての排他権限の取得成功を示す成功通知を送信し、院内端末による第1のカルテ情報の更新を許可する。
(1-2)第2の装置102は、第2のカルテ情報の更新要求を受け付ける。第2のカルテ情報の更新要求は、第2のカルテ情報を更新可能にするために、第2のカルテ情報についての排他権限を要求することを示す情報である。第2の装置102は、例えば、ユーザの操作入力に基づき、第2のカルテ情報の更新要求を受け付ける。
第2の装置102は、第2のカルテ情報の更新要求を受け付けると、第3の装置103に、第1の装置101にアクセスさせ、第1の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認させる。第2の装置102は、例えば、第2のカルテ情報の更新要求を受け付けると、第3の装置103に、第1のテーブルT1に第2のカルテ情報を示す第2の制御情報が登録済みであるか否かを確認させる。第2のカルテ情報は、第1のカルテ情報と同じカルテ情報であってもよい。
第2の装置102は、第3の装置103から応答を受信する。応答は、例えば、第3の装置103がアクセスに失敗し、第2のカルテ情報が更新可能であるか否かの確認に失敗した場合には、確認の失敗を示す情報を含む。また、応答は、例えば、第3の装置103がアクセスに成功し、第2のカルテ情報が更新可能であるか否かの確認に成功した場合には、第2のカルテ情報が更新可能であるか否かを示す情報を含む。応答は、具体的には、第2のカルテ情報が更新可能であるか否かを示す情報として、第2の制御情報が登録済みか否かを示す情報を含む。
ここで、第2の装置102は、第3の装置103によるアクセスに失敗し、第2のカルテ情報が更新可能であるか否かの確認に失敗した場合には、第2のカルテ情報の更新を禁止する。第2の装置102は、例えば、第1のテーブルT1の確認に失敗した場合には、第2のカルテ情報の更新を禁止する。
一方で、第2の装置102は、第3の装置103によるアクセスに成功した場合には、第3の装置103による確認の結果に応じて、第2のカルテ情報の更新を制御する。第2の装置102は、例えば、第1のテーブルT1に第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止する。また、第2の装置102は、例えば、第1のテーブルT1に第2の制御情報が登録済みでない場合には、第3の装置103に、第1のテーブルT1に第2の制御情報を登録させた後に、第2のカルテ情報の更新を許可する。
以上のように、第1の装置101、および、第2の装置102は、いずれも、自装置に更新要求されたカルテ情報を示す制御情報を、第1のテーブルT1に登録しなければ、自装置に更新要求されたカルテ情報の更新を許可することができなくなる。このため、排他制御システム100は、第1のテーブルT1が、いずれのカルテ情報が更新中であるかについての最新の状態を表すようにすることができる。
これにより、第1の装置101は、他装置と通信しなくても、自装置内で第1のテーブルT1を確認すれば、自装置に更新要求されたカルテ情報が、他装置で既に更新中であるか否かを正しく判断することができる。このため、第1の装置101は、他装置と通信しなくても、自装置内で第1のテーブルT1を確認すれば、自装置に更新要求されたカルテ情報を、医療施設110内で更新可能であるか否かを正しく判断することができる。したがって、第1の装置101は、他装置との通信状況に依存して、医療施設110内ですべてのカルテ情報が更新不可能になってしまう状況を回避することができる。
例えば、医療施設110内にある院内端末のユーザである医療従事者が、患者Aのカルテ情報を更新しようとする場合に、第1の装置101と第3の装置103との間で通信障害が発生してしまうことが考えられる。この場合、第1の装置101は、通信障害に関わらず、第1のテーブルT1に、患者Aのカルテ情報を示す制御情報が登録済みであるか否かを確認すれば、患者Aのカルテ情報を院内端末により更新可能であるか否かを正しく判断することができる。
具体的には、第1の装置101は、第1のテーブルT1に、患者Aのカルテ情報を示す制御情報が登録済みでなければ、患者Aのカルテ情報を院内端末により更新しても問題は生じないと判断することができる。問題は、例えば、異なる装置からのカルテ情報に対する更新内容が競合することである。そして、第1の装置101は、患者Aのカルテ情報を院内端末により更新可能であると正しく判断することができる。
また、具体的には、第1の装置101は、通信障害が発生する前に第2の装置102が第1のテーブルT1に患者Aのカルテ情報を示す制御情報を登録していれば、患者Aのカルテ情報を、医療施設110内で更新すると問題が生じると判断することができる。そして、第1の装置101は、患者Aのカルテ情報を医療施設110内で更新可能ではないと正しく判断することができる。結果として、第1の装置101は、通信障害に起因して、医療施設110内ですべてのカルテ情報が一律に更新不可能になってしまう状況を回避することができる。また、第1の装置101は、他装置と通信しなくても、排他制御システム100においてカルテ情報が排他的に更新されるようにすることができる。
また、第2の装置102は、第1のテーブルT1を確認することができない場合、自装置に更新要求されたカルテ情報を、自装置で更新してしまわないようにすることができる。このため、第2の装置102は、第1の装置101が他装置と通信せずに第1のテーブルT1を確認してカルテ情報を更新可能か否かを判断するようにしていても、排他制御システム100においてカルテ情報が排他的に更新されるようにすることができる。
具体的には、第2の装置102のユーザである医療従事者が、患者Bのカルテ情報を更新しようとする場合に、第1の装置101と第3の装置103との間で通信障害が発生してしまうことが考えられる。この場合、第2の装置102は、通信障害により第1のテーブルT1を確認することができないため、患者Bのカルテ情報を更新しないようにすることができる。結果として、第2の装置102は、排他制御システム100においてカルテ情報が排他的に更新されるようにすることができる。
ここでは、第2の装置102が、第3の装置103から応答を受信した後、第3の装置103に、第1のテーブルT1に第2の制御情報を登録させる場合について説明したが、これに限らない。例えば、第2の装置102が、第3の装置103に、第1のテーブルT1に第2の制御情報が登録済みであるか否かを確認させ、登録済みでなければ第2の制御情報を登録するように指示してもよい。そして、第2の装置102は、第3の装置103から、登録完了通知を含む応答を受信すると、第2のカルテ情報の更新を許可する。
ここでは、排他制御システム100が、第1の装置101と、第2の装置102と、第3の装置103とを含む場合について説明したが、これに限らない。例えば、排他制御システム100が、第3の装置103を含まない場合があってもよい。この場合、第2の装置102は、直接、第1の装置101が有する第1のテーブルT1に、第2の制御情報が登録済みであるか否かを確認することになる。
ここでは、第1の装置101が、院内端末から第1のカルテ情報の更新要求を受け付け、医療施設110内で院内端末により第1のカルテ情報を更新可能であるか否かを判断する場合について説明したが、これに限らない。例えば、第1の装置101が、ユーザの操作入力に基づき第1のカルテ情報の更新要求を受け付け、医療施設110内で第1の装置101により第1のカルテ情報を更新可能であるか否かを判断する場合があってもよい。
(排他制御システム100の具体例)
次に、図2を用いて、図1に示した排他制御システム100の具体例について説明する。
図2は、排他制御システム100の具体例を示す説明図である。図2において、排他制御システム100は、情報処理装置201と、1以上の端末装置202と、クラウド装置203と、1以上の院内端末211とを含む。
排他制御システム100において、情報処理装置201とクラウド装置203とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
また、端末装置202とクラウド装置203とは、ネットワーク210を介して接続される。また、情報処理装置201と、院内端末211とは、ネットワーク210を介して接続される。情報処理装置201と、院内端末211とは、有線または無線により、直接接続されてもよい。
情報処理装置201は、図1に示した第1の装置101に対応するコンピュータである。情報処理装置201は、医療施設に対応する。情報処理装置201は、例えば、医療施設に設けられる。情報処理装置201は、医療施設に対応するが、医療施設内になく、院内端末211とクラウド装置203との間に存在してもよい。情報処理装置201は、例えば、図4に後述する院内排他ログテーブル400と、図5に後述する院内排他テーブル500と、図6に後述する院内同期テーブル600とを有する。情報処理装置201は、さらに、院内エンティティテーブル(不図示)を有してもよい。
図4に後述する院内排他ログテーブル400は、図11に後述するクラウド排他テーブル1100に反映させる内容を記憶するテーブルである。図5に後述する院内排他テーブル500は、排他制御対象であるカルテ情報を示す制御情報を記憶し、排他制御対象であるカルテ情報を特定可能にするテーブルである。図5に後述する院内排他テーブル500は、図1に示した第1のテーブルT1に対応する。
図6に後述する院内同期テーブル600は、図12に後述するオブジェクトメタテーブル1200と同期し、図5に後述する院内排他テーブル500に反映させる内容、または、図8に後述する端末排他テーブル800に反映させる内容を記憶するテーブルである。また、図6に後述する院内同期テーブル600は、院内エンティティテーブルに反映させる内容を記憶してもよい。院内エンティティテーブルは、カルテ情報を記憶するテーブルである。
情報処理装置201は、図4~図6に後述する各種テーブルに基づき、院内端末211によりカルテ情報を更新可能であるか否かを判断し、院内端末211によるカルテ情報の更新を許可または禁止する。図4~図6に後述する各種テーブルに基づく情報処理装置201の具体的な動作は、例えば、図14~図17に後述する実施例において説明する。情報処理装置201は、例えば、サーバやPC(Personal Computer)などである。
端末装置202は、図1に示した第2の装置102に対応するコンピュータである。端末装置202は、例えば、医療従事者に所持される。端末装置202は、例えば、図8に後述する端末排他テーブル800と、図9に後述する端末同期テーブル900とを有する。端末装置202は、さらに、端末エンティティテーブル(不図示)を有してもよい。
図8に後述する端末排他テーブル800は、排他制御対象であるカルテ情報を示す制御情報を記憶し、排他制御対象であるカルテ情報を特定可能にするテーブルである。図9に後述する端末同期テーブル900は、図12に後述するオブジェクトメタテーブル1200と同期し、図5に後述する院内排他テーブル500に反映させる内容、または、図8に後述する端末排他テーブル800に反映させる内容を記憶するテーブルである。また、図9に後述する端末同期テーブル900は、端末エンティティテーブルに反映させる内容を記憶してもよい。端末エンティティテーブルは、カルテ情報を記憶するテーブルである。
端末装置202は、図8および図9に後述する各種テーブルに基づき、自装置でカルテ情報を更新可能であるか否かを判断し、自装置によるカルテ情報の更新を許可または禁止する。図8および図9に後述する各種テーブルに基づく端末装置202の具体的な動作は、例えば、図14~図17に後述する実施例において説明する。端末装置202は、例えば、ノートPC、タブレット端末、または、スマートフォンなどである。
クラウド装置203は、図1に示した第3の装置103に対応するコンピュータである。クラウド装置203は、例えば、図11に後述するクラウド排他テーブル1100と、図12に後述するオブジェクトメタテーブル1200とを有する。クラウド装置203は、さらに、オブジェクトバイナリ(不図示)を有してもよい。
図11に後述するクラウド排他テーブル1100は、排他制御対象であるカルテ情報を示す制御情報を記憶し、排他制御対象であるカルテ情報を特定可能にするテーブルである。図12に後述するオブジェクトメタテーブル1200は、図5に後述する院内排他テーブル500に反映させる内容、または、図8に後述する端末排他テーブル800に反映させる内容を記憶するテーブルである。また、図12に後述するオブジェクトメタテーブル1200は、オブジェクトバイナリに反映させる内容を記憶してもよい。オブジェクトバイナリは、カルテ情報を記憶するテーブルである。
クラウド装置203は、図11および図12に後述する各種テーブルに基づき、排他制御対象であるカルテ情報を特定可能にする。図11および図12に後述する各種テーブルに基づくクラウド装置203の具体的な動作は、例えば、図14~図17に後述する実施例において説明する。クラウド装置203は、例えば、サーバである。
院内端末211は、医療施設に設けられ、医療施設において医療従事者に利用されるコンピュータである。院内端末211は、医療従事者の操作入力に基づいて、更新要求を情報処理装置201に送信する。更新要求は、例えば、カルテ情報についての排他権限を取得し、院内端末211によりカルテ情報を更新可能にすることを要求する情報である。そして、院内端末211は、情報処理装置201の制御に従って、カルテ情報の更新を許可された場合には、カルテ情報を更新する。
ここでは、排他制御システム100に含まれる情報処理装置201が1つである場合について説明したが、これに限らない。例えば、排他制御システム100に含まれる情報処理装置201が2以上ある場合があってもよい。また、例えば、情報処理装置201が、いずれかの院内端末211としても動作する場合があってもよい。
また、ここでは、排他制御システム100に含まれるクラウド装置203が1つである場合について説明したが、これに限らない。例えば、排他制御システム100に含まれるクラウド装置203が2以上ある場合があってもよい。この場合、複数のクラウド装置203は、処理を分担してもよい。
ここでは、情報処理装置201が、院内端末211によりカルテ情報を更新可能であるか否かを判断する場合について説明したが、これに限らない。例えば、情報処理装置201が、自装置のユーザの操作入力により更新要求を受け付け、自装置によりカルテ情報を更新可能であるか否かを判断する場合があってもよい。そして、情報処理装置201は、自装置によるカルテ情報の更新を許可または禁止するようにしてもよい。
(情報処理装置201のハードウェア構成例)
次に、図3を用いて、情報処理装置201のハードウェア構成例について説明する。
図3は、情報処理装置201のハードウェア構成例を示すブロック図である。図3において、情報処理装置201は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置201の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。メモリ302は、例えば、図4~図6に後述する各種テーブルを記憶する。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、図4~図6に後述する各種テーブルを記憶してもよい。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置201から着脱可能であってもよい。
情報処理装置201は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置201は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置201は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(院内排他ログテーブル400のデータ構造)
次に、図4を用いて、院内排他ログテーブル400のデータ構造の一例について説明する。院内排他ログテーブル400は、例えば、図3に示した情報処理装置201のメモリ302や記録媒体305などの記憶領域により実現される。
図4は、院内排他ログテーブル400のデータ構造の一例を示す説明図である。図4に示すように、院内排他ログテーブル400は、患者番号と、削除フラグとのフィールドを有する。院内排他ログテーブル400は、各フィールドに情報を設定することにより、レコード400-aを記憶する。aは、任意の整数である。
患者番号のフィールドには、排他制御対象であるカルテ情報を特定する情報として、排他制御対象であるカルテ情報に記述される患者を識別する番号である患者番号が設定される。削除フラグのフィールドには、患者番号を削除するか否かを示す削除フラグが設定される。レコード400-aは、クラウド排他テーブル1100に反映する内容を示す。
(院内排他テーブル500のデータ構造)
次に、図5を用いて、院内排他テーブル500のデータ構造の一例について説明する。院内排他テーブル500は、例えば、図3に示した情報処理装置201のメモリ302や記録媒体305などの記憶領域により実現される。
図5は、院内排他テーブル500のデータ構造の一例を示す説明図である。図5に示すように、院内排他テーブル500は、患者番号のフィールドを有する。院内排他テーブル500は、各フィールドに情報を設定することにより、制御情報となるレコード500-bを記憶する。bは、任意の整数である。
患者番号のフィールドには、排他制御対象であるカルテ情報を特定する情報として、排他制御対象であるカルテ情報に記述される患者を識別する番号である患者番号が設定される。レコード500-bは、排他制御対象であるカルテ情報を特定可能にする。
(院内同期テーブル600のデータ構造)
次に、図6を用いて、院内同期テーブル600のデータ構造の一例について説明する。院内同期テーブル600は、例えば、図3に示した情報処理装置201のメモリ302や記録媒体305などの記憶領域により実現される。
図6は、院内同期テーブル600のデータ構造の一例を示す説明図である。図6に示すように、院内同期テーブル600は、テーブル名と、キーマップと、患者番号と、エンティティデータと、削除フラグとのフィールドを有してもよい。院内同期テーブル600は、各フィールドに情報を設定することにより、更新情報となるレコード600-cを記憶する。cは、任意の整数である。
テーブル名のフィールドには、更新情報を反映させるテーブルを識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内排他テーブル500、または、端末排他テーブル800を識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内エンティティテーブル、または、端末エンティティテーブルを識別するテーブル名が設定されてもよい。キーマップのフィールドには、テーブル名が示すテーブルに、更新情報をどのように反映させるかを示すキーマップが設定される。
患者番号のフィールドには、更新情報を反映させる、テーブル名が示すテーブル内でのレコードを特定する情報として、患者を識別する番号である患者番号が設定される。エンティティデータのフィールドには、テーブル名が示すテーブルに反映させる更新内容であるエンティティが設定される。削除フラグのフィールドには、更新種別が削除であるか否かを示す削除フラグが設定される。レコード600-cは、オブジェクトメタテーブル1200と同期し、いずれかのテーブルに反映させる更新情報を示す。
(端末装置202のハードウェア構成例)
次に、図7を用いて、端末装置202のハードウェア構成例について説明する。
図7は、端末装置202のハードウェア構成例を示すブロック図である。図7において、端末装置202は、CPU701と、メモリ702と、ネットワークI/F703と、記録媒体I/F704と、記録媒体705とを有する。また、各構成部は、バス700によってそれぞれ接続される。
ここで、CPU701は、端末装置202の全体の制御を司る。メモリ702は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU701のワークエリアとして使用される。メモリ702に記憶されるプログラムは、CPU701にロードされることで、コーディングされている処理をCPU701に実行させる。メモリ702は、例えば、図8および図9に後述する各種テーブルを記憶する。
ネットワークI/F703は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F703は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F703は、例えば、モデムやLANアダプタなどである。
記録媒体I/F704は、CPU701の制御に従って記録媒体705に対するデータのリード/ライトを制御する。記録媒体I/F704は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体705は、記録媒体I/F704の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体705は、例えば、図8および図9に後述する各種テーブルを記憶してもよい。記録媒体705は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体705は、端末装置202から着脱可能であってもよい。
端末装置202は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、端末装置202は、記録媒体I/F704や記録媒体705を複数有していてもよい。また、端末装置202は、記録媒体I/F704や記録媒体705を有していなくてもよい。
(端末排他テーブル800のデータ構造)
次に、図8を用いて、端末排他テーブル800のデータ構造の一例について説明する。端末排他テーブル800は、例えば、図7に示した端末装置202のメモリ702や記録媒体705などの記憶領域により実現される。
図8は、端末排他テーブル800のデータ構造の一例を示す説明図である。図8に示すように、端末排他テーブル800は、患者番号のフィールドを有する。端末排他テーブル800は、各フィールドに情報を設定することにより、制御情報となるレコード800-dを記憶する。dは、任意の整数である。
患者番号のフィールドには、排他制御対象であるカルテ情報を特定する情報として、排他制御対象であるカルテ情報に記述される患者を識別する番号である患者番号が設定される。レコード800-dは、排他制御対象であるカルテ情報を特定可能にする。
(端末同期テーブル900のデータ構造)
次に、図9を用いて、端末同期テーブル900のデータ構造の一例について説明する。端末同期テーブル900は、例えば、図7に示した端末装置202のメモリ702や記録媒体705などの記憶領域により実現される。
図9は、端末同期テーブル900のデータ構造の一例を示す説明図である。図9に示すように、端末同期テーブル900は、テーブル名と、キーマップと、患者番号と、エンティティデータと、削除フラグとのフィールドを有してもよい。端末同期テーブル900は、各フィールドに情報を設定することにより、更新情報となるレコード900-eを記憶する。eは、任意の整数である。
テーブル名のフィールドには、更新情報を反映させるテーブルを識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内排他テーブル500、または、端末排他テーブル800を識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内エンティティテーブル、または、端末エンティティテーブルを識別するテーブル名が設定されてもよい。キーマップのフィールドには、テーブル名が示すテーブルに、更新情報をどのように反映させるかを示すキーマップが設定される。
患者番号のフィールドには、更新情報を反映させる、テーブル名が示すテーブル内でのレコードを特定する情報として、患者を識別する番号である患者番号が設定される。エンティティデータのフィールドには、テーブル名が示すテーブルに反映させる更新内容であるエンティティが設定される。削除フラグのフィールドには、更新種別が削除であるか否かを示す削除フラグが設定される。レコード900-eは、オブジェクトメタテーブル1200と同期し、いずれかのテーブルに反映させる更新情報を示す。
(クラウド装置203のハードウェア構成例)
次に、図10を用いて、クラウド装置203のハードウェア構成例について説明する。
図10は、クラウド装置203のハードウェア構成例を示すブロック図である。図10において、クラウド装置203は、CPU1001と、メモリ1002と、ネットワークI/F1003と、記録媒体I/F1004と、記録媒体1005とを有する。また、各構成部は、バス1000によってそれぞれ接続される。
ここで、CPU1001は、クラウド装置203の全体の制御を司る。メモリ1002は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU1001のワークエリアとして使用される。メモリ1002に記憶されるプログラムは、CPU1001にロードされることで、コーディングされている処理をCPU1001に実行させる。メモリ1002は、例えば、図11および図12に後述する各種テーブルを記憶する。
ネットワークI/F1003は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F1003は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F1003は、例えば、モデムやLANアダプタなどである。
記録媒体I/F1004は、CPU1001の制御に従って記録媒体1005に対するデータのリード/ライトを制御する。記録媒体I/F1004は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体1005は、記録媒体I/F1004の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体1005は、例えば、図11および図12に後述する各種テーブルを記憶してもよい。記録媒体1005は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体1005は、クラウド装置203から着脱可能であってもよい。
クラウド装置203は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、クラウド装置203は、記録媒体I/F1004や記録媒体1005を複数有していてもよい。また、クラウド装置203は、記録媒体I/F1004や記録媒体1005を有していなくてもよい。
(クラウド排他テーブル1100のデータ構造)
次に、図11を用いて、クラウド排他テーブル1100のデータ構造の一例について説明する。クラウド排他テーブル1100は、例えば、図10に示したクラウド装置203のメモリ1002や記録媒体1005などの記憶領域により実現される。
図11は、クラウド排他テーブル1100のデータ構造の一例を示す説明図である。図11に示すように、クラウド排他テーブル1100は、患者番号のフィールドを有する。クラウド排他テーブル1100は、各フィールドに情報を設定することにより、制御情報となるレコード1100-fを記憶する。fは、任意の整数である。
患者番号のフィールドには、排他制御対象であるカルテ情報を特定する情報として、排他制御対象であるカルテ情報に記述される患者を識別する番号である患者番号が設定される。レコード1100-fは、排他制御対象であるカルテ情報を特定可能にする。
(オブジェクトメタテーブル1200のデータ構造)
次に、図12を用いて、オブジェクトメタテーブル1200のデータ構造の一例について説明する。オブジェクトメタテーブル1200は、例えば、図10に示したクラウド装置203のメモリ1002や記録媒体1005などの記憶領域により実現される。
図12は、オブジェクトメタテーブル1200のデータ構造の一例を示す説明図である。図12に示すように、オブジェクトメタテーブル1200は、テーブル名と、キーマップと、患者番号と、エンティティデータと、削除フラグとのフィールドを有してもよい。オブジェクトメタテーブル1200は、各フィールドに情報を設定することにより、更新情報となるレコード1200-gを記憶する。gは、任意の整数である。
テーブル名のフィールドには、更新情報を反映させるテーブルを識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内排他テーブル500、または、端末排他テーブル800を識別するテーブル名が設定される。テーブル名のフィールドには、例えば、院内エンティティテーブル、または、端末エンティティテーブルを識別するテーブル名が設定されてもよい。キーマップのフィールドには、テーブル名が示すテーブルに、更新情報をどのように反映させるかを示すキーマップが設定される。
患者番号のフィールドには、更新情報を反映させる、テーブル名が示すテーブル内でのレコードを特定する情報として、患者を識別する番号である患者番号が設定される。エンティティデータのフィールドには、テーブル名が示すテーブルに反映させる更新内容であるエンティティが設定される。削除フラグのフィールドには、更新種別が削除であるか否かを示す削除フラグが設定される。レコード1200-gは、院内同期テーブル600および端末同期テーブル900と同期し、いずれかのテーブルに反映させる更新情報を示す。
(院内端末211のハードウェア構成例)
院内端末211のハードウェア構成例は、例えば、図3に示した情報処理装置201のハードウェア構成例と同様であるため、説明を省略する。また、院内端末211のハードウェア構成例は、例えば、図3に示した情報処理装置201のハードウェア構成例と同様であるが、院内端末211は、図4~図6に示した各種テーブルを記憶しなくてもよい。
(排他制御システム100の機能的構成例)
次に、図13を用いて、排他制御システム100の機能的構成例について説明する。
図13は、排他制御システム100の機能的構成例を示すブロック図である。排他制御システム100は、第1の装置101と、第2の装置102と、第3の装置103とを含む。
第1の装置101は、第1の記憶部1310と、第1の取得部1311と、第1の排他処理部1312と、第1の出力部1313とを含む。第1の装置101は、医療施設に対応する装置である。医療施設は、例えば、病院や診療所などである。第1の装置101は、例えば、図2に示した情報処理装置201によって実現される。以下の説明では、第1の装置101が、図2に示した情報処理装置201によって実現される場合について説明する。
第2の装置102は、第2の記憶部1320と、第2の取得部1321と、第2の排他処理部1322と、第2の出力部1323とを含む。第2の装置102は、医療従事者に所持される装置である。医療従事者は、例えば、医師や看護師などである。第2の装置102は、例えば、図2に示した端末装置202によって実現される。以下の説明では、第2の装置102が、図2に示した端末装置202によって実現される場合について説明する。
第3の装置103は、第3の記憶部1330と、第3の取得部1331と、第3の排他処理部1332と、第3の出力部1333とを含む。第3の装置103は、第1の装置101と第2の装置102と通信可能な装置である。第3の装置103は、例えば、図2に示したクラウド装置203によって実現される。以下の説明では、第3の装置103が、図2に示したクラウド装置203によって実現される場合について説明する。
<第1の装置101となる情報処理装置201に含まれる各部についての説明>
まず、第1の装置101となる情報処理装置201に含まれる、第1の記憶部1310と、第1の取得部1311と、第1の排他処理部1312と、第1の出力部1313との各部について説明する。
第1の記憶部1310は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、第1の記憶部1310が、情報処理装置201に含まれる場合について説明するが、これに限らない。例えば、第1の記憶部1310が、情報処理装置201とは異なる装置に含まれ、第1の記憶部1310の記憶内容が情報処理装置201から参照可能である場合があってもよい。
第1の取得部1311~第1の出力部1313は、情報処理装置201の制御部の一例として機能する。第1の取得部1311~第1の出力部1313は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
第1の記憶部1310は、各機能部の処理において参照され、または更新される各種情報を記憶する。第1の記憶部1310は、第1の情報を記憶する。第1の情報は、排他制御対象であるカルテ情報を特定するための情報である。第1の情報は、例えば、排他制御対象であるカルテ情報を示す制御情報を含む。第1の情報は、例えば、排他制御対象ではないカルテ情報を示す制御情報を含み、排他制御対象であるカルテ情報を間接的に特定可能にしてもよい。
第1の記憶部1310は、例えば、第1のテーブルを記憶する。第1のテーブルは、排他制御対象であるカルテ情報を示す制御情報を記憶するテーブルである。第1のテーブルは、具体的には、院内排他テーブル500である。第1の記憶部1310は、具体的には、院内排他テーブル500を記憶する。また、第1の記憶部1310は、具体的には、院内排他ログテーブル400や院内同期テーブル600を記憶してもよい。
第1の取得部1311は、各機能部の処理に用いられる各種情報を取得する。第1の取得部1311は、取得した各種情報を、記憶部に記憶し、または、各機能部に出力する。また、第1の取得部1311は、記憶部に記憶しておいた各種情報を、各機能部に出力してもよい。第1の取得部1311は、例えば、ユーザの操作入力に基づき、各種情報を取得する。第1の取得部1311は、例えば、情報処理装置201とは異なる装置から、各種情報を受信してもよい。
第1の取得部1311は、具体的には、第1のカルテ情報の更新要求を受け付ける。第1の取得部1311は、より具体的には、院内端末211から、第1のカルテ情報の更新要求を受信する。更新要求は、第1のカルテ情報を更新可能にするために、第1のカルテ情報についての排他権限を要求することを示す情報である。
また、第1の取得部1311は、具体的には、クラウド装置203を介して、端末装置202で第2のカルテ情報を更新開始するための、第2のカルテ情報を示す更新情報を受信してもよい。また、第1の取得部1311は、具体的には、クラウド装置203を介して、端末装置202で第2のカルテ情報を更新終了したことを示す、削除フラグが有効な更新情報を受信してもよい。また、第1の取得部1311は、具体的には、クラウド装置203を介して、カルテ情報の更新内容を示す更新情報を受信してもよい。
第1の排他処理部1312は、第1のカルテ情報の更新要求を受け付けると、第1の情報に基づき、第1のカルテ情報が更新可能であるか否かを判定し、判定した結果に基づき、第1のカルテ情報の更新を制御する。ここで、第1の排他処理部1312は、第1のカルテ情報が更新可能であると判定した場合には、第1の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新した後、第1のカルテ情報の更新を許可する。一方で、第1の排他処理部1312は、第1のカルテ情報が更新可能ではないと判定した場合には、第1のカルテ情報の更新を禁止する。
第1の排他処理部1312は、例えば、第1のカルテ情報の更新要求を受け付けると、第1のテーブルに第1のカルテ情報を示す第1の制御情報が登録済みであるか否かを確認する。ここで、第1の排他処理部1312は、第1のテーブルに第1の制御情報が登録済みである場合には、第1のカルテ情報の更新を禁止する。一方で、第1の排他処理部1312は、第1のテーブルに第1の制御情報が登録済みでない場合には、第1のテーブルに第1の制御情報を登録した後に、第1のカルテ情報の更新を許可する。
第1の排他処理部1312は、具体的には、院内排他テーブル500に第1の制御情報が登録済みである場合には、第1のカルテ情報についての排他権限を取得失敗と判断する。一方で、第1の排他処理部1312は、具体的には、院内排他テーブル500に第1の制御情報が登録済みでない場合には、院内排他テーブル500に第1の制御情報を登録した後に、第1のカルテ情報についての排他権限を取得成功と判断する。
第1の排他処理部1312は、より具体的には、第1のカルテ情報についての排他権限を取得失敗と判断すると、排他権限の取得失敗を示す失敗通知を院内端末211に送信し、院内端末211による第1のカルテ情報の更新を禁止する。一方で、第1の排他処理部1312は、より具体的には、第1のカルテ情報についての排他権限を取得成功と判断すると、排他権限の取得成功を示す成功通知を院内端末211に送信し、院内端末211による第1のカルテ情報の更新を許可する。
これにより、第1の排他処理部1312は、他装置と通信しなくても、第1のカルテ情報についての排他権限を取得することができ、通信状況に起因して第1のカルテ情報を更新不可能になってしまうことを回避することができる。また、第1の排他処理部1312は、他装置で第1のカルテ情報を更新中であれば、第1のカルテ情報についての排他権限を取得することなく、排他制御を実現することができる。
また、第1の排他処理部1312は、第1のカルテ情報が更新可能であると判定した場合には、第1の情報を更新した後に、さらに、クラウド装置203に、端末装置202にアクセスさせ、端末装置202が有する第2の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新させる。第2の情報は、排他制御対象であるカルテ情報を特定するための情報である。第2の情報は、例えば、排他制御対象であるカルテ情報を示す制御情報を含む。第2の情報は、例えば、排他制御対象ではないカルテ情報を示す制御情報を含み、排他制御対象であるカルテ情報を間接的に特定可能にしてもよい。
第1の排他処理部1312は、例えば、第1のテーブルに第1の制御情報が登録済みでない場合には、第1のテーブルに第1の制御情報を登録した後に、さらに、クラウド装置203に、端末装置202が有する第2のテーブルに第1の制御情報を登録させる。第2のテーブルは、排他制御対象であるカルテ情報を示す制御情報を記憶するテーブルである。第2のテーブルは、具体的には、端末排他テーブル800である。
第1の排他処理部1312は、具体的には、第1の制御情報が登録済みでない場合には、院内排他テーブル500に第1の制御情報を登録した後に、クラウド装置203に第1の制御情報を特定する更新情報を送信する。クラウド装置203は、更新情報により、端末排他テーブル800に第1の制御情報を登録する。これにより、第1の排他処理部1312は、端末装置202が、院内排他テーブル500を確認しなくても、端末排他テーブル800を確認すれば、排他制御対象であるカルテ情報を特定可能にすることができる。
なお、排他制御対象であるカルテ情報を特定することと、新たに端末装置202が排他権限を獲得することは別である。後述するように、通信障害が発生している可能性を考慮して、端末装置202が、特定の対象のカルテ情報に対する排他権限を獲得する際には、さらに情報処理装置201との接続関係を確認する。ここでは、院内排他テーブル500を確認しなくても、少なくとも、新たに端末装置202が排他権限を獲得できない排他制御対象を特定することを意味する。このため、第1の排他処理部1312は、情報処理装置201と端末装置202との間でのクラウド装置203を介した通信回数の低減化を図り、情報処理装置201と端末装置202とクラウド装置203との処理負担および通信負担の低減化を図ることができる。
また、第1の排他処理部1312は、第1のカルテ情報が更新可能であると判定した場合には、第1の情報を更新した後に、さらに、クラウド装置203に、クラウド装置203が有する第3の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新させてもよい。第3の情報は、排他制御対象であるカルテ情報を特定するための情報である。第3の情報は、例えば、排他制御対象であるカルテ情報を示す制御情報を含む。第3の情報は、例えば、排他制御対象ではないカルテ情報を示す制御情報を含み、排他制御対象であるカルテ情報を間接的に特定可能にしてもよい。
第1の排他処理部1312は、例えば、第1の制御情報が登録済みでない場合には、第1のテーブルに第1の制御情報を登録した後に、さらに、クラウド装置203に、クラウド装置203が有する第3のテーブルに第1の制御情報を登録させてもよい。第3のテーブルは、排他制御対象であるカルテ情報を示す制御情報を記憶するテーブルである。第3のテーブルは、具体的には、クラウド排他テーブル1100である。
第1の排他処理部1312は、具体的には、第1の制御情報が登録済みでない場合には、院内排他テーブル500に第1の制御情報を登録した後に、クラウド装置203に第1の制御情報を特定する更新情報を送信する。クラウド装置203は、更新情報により、クラウド排他テーブル1100に第1の制御情報を登録する。これにより、第1の排他処理部1312は、端末装置202が、院内排他テーブル500を確認しなくても、クラウド排他テーブル1100を確認すれば、排他制御対象であるカルテ情報を特定可能にすることができる。このため、第1の排他処理部1312は、情報処理装置201と端末装置202との間でのクラウド装置203を介した通信回数の低減化を図り、情報処理装置201の処理負担および通信負担の低減化を図ることができる。
第1の排他処理部1312は、第1のカルテ情報の更新が終了すると、第1の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新する。第1の排他処理部1312は、例えば、第1のカルテ情報の更新が終了すると、第1のテーブルから、第1の制御情報を削除する。第1の排他処理部1312は、具体的には、第1のカルテ情報の更新処理の終了を検出すると、院内排他テーブル500から第1の制御情報を削除し、第1のカルテ情報についての排他権限を解放成功と判断する。これにより、第1の排他処理部1312は、第1のカルテ情報についての排他権限を解放し、他装置で第1のカルテ情報を更新可能にすることができる。
第1の排他処理部1312は、第1のカルテ情報の更新が終了すると、第2の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新する。第1の排他処理部1312は、例えば、第2のテーブルに第1の制御情報を書き込ませた場合、第1のカルテ情報の更新が終了すると、第2のテーブルから、第1の制御情報を削除する。第1の排他処理部1312は、具体的には、第1のカルテ情報の更新処理の終了を検出すると、クラウド装置203を介して、端末排他テーブル800から第1の制御情報を削除させる。
第1の排他処理部1312は、より具体的には、第1の制御情報を特定する、削除フラグが有効な更新情報を、クラウド装置203に送信することにより、クラウド装置203を介して、第1の制御情報を削除させる。これにより、第1の排他処理部1312は、第1のカルテ情報についての排他権限を解放した後に、端末装置202が、端末排他テーブル800を確認して、誤って、第1のカルテ情報についての排他権限が未解放と判断することを防止することができる。
第1の排他処理部1312は、第1のカルテ情報の更新が終了すると、第3の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新する。第1の排他処理部1312は、例えば、第3のテーブルに第1の制御情報を書き込ませた場合、第1のカルテ情報の更新を終了すると、第3のテーブルから、第1の制御情報を削除する。第1の排他処理部1312は、具体的には、第1のカルテ情報の更新処理の終了を検出すると、クラウド装置203を介して、クラウド排他テーブル1100から第1の制御情報を削除させる。これにより、第1の排他処理部1312は、第1のカルテ情報についての排他権限を解放した後に、端末装置202が、クラウド排他テーブル1100を確認して、誤って、第1のカルテ情報についての排他権限が未解放と判断することを防止することができる。
第1の排他処理部1312は、端末装置202で第2のカルテ情報を更新開始する際に、第1の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新してもよい。第1の排他処理部1312は、例えば、クラウド装置203を介して、第2のカルテ情報を示す更新情報を受信した場合には、第1のテーブルに、第2の制御情報を登録する。第1の排他処理部1312は、具体的には、院内排他テーブル500に、第2の制御情報を登録する。これにより、第1の排他処理部1312は、端末装置202で第2のカルテ情報を更新中は、第2のカルテ情報についての排他権限を、情報処理装置201が取得不可能にすることができる。
第1の排他処理部1312は、端末装置202で第2のカルテ情報を更新終了した場合には、第1の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新する。第1の排他処理部1312は、例えば、クラウド装置203を介して、端末装置202で第2のカルテ情報を更新終了したことを示す、削除フラグが有効な更新情報を受信した場合には、第1のテーブルから、第2の制御情報を削除する。第1の排他処理部1312は、具体的には、院内排他テーブル500から、第2の制御情報を削除する。これにより、第1の排他処理部1312は、端末装置202で第2のカルテ情報を更新終了すれば、第2のカルテ情報についての排他権限を解放することができる。
第1の排他処理部1312は、カルテ情報を更新してもよい。第1の排他処理部1312は、例えば、クラウド装置203を介して、カルテ情報の更新内容を示す更新情報を受信した場合には、更新情報が示すカルテ情報の更新内容を、院内エンティティテーブルに反映する。これにより、第1の排他処理部1312は、カルテ情報を同期することができる。
第1の出力部1313は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。第1の出力部1313は、例えば、第1のカルテ情報の更新を禁止したか、または、許可したかを示す通知情報を出力してもよい。第1の出力部1313は、具体的には、第1のカルテ情報の更新を禁止したか、または、許可したかを示す通知情報を、院内端末211に送信し、院内端末211のユーザに表示画面を通じて通知させる。これにより、第1の出力部1313は、各機能部の処理結果をユーザに通知可能にし、情報処理装置201の利便性の向上を図ることができる。
<第2の装置102となる端末装置202に含まれる各部についての説明>
次に、第2の装置102となる端末装置202に含まれる、第2の記憶部1320と、第2の取得部1321と、第2の排他処理部1322と、第2の出力部1323との各部について説明する。
第2の記憶部1320は、例えば、図7に示したメモリ702や記録媒体705などの記憶領域によって実現される。以下では、第2の記憶部1320が、端末装置202に含まれる場合について説明するが、これに限らない。例えば、第2の記憶部1320が、端末装置202とは異なる装置に含まれ、第2の記憶部1320の記憶内容が端末装置202から参照可能である場合があってもよい。
第2の取得部1321~第2の出力部1323は、端末装置202の制御部の一例として機能する。第2の取得部1321~第2の出力部1323は、具体的には、例えば、図7に示したメモリ702や記録媒体705などの記憶領域に記憶されたプログラムをCPU701に実行させることにより、または、ネットワークI/F703により、その機能を実現する。各機能部の処理結果は、例えば、図7に示したメモリ702や記録媒体705などの記憶領域に記憶される。
第2の記憶部1320は、各機能部の処理において参照され、または更新される各種情報を記憶する。第2の記憶部1320は、第2の情報を記憶する。第2の記憶部1320は、例えば、第2のテーブルを記憶する。第2の記憶部1320は、具体的には、端末排他テーブル800を記憶する。また、第2の記憶部1320は、具体的には、端末同期テーブル900を記憶してもよい。
第2の取得部1321は、各機能部の処理に用いられる各種情報を取得する。第2の取得部1321は、取得した各種情報を、記憶部に記憶し、または、各機能部に出力する。また、第2の取得部1321は、記憶部に記憶しておいた各種情報を、各機能部に出力してもよい。第2の取得部1321は、例えば、ユーザの操作入力に基づき、各種情報を取得する。第2の取得部1321は、例えば、端末装置202とは異なる装置から、各種情報を受信してもよい。
第2の取得部1321は、具体的には、ユーザの操作入力に基づき、第2のカルテ情報の更新要求を受け付ける。また、第2の取得部1321は、具体的には、クラウド装置203を介して、院内端末211により更新開始された第1のカルテ情報を示す制御情報を受信してもよい。また、第2の取得部1321は、具体的には、クラウド装置203を介して、院内端末211により第1のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を受信してもよい。また、第2の取得部1321は、具体的には、クラウド装置203を介して、カルテ情報の更新内容を示す更新情報を受信してもよい。
第2の排他処理部1322は、第2のカルテ情報の更新要求を受け付けると、クラウド装置203に、情報処理装置201にアクセスさせ、第1の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認させる。これに対し、クラウド装置203は、応答を第2の排他処理部1322に返す。応答は、例えば、クラウド装置203がアクセスに失敗し、第2のカルテ情報が更新可能であるか否かの確認に失敗した場合には、確認の失敗を示す情報を含む。また、応答は、例えば、クラウド装置203がアクセスに成功し、第2のカルテ情報が更新可能であるか否かの確認に成功した場合には、第2のカルテ情報が更新可能であるか否かを示す情報を含む。
さらに、クラウド装置203は、第1の情報に基づき第2のカルテ情報が更新可能であると確認した場合、第1の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新してもよい。クラウド装置203は、第1の情報を更新した場合、応答に、第1の情報を更新完了したことを示す情報を含める。また、クラウド装置203は、確認結果に対応する応答と、更新完了に対応する応答とを別々に返してもよい。
ここで、第2の排他処理部1322は、応答に基づき、クラウド装置203によるアクセスに失敗した場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、応答に基づき、クラウド装置203によるアクセスに成功した場合には、クラウド装置203による確認の結果に応じて、第2のカルテ情報の更新を制御する。第2の排他処理部1322は、応答に基づき、クラウド装置203によるアクセスに成功し、第1の情報に基づき第2のカルテ情報が更新可能であると確認され、クラウド装置203により第1の情報が更新された後に、第2のカルテ情報の更新を許可する。
第2の排他処理部1322は、例えば、第2のカルテ情報の更新要求を受け付けると、クラウド装置203に、第1のテーブルに第2のカルテ情報を示す第2の制御情報が登録済みであるか否かを確認させる。第2の排他処理部1322は、クラウド装置203の応答を受信する。ここで、第2の排他処理部1322は、第1のテーブルの確認に失敗した場合、または、第1のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、第1のテーブルに第2の制御情報が登録済みでない場合には、クラウド装置203が第1のテーブルに第2の制御情報を登録した後に、第2のカルテ情報の更新を許可する。
第2の排他処理部1322は、具体的には、院内排他テーブル500の確認に失敗した場合、または、院内排他テーブル500に第2の制御情報が登録済みである場合には、第2のカルテ情報についての排他権限を取得失敗と判断する。一方で、第2の排他処理部1322は、具体的には、院内排他テーブル500に第2の制御情報が登録済みではない場合に、クラウド装置203が第1のテーブルに第2の制御情報を登録した後に、第2のカルテ情報についての排他権限を取得成功と判断し、第2のカルテ情報の更新を許可する。
また、クラウド装置203が、第2のカルテ情報が更新可能であると確認した際、自動で第1の情報を更新しない場合があってもよい。この場合には、第2の排他処理部1322は、具体的には、院内排他テーブル500に第2の制御情報が登録済みでない場合に、クラウド装置203を介して、院内排他テーブル500に第2の制御情報を登録する。第2の排他処理部1322は、より具体的には、第2の制御情報を特定する更新情報を、クラウド装置203に送信することにより、クラウド装置203を介して、第2の制御情報を登録する。そして、第2の排他処理部1322は、院内排他テーブル500に第2の制御情報を登録した後に、第2のカルテ情報についての排他権限を取得成功と判断する。
これにより、第2の排他処理部1322は、第2のカルテ情報についての排他権限を取得する際には、院内排他テーブル500に第2の制御情報を登録することができ、情報処理装置201が、第2のカルテ情報を更新しないようにすることができる。また、第2の排他処理部1322は、情報処理装置201が通信状況に起因して第2のカルテ情報以外を更新不可能になってしまうことを回避することができる。また、第2の排他処理部1322は、他装置で第2のカルテ情報を更新中であれば、第2のカルテ情報についての排他権限を取得することなく、排他制御を実現することができる。
また、第2の排他処理部1322は、第2のカルテ情報の更新要求を受け付けると、第2の情報に基づき、第2のカルテ情報が更新可能であるか否かを判定してもよい。ここで、第2の排他処理部1322は、第2の情報に基づき第2のカルテ情報が更新可能ではないと判定した場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、第2の情報に基づき第2のカルテ情報が更新可能であると判定した場合には、クラウド装置203に、情報処理装置201にアクセスさせ、第1の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認させる。
第2の排他処理部1322は、例えば、第2のカルテ情報の更新要求を受け付けると、第2のテーブルに第2の制御情報が登録済みであるか否かを確認する。ここで、第2の排他処理部1322は、第2のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、第2のテーブルに第2の制御情報が登録済みでない場合には、クラウド装置203に、第1のテーブルに第2の制御情報が登録済みであるか否かを確認させる。
第2の排他処理部1322は、具体的には、院内排他テーブル500に第2の制御情報が登録済みであるか否かを確認する前に、端末排他テーブル800に第2の制御情報が登録済みであるか否かを確認する。ここで、第2の排他処理部1322は、端末排他テーブル800に第2の制御情報が登録済みである場合には、第2のカルテ情報についての排他権限を取得失敗と判断する。一方で、第2の排他処理部1322は、端末排他テーブル800に第2の制御情報が登録済みではない場合には、院内排他テーブル500の確認に移行する。
これにより、第2の排他処理部1322は、院内排他テーブル500を確認しなくても、端末排他テーブル800を確認すれば、他装置で第2のカルテ情報を更新中であるか否かを判断可能にすることができる。このため、第2の排他処理部1322は、情報処理装置201と端末装置202との間でのクラウド装置203を介した通信回数の低減化を図り、情報処理装置201と端末装置202とクラウド装置203との処理負担および通信負担の低減化を図ることができる。
また、第2の排他処理部1322は、クラウド装置203によるアクセスに成功し、第1の情報に基づき第2のカルテ情報が更新可能であると確認され、第1の情報が更新された後に、さらに、第2の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新してもよい。
第2の排他処理部1322は、例えば、第1のテーブルに第2の制御情報が登録済みでない場合には、クラウド装置203を介して、第1のテーブルに第2の制御情報が登録された後に、さらに、第2のテーブルに第2の制御情報を登録する。第2の排他処理部1322は、具体的には、クラウド装置203を介して、院内排他テーブル500に第2の制御情報が登録された後に、さらに、端末排他テーブル800に第2の制御情報を登録する。これにより、第2の排他処理部1322は、院内排他テーブル500を確認しなくても、端末排他テーブル800を確認すれば、端末装置202で第2のカルテ情報を更新中であることを特定可能にすることができる。
また、第2の排他処理部1322は、第2のカルテ情報の更新要求を受け付けると、クラウド装置203に、第3の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認させてもよい。ここで、第2の排他処理部1322は、第3の情報に基づき第2のカルテ情報が更新可能ではないと確認された場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、第3の情報に基づき第2のカルテ情報が更新可能であると確認された場合には、クラウド装置203に、情報処理装置201にアクセスさせ、第1の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認させる。
第2の排他処理部1322は、例えば、第2のカルテ情報の更新要求を受け付けると、クラウド装置203に、第3のテーブルに第2の制御情報が登録済みであるか否かを確認させる。ここで、第2の排他処理部1322は、第3のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止する。一方で、第2の排他処理部1322は、第3のテーブルに第2の制御情報が登録済みでない場合には、クラウド装置203に、第1のテーブルに第2の制御情報が登録済みであるか否かを確認させる。
第2の排他処理部1322は、具体的には、院内排他テーブル500に第2の制御情報が登録済みであるか否かを確認する前に、クラウド装置203を介して、クラウド排他テーブル1100に第2の制御情報が登録済みであるか否かを確認する。ここで、第2の排他処理部1322は、クラウド排他テーブル1100に第2の制御情報が登録済みである場合には、第2のカルテ情報についての排他権限を取得失敗と判断する。一方で、第2の排他処理部1322は、クラウド排他テーブル1100に第2の制御情報が登録済みではない場合には、院内排他テーブル500の確認に移行する。
これにより、第2の排他処理部1322は、院内排他テーブル500を確認しなくても、クラウド排他テーブル1100を確認すれば、他装置で第2のカルテ情報を更新中であるか否かを判断可能にすることができる。このため、第2の排他処理部1322は、情報処理装置201と端末装置202との間でのクラウド装置203を介した通信回数の低減化を図り、情報処理装置201の処理負担および通信負担の低減化を図ることができる。
第2の排他処理部1322は、クラウド装置203に、第1のテーブルに第2の制御情報を登録させた後に、第3のテーブルに第2の制御情報を登録させてもよい。クラウド装置203は、第1の情報に基づき第2のカルテ情報が更新可能であると確認した場合、第1の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新した後に、第3の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新する。クラウド装置203は、第3の情報を更新した場合、応答に、第3の情報を更新完了したことを示す情報を含める。また、クラウド装置203は、確認結果に対応する応答と、更新完了に対応する応答とを別々に返してもよい。
第2の排他処理部1322は、クラウド装置203によるアクセスに成功し、第1の情報に基づき第2のカルテ情報が更新可能であると確認され、第1の情報が更新され、第3の情報が更新された後に、第2のカルテ情報の更新を許可する。第2の排他処理部1322は、例えば、クラウド装置203が、第1のテーブルに第2の制御情報を登録させ、第3のテーブルに第2の制御情報を登録させた後に、第2のカルテ情報の更新を許可する。第2の排他処理部1322は、具体的には、クラウド装置203を介して、院内排他テーブル500に第2の制御情報を登録され、さらに、クラウド排他テーブル1100に第2の制御情報を登録された後に、第2のカルテ情報の更新を許可する。これにより、第2の排他処理部1322は、院内排他テーブル500を確認しなくても、クラウド排他テーブル1100を確認すれば、端末装置202で第2のカルテ情報を更新中であることを特定可能にすることができる。
また、クラウド装置203が、第2のカルテ情報が更新可能であると確認した際、自動で第3の情報を更新しない場合があってもよい。この場合、第2の排他処理部1322は、例えば、クラウド装置203に、第1のテーブルに第2の制御情報を登録させた後に、クラウド装置203に、第3のテーブルに第2の制御情報を登録させてから、第2のカルテ情報の更新を許可する。第2の排他処理部1322は、具体的には、クラウド装置203を介して、院内排他テーブル500に第2の制御情報を登録させた後に、さらに、クラウド排他テーブル1100に第2の制御情報を登録する。これにより、第2の排他処理部1322は、院内排他テーブル500を確認しなくても、クラウド排他テーブル1100を確認すれば、端末装置202で第2のカルテ情報を更新中であることを特定可能にすることができる。
第2の排他処理部1322は、第2のカルテ情報の更新が終了すると、クラウド装置203に、情報処理装置201にアクセスさせ、第1の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新させる。第2の排他処理部1322は、例えば、第2のカルテ情報の更新が終了すると、クラウド装置203に、第1のテーブルから第2の制御情報を削除させる。
第2の排他処理部1322は、具体的には、第2のカルテ情報の更新処理の終了を検出すると、クラウド装置203を介して、院内排他テーブル500から第2の制御情報を削除し、第2のカルテ情報についての排他権限を解放成功と判断する。第2の排他処理部1322は、より具体的には、第2の制御情報を特定する、削除フラグが有効な更新情報を、クラウド装置203に送信することにより、クラウド装置203を介して、第2の制御情報を削除させる。これにより、第2の排他処理部1322は、第2のカルテ情報についての排他権限を解放し、他装置で第2のカルテ情報を更新可能にすることができる。
第2の排他処理部1322は、第2のカルテ情報の更新が終了すると、第2の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新させる。第2の排他処理部1322は、例えば、第2のテーブルに第2の制御情報を書き込んだ場合、第2のカルテ情報の更新が終了すると、第2のテーブルから、第2の制御情報を削除する。
第2の排他処理部1322は、具体的には、第2のカルテ情報の更新処理の終了を検出すると、端末排他テーブル800から第2の制御情報を削除する。これにより、第2の排他処理部1322は、第2のカルテ情報についての排他権限を解放した後に、端末装置202が、端末排他テーブル800を確認して、誤って、第2のカルテ情報についての排他権限が未解放と判断することを防止することができる。
第2の排他処理部1322は、第2のカルテ情報の更新が終了すると、クラウド装置203に、第3の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新させる。第2の排他処理部1322は、例えば、第3のテーブルに第2の制御情報を書き込ませた場合、第2のカルテ情報の更新が終了すると、第3のテーブルから、第2の制御情報を削除する。
第2の排他処理部1322は、具体的には、第2のカルテ情報の更新処理の終了を検出すると、クラウド装置203を介して、クラウド排他テーブル1100から第2の制御情報を削除させる。これにより、第2の排他処理部1322は、第2のカルテ情報についての排他権限を解放した後に、端末装置202が、クラウド排他テーブル1100を確認して、誤って、第2のカルテ情報についての排他権限が未解放と判断することを防止することができる。
第2の排他処理部1322は、院内端末211により第1のカルテ情報が更新開始される際に、第2の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新してもよい。第2の排他処理部1322は、例えば、クラウド装置203を介して、第1のカルテ情報を示す更新情報を受信した場合には、第2のテーブルに、第1の制御情報を登録する。第2の排他処理部1322は、具体的には、端末排他テーブル800に、第1の制御情報を登録する。これにより、第2の排他処理部1322は、院内端末211により第1のカルテ情報を更新中であると特定可能にすることができる。
第2の排他処理部1322は、院内端末211により第1のカルテ情報が更新終了された場合には、第2の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新する。第2の排他処理部1322は、例えば、クラウド装置203を介して、院内端末211により第1のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を受信した場合には、第2のテーブルから、第1の制御情報を削除する。第2の排他処理部1322は、具体的には、端末排他テーブル800から、第1の制御情報を削除する。これにより、第2の排他処理部1322は、第1のカルテ情報についての排他権限が解放されたことを特定可能にすることができる。
第2の排他処理部1322は、カルテ情報を更新してもよい。第2の排他処理部1322は、クラウド装置203を介して、カルテ情報の更新内容を示す更新情報を受信した場合には、更新情報が示すカルテ情報の更新内容を、端末エンティティテーブルに反映する。これにより、第2の排他処理部1322は、カルテ情報を同期することができる。
第2の出力部1323は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F703による外部装置への送信、または、メモリ702や記録媒体705などの記憶領域への記憶である。第2の出力部1323は、例えば、第2のカルテ情報の更新を禁止したか、または、許可したかを示す通知情報を出力してもよい。これにより、第2の出力部1323は、各機能部の処理結果をユーザに通知可能にし、端末装置202の利便性の向上を図ることができる。
<第3の装置103となるクラウド装置203に含まれる各部についての説明>
次に、第3の装置103となるクラウド装置203に含まれる、第3の記憶部1330と、第3の取得部1331と、第3の排他処理部1332と、第3の出力部1333との各部について説明する。
第3の記憶部1330は、例えば、図10に示したメモリ1002や記録媒体1005などの記憶領域によって実現される。以下では、第3の記憶部1330が、クラウド装置203に含まれる場合について説明するが、これに限らない。例えば、第3の記憶部1330が、クラウド装置203とは異なる装置に含まれ、第3の記憶部1330の記憶内容がクラウド装置203から参照可能である場合があってもよい。
第3の取得部1331~第3の出力部1333は、クラウド装置203の制御部の一例として機能する。第3の取得部1331~第3の出力部1333は、具体的には、例えば、メモリ1002や記録媒体1005などの記憶領域に記憶されたプログラムをCPU1001に実行させることにより、または、ネットワークI/F1003により、その機能を実現する。各機能部の処理結果は、例えば、図10に示したメモリ1002や記録媒体1005などの記憶領域に記憶される。
第3の記憶部1330は、各機能部の処理において参照され、または更新される各種情報を記憶する。第3の記憶部1330は、第3の情報を記憶する。第3の記憶部1330は、例えば、第3のテーブルを記憶する。第3の記憶部1330は、具体的には、クラウド排他テーブル1100を記憶する。また、第3の記憶部1330は、具体的には、オブジェクトメタテーブル1200を記憶してもよい。
第3の取得部1331は、各機能部の処理に用いられる各種情報を取得する。第3の取得部1331は、取得した各種情報を、記憶部に記憶し、または、各機能部に出力する。また、第3の取得部1331は、記憶部に記憶しておいた各種情報を、各機能部に出力してもよい。第3の取得部1331は、例えば、ユーザの操作入力に基づき、各種情報を取得する。第3の取得部1331は、例えば、クラウド装置203とは異なる装置から、各種情報を受信してもよい。
第3の取得部1331は、具体的には、院内端末211により更新開始された第1のカルテ情報を示す更新情報を、情報処理装置201から受信する。また、第3の取得部1331は、具体的には、院内端末211により第1のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を、情報処理装置201から受信してもよい。
また、第3の取得部1331は、具体的には、端末装置202により第2のカルテ情報を更新開始するための、第2のカルテ情報を示す更新情報を、端末装置202から受信してもよい。また、第3の取得部1331は、具体的には、端末装置202により第2のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を、端末装置202から受信してもよい。また、第3の取得部1331は、具体的には、カルテ情報の更新内容を示す更新情報を受信してもよい。
第3の排他処理部1332は、情報処理装置201の制御に従って、第2の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新する。第3の排他処理部1332は、例えば、情報処理装置201の制御に従って、一定時間間隔で、端末装置202との接続が可能か否かを確認し、端末装置202との接続が可能であれば、第2のテーブルに第1の制御情報を登録する。
第3の排他処理部1332は、具体的には、院内端末211により更新開始された第1のカルテ情報を示す更新情報を受信すると、一定時間間隔で、端末装置202との接続が可能か否かを確認する。そして、第3の排他処理部1332は、端末装置202との接続が可能であれば、端末排他テーブル800に第1の制御情報を登録する。これにより、第3の排他処理部1332は、端末排他テーブル800を最新の状態に更新することができる。また、第3の排他処理部1332は、端末装置202が電源オフでも、電源オンになるまで待って、端末排他テーブル800を最新の状態に更新することができる。
第3の排他処理部1332は、情報処理装置201の制御に従って、第2の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新する。第3の排他処理部1332は、例えば、情報処理装置201の制御に従って、一定時間間隔で、端末装置202との接続が可能か否かを確認し、端末装置202との接続が可能であれば、第2のテーブルから第1の制御情報を削除する。
第3の排他処理部1332は、具体的には、院内端末211により第1のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を受信した場合、一定時間間隔で、端末装置202との接続が可能か否かを確認する。そして、第3の排他処理部1332は、端末装置202との接続が可能であれば、端末排他テーブル800から第1の制御情報を削除する。これにより、第3の排他処理部1332は、端末排他テーブル800を最新の状態に更新することができる。また、第3の排他処理部1332は、端末装置202が電源オフでも、電源オンになるまで待って、端末排他テーブル800を最新の状態に更新することができる。
第3の排他処理部1332は、情報処理装置201の制御に従って、第3の情報を、第1のカルテ情報を排他制御対象として特定する情報へと更新してもよい。第3の排他処理部1332は、例えば、情報処理装置201の制御に従って、第3のテーブルに第1の制御情報を登録する。第3の排他処理部1332は、具体的には、院内端末211により更新開始された第1のカルテ情報を示す更新情報を受信すると、クラウド排他テーブル1100に第1の制御情報を登録する。
第3の排他処理部1332は、情報処理装置201の制御に従って、第3の情報を、第1のカルテ情報を排他制御対象として特定しない情報へと更新してもよい。第3の排他処理部1332は、例えば、情報処理装置201の制御に従って、第3のテーブルから第1の制御情報を削除する。第3の排他処理部1332は、具体的には、院内端末211により第1のカルテ情報が更新終了されたことを示す、削除フラグが有効な更新情報を受信した場合、クラウド排他テーブル1100から第1の制御情報を削除する。
第3の排他処理部1332は、端末装置202の制御に従って、情報処理装置201にアクセスし、第1の情報に基づき、第2のカルテ情報が更新可能であるか否かを確認し、応答を端末装置202に返す。第3の排他処理部1332は、例えば、端末装置202の制御に従って、情報処理装置201との接続が可能か否かを確認する。第3の排他処理部1332は、情報処理装置201との接続が可能でなければ、応答を端末装置202に返す。また、第3の排他処理部1332は、情報処理装置201との接続が可能であれば、第1のテーブルに第2の制御情報が登録済みであるか否かを示す情報を含めた応答を端末装置202に返す。
第3の排他処理部1332は、具体的には、端末装置202で第2のカルテ情報を更新開始するための、第2のカルテ情報を示す更新情報を受信すると、情報処理装置201との接続が可能か否かを確認する。そして、第3の排他処理部1332は、情報処理装置201との接続が可能でなければ、応答を端末装置202に返す。また、第3の排他処理部1332は、情報処理装置201との接続が可能であれば、院内排他テーブル500に第2の制御情報が登録済みであるか否かを示す情報を含めた応答を端末装置202に返す。
第3の排他処理部1332は、端末装置202の制御に従って、第1の情報に基づき第2のカルテ情報が更新可能であると確認した場合、第1の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新する。この際、第3の排他処理部1332は、第1の情報の更新が完了したことを示す情報を含めた応答を端末装置202に返してもよい。第3の排他処理部1332は、例えば、端末装置202の制御に従って、情報処理装置201との接続が可能か否かを確認し、情報処理装置201との接続が可能であり、第1のテーブルに第2の制御情報が登録済みでなければ、第1のテーブルに第2の制御情報を登録する。
第3の排他処理部1332は、具体的には、端末装置202で第2のカルテ情報を更新開始するための、第2のカルテ情報を示す更新情報を受信すると、情報処理装置201との接続が可能か否かを確認する。そして、第3の排他処理部1332は、情報処理装置201との接続が可能であり、院内排他テーブル500に第2の制御情報が登録済みでなければ、院内排他テーブル500に第2の制御情報を登録する。これにより、第3の排他処理部1332は、院内排他テーブル500を最新の状態に更新することができる。
第3の排他処理部1332は、端末装置202の制御に従って、第1の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新する。第3の排他処理部1332は、例えば、端末装置202の制御に従って、一定時間間隔で、情報処理装置201との接続が可能か否かを確認し、情報処理装置201との接続が可能であれば、第1のテーブルから第2の制御情報を削除する。
第3の排他処理部1332は、具体的には、端末装置202で第2のカルテ情報を更新終了したことを示す、削除フラグが有効な更新情報を受信した場合、一定時間間隔で、情報処理装置201との接続が可能か否かを確認する。そして、第3の排他処理部1332は、情報処理装置201との接続が可能であれば、院内排他テーブル500から第2の制御情報を削除する。これにより、第3の排他処理部1332は、院内排他テーブル500を最新の状態に更新することができる。
第3の排他処理部1332は、端末装置202の制御に従って、第1の情報を更新した後に、第3の情報を、第2のカルテ情報を排他制御対象として特定する情報へと更新してもよい。第3の排他処理部1332は、例えば、端末装置202の制御に従って、第3のテーブルに第2の制御情報を登録する。第3の排他処理部1332は、具体的には、端末装置202で更新開始した第2のカルテ情報を示す更新情報を受信すると、クラウド排他テーブル1100に第2の制御情報を登録する。
第3の排他処理部1332は、端末装置202の制御に従って、第3の情報を、第2のカルテ情報を排他制御対象として特定しない情報へと更新してもよい。第3の排他処理部1332は、例えば、端末装置202の制御に従って、第3のテーブルから第2の制御情報を削除する。第3の排他処理部1332は、具体的には、端末装置202で第2のカルテ情報を更新終了したことを示す、削除フラグが有効な更新情報を受信した場合、クラウド排他テーブル1100から第2の制御情報を削除する。
第3の排他処理部1332は、カルテ情報を更新する。第3の排他処理部1332は、例えば、カルテ情報の更新内容を示す更新情報を受信した場合には、更新情報が示すカルテ情報の更新内容を、オブジェクトバイナリに反映する。また、第3の排他処理部1332は、具体的には、更新情報が示すカルテ情報の更新内容を、院内エンティティテーブルまたは端末エンティティテーブルに反映する。これにより、第3の排他処理部1332は、カルテ情報を同期することができる。
第3の出力部1333は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F1003による外部装置への送信、または、メモリ1002や記録媒体1005などの記憶領域への記憶である。これにより、第3の出力部1333は、各機能部の処理結果をユーザに通知可能にし、クラウド装置203の利便性の向上を図ることができる。
(排他制御システム100の実施例)
次に、図14~図19を用いて、排他制御システム100の実施例について説明する。まず、図14の説明に移行し、排他制御システム100において、情報処理装置201が、カルテ情報についての排他権限を取得成功する一例について説明する。
図14は、情報処理装置201が排他権限を取得成功する一例を示す説明図である。図14において、情報処理装置201は、患者Aのカルテ情報の更新要求を、院内端末211から受け付ける。
(14-1)情報処理装置201は、矢印部1401に示すように、院内排他テーブル500に患者Aの患者番号が存在しなければ、患者Aのカルテ情報に対応する更新情報を、院内排他ログテーブル400に登録する。患者Aのカルテ情報に対応する更新情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。
(14-2)情報処理装置201は、矢印部1402に示すように、院内排他テーブル500に患者Aの患者番号が存在しなければ、患者Aのカルテ情報に対応する制御情報を、院内排他テーブル500に登録する。患者Aのカルテ情報に対応する制御情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。
ここで、情報処理装置201は、患者Aのカルテ情報に対応する制御情報を院内排他テーブル500に登録できたため、患者Aのカルテ情報についての排他権限を取得成功と判断する。情報処理装置201は、院内端末211によりカルテ情報が更新されると、カルテ情報の更新内容を示す更新情報を、院内同期テーブル600に登録し、クラウド装置203を介してカルテ情報を端末装置202と同期してもよい。
(14-3)情報処理装置201は、矢印部1403に示すように、患者Aのカルテ情報に対応する更新情報を、院内同期テーブル600に登録する。
(14-4)情報処理装置201は、矢印部1404に示すように、院内排他ログテーブル400に登録された患者Aのカルテ情報に対応する更新情報に基づいて、クラウド排他テーブル1100に患者Aのカルテ情報に対応する制御情報を登録させる。情報処理装置201は、例えば、一定時間ごとに、クラウド装置203との接続を確認し、クラウド装置203と接続できた場合、患者Aのカルテ情報に対応する制御情報を、クラウド排他テーブル1100に登録させる。
(14-5)情報処理装置201は、矢印部1405に示すように、一定時間ごとに、院内同期テーブル600に登録された患者Aのカルテ情報に対応する更新情報を、オブジェクトメタテーブル1200に同期させる。
(14-6)クラウド装置203は、矢印部1406に示すように、一定時間ごとに、オブジェクトメタテーブル1200に登録された患者Aのカルテ情報に対応する更新情報を、端末同期テーブル900に同期させる。
(14-7)端末装置202は、矢印部1407に示すように、端末同期テーブル900に登録された患者Aのカルテ情報に対応する更新情報に基づいて、端末排他テーブル800に患者Aのカルテ情報に対応する制御情報を登録する。
(14-8)端末装置202は、矢印部1408に示すように、患者Aのカルテ情報の更新要求を受け付けた場合、端末排他テーブル800に登録済みの患者Aのカルテ情報に対応する制御情報に基づいて、排他権限を取得失敗と判断する。
これにより、情報処理装置201は、患者Aのカルテ情報についての排他権限を正しく取得することができ、院内端末211による患者Aのカルテ情報の更新を許可することができる。そして、端末装置202は、情報処理装置201が患者Aのカルテ情報についての排他権限を取得中であれば、患者Aのカルテ情報についての排他権限を取得しないようにすることができる。このため、排他制御システム100は、カルテ情報を排他的に更新可能にすることができる。
次に、図15の説明に移行し、排他制御システム100において、端末装置202が、カルテ情報についての排他権限を取得成功する一例について説明する。
図15は、端末装置202が排他権限を取得成功する一例を示す説明図である。図15において、端末装置202は、患者Bのカルテ情報の更新要求を受け付ける。
(15-1)端末装置202は、矢印部1501に示すように、患者Bのカルテ情報に対応する制御情報を、端末排他テーブル800から検索する。患者Bのカルテ情報に対応する制御情報は、例えば、患者Bを特定する情報として、患者Bを識別する患者番号を含む。
(15-2)端末装置202は、端末排他テーブル800に、患者Bのカルテ情報に対応する制御情報が登録されていなければ、矢印部1502に示すように、患者Bのカルテ情報に対応する制御情報を、クラウド装置203に送信する。
(15-3)クラウド装置203は、患者Bのカルテ情報に対応する制御情報を受信すると、矢印部1503に示すように、患者Bのカルテ情報に対応する制御情報を、院内排他テーブル500から検索する。クラウド装置203は、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報が登録されていなければ、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報を登録する。
(15-4)クラウド装置203は、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報を登録できると、矢印部1504に示すように、クラウド排他テーブル1100に患者Bのカルテ情報に対応する制御情報を登録する。
(15-5)クラウド装置203は、矢印部1505に示すように、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報を登録成功したことを示す通知を、端末装置202に送信する。
(15-6)端末装置202は、矢印部1506に示すように、端末同期テーブル900に、患者Bのカルテ情報に対応する更新情報を登録する。
(15-7)端末装置202は、矢印部1507に示すように、端末排他テーブル800に、患者Bのカルテ情報に対応する制御情報を登録する。
ここで、端末装置202は、患者Bのカルテ情報についての排他権限を取得成功と判断する。端末装置202は、カルテ情報を更新すると、カルテ情報の更新内容を示す更新情報を、端末同期テーブル900に登録し、クラウド装置203を介してカルテ情報を情報処理装置201と同期してもよい。
(15-8)端末装置202は、矢印部1508に示すように、一定時間ごとに、端末同期テーブル900に登録された患者Bのカルテ情報に対応する更新情報を、オブジェクトメタテーブル1200に同期させる。
(15-9)クラウド装置203は、矢印部1509に示すように、一定時間ごとに、オブジェクトメタテーブル1200に登録された患者Bのカルテ情報に対応する更新情報を、院内同期テーブル600に同期させる。
(15-10)情報処理装置201は、矢印部1510に示すように、院内同期テーブル600に登録された患者Bのカルテ情報に対応する更新情報に基づいて、院内排他テーブル500に患者Bのカルテ情報に対応する制御情報を登録する。
(15-11)情報処理装置201は、矢印部1511に示すように、院内端末211から患者Bのカルテ情報の更新要求を受け付けた場合、院内排他テーブル500に登録済みの患者Bのカルテ情報に対応する制御情報に基づいて、排他権限を取得失敗と判断する。
これにより、端末装置202は、患者Bのカルテ情報についての排他権限を正しく取得することができる。そして、情報処理装置201は、端末装置202が患者Bのカルテ情報についての排他権限を取得中であれば、患者Bのカルテ情報についての排他権限を取得しないようにすることができる。このため、排他制御システム100は、カルテ情報を排他的に更新可能にすることができる。
次に、図16の説明に移行し、排他制御システム100において、通信障害の発生時に、情報処理装置201が、カルテ情報についての排他権限を取得成功する一例について説明する。
図16は、通信障害の発生時に情報処理装置201が排他権限を取得成功する一例を示す説明図である。図16の例では、図14および図15に示した排他制御システム100の動作後に、情報処理装置201とクラウド装置203との間で通信障害が発生した状況について説明する。図16において、情報処理装置201は、院内端末211から、患者Cのカルテ情報の更新要求を受け付ける。
(16-1)情報処理装置201は、矢印部1601に示すように、院内排他テーブル500に患者Cの患者番号が存在しなければ、患者Cのカルテ情報に対応する更新情報を、院内排他ログテーブル400に登録する。患者Cのカルテ情報に対応する更新情報は、例えば、患者Cを特定する情報として、患者Cを識別する患者番号を含む。
(16-2)情報処理装置201は、矢印部1602に示すように、院内排他テーブル500に患者Cの患者番号が存在しなければ、患者Cのカルテ情報に対応する制御情報を、院内排他テーブル500に登録する。患者Cのカルテ情報に対応する制御情報は、例えば、患者Cを特定する情報として、患者Cを識別する患者番号を含む。
ここで、情報処理装置201は、患者Cのカルテ情報に対応する制御情報を、院内排他テーブル500に登録できたため、患者Cのカルテ情報についての排他権限を取得成功と判断する。情報処理装置201は、カルテ情報を更新すると、カルテ情報の更新内容を示す更新情報を、院内同期テーブル600に登録し、クラウド装置203を介してカルテ情報を端末装置202と同期してもよい。
(16-3)情報処理装置201は、矢印部1603に示すように、患者Cのカルテ情報に対応する更新情報を、院内同期テーブル600に登録する。
本実施例によれば、クラウド上のクラウド排他テーブルを参照することなく、新たな患者Cについて排他権限を獲得できる。また、情報処理装置201は、通信障害により、すぐにはクラウド排他テーブル1100に患者Cのカルテ情報に対応する制御情報を登録させることができない状況でも、患者Cのカルテ情報についての排他権限を取得成功と判断することができ、院内端末211による患者Cのカルテ情報の更新を許可することができる。このため、情報処理装置201は、クラウド装置203との通信状況に依存して、医療施設において院内端末211によりすべてのカルテ情報が更新不可能になってしまう状況を回避することができる。
また、情報処理装置201は、通信障害の解消後、患者Cのカルテ情報に対応する制御情報を、クラウド排他テーブル1100に登録させる。また、情報処理装置201は、院内同期テーブル600に登録された患者Cのカルテ情報に対応する更新情報を、オブジェクトメタテーブル1200に同期させる。
次に、図17の説明に移行し、排他制御システム100において、クラウド装置と情報処理装置間の通信障害の発生時に、端末装置202が、カルテ情報についての排他権限を取得失敗する一例について説明する。
図17は、通信障害の発生時に端末装置202が排他権限を取得失敗する一例を示す説明図である。図17の例では、図14および図15に示した排他制御システム100の動作後に、情報処理装置201とクラウド装置203との間で通信障害が発生した状況について説明する。図17において、端末装置202は、患者Cのカルテ情報の更新要求を受け付ける。
(17-1)端末装置202は、矢印部1701に示すように、患者Cのカルテ情報に対応する制御情報を、端末排他テーブル800から検索する。患者Cのカルテ情報に対応する制御情報は、例えば、患者Cを特定する情報として、患者Cを識別する患者番号を含む。
(17-2)端末装置202は、端末排他テーブル800に、患者Cのカルテ情報に対応する制御情報が登録されていなければ、矢印部1702に示すように、患者Cのカルテ情報に対応する制御情報を、クラウド装置203に送信する。
(17-3)クラウド装置203は、患者Cのカルテ情報に対応する制御情報を受信すると、情報処理装置201との接続を確認し、情報処理装置201と接続できた場合、患者Cのカルテ情報に対応する制御情報を、院内排他テーブル500から検索する。ここでは、クラウド装置203は、矢印部1703に示すように、通信障害により、情報処理装置201との接続に失敗したため、院内排他テーブル500の確認に失敗したことを示す通知を、端末装置202に送信する。端末装置202は、院内排他テーブル500の確認に失敗した場合、患者Cのカルテ情報についての排他権限を取得失敗と判断する。
これにより、端末装置202は、院内排他テーブル500の確認に失敗し、医療施設において院内端末211により患者Cのカルテ情報を更新中であるか否かを判断不可能であれば、患者Cのカルテ情報についての排他権限を取得しないようにすることができる。このため、排他制御システム100は、情報処理装置201がクラウド装置203との通信状況に関わらず排他権限を取得可能なようにしても、カルテ情報が排他的に更新されるようにすることができる。
なお、図17では、クラウド装置203と情報処理装置201との間の通信障害の発生を例に説明したが、端末装置202とクラウド装置203との間の通信障害の発生においても、同様である。端末装置202は、クラウド装置203にアクセスできず、クラウド装置203に院内排他テーブル500を確認させることができないため、新たに患者Cのカルテ情報についての排他権限を獲得することができない。
次に、図18の説明に移行し、排他制御システム100において、情報処理装置201が、カルテ情報についての排他権限を解放成功する一例について説明する。
図18は、情報処理装置201が排他権限を解放成功する一例を示す説明図である。図18において、情報処理装置201は、院内端末211による患者Aのカルテ情報の更新終了を検出する。
(18-1)情報処理装置201は、矢印部1801に示すように、患者Aのカルテ情報に対応する、削除フラグが有効な更新情報を、院内排他ログテーブル400に登録する。患者Aのカルテ情報に対応する、削除フラグが有効な更新情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。
(18-2)情報処理装置201は、矢印部1802に示すように、患者Aのカルテ情報に対応する制御情報を、院内排他テーブル500から削除する。患者Aのカルテ情報に対応する制御情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。ここで、情報処理装置201は、患者Aのカルテ情報についての排他権限を解放成功と判断する。
(18-3)情報処理装置201は、矢印部1803に示すように、患者Aのカルテ情報に対応する、削除フラグが有効な更新情報を、院内同期テーブル600に登録する。
(18-4)情報処理装置201は、矢印部1804に示すように、院内排他ログテーブル400に基づいて、クラウド排他テーブル1100から患者Aのカルテ情報に対応する制御情報を削除させる。
情報処理装置201は、例えば、院内排他ログテーブル400に登録された患者Aのカルテ情報に対応する、削除フラグが有効な更新情報に基づいて、クラウド排他テーブル1100から患者Aのカルテ情報に対応する制御情報を削除させる。情報処理装置201は、例えば、一定時間ごとに、クラウド装置203との接続を確認し、クラウド装置203と接続できれば、患者Aのカルテ情報に対応する制御情報を、クラウド排他テーブル1100から削除させる。
(18-5)情報処理装置201は、矢印部1805に示すように、一定時間ごとに、院内同期テーブル600に登録された患者Aのカルテ情報に対応する、削除フラグが有効な更新情報を、オブジェクトメタテーブル1200に同期させる。
(18-6)クラウド装置203は、矢印部1806に示すように、一定時間ごとに、オブジェクトメタテーブル1200に登録された患者Aのカルテ情報に対応する、削除フラグが有効な更新情報を、端末同期テーブル900に同期させる。
(18-7)端末装置202は、矢印部1807に示すように、端末同期テーブル900に登録された患者Aのカルテ情報に対応する、削除フラグが有効な更新情報に基づいて、端末排他テーブル800から患者Aのカルテ情報に対応する制御情報を削除する。
これにより、情報処理装置201は、患者Aのカルテ情報についての排他権限を正しく解放することができる。このため、排他制御システム100は、医療施設において院内端末211による患者Aのカルテ情報の更新終了を検出した後は、患者Aのカルテ情報を他装置で更新可能にすることができる。
次に、図19の説明に移行し、排他制御システム100において、端末装置202が、カルテ情報についての排他権限を解放成功する一例について説明する。
図19は、端末装置202が排他権限を解放成功する一例を示す説明図である。図19において、端末装置202は、患者Bのカルテ情報の更新終了を検出する。
(19-1)端末装置202は、矢印部1901に示すように、患者Bのカルテ情報に対応する制御情報を、端末排他テーブル800から削除する。患者Bのカルテ情報に対応する制御情報は、例えば、患者Bを特定する情報として、患者Bを識別する患者番号を含む。
(19-2)端末装置202は、矢印部1902に示すように、クラウド装置203を介して、クラウド排他テーブル1100から、患者Bのカルテ情報に対応する制御情報を削除させる。
(19-3)端末装置202は、矢印部1903に示すように、端末同期テーブル900に、患者Bのカルテ情報に対応する、削除フラグが有効な更新情報を登録する。
(19-4)端末装置202は、矢印部1904に示すように、一定時間ごとに、端末同期テーブル900に登録された患者Bのカルテ情報に対応する、削除フラグが有効な更新情報を、オブジェクトメタテーブル1200に同期させる。
(19-5)クラウド装置203は、矢印部1905に示すように、一定時間ごとに、オブジェクトメタテーブル1200に登録された患者Bのカルテ情報に対応する、削除フラグが有効な更新情報を、院内同期テーブル600に同期させる。
(19-6)情報処理装置201は、矢印部1906に示すように、院内同期テーブル600に登録された患者Bのカルテ情報に対応する、削除フラグが有効な更新情報に基づいて、院内排他テーブル500から、患者Bのカルテ情報に対応する制御情報を削除する。ここで、端末装置202は、患者Bのカルテ情報についての排他権限を解放成功と判断する。
これにより、端末装置202は、患者Bのカルテ情報についての排他権限を正しく解放することができる。このため、排他制御システム100は、端末装置202で患者Bのカルテ情報を更新終了した後は、患者Bのカルテ情報を他装置で更新可能にすることができる。
(排他制御システム100の別の実施例)
次に、図20および図21を用いて、排他制御システム100の別の実施例について説明する。別の実施例は、具体的には、排他制御システム100がクラウド装置203を含まない場合に対応する実施例である。まず、図20の説明に移行し、排他制御システム100において、情報処理装置201が、カルテ情報についての排他権限を取得成功する別の例について説明する。
図20は、情報処理装置201が排他権限を取得成功する別の例を示す説明図である。図20において、情報処理装置201は、院内端末211から、患者Aのカルテ情報の更新要求を受け付ける。
(20-1)情報処理装置201は、矢印部2001に示すように、患者Aのカルテ情報に対応する制御情報を、院内排他テーブル500に登録する。患者Aのカルテ情報に対応する制御情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。ここで、情報処理装置201は、患者Aのカルテ情報についての排他権限を取得成功と判断する。
(20-2)情報処理装置201は、矢印部2002に示すように、患者Aのカルテ情報に対応する更新情報を、院内同期テーブル600に登録する。患者Aのカルテ情報に対応する更新情報は、例えば、患者Aを特定する情報として、患者Aを識別する患者番号を含む。
(20-3)情報処理装置201は、矢印部2003に示すように、一定時間ごとに、院内同期テーブル600に登録された患者Aのカルテ情報に対応する更新情報を、端末同期テーブル900に同期させる。
(20-4)端末装置202は、矢印部2004に示すように、端末同期テーブル900に登録された患者Aのカルテ情報に対応する更新情報に基づいて、端末排他テーブル800に患者Aのカルテ情報に対応する制御情報を登録する。
(20-5)端末装置202は、矢印部2005に示すように、患者Aのカルテ情報の更新要求を受け付けた場合、端末排他テーブル800に登録済みの患者Aのカルテ情報に対応する制御情報に基づいて、排他権限を取得失敗と判断する。
これにより、情報処理装置201は、患者Aのカルテ情報についての排他権限を正しく取得することができ、院内端末211による患者Aのカルテ情報の更新を許可することができる。そして、端末装置202は、情報処理装置201が患者Aのカルテ情報についての排他権限を取得中であれば、患者Aのカルテ情報についての排他権限を取得しないようにすることができる。このため、排他制御システム100は、カルテ情報を排他的に更新可能にすることができる。
次に、図21の説明に移行し、排他制御システム100において、端末装置202が、カルテ情報についての排他権限を取得成功する別の例について説明する。
図21は、端末装置202が排他権限を取得成功する別の例を示す説明図である。図21において、端末装置202は、患者Bのカルテ情報の更新要求を受け付ける。
(21-1)端末装置202は、矢印部2101に示すように、患者Bのカルテ情報に対応する制御情報を、端末排他テーブル800から検索する。患者Bのカルテ情報に対応する制御情報は、例えば、患者Bを特定する情報として、患者Bを識別する患者番号を含む。
(21-2)端末装置202は、端末排他テーブル800に、患者Bのカルテ情報に対応する制御情報が登録されていなければ、矢印部2102に示すように、患者Bのカルテ情報に対応する制御情報を、院内排他テーブル500から検索する。端末装置202は、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報が登録されていなければ、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報を登録する。
(21-3)端末装置202は、矢印部2103に示すように、院内排他テーブル500に、患者Bのカルテ情報に対応する制御情報を登録できたことを検出する。
(21-4)クラウド装置203は、矢印部2104に示すように、端末同期テーブル900に、患者Bのカルテ情報に対応する更新情報を登録する。
(21-5)端末装置202は、矢印部2105に示すように、端末排他テーブル800に、患者Bのカルテ情報に対応する制御情報を登録する。ここで、端末装置202は、患者Bのカルテ情報についての排他権限を取得成功と判断する。
(21-6)端末装置202は、矢印部2106に示すように、一定時間ごとに、端末同期テーブル900に登録された患者Bのカルテ情報に対応する更新情報を、院内同期テーブル600に同期させる。
(21-7)情報処理装置201は、矢印部2107に示すように、院内同期テーブル600に登録された患者Bのカルテ情報に対応する更新情報に基づいて、院内排他テーブル500に患者Bのカルテ情報に対応する制御情報を登録する。
(21-8)情報処理装置201は、矢印部2108に示すように、院内端末211から患者Bのカルテ情報の更新要求を受け付けた場合、院内排他テーブル500に登録済みの患者Bのカルテ情報に対応する制御情報に基づいて、排他権限を取得失敗と判断する。
これにより、端末装置202は、患者Bのカルテ情報についての排他権限を正しく取得することができる。そして、情報処理装置201は、端末装置202が患者Bのカルテ情報についての排他権限を取得中であれば、患者Bのカルテ情報についての排他権限を取得しないようにすることができる。このため、排他制御システム100は、カルテ情報を排他的に更新可能にすることができる。
(院内排他制御処理手順)
次に、図22A~図22Dを用いて、排他制御システム100が実行する、院内排他制御処理手順の一例について説明する。院内排他制御処理は、例えば、情報処理装置201と、端末装置202と、クラウド装置203と、院内端末211とによって実現される。
図22A~図22Dは、院内排他制御処理手順の一例を示すシーケンス図である。図22Aにおいて、情報処理装置201は、院内端末211から、患者Aのカルテ情報の更新要求を受け付ける(ステップS2201)。
情報処理装置201は、患者Aのカルテ情報の更新要求を受け付けると、院内排他テーブル500を確認し、患者Aに対応するレコードを検索する(ステップS2202)。そして、情報処理装置201は、患者Aに対応するレコードが存在するか否かを判定する(ステップS2203)。
ここで、既に患者Aに対応するレコードが存在する場合(ステップS2203:Yes)、情報処理装置201は、患者Aのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を示す失敗通知を院内端末211に送信する(ステップS2204)。院内端末211は、失敗通知を受け付けると、排他権限の取得失敗を院内端末211のユーザへ表示画面を通じて通知する(ステップS2205)。そして、排他制御システム100は、院内排他制御処理を終了する。
一方で、患者Aに対応するレコードが存在しない場合(ステップS2203:No)、情報処理装置201は、図22BのステップS2206の処理に移行する。ここで、図22Bの説明に移行する。
図22Bにおいて、情報処理装置201は、院内排他テーブル500と、院内同期テーブル600と、院内排他ログテーブル400とに、患者Aに対応するレコードを書き込む(ステップS2206)。
次に、情報処理装置201は、患者Aのカルテ情報についての排他権限を取得成功と判断し、排他権限の取得成功を示す成功通知を院内端末211に送信する(ステップS2207)。院内端末211は、成功通知を受け付けると、排他権限の取得成功を院内端末211のユーザへ表示画面を通じて通知する(ステップS2208)。そして、情報処理装置201は、図22CのステップS2209の処理に移行する。ここで、図22Cの説明に移行する。
図22Cにおいて、情報処理装置201は、クラウド装置203に接続可能であるか否かを確認する(ステップS2209)。そして、情報処理装置201は、クラウド装置203に接続することができたか否かを判定する(ステップS2210)。
ここで、クラウド装置203に接続することができない場合(ステップS2210:No)、情報処理装置201は、一定時間待機し(ステップS2211)、ステップS2209の処理に戻る。一方で、クラウド装置203に接続することができた場合(ステップS2210:Yes)、情報処理装置201は、ステップS2212の処理に移行する。
ステップS2212では、情報処理装置201は、院内排他ログテーブル400に基づいて、クラウド装置203が有するクラウド排他テーブル1100に患者Aに対応するレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2212)。そして、クラウド装置203は、情報処理装置201の書込要求に従って、クラウド排他テーブル1100に患者Aに対応するレコードを書き込む(ステップS2213)。
また、情報処理装置201は、院内同期テーブル600に基づいて、クラウド装置203が有するオブジェクトメタテーブル1200に患者Aに対応するレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2214)。そして、クラウド装置203は、情報処理装置201の書込要求に従って、オブジェクトメタテーブル1200に患者Aに対応するレコードを書き込む(ステップS2215)。次に、クラウド装置203は、図22DのステップS2216の処理に移行する。ここで、図22Dの説明に移行する。
図22Dにおいて、クラウド装置203は、端末装置202に接続可能であるか否かを確認する(ステップS2216)。そして、クラウド装置203は、端末装置202に接続することができたか否かを判定する(ステップS2217)。
ここで、端末装置202に接続することができない場合(ステップS2217:No)、クラウド装置203は、一定時間待機し(ステップS2218)、ステップS2216の処理に戻る。一方で、端末装置202に接続することができた場合(ステップS2217:Yes)、クラウド装置203は、ステップS2219の処理に移行する。
ステップS2219では、クラウド装置203は、オブジェクトメタテーブル1200に基づいて、端末装置202が有する端末同期テーブル900に患者Aに対応するレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2219)。そして、端末装置202は、クラウド装置203の書込要求に従って、端末同期テーブル900に患者Aに対応するレコードを書き込む(ステップS2220)。
次に、端末装置202は、端末同期テーブル900に基づいて、端末排他テーブル800に患者Aに対応するレコードを書き込む(ステップS2221)。そして、排他制御システム100は、院内排他制御処理を終了する。
(端末排他制御処理手順)
次に、図23A~図23Gを用いて、排他制御システム100が実行する、端末排他制御処理手順の一例について説明する。端末排他制御処理は、例えば、情報処理装置201と、端末装置202と、クラウド装置203とによって実現される。
図23A~図23Gは、端末排他制御処理手順の一例を示すシーケンス図である。図23Aにおいて、端末装置202は、端末装置202のユーザの操作入力に基づいて、患者Bのカルテ情報の更新要求を受け付ける(ステップS2301)。
次に、端末装置202は、患者Bのカルテ情報の更新要求を受け付けると、端末排他テーブル800を確認し、患者Bに対応するレコードを検索する(ステップS2302)。そして、端末装置202は、患者Bに対応するレコードが存在するか否かを判定する(ステップS2303)。
ここで、既に患者Bに対応するレコードが存在する場合(ステップS2303:Yes)、端末装置202は、患者Bのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を端末装置202のユーザへ表示画面を通じて通知する(ステップS2304)。そして、排他制御システム100は、端末排他制御処理を終了する。
一方で、患者Bに対応するレコードが存在しない場合(ステップS2303:No)、端末装置202は、図23BのステップS2305の処理に移行する。ここで、図23Bの説明に移行する。
図23Bにおいて、端末装置202は、クラウド装置203に接続可能であるか否かを確認する(ステップS2305)。そして、端末装置202は、クラウド装置203に接続することができたか否かを判定する(ステップS2306)。
ここで、クラウド装置203に接続することができない場合(ステップS2306:No)、端末装置202は、患者Bのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を端末装置202のユーザへ表示画面を通じて通知する(ステップS2307)。そして、排他制御システム100は、端末排他制御処理を終了する。
一方で、クラウド装置203に接続することができた場合(ステップS2306:Yes)、端末装置202は、図23CのステップS2308の処理に移行する。ここで、図23Cの説明に移行する。
図23Cにおいて、端末装置202は、患者Bのカルテ情報についての排他権限を要求する権限要求を、クラウド装置203に送信する(ステップS2308)。
次に、クラウド装置203は、権限要求を受け付けると、クラウド排他テーブル1100を確認し、患者Bに対応するレコードを検索する(ステップS2309)。そして、クラウド装置203は、患者Bに対応するレコードが存在するか否かを判定する(ステップS2310)。
ここで、既に患者Bに対応するレコードが存在する場合(ステップS2310:Yes)、クラウド装置203は、患者Bに対応するレコードが存在するため、排他権限の取得失敗を示す失敗通知を、端末装置202に送信する(ステップS2311)。端末装置202は、失敗通知を受け付けると、患者Bのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を端末装置202のユーザへ表示画面を通じて通知する(ステップS2312)。そして、排他制御システム100は、端末排他制御処理を終了する。
一方で、患者Bに対応するレコードが存在しない場合(ステップS2310:No)クラウド装置203は、図23DのステップS2313の処理に移行する。ここで、図23Dの説明に移行する。
図23Dにおいて、クラウド装置203は、情報処理装置201に接続可能であるか否かを確認する(ステップS2313)。そして、クラウド装置203は、情報処理装置201に接続することができたか否かを判定する(ステップS2314)。
ここで、情報処理装置201に接続することができない場合(ステップS2314:No)、クラウド装置203は、情報処理装置201に接続失敗したことを示す接続失敗通知を端末装置202に送信する(ステップS2315)。そして、端末装置202は、接続失敗通知に基づき患者Bのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を端末装置202のユーザへ表示画面を通じて通知する(ステップS2316)。そして、排他制御システム100は、端末排他制御処理を終了する。
一方で、情報処理装置201に接続することができた場合(ステップS2314:Yes)、クラウド装置203は、図23EのステップS2317の処理に移行する。ここで、図23Eの説明に移行する。
図23Eにおいて、クラウド装置203は、患者Bのカルテ情報についての排他権限を要求する権限要求を、情報処理装置201に送信する(ステップS2317)。情報処理装置201は、権限要求を受け付けると、院内排他テーブル500を確認し、患者Bに対応するレコードを検索する(ステップS2318)。そして、情報処理装置201は、患者Bに対応するレコードが存在するか否かを判定する(ステップS2319)。
ここで、既に患者Bに対応するレコードが存在する場合(ステップS2319:Yes)、情報処理装置201は、患者Bに対応するレコードが存在するため、排他権限の取得失敗を示す失敗通知を、クラウド装置203に送信する(ステップS2320)。クラウド装置203は、失敗通知を、端末装置202に転送する(ステップS2321)。端末装置202は、失敗通知を受け付けると、患者Bのカルテ情報についての排他権限を取得失敗と判断し、排他権限の取得失敗を端末装置202のユーザへ表示画面を通じて通知する(ステップS2322)。そして、排他制御システム100は、端末排他制御処理を終了する。
一方で、患者Bに対応するレコードが存在しない場合(ステップS2319:No)、情報処理装置201は、図23FのステップS2323の処理に移行する。ここで、図23Fの説明に移行する。
図23Fにおいて、情報処理装置201は、院内排他テーブル500に、患者Bに対応するレコードを書き込む(ステップS2323)。次に、情報処理装置201は、患者Bに対応するレコードを書き込んだため、排他権限の取得成功を示す成功通知を、クラウド装置203に送信する(ステップS2324)。
クラウド装置203は、成功通知を受け付けると、クラウド排他テーブル1100に患者Bに対応するレコードを書き込む(ステップS2325)。そして、クラウド装置203は、成功通知を、端末装置202に送信する(ステップS2326)。端末装置202は、成功通知を受け付けると、図23GのステップS2327の処理に移行する。ここで、図23Gの説明に移行する。
図23Gにおいて、端末装置202は、端末排他テーブル800と、端末同期テーブル900とに、患者Bに対応するレコードを書き込む(ステップS2327)。そして、端末装置202は、端末同期テーブル900に基づいて、オブジェクトメタテーブル1200に患者Bに対応するレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2328)。また、端末装置202は、患者Bのカルテ情報についての排他権限を取得成功と判断し、排他権限の取得成功を端末装置202のユーザへ表示画面を通じて通知する(ステップS2329)。
クラウド装置203は、オブジェクトメタテーブル1200に基づいて、情報処理装置201が有する院内同期テーブル600に患者Bに対応するレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2330)。情報処理装置201は、院内同期テーブル600に基づいて、院内排他テーブル500に患者Bに対応するレコードを書き込む(ステップS2331)。そして、排他制御システム100は、端末排他制御処理を終了する。
(テーブル更新処理手順)
次に、図24を用いて、情報処理装置201、端末装置202、または、クラウド装置203が実行する、テーブル更新処理手順の一例について説明する。テーブル更新処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
テーブル更新処理は、図22A~図22Dおよび図23A~図23Gにおいて、情報処理装置201、端末装置202、または、クラウド装置203が、患者Xに対応するレコードを、いずれかのテーブルに書き込む際の処理の具体例である。
図24は、テーブル更新処理手順の一例を示すフローチャートである。図24において、情報処理装置201は、更新情報となる患者Xに対応するレコードを受け付ける(ステップS2401)。
次に、情報処理装置201は、受け付けた更新情報を反映させるテーブル内に、受け付けた更新情報を反映させるレコードが存在するか否かを判定する(ステップS2402)。ここで、レコードが存在する場合(ステップS2402:Yes)、情報処理装置201は、更新情報に基づいて、レコードを更新する(ステップS2403)。そして、情報処理装置201は、テーブル更新処理を終了する。
一方で、レコードが存在しない場合(ステップS2402:No)、情報処理装置201は、更新情報に基づいて、レコードを追加する(ステップS2404)。そして、情報処理装置201は、テーブル更新処理を終了する。端末装置202やクラウド装置203も、情報処理装置201と同様に、テーブル更新処理を実行する。
また、テーブル更新処理は、後述する図25A~図25Cおよび図26A~図26Cにおいて、情報処理装置201、端末装置202、または、クラウド装置203が、患者Xに対応するレコードを、いずれかのテーブルに書き込む際の処理の具体例でもある。
(院内排他解放処理手順)
次に、図25A~図25Cを用いて、排他制御システム100が実行する、院内排他解放処理手順の一例について説明する。院内排他解放処理は、例えば、情報処理装置201と、端末装置202と、クラウド装置203と、院内端末211とによって実現される。
図25A~図25Cは、院内排他解放処理手順の一例を示すシーケンス図である。図25Aにおいて、情報処理装置201は、院内端末211による患者Aのカルテ情報についての更新処理の終了を検出する(ステップS2501)。
次に、情報処理装置201は、院内排他テーブル500から、患者Aに対応するレコードを削除する(ステップS2502)。そして、情報処理装置201は、患者Aのカルテ情報についての排他権限を解放成功と判断する(ステップS2503)。
次に、情報処理装置201は、院内同期テーブル600と、院内排他ログテーブル400とに、患者Aに対応する削除フラグが有効なレコードを書き込む(ステップS2504)。そして、情報処理装置201は、図25BのステップS2505の処理に移行する。ここで、図25Bの説明に移行する。
図25Bにおいて、情報処理装置201は、クラウド装置203に接続可能であるか否かを確認する(ステップS2505)。そして、情報処理装置201は、クラウド装置203に接続することができたか否かを判定する(ステップS2506)。
ここで、クラウド装置203に接続することができない場合(ステップS2506:No)、情報処理装置201は、一定時間待機し(ステップS2507)、ステップS2505の処理に戻る。一方で、クラウド装置203に接続することができた場合(ステップS2506:Yes)、情報処理装置201は、ステップS2508の処理に移行する。
ステップS2508では、情報処理装置201は、院内排他ログテーブル400に基づいて、クラウド装置203が有するクラウド排他テーブル1100から患者Aに対応するレコードを削除させる削除要求を、一定時間間隔で送信する処理を開始する(ステップS2508)。そして、クラウド装置203は、情報処理装置201の削除要求に従って、クラウド排他テーブル1100から患者Aに対応するレコードを削除する(ステップS2509)。
また、情報処理装置201は、院内同期テーブル600に基づいて、クラウド装置203が有するオブジェクトメタテーブル1200に患者Aに対応する削除フラグが有効なレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2510)。そして、クラウド装置203は、情報処理装置201の書込要求に従って、オブジェクトメタテーブル1200に患者Aに対応する削除フラグが有効なレコードを書き込む(ステップS2511)。次に、クラウド装置203は、図25CのステップS2512の処理に移行する。
図25Cにおいて、クラウド装置203は、端末装置202に接続可能であるか否かを確認する(ステップS2512)。そして、クラウド装置203は、端末装置202に接続することができたか否かを判定する(ステップS2513)。
ここで、端末装置202に接続することができない場合(ステップS2513:No)、クラウド装置203は、一定時間待機し(ステップS2514)、ステップS2512の処理に戻る。一方で、端末装置202に接続することができた場合(ステップS2513:Yes)、クラウド装置203は、ステップS2515の処理に移行する。
ステップS2515では、クラウド装置203は、オブジェクトメタテーブル1200に基づいて、端末装置202が有する端末同期テーブル900に患者Aに対応する削除フラグが有効なレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2515)。そして、端末装置202は、クラウド装置203の書込要求に従って、端末同期テーブル900に患者Aに対応する削除フラグが有効なレコードを書き込む(ステップS2516)。
次に、端末装置202は、端末同期テーブル900に基づいて、端末排他テーブル800から、患者Aに対応するレコードを削除する(ステップS2517)。そして、排他制御システム100は、院内排他解放処理を終了する。
(端末排他解放処理手順)
次に、図26A~図26Cを用いて、排他制御システム100が実行する、端末排他解放処理手順の一例について説明する。端末排他解放処理は、例えば、情報処理装置201と、端末装置202と、クラウド装置203とによって実現される。
図26A~図26Cは、端末排他解放処理手順の一例を示すシーケンス図である。図26Aにおいて、端末装置202は、端末装置202における患者Bのカルテ情報についての更新処理の終了を検出する(ステップS2601)。
次に、端末装置202は、端末排他テーブル800から、患者Bに対応するレコードを削除する(ステップS2602)。そして、端末装置202は、端末同期テーブル900に、患者Bに対応する削除フラグが有効なレコードを書き込む(ステップS2603)。そして、端末装置202は、図26BのステップS2604の処理に移行する。ここで、図26Bの説明に移行する。
図26Bにおいて、端末装置202は、クラウド装置203に接続可能であるか否かを確認する(ステップS2604)。そして、端末装置202は、クラウド装置203に接続することができたか否かを判定する(ステップS2605)。
ここで、クラウド装置203に接続することができない場合(ステップS2605:No)、端末装置202は、一定時間待機し(ステップS2606)、ステップS2604の処理に戻る。一方で、クラウド装置203に接続することができた場合(ステップS2605:Yes)、端末装置202は、ステップS2607の処理に移行する。
ステップS2607では、端末装置202は、クラウド装置203が有するクラウド排他テーブル1100から患者Bに対応するレコードを削除させる削除要求を、一定時間間隔で送信する処理を開始する(ステップS2607)。そして、クラウド装置203は、端末装置202の削除要求に従って、クラウド排他テーブル1100から患者Bに対応するレコードを削除する(ステップS2608)。
次に、端末装置202は、端末同期テーブル900に基づいて、クラウド装置203が有するオブジェクトメタテーブル1200に患者Bに対応する削除フラグが有効なレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2609)。そして、クラウド装置203は、端末装置202の書込要求に従って、オブジェクトメタテーブル1200に患者Bに対応する削除フラグが有効なレコードを書き込む(ステップS2610)。次に、クラウド装置203は、図26CのステップS2611の処理に移行する。
図26Cにおいて、クラウド装置203は、情報処理装置201に接続可能であるか否かを確認する(ステップS2611)。そして、クラウド装置203は、情報処理装置201に接続することができたか否かを判定する(ステップS2612)。
ここで、情報処理装置201に接続することができない場合(ステップS2612:No)、クラウド装置203は、一定時間待機し(ステップS2613)、ステップS2611の処理に戻る。一方で、情報処理装置201に接続することができた場合(ステップS2612:Yes)、クラウド装置203は、ステップS2614の処理に移行する。
ステップS2614では、クラウド装置203は、オブジェクトメタテーブル1200に基づいて、情報処理装置201が有する院内同期テーブル600に患者Bに対応する削除フラグが有効なレコードを書き込ませる書込要求を、一定時間間隔で送信する処理を開始する(ステップS2614)。そして、情報処理装置201は、クラウド装置203の書込要求に従って、院内同期テーブル600に患者Bに対応する削除フラグが有効なレコードを書き込む(ステップS2615)。
次に、情報処理装置201は、院内同期テーブル600に基づいて、院内排他テーブル500から、患者Bに対応するレコードを削除する(ステップS2616)。そして、情報処理装置201は、患者Bのカルテ情報についての排他権限を解放成功と判断し、クラウド装置203を介して、排他権限の解放成功を示す解放通知を端末装置202に送信する(ステップS2617)。
次に、端末装置202は、解放通知を受け付けると、患者Bのカルテ情報についての排他権限を解放成功と判断する。そして、排他制御システム100は、端末排他解放処理を終了する。
以上説明したように、排他制御システム100において、第1の装置101によれば、第1のカルテ情報の更新要求を受け付けると、第1のテーブルに第1のカルテ情報を示す第1の制御情報が登録済みであるか否かを確認することができる。第1の装置101によれば、第1のテーブルに第1の制御情報が登録済みである場合には、第1のカルテ情報の更新を禁止することができる。第1の装置101によれば、第1のテーブルに第1の制御情報が登録済みでない場合には、第1のテーブルに第1の制御情報を登録した後に、第1のカルテ情報の更新を許可することができる。
第2の装置102によれば、第2のカルテ情報の更新要求を受け付けると、第3の装置103に、第1のテーブルに第2のカルテ情報を示す第2の制御情報が登録済みであるか否かを確認させることができる。第2の装置102によれば、第1のテーブルの確認に失敗した場合、または、第1のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止することができる。第2の装置102によれば、第1のテーブルに第2の制御情報が登録済みでない場合には、第3の装置103に、第1のテーブルに第2の制御情報を登録させた後に、第2のカルテ情報の更新を許可することができる。
これにより、第1の装置101は、他装置と通信しなくても、自装置内で第1のテーブルを確認すれば、自装置に更新要求されたカルテ情報が、他装置で既に更新中であるか否かを正しく判断することができる。このため、第1の装置101は、他装置と通信しなくても、自装置内で第1のテーブルを確認すれば、自装置に更新要求されたカルテ情報を、自装置で更新可能であるか否かを正しく判断することができる。したがって、第1の装置101は、他装置との通信状況に依存してすべてのカルテ情報が更新不可能になってしまう状況を回避することができる。
また、これにより、第2の装置102は、第1のテーブルを確認することができない場合、自装置に更新要求されたカルテ情報を、自装置で更新してしまわないようにすることができる。このため、第2の装置102は、第1の装置101が他装置と通信せずに第1のテーブルを確認してカルテ情報を更新するようにしていても、排他制御システム100においてカルテ情報が排他的に更新されるようにすることができる。
排他制御システム100において、第1の装置101によれば、第1のテーブルに第1の制御情報を登録した後に、さらに、第3の装置103に、第2のテーブルに第1の制御情報を登録させることができる。第2の装置102によれば、第2のカルテ情報の更新要求を受け付けると、第2のテーブルに第2の制御情報が登録済みであるか否かを確認することができる。第2の装置102によれば、第2のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止することができる。第2の装置102によれば、第2のテーブルに第2の制御情報が登録済みでない場合には、第3の装置103に、第1のテーブルに第2の制御情報が登録済みであるか否かを確認させることができる。
これにより、排他制御システム100は、第2の装置102が、第1のテーブルを確認しなくても、第2のテーブルを確認すれば、排他制御対象であるカルテ情報を特定可能にすることができる。このため、排他制御システム100は、第1の装置101と第2の装置102との間での第3の装置103を介した通信回数の低減化を図り、第1の装置101と第2の装置102と第3の装置103との処理負担および通信負担の低減化を図ることができる。
排他制御システム100において、第2の装置102によれば、第3の装置103に、第1のテーブルに第2の制御情報を登録させた後に、さらに、第2のテーブルに第2の制御情報を登録することができる。これにより、排他制御システム100は、第2の装置102が、第1のテーブルを確認しなくても、第2のテーブルを確認すれば、第2の装置102で第2のカルテ情報を更新中であることを特定可能にすることができる。
排他制御システム100において、第1の装置101によれば、第1のテーブルに第1の制御情報を登録した後に、さらに、第3の装置103に、第3のテーブルに第1の制御情報を登録させることができる。第2の装置102によれば、第2のカルテ情報の更新要求を受け付けると、第3の装置103に、第3のテーブルに第2の制御情報が登録済みであるか否かを確認させることができる。第2の装置102によれば、第3のテーブルに第2の制御情報が登録済みである場合には、第2のカルテ情報の更新を禁止することができる。第2の装置102によれば、第3のテーブルに第2の制御情報が登録済みでない場合には、第3の装置103に、第1のテーブルに第2の制御情報が登録済みであるか否かを確認させることができる。
これにより、排他制御システム100は、第2の装置102が、第1のテーブルを確認しなくても、第3のテーブルを確認すれば、排他制御対象であるカルテ情報を特定可能にすることができる。このため、排他制御システム100は、第1の装置101と第2の装置102との間での第3の装置103を介した通信回数の低減化を図り、第1の装置101の処理負担および通信負担の低減化を図ることができる。
排他制御システム100において、第2の装置102によれば、第3の装置103に、第1のテーブルに第2の制御情報を登録させた後に、第3の装置103に、第3のテーブルに第2の制御情報を登録させてから、第2のカルテ情報の更新を許可することができる。これにより、排他制御システム100は、第2の装置102が、第1のテーブルを確認しなくても、第3のテーブルを確認すれば、第2の装置102で第2のカルテ情報を更新中であることを特定可能にすることができる。
排他制御システム100において、第1の装置101によれば、第1のカルテ情報の更新を終了すると、第1のテーブルから、第1の制御情報を削除することができる。第2の装置102によれば、第2のカルテ情報の更新を終了すると、第3の装置103に、第1のテーブルから第2の制御情報を削除させることができる。これにより、第1の装置101は、第1のカルテ情報についての排他権限を解放し、他装置で第1のカルテ情報を更新可能にすることができる。第2の装置102は、第2のカルテ情報についての排他権限を解放し、他装置で第2のカルテ情報を更新可能にすることができる。
排他制御システム100において、第3の装置103によれば、一定時間間隔で、第1の装置101との接続が可能か否かを確認し、第1の装置101との接続が可能であれば、第1のテーブルに第2の制御情報を登録することができる。これにより、排他制御システム100は、第1のテーブルを最新の状態に更新することができる。また、排他制御システム100は、第1の装置101と第3の装置103との間で通信障害が発生しても、通信障害が解消するまで待って、第1のテーブルを最新の状態に更新することができる。
排他制御システム100において、第3の装置103は、一定時間間隔で、第2の装置102との接続が可能か否かを確認し、第2の装置102との接続が可能であれば、第2のテーブルに第1の制御情報を登録することができる。これにより、排他制御システム100は、第2のテーブルを最新の状態に更新することができる。また、排他制御システム100は、第2の装置102が電源オフでも、電源オンになるまで待って、第2のテーブルを最新の状態に更新することができる。
なお、本実施の形態で説明した排他制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した排他制御プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した排他制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)医療施設に対応する第1の装置と、医療従事者に所持される第2の装置と、前記第1の装置および前記第2の装置と通信可能な第3の装置とを含む排他制御システムであって、
前記第1の装置は、
排他制御対象であるカルテ情報を特定するための第1の情報を記憶し、
第1のカルテ情報の更新要求を受け付けると、前記第1の情報に基づき、前記第1のカルテ情報が更新可能であるか否かを判定し、
判定した結果に基づき、前記第1のカルテ情報の更新を制御し、
前記第2の装置は、
第2のカルテ情報の更新要求を受け付けると、前記第3の装置に、前記第1の装置にアクセスさせ、前記第1の情報に基づき、前記第2のカルテ情報が更新可能であるか否かを確認させ、
前記第3の装置によるアクセスに失敗した場合には、前記第2のカルテ情報の更新を禁止し、
前記第3の装置によるアクセスに成功した場合には、前記第3の装置による確認の結果に応じて、前記第2のカルテ情報の更新を制御する、
ことを特徴とする排他制御システム。
(付記2)前記第3の装置は、
前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認した場合、前記第1の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新し、
前記第2の装置は、
前記第3の装置によるアクセスに成功し、前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認され、前記第1の情報が更新された後に、前記第2のカルテ情報の更新を許可する、ことを特徴とする付記1に記載の排他制御システム。
(付記3)前記第2の装置は、
排他制御対象であるカルテ情報を特定するための第2の情報を記憶し、
前記第2のカルテ情報の更新要求を受け付けると、前記第2の情報に基づき、前記第2のカルテ情報が更新可能であるか否かを判定し、
前記第2の情報に基づき前記第2のカルテ情報が更新可能ではないと判定した場合には、前記第2のカルテ情報の更新を禁止し、
前記第2の情報に基づき前記第2のカルテ情報が更新可能であると判定した場合には、前記第3の装置に、前記第1の装置にアクセスさせ、前記第1の情報に基づき、前記第2のカルテ情報が更新可能であるか否かを確認させる、ことを特徴とする付記1または2に記載の排他制御システム。
(付記4)前記第3の装置は、
前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認した場合、前記第1の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新し、
前記第2の装置は、
前記第3の装置によるアクセスに成功し、前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認され、前記第1の情報が更新された後に、さらに、前記第2の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新する、ことを特徴とする付記3に記載の排他制御システム。
(付記5)前記第3の装置は、
排他制御対象であるカルテ情報を特定するための第3の情報を有し、
前記第2の装置は、
前記第2のカルテ情報の更新要求を受け付けると、前記第3の装置に、前記第3の情報に基づき、前記第2のカルテ情報が更新可能であるか否かを確認させ、
前記第3の情報に基づき前記第2のカルテ情報が更新可能ではないと確認された場合には、前記第2のカルテ情報の更新を禁止し、
前記第3の情報に基づき前記第2のカルテ情報が更新可能であると確認された場合には、前記第3の装置に、前記第1の装置にアクセスさせ、前記第1の情報に基づき、前記第2のカルテ情報が更新可能であるか否かを確認させる、ことを特徴とする付記1~4のいずれか一つに記載の排他制御システム。
(付記6)前記第3の装置は、
前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認した場合、前記第1の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新した後に、前記第3の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新し、
前記第2の装置は、
前記第3の装置によるアクセスに成功し、前記第1の情報に基づき前記第2のカルテ情報が更新可能であると確認され、前記第1の情報が更新され、前記第3の情報が更新された後に、前記第2のカルテ情報の更新を許可する、ことを特徴とする付記5に記載の排他制御システム。
(付記7)前記第1の装置は、
前記第1のカルテ情報の更新が終了すると、前記第1の情報を、前記第1のカルテ情報を排他制御対象として特定しない情報へと更新し、
前記第2の装置は、
前記第2のカルテ情報の更新が終了すると、前記第3の装置に、前記第1の装置にアクセスさせ、前記第1の情報を、前記第2のカルテ情報を排他制御対象として特定しない情報へと更新させる、ことを特徴とする付記1~6のいずれか一つに記載の排他制御システム。
(付記8)前記第3の装置は、
前記第2の装置の制御に従って、一定時間間隔で、前記第1の装置との接続が可能か否かを確認し、前記第1の装置との接続が可能であれば、前記第1の情報を、前記第2のカルテ情報を排他制御対象として特定する情報へと更新させる、ことを特徴とする付記2に記載の排他制御システム。
(付記9)前記第3の装置は、
前記第1の装置の制御に従って、一定時間間隔で、前記第2の装置との接続が可能か否かを確認し、前記第2の装置との接続が可能であれば、前記第2の情報を、前記第1のカルテ情報を排他制御対象として特定する情報へと更新させる、ことを特徴とする付記3に記載の排他制御システム。
(付記10)前記第1の装置は、
前記第1のカルテ情報が更新可能であると判定した場合には、前記第1の情報を、前記第1のカルテ情報を排他制御対象として特定する情報へと更新した後に、さらに、前記第3の装置に、前記第2の装置にアクセスさせ、前記第2の情報を、前記第1のカルテ情報を排他制御対象として特定する情報へと更新させる、ことを特徴とする付記3に記載の排他制御システム。
(付記11)前記第1の装置は、
前記第1のカルテ情報が更新可能であると判定した場合には、前記第1の情報を、前記第1のカルテ情報を排他制御対象として特定する情報へと更新した後に、さらに、前記第3の装置に、前記第3の情報を、前記第1のカルテ情報を排他制御対象として特定する情報へと更新させる、ことを特徴とする付記5に記載の排他制御システム。
(付記12)医療従事者に所持される端末装置に、
いずれかのカルテ情報の更新要求を受け付けると、前記端末装置および医療施設に対応する情報処理装置と通信可能な装置に、前記情報処理装置にアクセスさせ、前記情報処理装置が記憶する、排他制御対象であるカルテ情報を特定するための情報に基づき、前記いずれかのカルテ情報が更新可能であるか否かを確認し、
前記装置によるアクセスに失敗した場合には、前記いずれかのカルテ情報の更新を禁止し、
前記装置によるアクセスに成功した場合には、前記装置による確認の結果に応じて、前記いずれかのカルテ情報の更新を制御する、
処理を実行させることを特徴とする排他制御プログラム。
(付記13)医療従事者に所持される端末装置が、
いずれかのカルテ情報の更新要求を受け付けると、前記端末装置および医療施設に対応する情報処理装置と通信可能な装置に、前記情報処理装置にアクセスさせ、前記情報処理装置が記憶する、排他制御対象であるカルテ情報を特定するための情報に基づき、前記いずれかのカルテ情報が更新可能であるか否かを確認し、
前記装置によるアクセスに失敗した場合には、前記いずれかのカルテ情報の更新を禁止し、
前記装置によるアクセスに成功した場合には、前記装置による確認の結果に応じて、前記いずれかのカルテ情報の更新を制御する、
処理を実行することを特徴とする排他制御方法。