[実施の形態1]
図1は、情報処理システム4のハードウェア構成を示す説明図である。
図1に示すとおり、情報処理システム4は予約の入出力を行う第1情報処理装置1と、予約データベース(以下DBとする)を参照して第1情報処理装置1から入力された予約内容と既存の予約との重複の有無を判定する第2情報処理装置2とがネットワーク3で接続された構成である。実施の形態1の情報処理システム4は、医療機関において、医師もしくはコメディカル等の人または検査機器もしくは治療機器等の医療機器の予約状況を管理するシステムである。医療機器には、無影灯、手術台、シャウカステン等の複数の医療機器を組みあわせた手術室も含む。コメディカルは、臨床検査技師、診療放射線技師、臨床工学技士、超音波検査士等各種の医療スタッフの総称である。
第1情報処理装置1は、デスクトップパソコン、ノートパソコン、タブレット、スマートフォン、携帯電話機、ウェアラブル端末、本情報処理システム用の専用端末等である。操作を行うユーザーの担当業務および職場環境に合わせて、各種の端末装置を利用できる。以後の説明では第1情報処理装置1を操作端末1と記載する。
第2情報処理装置2は、デスクトップパソコン、ノートパソコン、クラウド上のPaaS(Platform as a Service)を用いて仮想化されたアプリケーションおよびデータベースサーバー等である。以後の説明では第2情報処理装置2をサーバー2と記載する。
ネットワーク3は、医療機関内部の院内ネットワーク、一定地域内の医療機関同士を結んだ地域医療連携ネットワーク、インターネット等である。必要に応じて暗号化等の情報セキュリティ対策を行う。
本実施の形態は、操作端末1に入力された医療行為の計画をネットワーク3経由でサーバー2に送り、予約DB253を参照して医師等の予約の重複がある場合にはその旨を示す情報をネットワーク3経由で操作端末1に出力するプログラム等である。
図2は、操作端末1のハードウェア群を示すブロック図である。図2に示す通り、操作端末1は第1演算制御部11、第1主記憶部12、第1入力部13、第1表示部14、第1大容量記憶部15、第1通信部16および第1時計部17が第1バス18を介して接続されている。
第1演算制御部11は、操作端末1のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)等である。第1主記憶部12は操作端末1のSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。第1主記憶部12には、第1演算制御部11が行う処理の途中で必要な情報および第1演算制御部11で実行中のプログラムが一時的に保存される。
第1入力部13は、操作端末1のキーボード、マウス、タッチパネル、ペンタブレット、音声入力装置、ジェスチャー入力装置等である。多数のデータを一括して入力する場合には、メモリカードを読み書きできるディスクドライブや、ネットワークアダプタ等を使用することもできる。第1表示部14は、操作端末1の液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、ヘッドマウントディスプレイ、プリンタ等である。
第1大容量記憶部15は、操作端末1のハードディスク、半導体メモリディスク等である。第1大容量記憶部15には、第1演算制御部11に実行させる操作端末制御プログラム151および、操作端末制御プログラム151の実行に必要な各種データ等が保存される。
第1通信部16は、操作端末1とネットワーク3との間のデータの送受信を有線または無線で行うネットワークアダプタである。第1時計部17は現在日時を第1演算制御部11に提供する時計である。ネットワーク3を介して日本標準時等に自動的に同期することが望ましい。
図3は、サーバー2のハードウェア群を示すブロック図である。図3に示す通り、サーバー2は第2演算制御部21、第2主記憶部22、第2入力部23、第2表示部24、第2大容量記憶部25、第2通信部26および第2時計部27が第2バス28を介して接続されている。
第2演算制御部21は、サーバー2のCPU等である。第2主記憶部22はサーバー2のSRAM、DRAM、フラッシュメモリ等である。第2主記憶部22には、第2演算制御部21が行う処理の途中で必要な情報および第2演算制御部21で実行中のプログラムが一時的に保存される。
第2入力部23は、サーバー2のキーボード、マウス、タッチパネル、ペンタブレット、音声入力装置、ジェスチャー入力装置等である。第2表示部24は、操作端末1の液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、ヘッドマウントディスプレイ、プリンタ等である。なお、ネットワークを通じてサーバー2が制御される場合には、第2入力部23および第2表示部24を設けなくても良い。
第2大容量記憶部25は、サーバー2のハードディスク、半導体メモリディスク等である。第2大容量記憶部25には、第2演算制御部21に実行させる情報処理プログラム251を記憶するプログラム記憶部およびDB記憶部252が含まれる。DB記憶部252には、予約DB253、タスクDB254、使用機器DB255、患者DB256が含まれる。なお、DB記憶部252は、サーバー2とは別筐体の外付けディスクドライブ装置内に設けても良い。
第2通信部26は、サーバー2とネットワーク3との間のデータの送受信を有線または無線で行うネットワークアダプタである。第2時計部27は現在日時を第2演算制御部21に提供する時計である。ネットワーク3を介して日本標準時等に自動的に同期することが望ましい。
図4は、情報処理システム4の初期画面を示す説明図である。図4の初期画面の下側約2/3には、スケジュール一覧欄401が表示されている。また、連絡事項欄428、個人宛のメッセージ欄427、日付入力部を兼ねたカレンダー欄、現在日時を示す欄、勤務中のスタッフの名前を表示する欄および当直予定医師名を表示する欄が設けられている。スクロールバー402、タスク入力指示ボタン403、終了ボタン404、表示変更ボタン425、ID設定欄431、氏名設定欄432、患者情報欄433については後述する。
スケジュール一覧欄401には、医師A、医師B、医師C、検査技師Dおよび放射線技師Eの単位時間刻みの予定が、簡略化して表示されている。本実施形態では、単位時間を5分間としている。一番左の列は、5分刻みの時間帯の開始時刻を示す。すなわち、一番左の列に10:35と記載されている行には、10時35分から10時40分までの予定が示されている。
医師の予定は、患者ID、かな患者名、内容の3項目で表示されている。患者IDは、患者一人一人に付与されるユニークなIDである。患者名はかなで表示している。患者の呼び出しおよび患者との会話の際に誤読のおそれを避ける為である。内容は、予定している医療行為の内容を簡易的に表示したものである。表示スペースの節約のために最初の数文字だけが表示されている。コメディカルである検査技師Dおよび放射線技師Eの予定は更に簡略化されて、患者IDのみが表示されている。患者IDに「999999」と表示されているのは、一つ上の行の予定が継続している事を示している。一方患者IDに「0」と表示されているのは、予定が入っていない事を示している。
例として、図4に示された10時35分から10時40分までの5分間の予定を説明する。医師Aは患者ID「AAAAAA」の「よしだ りょうこ」氏のERCP(Endoscopic Retrograde CholangioPancreatography)すなわち内視鏡的逆行性胆管膵管造影を行う予定である。医師Bは患者ID「WA1021」の「たなか はなこ」氏の診察を行う予定である。医師Cは患者ID「BBBBBB」の「まつもと しろう」氏の手術を行う予定である。検査技師Dは10時20分に開始する患者ID「DA4567」に関する予定を継続して行う予定である。放射線技師Eには予定が入っていない。放射線技師Eは、10時45分からは患者ID「AAAAAA」に関する予定が入っている。したがって、医師Aが10時35分に開始する患者ID「AAAAAA」の「よしだ りょうこ」氏のERCPに10時45分から参加する。
なお、デフォルトでは現在時刻を含む時間帯が上から5行目以内に表示されるように設定する事が、ユーザーがリアルタイムの状況を把握しやすくなるので好適である。また、図4ではスケジュール一覧欄401の右端に上下方向のスクロールバー402を表示している。同様にスケジュール一覧欄401の上端または下端に左右方向のスクロールバーを表示しても良い。
図4には「検査技師D」「放射線技師E」の2名のコメディカルの例を示したが、他の職種や略称を使用しても良い。また、「医師A」を「内科医師A」等専門分野を付けて表示しても良い。更に、職種や専門分野を省略して個人名だけを表示しても良い。逆に個人名を省略して専門分野または役割だけを表示しても良い。
図5は、タスク一覧表示画面のイメージを示す説明図である。図4の初期画面の中央部に、予約状況一覧421がポップアップ表示されている。表の1行目の、各項目の表題を示す行では、医師、コメディカルおよび医療機器はいずれも1〜2文字の英文字略号で示されている、すなわち、「A」、「B」、「C」は各々医師A、医師B、医師Cの略であり、「D」は検査技師Dの、「E」は放射線技師Eの略である。「OP」はOPerating room の略で手術室を意味する。「ES」はEndoScope の略で内視鏡を意味する。「US」はUltraSonographyの略で、超音波検査装置を意味する。「CT」はComputed Tomographyの略でコンピュータ断層撮影装置を意味する。「XR」は X Ray の略で、レントゲン透視撮影装置を意味する。
予約状況一覧421には、1行につき1つの医療行為の予約の概要が表示されている。医療行為の実施予定日時は、予約状況一覧421上部の日付ならびに各行の開始時刻および終了時刻で示されている。医師またはコメディカルの参加の指定および医療機器の使用の指定は、各列の「○」で示されている。医師またはコメディカルの列の「○」が参加の指定が受け付けられている医師またはコメディカルを示す。医療機器の列の「○」が使用の指定が受け付けられている医療機器を示す。
更に、各医療行為の予約のタスクID、患者ID、内容および備考も表示されている。タスクIDは個々の医療行為の予定ごとに付与されるユニークなIDである。ただし、単独の医師が行う単位時間の診察の予定に対しては、タスクIDは付与されない。したがって、このような予定の行のタスクID欄は空欄になっている。
略号を使ってコンパクトにまとめているので、携帯端末等の小型機器の画面でも予約状況を一覧表示できる。図4の初期画面から図5の画面への遷移手順については後述する。
なお、予約状況一覧421のポップアップ位置は図4の初期画面の中央部に限らない。初期画面の上部にポップアップして、初期画面下部のスケジュール一覧欄401と並べて表示しても良い。ポップアップ表示ではなく、図4の初期画面を置き換えて表示しても良い。複数の第1表示部14を備えるいわゆるマルチモニタ環境の場合には、図4の初期画面と予約状況一覧421とを別々の第1表示部14に表示しても良い。
図6から図9は、予約DB253のレコードレイアウトを示す説明図である。図6から図9は、横方向に連続する1枚の表を分割して示したものである。予約DB253は医師、コメディカルおよび医療機器の予約状況を記録したDBである。予約DB253は、日付フィールドおよび時刻フィールド、医師A、医師B、医師C、検査技師Dおよび放射線技師Eの各々の患者IDフィールド、内容フィールドおよび備考フィールドならびに手術室、内視鏡、超音波、CTおよびレントゲン透視の各々の患者IDフィールドを含む。なお、超音波とは超音波検査装置を意味する。レントゲン透視とは、レントゲン透視撮影装置を意味する。
予約DB253は単位時間ごとに1個の予約レコードを有する。本実施の形態では単位時間を5分間としている。日付フィールドにはその予約レコードが対象とする日付が記録されている。時刻フィールドにはその予約レコードが対象とする単位時間の開始時刻が記録されている。
医師Aの患者IDフィールドには、そのレコードが対象とする単位時間に医師Aが対応する予定の患者の患者IDが記録されている。ただし、一つ前の単位時間と同じ予定が継続する場合には、患者IDフィールドには「999999」と記録されている。また、その予約レコードが対象とする単位時間に予定が入っていない場合には、患者IDフィールドには「0」と記録されている。医師Aの内容フィールドには、そのレコードが対象とする単位時間の医師Aが行う医療行為の種類が記載されている。医療行為の種類については後述する。医師Aの備考フィールドには、そのレコードが対象とする単位時間の医師Aの予定している医療行為の詳細説明や、予約を行った人から実施担当者への申し送り事項等が記載されている。患者IDフィールドが「999999」または「0」のレコードでは、内容フィールドおよび備考フィールドは空欄である。医師B以降の欄も同様である。
手術室の患者IDフィールドには、そのレコードが対象とする単位時間に手術室を使用する予定の患者の患者IDが記録されている。一つ前の単位時間と同じ予定が継続する場合には、患者IDフィールドには「999999」と記録されている。また、その予約レコードが対象とする単位時間に予定が入っていない場合には、患者IDフィールドには「0」と記録されている。内視鏡、超音波CTおよびレントゲン透視の患者IDフィールドも同様である。
同じ予定が継続する場合の「999999」および予定が入っていない場合の「0」は例示であり、他の任意の値を割り当てる事ができる。ただし、患者IDとしては使用されない値を採用する。
なお、予約DB253の単位時間は5分間に限らず、1分間や10分間としても良い。また、多忙な昼間は5分間、夜間は15分間等、時間帯によって単位時間の長さを変更しても良い。また、図4に示した医師、コメディカルおよび医療機器の数および種類は一例であり、状況に応じて任意に設定することができる。医師、コメディカルおよび医療機器の3つに予約DB253を分割することもできる。外科、内科、婦人科、眼科および小児科のように、診療科ごとに予約DB253を分割することもできる。管理部門ごとに予約DB253を分割する事で、たとえば新人や退職者、新規購入の医療機器等が発生した場合のDBのメンテナンスの担当部門を分けることができる。
予約DB253へのデータの記録手順については後述する。
図10は、タスクDB254のレコードレイアウトを示す説明図である。タスクDB254には、タスクIDが付与された予定が記録されている。タスクDB254は以下に列挙するフィールドを含む。タスクIDフィールド、日付フィールド、患者IDフィールド、内容フィールド、備考フィールド、タスク開始時刻フィールド、タスク終了時刻フィールド、医師Aの参加フラグフィールド、医師Aの参加開始時刻フィールド、医師Aの参加終了時刻フィールド、医師Bの参加フラグフィールド、医師Bの参加開始時刻フィールド、医師Bの参加終了時刻フィールド、医師Cの参加フラグフィールド、医師Cの参加開始時刻フィールド、医師Cの参加終了時刻フィールド、検査技師Dの参加フラグフィールド、検査技師Dの参加開始時刻フィールド、検査技師Dの参加終了時刻フィールド、放射線技師Eの参加フラグフィールド、放射線技師Eの参加開始時刻フィールド、放射線技師Eの参加終了時刻フィールド、手術室フィールド、内視鏡フィールド、超音波フィールド、CTフィールドおよびレントゲン透視フィールド。
タスクIDフィールドにはタスクIDが記録される。前述の通り、タスクIDは個々の医療行為の予定ごとに付与されるユニークなIDである。タスクIDは作成順の連番としても良いし、作成日時や作成者等の情報を埋め込んでも良い。
日付フィールド、タスク開始時刻フィールド、タスク終了時刻フィールドには、医療行為の実施予定日時が開始および終了の予定日時として記録される。日付をまたいで実施する医療行為の場合には、日付フィールドには開始日の日付が記録される。なお、タスク開始時刻フィールドおよびタスク終了時刻フィールドに日時を示す値を使用する場合には、日付フィールドを省略しても良い。
患者IDフィールドには、医療行為を受ける患者の患者IDが記録される。内容フィールドおよび備考フィールドには、予約DB253内の対応する内容フィールドおよび備考フィールドの記載事項が複写されている。
医師Aの参加フラグフィールドには、医師Aが医療行為に参加するか否かを示す参加フラグが記録される。図10では、参加フラグフィールドの「○」が「参加する」を意味する参加フラグが設定されていることを示す。医師Aの参加開始時刻フィールドおよび参加終了時刻フィールドには、医師Aが医療行為に参加する時刻および参加を終了する時刻が記録される。医師Aの参加フラグが設定されていない場合には、参加開始時刻および参加終了時刻は空欄にされる。医師B、医師C、検査技師Dおよび放射線技師Eの各フィールドも同様である。
手術室フィールドには、手術室の使用有無を示す使用フラグが記録される。図10では、手術室フィールドの「○」が手術室を「使用する」事を意味する使用フラグが設定されている事を示す。内視鏡フィールド、超音波フィールド、CTフィールドおよびレントゲン透視フィールドも同様である。
なお、図10では手術室からレントゲン透視までの各医療機器に関しては、タスク開始時刻からタスク終了時刻までの全時間にわたって予約する事を前提として使用フラグのみを記録しているが、医師またはコメディカルの場合と同様に使用開始時刻と使用終了時刻を記録するようにしても良い。
図11は、タスクDB254内の1つのタスクレコードを示す説明図である。図11を参照してタスクレコードの記録内容を説明する。タスクID「0AA05」の医療行為の実施予定日時は、2014年6月18日の10時35分から11時15分までである。この医療行為を受ける患者の患者IDは「AAAAAA」であり、医療行為の内容はERCPである。この医療行為への参加の指定が受け付けられている医師およびコメディカルは医師Aおよび放射線技師Eである。医師Aはこの医療行為の全時間帯にわたって参加する。すなわち医師Aの参加予定日時は、2014年6月18日の参加開始時刻である10時35分から参加終了時刻である11時15分までである。放射線技師Eの参加予定日時は、2014年6月18日の参加開始時刻である10時45分から参加終了時刻である11時15分までである。この医療行為への使用の指定が受け付けられている医療機器は内視鏡およびレントゲン透視である。内視鏡およびレントゲン透視の使用予定日時は、医療行為の実施予定日時と同じ2014年6月18日の10時35分から11時15分までである。
タスクDB254へのデータの記録手順については後述する。
図12は、患者DB256のレコードレイアウトを示す説明図である。患者DB256は患者IDフィールド、漢字氏名フィールド、かな氏名フィールドおよび生年月日フィールドを含む。各フィールドには、患者IDに紐づけられた患者の氏名、生年月日等が記録されている。その他に、住所、電話番号、健康保険証番号、旧姓、戸籍姓等の個人情報を記録するフィールドを設けても良い。患者DB256のデータは新しい患者を受け付けた際に登録し、個人情報の変更があれば随時更新する。
図13は、使用機器DB255のレコードレイアウトを示す説明図である。使用機器DB255は内容フィールドおよび使用する機器フィールドを含む。内容フィールドには、タスクDB254の内容フィールドに記載する項目が記録されている。使用する機器フィールドには、内容フィールドに記載された医療行為を行う際に使用する医療機器が記録されている。使用機器DB255のデータは、医療施設で実施する医療行為の種類および医療機器の追加または変更があった場合に追加または更新する。
なお、図13中「GTF」はGasTrocamera with Fiberscopeの略である。直訳は光ファイバーを用いた内視鏡による胃の内視鏡検査を意味するが、光ファイバーの代わりに撮像素子を用いた内視鏡が一般的になった近年では、上部消化管内視鏡検査を意味する。
また、図13中「その他」は、実施する頻度が少ない医療行為の入力に使用する。「その他」のレコードを用意しておく事で、発生し得るありとあらゆる医療行為を使用機器DB255に登録しておく必要がなくなる。
図14から図21は、タスク入力画面のイメージを示す説明図である。新規タスクを入力する操作の概要を図4、図5および図14から図21を用いて説明する。なお、操作端末1およびサーバー2の内部で行われる処理の流れについては後述する。
図4の初期画面を表示している時に、第1演算制御部11がスケジュール一覧欄401上の行の選択とタスク入力指示ボタン403の選択とをこの順番で受け付けた場合、図5に示すように予約状況一覧421が表示される。第1演算制御部11が新規追加ボタン422の選択を受け付けた場合、図14のタスク入力画面が表示される。
タスク入力画面には、タスクID欄412、日付欄406、タスク開始時刻欄407、タスク終了時刻欄408、人欄409、患者ID欄405、内容欄411、備考欄413、機器欄410および終了ボタン404が配置されている。
タスク入力画面の日付欄406とタスク開始時刻欄407には、スケジュール一覧欄401で選択された行と同じ日時が設定されている。終了ボタン404は薄く表示され、選択を受け付けないように設定されている。
図15に示す様に、患者ID欄405に医療行為を受ける患者の患者IDの入力を受け付ける。図16に示す様に内容欄411に実施する医療行為の内容の入力を受け付ける。内容は、内容欄411の近傍にプルダウンメニューで表示される使用機器DB255の内容フィールドに列挙された項目の中から選択される。使用機器DB255を参照して、内容欄411に受け付けた項目に応じた医療機器の使用フラグが設定され、図17に示す様に、画面に「○」で表示される。
図18に示すように、タスク終了時刻欄408にタスク終了時刻の入力を受け付ける。なお、入力を開始した後、タスク終了時刻欄408が空欄の場合は、図15から図17の下部に示すように「タスク終了時刻が入力されていません」というメッセージが表示される。図18に示すように、人欄409の参加フラグ列に参加する医師またはコメディカルの選択を、それぞれ受け付ける。参加フラグを受け付けた医師またはコメディカルの参加開始時刻および参加終了時刻は、タスク開始時刻およびタスク終了時刻が受け付けられている場合にはこれらと同じ時刻に設定され、表示される。
第2演算制御部21が予約DB253を参照して、既存の予約との重複の有無を判定する。たとえば放射線技師Eの予定が既存の予約と重複している場合には、図18の下部に示すように「放射線技師Eの予約が重複しています」というメッセージが表示される。なお、このメッセージは応答を要求しないので、第1演算制御部11はメッセージを表示しながら各種入力の受付を継続することができる。
タスクを登録するための必要最低限の項目の入力が完了し、既存の予約との重複がない場合には、図19に示すように終了ボタン404が濃く表示され、選択の受け付けが可能になる。
図20に示すように、参加フラグが設定されている医師またはコメディカルの参加開始時刻および参加終了時刻の変更を受け付ける。なお、参加開始時刻および参加終了時刻の入力が、タスク開始時刻からタスク終了時刻までの範囲外に変更された場合には、終了ボタン404が淡色表示に戻り、選択を受け付けない設定に変更される。終了ボタン404の入力を受け付けた場合、第2演算制御部21は入力内容を保存する。保存が完了すると、図21の下部に示すように、予約を保存した旨のメッセージが表示される。
情報処理システム4の処理の流れについて、フローチャートを参照して説明する。図22は、情報処理システム4の処理手順を示すフローチャートである。
図22を参照して、情報処理システム4の処理の流れを説明する。情報処理システム4が起動された場合、サーバー2の第2演算制御部21は操作端末1の第1演算制御部11に対して第1表示部14に図4に示す初期画面の出力を指示する(ステップS501)。第1演算制御部11は、第2バス28、第2通信部26、ネットワーク3、第1通信部16、第1バス18を介して第2演算制御部21の指示を受け取り、第1バス18を介して第1表示部14に図4に示す初期画面を出力する(ステップS502)。なお、以後の説明では第2バス28、第2通信部26、ネットワーク3、第1通信部16、第1バス18の通信経路の記載は省略する。
第1演算制御部11は、ユーザーからの入力を受け付け(ステップS503)、通信により第2演算制御部21に受け付けた内容を送る。第2演算制御部21は伝えられた入力を取得する。なお、以後の説明では送る動作と取得する動作を合わせて伝達すると記載する。第2演算制御部21は伝達された入力が新規タスク追加を意味するものか否かを判定する(ステップS504)。ここで、新規タスク追加を意味する入力とは、図4の初期画面に示されたスケジュール一覧欄401内の行の選択とそれに続くタスク入力指示ボタン403の選択である。
入力内容が新規タスクの追加を意味する場合には(ステップS504でYES)、第2演算制御部21は、図5に示した予約状況一覧421を表示するように、第1演算制御部11に指示する(ステップS505)。入力内容が新規タスクの追加以外を意味する場合には(ステップS504でNO)、情報処理システム4の動作は終了する。新規タスクの追加以外を意味する入力内容とは、たとえば終了ボタン404の選択である。
第1演算制御部11は、図5に示した予約状況一覧421の表示画面を第1表示部14に出力する(ステップS506)。第1演算制御部11は新規追加ボタン422の入力を受け付けた場合は(ステップS507)、第2演算制御部21に通信により伝達する。
第2演算制御部21は終了可フラグおよび終了ボタンフラグを解除する(ステップS508)。終了可フラグはタスクの入力終了の受付可否を示すフラグである。終了可フラグが設定されている場合には、第1演算制御部11は図14から図21のタスク入力画面の終了ボタン404の選択を受け付ける。終了可フラグが解除されている場合には第1演算制御部11はタスク入力画面の終了ボタン404の選択を受け付けない。終了ボタンフラグは、タスク入力画面の終了ボタン404の選択の受付有無を示すフラグである。終了ボタンフラグが設定されている場合には、タスク入力画面の終了ボタン404は選択を受付済であることを示す。終了ボタンフラグが解除されている場合には、タスク入力画面の終了ボタン404は選択を受け付けていない事を示す。
第2演算制御部21は、タスク入力のサブルーチンを起動する(ステップS509)。タスク入力のサブルーチンは、タスクDB254および予約DB253へのデータの入力を行うサブルーチンである。タスク入力のサブルーチン内の処理については後述する。
第2演算制御部21は終了ボタンフラグの状態を判定する(ステップS510)。ステップS508で終了ボタンフラグを解除した後、1回目にステップS510に到達した場合には、終了ボタンフラグは解除されたままである。この場合には(ステップS510でNO)、第2演算制御部21はダブルブッキングチェックのサブルーチンを起動する(ステップS511)。ダブルブッキングチェックのサブルーチンは、入力中のタスクの医師、コメディカルおよび医療機器の予定と予約DB253に記録されている既存の予約との重複の有無を判定するサブルーチンである。ダブルブッキングチェックのサブルーチン内の処理については後述する。
ダブルブッキングチェックのサブルーチンを経て入力中のタスクが登録可能な状態であれば、第2演算制御部21は終了可フラグを設定する。登録不可能な状態であれば、第2演算制御部21は終了可フラグを解除する(ステップS512)。その後ステップS509に戻る。
ステップS509、ステップS510、ステップS511およびステップS512のループを数回繰り返す。終了ボタンフラグが設定された状態でタスク入力サブルーチン(ステップS509)から戻った場合には(ステップS510でYES)、第2演算制御部21はタスクレコード保存のサブルーチンを起動する(ステップS513)。タスクレコード保存のサブルーチンは、入力中のタスクにタスクIDを割り当ててタスクDB254に保存するサブルーチンである。タスクレコード保存のサブルーチン内の処理については後述する。
第2演算制御部21は、予約DB記録のサブルーチンを起動する(ステップS514)。予約DB記録のサブルーチンは、入力中のタスクの内容を予約DB253に反映させるサブルーチンである。予約DB記録のサブルーチン内の処理については後述する。
予約DB記録のサブルーチンが終了した後に(ステップS514)、本実施の形態の1件の予約処理は終了する。
図23は、タスク入力の処理手順を示すフローチャートである。前述の通り、タスク入力のサブルーチンは、タスクDB254および予約DB253へのデータの入力を行うサブルーチンである。図23を参照して、タスク入力のサブルーチンの処理の流れを説明する。
第2演算制御部21はタスク入力画面を表示するように第1演算制御部11に指示する(ステップS521)。第1演算制御部11は、第1表示部14に図14に示すタスク入力画面を出力する(ステップS522)。第1演算制御部11は、タスク入力画面中の患者ID欄405への入力を受け付け可能な状態に設定する。第1演算制御部11は入力を受け付けた場合(ステップS523)、第2演算制御部21に通信により伝達する。
第2演算制御部21は受け付けた入力の内容が「入力/変更」すなわちタスク入力画面内のいずれかの項目の入力または変更であるか、それとも「終了」すなわち終了ボタン404の選択であるかを判定する(ステップS524)。なお、1回目のステップS524では前述の通り終了可フラグは解除されており終了ボタン404はユーザーの操作に反応しないので、「終了」の選択を受け付けることはない。
受け付けた入力が図14のタスク入力画面のいずれかの項目への入力または変更である場合(ステップS524で「入力/変更」)、第2演算制御部21は変数「エラー部分」を初期値である空欄に設定する(ステップS525)。第2演算制御部21は、図24から図26に示す時刻の矛盾チェックのサブルーチンを起動する(ステップS526)。時刻の矛盾チェックのサブルーチンは、入力中のタスク中の時刻の矛盾の有無を判定するサブルーチンである。矛盾とは、たとえばタスク開始時刻よりもタスク終了時刻が早い場合を意味する。時刻の矛盾チェックのサブルーチン内の処理については後述する。
第2演算制御部21は変数「エラー部分」にエラーメッセージが記録されているか否かを判定する(ステップS527)。図15の段階では、タスク終了時刻欄408が未入力なので、時刻の矛盾チェックのサブルーチン内で変数「エラー部分」にはエラーメッセージが記録されている(ステップS527でNO)。
第2演算制御部21は終了可フラグを解除する(ステップS528)。第2演算制御部21は、エラー内容の表示を行うように第1演算制御部11に指示する(ステップS529)。
第1演算制御部11は、第1表示部14にエラー内容を出力する(ステップS530)。エラー内容の表示は、たとえば図15の下部の「タスク終了時刻が入力されていません」という文章で行う。別の表示方法として、入力または修正するべき欄を赤色等に着色しても良い。その後、ステップS523に戻り、入力操作を受け付ける。
2回目以降のステップS523では第1演算制御部11は、図18のタスク入力画面中の日付欄406、タスク開始時刻欄407、タスク終了時刻欄408、人欄409、機器欄410、内容欄411および備考欄413をユーザーによる入力を受け付ける状態に設定する。なお、第1演算制御部11は、既に入力済の項目も編集可能な状態に設定する。
ステップS523、ステップS524、ステップS525、ステップS526、ステップS527、ステップS528、ステップS529およびステップS530のループを数回繰り返して、時刻の矛盾チェックサブルーチンでエラーが発生しなくなった場合(ステップS527でYES)、ステップS531に進む。
第2演算制御部21は、図27に示す自動設定のサブルーチンを起動する(ステップS531)。自動設定のサブルーチンは、直前の入力項目と、使用機器DB255または入力中の内容から入力項目を自動的に設定するサブルーチンである。
自動設定のサブルーチン(ステップS531)が終了した後に、タスク入力のサブルーチンは終了する。
終了可フラグが設定されている場合には、第1演算制御部11は終了ボタン404を図19に示すように濃く表示して、ユーザーの操作を受け付ける状態に設定する。第1演算制御部11が終了ボタン404の選択を受け付けた(ステップS523)と第2演算制御部21が判定した場合には(ステップS524で「終了」)、第2演算制御部21は終了ボタンフラグを設定する(ステップS532)。その後、タスク入力サブルーチンは終了する。
図24から図26は、時刻の矛盾チェックの処理手順を示すフローチャートである。前述の通り、時刻の矛盾チェックのサブルーチンは、入力中のタスクの時刻の矛盾の有無を判定するサブルーチンである。矛盾とは、タスク開始時刻またはタスク終了時刻が入力されていない場合、タスク開始時刻よりもタスク終了時刻が早い場合、参加する人の参加開始時刻または参加終了時刻が入力されていない場合、参加開始時刻よりも参加終了時刻が早い場合または参加開始時刻および参加終了時刻がタスク開始時刻からタスク終了時刻までの間に入っていない場合を意味する。図24から図26を参照して、時刻の矛盾チェックのサブルーチンの処理の流れを説明する。
第2演算制御部21は、タスク開始時刻の入力の有無を判定する(ステップS561)。第2演算制御部21は、タスク開始時刻の入力が無いと判定した場合には(ステップS561でNO)、変数「エラー部分」に「タスク開始時刻が入力されていません。」というエラーメッセージを追加する(ステップS564)。その後第2演算制御部21は、タスク終了時刻の入力の有無を判定する(ステップS565)。第2演算制御部21がタスク終了時刻フィールドへの入力が有ると判定した場合には(ステップS565でYES)、時刻の矛盾チェックのサブルーチンは終了する。
第2演算制御部21は、タスク終了時刻フィールドへの入力が無いと判定した場合には(ステップS565でNO)、変数「エラー部分」に「タスク終了時刻が入力されていません。」というエラーメッセージを追加する(ステップS566)。その後、時刻の矛盾チェックのサブルーチンは終了する。
第2演算制御部21は、タスク開始時刻の入力が有ると判定した場合には(ステップS561でYES)、タスク終了時刻の入力の有無を判定する(ステップS562)。第2演算制御部21がタスク終了時刻への入力が無いと判定した場合には(ステップS562でNO)、前述のステップS566へ進む。
第2演算制御部21は、タスク終了時刻の入力が有ると判定した場合には(ステップS562でYES)、タスク開始時刻とタスク終了時刻の大小関係を判定する(ステップS563)。第2演算制御部21は、タスク開始時刻がタスク終了時刻よりも早くないと判定した場合には(ステップS563でNO)、変数「エラー部分」に「タスク開始時刻がタスク終了時刻よりも早くありません。」というエラーメッセージを追加する(ステップS567)。その後、時刻の矛盾チェックのサブルーチンは終了する。
第2演算制御部21は、タスク開始時刻がタスク終了時刻よりも早いと判定した場合には(ステップS563でYES)、カウンタIを1に設定する(ステップS568)。第2演算制御部21は、入力中のタスクのI番目の人の参加フラグが設定されているか否かを判定する(ステップS569)。なお、以後の説明ではI番目の人の名前をXとして説明する。
第2演算制御部21は、I番目の人の参加フラグが設定されていると判定した場合には(ステップS569でYES)、I番目の人の参加開始時刻の入力の有無を判定する(ステップS801)。第2演算制御部21は、参加開始時刻の入力が無いと判定した場合には(ステップS801でNO)、変数「エラー部分」に「Xの参加開始時刻が入力されていません。」というエラーメッセージを追加する(ステップS802)。その後第2演算制御部21は、参加終了時刻の入力の有無を判定する(ステップS803)。
第2演算制御部21は、参加開始時刻の入力が有ると判定した場合には(ステップS801でYES)、参加終了時刻の入力の有無を判定する(ステップS804)。第2演算制御部21は、参加終了時刻の入力が無いと判定した場合は(ステップS803でNOまたはステップS804でNO)、変数「エラー部分」に「Xの参加終了時刻が入力されていません。」というエラーメッセージを追加する(ステップS805)。
第2演算制御部21は、参加終了時刻の入力が有ると判定した場合は(ステップS804でYES)、参加開始時刻と参加終了時刻の大小関係を判定する(ステップS806)。第2演算制御部21は、参加開始時刻が参加終了時刻よりも早くないと判定した場合には(ステップS806でNO)、変数「エラー部分」に「Xの参加開始時刻が参加終了時刻よりも早くありません。」というエラーメッセージを追加する(ステップS807)。
第2演算制御部21は、参加開始時刻が参加終了時刻よりも早いと判定した場合には(ステップS806でYES)、タスク開始時刻と参加開始時刻の大小関係を判定する(ステップS810)。第2演算制御部21は、タスク開始時刻が参加開始時刻よりも遅いと判定した場合には(ステップS810でNO)、変数「エラー部分」に「タスク開始時刻よりもXの参加開始時刻が早いです。」というエラーメッセージを追加する(ステップS811)。
第2演算制御部21は、タスク開始時刻が参加開始時刻よりも遅くないと判定した場合(ステップS810でYES)またはステップS811の後には、タスク終了時刻と参加終了時刻の大小関係を判定する(ステップS812)。第2演算制御部21が、参加終了時刻がタスク終了時刻よりも遅いと判定した場合には(ステップS812でNO)、変数「エラー部分」に「タスク終了時刻よりもXの参加終了時刻が遅いです。」というエラーメッセージを追加する(ステップS813)。
第2演算制御部21は、参加終了時刻がタスク終了時刻よりも遅くないと判定した場合(ステップS812でYES)には、全ての人の確認が完了したかを判定する(ステップS814)。第2演算制御部21は、I番目の人の参加フラグが設定されていないと判定した場合(ステップS569でNO)および参加終了時刻の入力があると判定した場合(ステップS803でYES)にも、全ての人の確認が完了したかを判定する(ステップS814)。ステップS805、ステップS807またはステップS813の終了後も、第2演算制御部21は全ての人の確認が完了したかを判定する(ステップS814)。
第2演算制御部21は、確認が完了していない人が残っていると判定した場合には(ステップS814でNO)、カウンタIに1を加算する(ステップS815)。その後ステップS569に戻る。第2演算制御部21が、全ての人の確認が完了したと判定した場合には(ステップS814でYES)、時刻の矛盾チェックのサブルーチンは終了する。
図27は、自動設定の処理手順を示すフローチャートである。前述の通り、自動設定のサブルーチンは、直前の入力項目と、使用機器DB255または入力中の内容から入力項目を自動的に設定するサブルーチンである。図27を参照して、自動設定サブルーチンの処理の流れを説明する。
第2演算制御部21は前述のタスク入力のサブルーチンのステップS523で受け付けた「入力または変更」の操作の対象が図14から図21のタスク入力画面の内容欄411か、人欄409か、それ以外の欄かを判定する(ステップS541)。
入力または修正されたのが内容欄411の場合には(ステップS541で「内容欄」)、第2演算制御部21は使用機器DB255を参照する。第2演算制御部21は、入力または修正された内容欄の記載事項と同一の事項が内容フィールドに記載されているレコードを使用機器DB255から取り出す(ステップS542)。第2演算制御部21は取り出したレコードの使用する機器フィールドに記載されている医療機器の使用フラグを設定する(ステップS543)。これにあわせて第2演算制御部21は第1演算制御部11に、機器欄410中の使用フラグを設定した機器に「○」印を出力するよう指示する。その後、自動設定のサブルーチンは終了する。
ステップS543完了時のタスク入力画面の例を図17に示す。内容欄411にERCPが入力されているので、使用機器DB255を参照して内視鏡とレントゲン透視の使用フラグが設定され、機器欄410の内視鏡とレントゲン透視の枠に「○」が表示されている。
前回のステップS524で入力または修正されたのが人欄409の場合は(ステップS541で「人欄」)、第2演算制御部21は修正内容が人の追加設定であるか否かを判定する(ステップS544)。人の追加設定であることは、人の参加フラグが設定された事で判定する。人の追加が行われた場合には(ステップS544でYES)、第2演算制御部21はその追加設定された人の参加開始時刻および参加終了時刻を、タスク開始時刻欄407およびタスク終了時刻欄408に合わせて設定し、第1演算制御部11を介して表示画面に反映する(ステップS545)。その後、自動設定のサブルーチンは終了する。なお、タスク開始時刻欄407またはタスク終了時刻欄408が空欄の場合には、対応する参加開始時刻または参加終了時刻も空欄とする。
例として、ステップS524で放射線技師Eの参加フラグが解除から設定に変更される場合について、図18を参照して説明する。第2演算制御部21は、参加フラグの状態から放射線技師Eが追加されたと判定する(ステップS544でYES)。ステップS544の時点では放射線技師Eの参加開始時刻、参加終了時刻は空欄である。第2演算制御部21は放射線技師Eの参加開始時刻をタスク開始時刻欄407に設定された時刻に、参加終了時刻をタスク終了時刻欄408に設定された時刻に、それぞれ合わせ、第1演算制御部11を介して第1表示部14の表示画面に反映する(ステップS545)。
人の参加フラグの追加設定では無い場合には(ステップS544でNO)、第2演算制御部21は修正内容が人の削除であるか否かを判定する(ステップS546)。人の削除であることは、人の参加フラグが解除された事で判定する。人の削除が行われた場合には(ステップS546でYES)、第2演算制御部21はその人の参加開始時刻および参加終了時刻を、デフォルト値である空欄に変更し、第1演算制御部11を介して第1表示部14の表示画面に反映する(ステップS547)。その後、自動設定のサブルーチンは終了する。
ステップS546で入力内容が人の削除では無い場合(ステップS546でNO)とは、人欄409の参加開始時刻または参加終了時刻が変更された場合である。この場合には、自動設定のサブルーチンは終了する。入力または修正されたのが内容欄411でも人欄409でもない場合にも(ステップS541で「その他」)、自動設定のサブルーチンは終了する。
図28は、ダブルブッキングチェックの処理手順を示すフローチャートである。前述の通り、ダブルブッキングチェックのサブルーチンは、入力中のタスクの医師、コメディカルおよび医療機器の予定と予約DB253に記録されている既存の予約との重複の有無を判定するサブルーチンである。図28を参照して、ダブルブッキングチェックのサブルーチンの処理の流れを説明する。
第2演算制御部21はタスクに矛盾があるか否かを判定する(ステップS601)。矛盾があるとは、たとえば内容欄411が空欄の場合、内容欄411は手術等医師の参加が必須な項目なのにも関わらず人欄409で参加フラグが設定されている医師が存在しない場合または不適切な文字が入力されている場合等、タスクの入力が未完了な場合を意味する。タスクに矛盾がある場合には(ステップS601でNO)、ダブルブッキングチェックのサブルーチンは終了する。タスクに矛盾がなければ(ステップS601でYES)、第2演算制御部21は、カウンタIを初期値1に設定し、警告機器リストおよび警告人リストを空白に初期化する(ステップS602)。
第2演算制御部21は、入力中のタスクのI番目の単位時間の時間帯の予約レコードを予約DB253から取り出す(ステップS603)。第2演算制御部21は、取り出した予約レコード中の入力中のタスクで使用する機器の患者IDフィールドが「0」になっているかを判定する(ステップS605)。「0」でなければ(ステップS605でNO)、予約が重複している医療機器の名称を「警告機器リスト」に追加する(ステップS606)。「0」の場合は(ステップS605でYES)、第2演算制御部21はステップS607に進む。
第2演算制御部21は、取り出した予約レコード中の入力中のタスクを担当する人の患者IDフィールドが「0」になっているかを判定する(ステップS607)。「0」でなければ(ステップS607でNO)、予約が重複している人の名前を「警告人リスト」に追加する(ステップS608)。
「0」である場合(ステップS607でYES)及びステップS608の処理の後、第2演算制御部21は、入力中のタスクの終了時間まで確認を完了したか否かを判定する(ステップS609)。完了していない場合には(ステップS609でNO)、第2演算制御部21は、カウンタIに1を加えて(ステップS610)、ステップS605に戻る。タスクリスト内のすべてのタスクの確認が終わっていれば(ステップS609でYES)、第2演算制御部21は第1演算制御部11にメッセージの表示を指示する(ステップS611)。メッセージの内容は、「警告機器リスト」内または「警告人リスト」内にデータがある場合には、入力中のタスクには予約の重複がある旨であり、どちらのリストにもデータが無い場合には入力中のタスクは登録可能である旨である。第1演算制御部11は、指示されたメッセージを第1表示部14に出力する(ステップS612)。その後、ダブルブッキングチェックサブルーチンは終了する。
なお、ステップS605とステップS607とを入れ替えて、先に人の重複の有無を判定しても良い。
ステップS601でタスクに矛盾がなく、ステップS611で予約の重複も存在しない場合には、入力中のタスクは登録可能な状態になっている。
図29は、タスクレコード保存の処理手順を示すフローチャートである。前述の通り、タスクレコード保存のサブルーチンは、入力中のタスクにタスクIDを割り当ててタスクDB254に保存するサブルーチンである。
第2演算制御部21は、入力中のタスクの内容欄が「診察」であるか否かを判定する(ステップS830)。第2演算制御部21は、入力中のタスクの内容欄が「診察」だと判定した場合には(ステップS830でYES)、入力中のタスクを担当するのは1名の医師だけであるか否かを判定する(ステップS831)。第2演算制御部21は、入力中のタスクを担当するのは1名の医師だけだと判定した場合には(ステップS831でYES)、入力中のタスクの所要時間が単位時間であるか否かを判定する(ステップS832)。第2演算制御部21は、入力中のタスクの所要時間は単位時間だと判定した場合には(ステップS832でYES)、入力中のタスクが既にタスクDB254に保存されているかどうかを判定する(ステップS833)。第2演算制御部21は、入力中のタスクが既にタスクDB254に保存されていると判定した場合には(ステップS833でYES)、保存されているタスクレコードをタスクDB254から削除し(ステップS834)、その後タスクレコード保存のサブルーチンは終了する。
第2演算制御部21が入力中のタスクはタスクDB254に保存されていないと判定した場合には(ステップS833でNO)、タスクレコード保存のサブルーチンは終了する。入力中のタスクの内容欄が「診察」ではない場合(ステップS830でNO)、担当者が医師1名のみではない場合(ステップS831でNO)または所要時間が単位時間ではない場合(ステップS832でNO)には、第2演算制御部21は入力中のタスクにタスクIDを割り当てる(ステップS835)。なお、既にタスクIDが割り当てられているタスクレコードを修正する場合には、割り当てられているタスクIDをそのまま使用する。その後第2演算制御部21は入力中のタスクレコードをタスクDB254に保存し(ステップS836)、タスクレコード保存のサブルーチンは終了する。
図30および図31は、予約DB記録の処理手順を示すフローチャートである。前述の通り、予約DB記録のサブルーチンは、タスクレコードの内容を予約DB253に反映させるサブルーチンである。図30および図31を参照して、予約DB記録のサブルーチンの処理の流れを説明する。
第2演算制御部21は、カウンタIを1に設定する(ステップS621)。第2演算制御部21は、予約DB253から入力中のタスクレコードのI番目の参加者の参加開始時刻を含む予約レコードを取り出す(ステップS622)。第2演算制御部21は、取り出した予約レコード中のI番目の参加者を示すフィールドに、入力中のタスクレコードの患者ID、内容、備考を記録する(ステップS623)。
第2演算制御部21は、予約DB253から次の時間帯の予約レコードを取り出す(ステップS624)。第2演算制御部21は、取り出した予約レコードの時間帯が、I番目の人が参加中の時間帯であるか否かを判定する(ステップS625)。参加中の時間帯の場合は(ステップS625でYES)、第2演算制御部21は、取り出した予約レコード中のI番目の参加者の患者IDフィールドに、同じタスクが継続中である事を示す「999999」を記録し(ステップS626)、ステップS624に戻る。ステップS625でI番目の人の参加中の時間帯でない場合は(ステップS625でNO)、第2演算制御部21は、入力中のタスクレコードの参加者全員の処理が終了したか否かを判定する(ステップS627)。全員の処理が終了していない場合は(ステップS627でNO)、第2演算制御部21はカウンタIに1を加算して(ステップS628)、その後ステップS622に戻る。全員の処理が参加している場合は(ステップS627でYES)、第2演算制御部21は、入力中のタスクレコードで医療機器を使用するか否かを判定する(ステップS629)。
医療機器を使用する場合には(ステップS629でYES)、第2演算制御部21は、予約DB253から入力中のタスクレコードのタスク開始時刻を含む予約レコードを取り出す(ステップS631)。第2演算制御部21は、取り出した予約レコード中の入力中のタスクレコードで使用するすべての医療機器の患者IDフィールドに、入力中のタスクレコードの患者IDを記録する(ステップS632)。
第2演算制御部21は、予約DB253から次の時間帯の予約レコードを取り出す(ステップS633)。第2演算制御部21は、取り出したレコードの時間帯が、入力中のタスクレコードのタスクが継続中の時間帯であるか否かを判定する(ステップS634)。タスク継続中の時間帯の場合は(ステップS634でYES)、第2演算制御部21は取り出したレコード中の入力中のタスクレコードで使用するすべての医療機器の患者IDフィールドに、同じタスクが継続中である事を示す「999999」を記録し(ステップS635)、ステップS633に戻る。タスク継続中の時間帯でない場合(ステップS634でNO)、および医療機器を使用しない場合(ステップS629でNO)には、第2演算制御部21は予約DB253を保存し(ステップS638)、予約DB記録のサブルーチンは終了する。
本実施の形態によれば、医師およびコメディカルの予定を医療行為に参加する必要のある時間の範囲だけ予約できる。また、最も件数の多い単独の医師による単位時間の診察の予定に対しては、タスクIDを付与しないため、タスクDBの容量が小さくなる。そのため、タスクDBの保存容量を節約できるとともに、軽快に動作するシステムを実現できる。
なお、単独の医師による単位時間の診察の予定に対しても、他の予定と同様にタスクIDを付与し、タスクレコードを作成しても良い。この場合には、図29に示すタスクレコード保存のサブルーチン内で、ステップS830からステップS834の処理を省略して、全てのタスクに対してタスクIDの割り当て(ステップS835)および保存(ステップS836)の処理を行う。
[実施の形態2]
実施の形態2は、第1演算制御部11を介して第2演算制御部21が図14のタスクの入力画面中の終了ボタン404の選択を明示的に受け付けた後に、ダブルブッキングチェックを行うものである。図32および図33は、実施の形態2の情報処理システム4の処理手順を示すフローチャートである。
図32および図33を参照して、本実施形態の情報処理システム4の処理の流れを説明する。なお、図22と共通する部分の説明は省略する。処理開始からステップS507で入力を受け付けるまでは図22の処理と同一である。
第2演算制御部21は終了ボタンフラグを解除する(ステップS651)。第2演算制御部21は終了可フラグを設定する(ステップS652)。第2演算制御部21はタスク入力サブルーチンを起動する(ステップS509)。タスク入力サブルーチンは、図23に示したものと同一である。ただし本実施の形態においては、タスク入力サブルーチンの起動直前に終了可フラグを設定しているので、図14のタスク入力画面中の終了ボタン404は初回から入力受付可能である。
第2演算制御部21は終了ボタンフラグが設定の状態であるか否かを判定する(ステップS653)。終了ボタンフラグが解除の場合は(ステップS653でNO)、ステップS652に戻る。これは、第1演算制御部11を介して第2演算制御部21が終了ボタン404の選択を検出するまでタスク入力サブルーチンを繰り返す事を意味している。終了ボタンフラグが設定されている場合は(ステップS653でYES)、第2演算制御部21は図28のダブルブッキングチェックのサブルーチンを起動する(ステップS511)。
第2演算制御部21は、入力中のタスクが登録可能であるかを判定する(ステップS654)。入力中のタスクに何らかの問題を発見して登録できない場合は(ステップS654でNO)、ステップS652に戻る。一方、登録可能な場合には(ステップS654でYES)第2演算制御部21は図29のタスクレコード保存のサブルーチンを起動する(ステップS513)。第2演算制御部21は図30および図31の予約DB記録のサブルーチンを起動する(ステップS514)。
なお、ステップS513に入る前に、第2演算制御部21が第1演算制御部11に、「保存しますか?(Y/N)」のようなメッセージを表示して、ユーザーの意向の入力を受け付けるように指示しても良い。
ステップS505、ステップS506およびステップS507を省略して、図4に示した初期画面からタスク入力指示ボタン403の入力を受け付けた場合に(ステップS503)、図14のタスク入力画面に直接遷移しても良い。
図5の画面でタスクIDが選択された事を第1演算制御部11が受け付けた場合に、選択されたタスクIDのタスクレコードの修正を開始しても良い。具体的には、第2演算制御部21は終了可フラグと終了ボタンフラグの双方を設定した状態でステップS652から図33の処理を開始する。このフローにより、既に登録済のタスクレコードの修正を行うことができる。
第1演算制御部11が図4の初期画面で表示変更ボタン425の選択を受け付けた場合、図4に示した医師A、医師B、医師Cの予定を重点的に表示した画面から、検査技師D、検査技師Eの予定を重点的に表示した画面に切り替えるようにしても良い。同様に看護師の予定や医療機器の予定を重点的に表示するための表示変更ボタン425を設けても良い。
図4の初期画面は、ログオンしている人によって異なるようにしても良い。たとえば検査技師Dがログオンしている場合には、検査技師Dおよび検査技師Dが主に担当する医療機器の予定が表示される設定にすることが望ましい。このような設定により、ユーザーに合わせた情報を的確に表示するユーザーインターフェイスを実現できる。
本実施の形態においては、第2演算制御部21が図14のタスクの入力画面中の終了ボタン404の選択を明示的に受け付けた後に、ダブルブッキングチェックを行う。そのため第2演算制御部21の負荷が軽く、比較的能力の低いコンピュータをサーバー2に使用した場合でもスムーズに予約処理を行える。
[実施の形態3]
実施の形態3は、特殊な専門的技術を持ったスタッフの応援を求めたい場合に、他の部門または他の施設のスタッフの予約を行えるようにしたものである。図34は、実施の形態3の情報処理システム4の初期画面を示す説明図である。図35は、実施の形態3のタスク入力画面のイメージを示す説明図である。ここで特殊な専門的技術を持ったスタッフの応援を求めたい場合とは、たとえば直腸癌が子宮に浸潤している症例の手術を外科で行う際に、経験豊富な婦人科の医師にも参加を求めたい場合である。
図34および図35を参照して、本実施形態の情報処理システム4の動作を説明する。なお、実施の形態1と共通する部分の説明は省略する。
図34は、総合病院の外科の初期場面である。図34では、スケジュール一覧欄401の上部に複数の診療科の名称の所属タブ451が表示されている。図34は、外科に所属している人がログオンしている場合の初期画面であり、「外科」の所属タブ451が選択されている。図34では、外科に所属する医師A、医師B、医師Cの予定が一覧表示されている。また、検査技師D、放射線技師Eの予定の概略も一覧表示されている。「外科検査処置」の所属タブ451を選択すると、外科に所属する検査技師D、放射線技師Eおよびこの2名が主に担当する医療機器の予定が一覧表示される。「内科」「婦人科」「眼科」「小児科」の所属タブ451が選択されている場合には、各々の診療科の医師およびコメディカルの予定が一覧表示される。所属タブ451は、同一医療機関内の他の部門を対象にしても良いし、地域連携を行っている近隣の他の医療機関を対象にしても良い。
図34の初期画面を表示している場合に、第1演算制御部11がスケジュール一覧欄401上の行の選択とタスク入力指示ボタン403の選択とをこの順番で受け付けた場合、図5に示すように予約状況一覧421が表示される。ここで予約状況一覧421は、選択している所属タブ451が対象としている診療科の一覧が表示される。第1演算制御部11が新規追加ボタン422の選択を受け付けた場合、図35のタスク入力画面が表示される。
図35では、人欄409の上部に「外科」「内科」「婦人科」「眼科」「小児科」の診療科の名称の人選択タブ452が表示されている。図35は「外科」の人選択タブ452が選択されている状態を示す。「内科」「婦人科」「眼科」「小児科」の所属タブ451が選択されている場合には、各々の診療科の医師およびコメディカルの参加フラグ等の状態が一覧表示され、参加フラグ列は選択を受け付け可能な状態に設定される。
人欄409の下部には、応援欄453が表示されている。「外科」以外の人選択タブ452が選択されている場合に参加フラグが設定された医師およびコメディカルの所属、名前、参加開始時刻および参加終了時刻が応援欄453に表示される。
なお、所属タブ451および人選択タブ452の選択を受け付けた場合に、一覧表示する対象を切り替えるユーザーインターフェイスは公知なので、フローチャート等による詳細な説明は省略する。
入力を終了して、タスクDB254および予約DB253に入力内容を保存する場合には、第2演算制御部21が直接応援相手の予約を記録しても良いし、第2演算制御部21が応援相手のスケジュールを管理しているシステムに予約の確定と記録を依頼しても良い。また、予約を確定する前に、第2演算制御部21が応援相手のスケジュールを管理しているシステムに承認を求めても良い。
このようにすることで、他の診療科または医療機関の医師およびコメディカルの予定を、自部門の医師、コメディカルおよび医療機器の予約と併せて行うことができる。
[実施の形態4]
実施の形態4は、日常的に行う定型的なタスクを簡便に予約するユーザーインターフェイスを提供するものである。ここで、日常的に行う定型的なタスクとは、タスクIDを付与せず、タスクDB254に記録しないタスクをいう。以下では、医師の行う単位時間の「診察」を日常的に行う定型的なタスクとして説明する。図36および図37は、実施の形態4の画面のイメージを示す説明図である。
図4、図36および図37を参照して、実施の形態4の概要を説明する。情報処理システム4が起動された場合、第1表示部14に図4の初期画面が表示される。ID設定欄431への患者IDの入力または氏名設定欄432への患者氏名の入力を受け付けた場合、図36に示すように患者の患者ID、氏名、誕生日、年齢が患者情報欄433に表示される。
ID設定欄431内に表示された患者IDがスケジュール一覧欄401にドラッグアンドドロップされた場合、図37に示すようにドラッグアンドドロップ先の医師および時間に新規予約が入力される。
なお、ID設定欄431への患者IDの入力または氏名設定欄432への患者氏名の入力以外の操作を受け付けた場合には、実施の形態1等と同じ処理が実行される。
図38および図39は、実施の形態4の情報処理システム4の処理手順を示すフローチャートである。図38および図39を参照して、実施の形態4の情報処理システム4の処理の流れを説明する。
情報処理システム4が起動された場合、第2演算制御部21は第1演算制御部11に対して第1表示部14に図4に示す初期画面を出力するように指示する(ステップS501)。第1演算制御部11は、第1表示部14に図4に示す初期画面を出力する(ステップS502)。
第1演算制御部11は、ユーザーからの入力を受け付け(ステップS503)、通信により第2演算制御部21に受け付けた内容を伝達する。第2演算制御部21は伝えられた入力が患者名または患者IDの入力であるか否かを判定する(ステップS701)。患者名と判定するのは、氏名設定欄432への入力が行われた場合である。患者IDと判定するのは、ID設定欄431への入力が行われた場合である。患者名の入力でも、患者IDの入力でもない場合には(ステップS701でNO)、図22のステップS504以降と同じ処理を行う。患者名または患者IDの入力の場合には(ステップS701でYES)、第2演算制御部21は患者DB256を参照して患者の情報を取得する(ステップS702)。第2演算制御部21は患者情報欄433に患者の情報を表示するように第1演算制御部11に指示する(ステップS703)。ここで表示される患者の情報は、患者ID、氏名、生年月日および生年月日から算出した年齢である。
第1演算制御部11は、図36の患者情報欄433に示すように第1表示部14に患者の情報を出力する(ステップS704)。なお、第2演算制御部21が対象患者の検査データ、最近の診察記録、血液型、アレルギーまたは既往症等の情報を電子カルテから取り出して、生年月日等と一緒に患者情報欄433に表示するように第1演算制御部11に指示しても良い。
第1演算制御部11は、ユーザーが制御するポインタにより第1表示部14に表示されたID設定欄431内に表示された患者IDが選択され、選択された状態のままポインタがスケジュール一覧欄401上に動かされて選択が解除される、いわゆるドラッグアンドドロップ操作の受け付けを待つ(ステップS705)。第1演算制御部11は選択が解除された位置、すなわちドロップ先に表示されている医師名と時間帯を検出する(ステップS706)。これにより、一回のドラッグアンドドロップ操作で担当する医師と医療行為を実施する時間の2つの情報の入力受付が同時に行われる。ドロップ先が医師名では無い場合およびスケジュール一覧欄401以外の領域の場合には、第1演算制御部11はドラッグアンドドロップ操作を無視する。第1演算制御部11は、検出した時間帯および医師名を第2演算制御部21に伝達する。
第2演算制御部21は、予約DB253を参照して、伝達された時間帯の医師の予定の先約の有無を判定する(ステップS707)。先約の有無は、伝達された時間帯の指定された医師の患者IDフィールドが「0」であるか否かで判定する。先約がある場合には(ステップS707でYES)、第2演算制御部21は第1演算制御部11に先約があり予約を受け付けられない旨のメッセージの表示を指示する(ステップS708)。第1演算制御部11は第1表示部14にメッセージを出力し(ステップS709)、その後ステップS705に戻る。先約が無い場合には(ステップS707でNO)、第2演算制御部21は図30および図31に示した予約DB記録サブルーチンを起動して、入力された内容を予約DB253に反映させる(ステップS514)。この際、予約DB253の内容フィールドは「診察」、備考フィールドは空白とする。
第2演算制御部21は、第1演算制御部11に予約完了のメッセージ表示を指示する(ステップS711)。第1演算制御部11は、第1表示部14に予約が完了のメッセージを出力する(ステップS712)。第2演算制御部21は第1演算制御部11にスケジュール一覧欄401の更新を指示する(ステップS713)。第1演算制御部11は、第1表示部14にスケジュール一覧欄401を出力する(ステップS714)。その後処理を終了する。
日常的に行う定型的なタスクは、「診察」の代わりに「定期健診」「予防注射」等でも良い。情報処理システム4を使用する医療機関でもっとも実施頻度が高い定型的な業務を日常的に行う定型的なタスクとして扱うことで、情報処理システム4の負荷を低減して操作しやすいシステムを実現することができる。
ステップS705で受け付ける操作はドラッグアンドドロップ操作に限らない。たとえば、患者ID欄405とスケジュール一覧欄401の連続クリック、連続ダブルクリック、連続タップ等でも良い。なお、タップとはタッチパネル式の入力デバイスの操作方法の一種で、タッチパネル上を触る操作を意味する。また、たとえば「医師C、10時20分」の様な音声入力でも良いし、第1表示部14に表示された画面を指さす等のジェスチャー入力でも良い。
本実施の形態によれば、1つの操作で担当する医師と医療行為を実施する時間との入力が行われ、これを受け付けて予約を記録できる。したがって、日常的に行う定型的な予定を簡便に予約できるユーザーインターフェイスを提供できる。
[実施の形態5]
実施の形態5は、有名人や芸能人等、医療施設の窓口や待合室で名前を呼ばれたくない事情のある患者を仮名で扱うものである。図40は、実施の形態5の患者データベースのレコードレイアウトを示す説明図である。図41は、実施の形態5の画面のイメージを示す説明図である。
図41においては、医師Aが10時15分から診察する「すずき はなこ」氏は仮名である。画面を見る人が仮名であることを識別できるように、「すずき はなこ」氏の情報は他の患者の情報とは異なる書体で表示されている。この画面には「すずき はなこ」氏の実名は表示されないので、診察や精算等の呼び出しには仮名が使用され、患者のプライバシーが守られる。その一方、保険請求手続き等の実名で処理する必要がある場面では予め登録された実名が表示され、必要な処理をスムーズに行える。
図40に示す患者DB256は、図12の患者DB256に対して漢字実名およびかな実名のフィールドが追加されたものである。仮名を使用する患者の場合には、患者DB256の入力または更新の際に漢字氏名フィールドおよびかな氏名フィールドには仮名を記録し、漢字実名フィールドとかな実名フィールドに実名を記録する。なお、欧米人患者等の漢字名の無い患者が仮名を使用する場合には、漢字実名フィールドには患者名の原文表記またはよみがな表記を記録する。この場合には保険請求手続き等の公的手続きに必要な表記形式を採用することが望ましい。
図41の初期画面内のスケジュール一覧欄401に表示されるかな患者名を例にして、仮名を表示する場合の処理手順を説明する。
第2演算制御部21は、図6の予約DB253から表示を行う時間帯の予約レコードを取り出す。第2演算制御部21は、予約レコードに記録された患者IDをキーとして、患者レコードのかな実名フィールドにデータが記録されているか否かを判定する。かな実名フィールドにデータが記録されている場合には、その患者は仮名を使用している患者である。
第2演算制御部21は、予約レコードの記録に対応するように、タスクID、かな氏名、内容、備考の情報をそれぞれ配置してスケジュール一覧欄401に表示される情報を作成する。この際、仮名を使用している患者には通常の患者とは異なる書体を指定する。その後、第2演算制御部21は、スケジュール一覧欄401を含む画面を表示するように第1演算制御部11に指示する。第1演算制御部11は図41の画面を第1表示部14に出力する。
以上の処理により、図41に示すように、仮名を使用する患者の氏名は通常の患者とは異なる書体で表示される。
第2演算制御部21は、仮名を使用している患者の情報の書体を変える代わりに、色を変えたり、近傍にマークを付けたり、文字のサイズを変更したりして出力するように第1演算制御部11に指示しても良い。また、第2演算制御部21は、仮名の近傍に実名を併記して出力するように第1演算制御部11に指示しても良い。この場合には、待合室等で誤って実名を呼んでしまう事を避けるために、仮名よりも小さい文字や仮名よりも薄い文字等の、仮名に比べて読みにくい文字で実名を表示するように指示する事が望ましい。
第1演算制御部11が仮名を使用している患者の選択を受け付けた場合には、その患者の実名を第1表示部14の画面にポップアップ表示しても良い。この場合には、第2演算制御部21から第1演算制御部11に仮名を使用している患者の漢字実名フィールドまたはかな実名フィールドのデータを予め送っておく。実名を知る必要があるスタッフがログオンしている場合にのみ実名をポップアップ表示するように、第2演算制御部21が第1演算制御部11に指示する事により、仮名を使用する患者のプライバシー保護を確実に行える。また、実名を知る必要があるスタッフがログオンしている場合にのみ、第2演算制御部21から第1演算制御部11に仮名を使用している患者の漢字実名フィールドまたはかな実名フィールドのデータを送っても良い。
患者の実名を知る必要があるスタッフがログオンしている場合には、第2演算制御部21が第1演算制御部11に対して仮名の代わりに実名を出力するように指示しても良い。この場合には、第2演算制御部21は、仮名を使用する患者については漢字氏名フィールドのデータを漢字実名フィールドのデータに、かな氏名フィールドのデータをかな実名フィールドに置き換えて使用する。なお、書体、色、マーク等で通常は仮名を使用する患者であることを示すように指示するのが、仮名を使用する患者のプライバシー保護に有効である。
患者の実名を知る必要がある特定のスタッフ以外には仮名である事が識別できないように出力するように、第2演算制御部21が第1演算制御部11に指示しても良い。仮名を使用している事自体が一般のスタッフには秘匿されるので、プライバシーをより高いレベルで保護することができる。
本実施の形態によれば、医療機関で名前を呼ばれたく無い事情のある患者のプライバシーを尊重できる。
[実施の形態6]
実施の形態6は、学会、研究会、一般向けの講演活動、休暇等の医療行為以外の予定も医療行為と一括して管理するものである。図42は、実施の形態6の使用機器DB255のレコードレイアウトを示す説明図である。図43は、実施の形態6の画面のイメージを示す説明図である。
図42に示す使用機器DB255には、内容フィールドが「医療外」のレコードが含まれている。医療行為以外の予定を入力する際には、このレコードを使用する。
第2演算制御部21は、図23のタスク入力サブルーチンのステップS524で内容欄411に「医療外」の入力を受け付けたと判定した場合には、患者IDを「医療外」の行為を示す「999998」と設定する。その後は、ステップS524以降のフローチャートに従って処理を行ない、入力が完了した後にタスクレコードをタスクDB254および予約DB253に記録する。
図43にスケジュール一覧欄421の例を示す。検査技師Dの「医療外 ABC研究会」および医師Aの「午後半日休暇」が、通常の医療行為の予定と並べて表示されている。患者IDが「医療外」であることから、通常の医療行為とは別の活動であることを判別できる。なお、図43中の「ABC研究会」および「午後半日休暇」は各々のタスクレコードの備考フィールドに記録されている任意記載事項である。
患者IDの「999998」は例示であり、他の任意の値を割り当てる事ができる。ただし、患者IDとしては使用されない値を採用する。
本実施の形態によれば、医師またはコメディカルの医療行為以外の活動、具体的には学会、研究会、一般向けの講演活動、休暇等の予定を一括して管理できる。なお、休暇の予定を、勤怠等の労務管理のシステムと連携させても良い。
[実施の形態7]
図44は、実施の形態7の画面のイメージを示す説明図である。図44は、図14のタスク入力画面の代わりに使用する画面である。図44では、患者ID欄405の下に患者名欄414および検査データ欄415が設けられている。
本実施形態では、第1演算制御部11が患者名欄414への患者名の入力を受け付けた後、第2演算制御部21が患者DB256を参照して患者IDに変換する。第2演算制御部21の指示により、第1演算制御部11が患者ID欄405に患者IDを出力する。更に、同姓同名の患者等名前を取り違える可能性がある患者が居る場合には、その旨の注意を画面に表示しても良い。
検査データ欄415には、電子カルテから取り出した患者の検査データが表示される。ここで表示される検査データは、検査や手術の際に共通して必要な感染症検査の結果である。
本実施の形態によれば、タスクレコードの入力中に患者の名前や検査データが表示されるので、使い勝手の良いユーザーインターフェイスを実現できる。
[実施の形態8]
小規模な情報処理システム4の場合には操作端末1に搭載されたハードディスクドライブ等の大容量記憶装置をサーバー2の第2大容量記憶部25として使用しても良い。この場合には、第1演算制御部11が第2演算制御部21を兼ねる。この様な構成により、1台のコンピュータで情報処理システム4を構築可能である。
複数の操作端末1をネットワーク3で接続して、ネットワーク3に接続したNAS(Network Attached Storage)を第2大容量記憶部25として使用しても良い。この場合には、第1演算制御部11が第2演算制御部21を兼ねる。この様な構成により、汎用のパソコンで情報処理システム4を構築でき、専用のサーバー2は不要となるので、安価な情報処理システム4を構築できる。
操作端末1では必要最低限の処理のみを行い、ネットワーク3で接続したサーバー2のCPUで以下に述べる入出力操作の制御を行なういわゆるシンクライアント型の構成を採用しても良い。DB内のデータの外部への持ち出しを防止等の情報セキュリティ対策を行いやすくなる。更に、操作端末1の増設等のシステム拡張時の追加投資を低く抑えることもできる。更に、サーバー2のCPUおよび大容量記憶装置として、ネットワーク上のいわゆるクラウドサービスを使用しても良い。
[実施の形態9]
実施の形態9は、入力中のタスクと既存の予約との間に重複が発生している場合に、参加開始時刻が異なれば重複予約を可能とするものである。図45および図46は、実施の形態9の予約DB253のイメージを示す説明図である。図47および図48は、実施の形態9のタスク入力画面のイメージを示す説明図である。図49は,実施の形態9の予約DB253のイメージを示す説明図である。なお、本実施形態の予約DB253の構造は図6から図9に示したものと同一であり、図45、図46、図49では医師Cの部分を切り取って示している。
図45および図46を使用して、本実施形態の予約DB253の記録状態を説明する。図45に示すように、医師Cには10時35分から11時15分まで患者ID「BBBBBB」の患者の右鼠頸部ヘルニアの手術の予定が入っている。しかし、手術と平行して、10時45分から患者ID「DDDDDD」の診察も平行して行う必要が生じた場合について説明する。10時45分からの10分間であれば、患者ID「BBBBBB」の手術は他の担当医師だけで対応できるため、医師Cが手術室を離れても問題は生じない。このような場合に、図46に示すように、10時45分から「DDDDDD」の診察を予約する。
図47および図48を使用して、本実施形態の予約の入力方法を説明する。図47では、10時35分から10時45分までの10分間、患者ID「DDDDDD」の診察の予約を行おうとしている。しかし、既存の予約である患者ID「BBBBBB」の右鼠頸部ヘルニア手術と参加開始時刻の10時35分が一致しているので、予約を受け付けられない旨のメッセージが表示されている。
一方、図48では、10時45分から10時55分までの10分間、患者ID「DDDDDD」の診察の予約を行おうとしている。既存の予約である患者ID「BBBBBB」の右鼠頸部ヘルニア手術重複する時間帯であるが、両者の参加開始時刻が一致していないので、予約の強行可否を問い合わせる旨のメッセージが表示されている。ここで第2演算制御部21が「はい」の選択を受け付けると、患者ID「DDDDDD」の予約が確定し、予約DB253には図46に示すように記録される。予約DB253の記録だけからは、患者ID「DDDDDD」の診察の終了予定時間はわからないが、医師Cの予定に先約がある事は判る。患者ID「DDDDDD」の診察の終了時間は、タスクDB254からタスクレコードを取り出せば確認することができる。タスクDB254に患者ID「DDDDDD」に対応するタスクレコードが記録されていない場合には、単位時間の診察であることがわかる。したがって、問題は生じない。
事前に、図49に示すように、医師Cが10時45分から10時50分までの10分間、患者ID「DDDDDD」の診察を行う予定が入っている場合についても、同様にして、患者ID「BBBBBB」の右鼠頸部手術を予約する事ができる。この場合も、患者ID「BBBBBB」の予約後の予約DB254は、図46に示す状態になる。
図50は、実施の形態9の情報処理システム4の処理手順を示すフローチャートである。図50を参照して、本実施形態の情報処理システム4の処理の流れを説明する。なお、図22と共通する部分の説明は省略する。処理開始から第2演算制御部21が終了ボタンフラグの状態を判定する(ステップS510)までは、図22と共通である。終了ボタンフラグが設定されていない場合には(ステップS510でNO)、第2演算制御部21はダブルブッキングチェックのサブルーチンを起動する(ステップS851)。ダブルブッキングチェックのサブルーチンは、入力中のタスクの医師、コメディカルおよび医療機器の予定と予約DB253に記録されている既存の予約との重複の有無を判定し、必要な場合には重複登録を許可するサブルーチンである。ダブルブッキングチェックのサブルーチン内の処理については後述する。
第2演算制御部21は、重複フラグの状態を判定する(ステップS852)。重複フラグは、重複予約の許容可否を示すフラグである。重複フラグが設定されている場合には、ダブルブッキングチェックのサブルーチンで重複予約を許容するという設定が行われた事を示す。第2演算制御部21は、重複フラグが設定されていると判定した場合には(ステップS852でYES)タスクレコード保存のサブルーチンを起動する(ステップS513)。タスクレコード保存のサブルーチンは、図29に示したものと同一である。その後、第2演算制御部21は予約DB記録のサブルーチンを起動する(ステップS853)。その後処理を終了する。予約DB記録のサブルーチンは、入力中のタスクの内容を重複予約分も含めて予約DB253に反映させるサブルーチンである。予約DB記録のサブルーチン内の処理については後述する。
第2演算制御部21が、重複フラグが設定されていないと判定した場合には(ステップS852でNO)、第2演算制御部21は終了可フラグの設定または解除を行う(ステップS512)。具体的には、入力中のタスクが登録可能な状態であれば、第2演算制御部21は終了可フラグを設定する。登録不可能な状態であれば、第2演算制御部21は終了可フラグを解除する(ステップS512)。その後ステップS509に戻る。
図51および図52は、実施の形態9のダブルブッキングチェックの処理手順を示すフローチャートである。前述の通り、ダブルブッキングチェックのサブルーチンは、入力中のタスクの医師、コメディカルおよび医療機器の予定と予約DB253に記録されている既存の予約との重複の有無を判定し、必要な場合には重複登録を許可するサブルーチンである。図51および図52を参照して、ダブルブッキングチェックのサブルーチンの処理の流れを説明する。なお、図28および図29と共通する部分の説明は省略する。処理開始から第2演算制御部21が入力中のタスクの終了時間まで確認を完了したか否かを判定する(ステップS609)までは、図28と共通である。完了していない場合には(ステップS609でNO)、カウンタIに1を加えて(ステップS610)、ステップS605に戻る。
タスクリスト内のすべてのタスクの確認が終わっていれば(ステップS609でYES)、第2演算制御部21は「警告機器リスト」および「警告人リスト」が空であるか否かを判定する(ステップS671)。両方のリストが空で無い場合には(ステップS671でYES)、第2演算制御部21は第1演算制御部11に対してメッセージの表示を指示する(ステップS672)。メッセージの内容は、入力中のタスクは登録可能である旨である。第1演算表示部11は第1表示部14に指示されたメッセージを出力し(ステップS673)、その後ダブルブッキングチェックのサブルーチンは終了する。
「警告機器リスト」または「警告人リスト」が空では無い場合には(ステップS671でNO)、第2演算制御部21は既存の予約と入力中の予約の最初の単位時間が重複しているか否かを判定する(ステップS722)。最初の単位時間が重複している事は、入力中のタスクの最初の単位時間に、既に患者IDが記録されている事により判定する。最初の単位時間が重複している場合には(ステップS722でYES)、第2演算制御部21は第1演算制御部11に、予約を受け付けられない旨のメッセージの表示を指示する(ステップS723)。第1演算制御部11は第1表示部14に図47に示すように予約を受け付けられない旨のメッセージを出力し(ステップS724)、ダブルブッキングチェックのサブルーチンは終了する。
最初の単位時間が重複していない場合には(ステップS722でNO)、第2演算制御部21は第1演算制御部11に、予約の強行可否の問い合わせを指示する(ステップS725)。第1演算制御部11は、第1表示装置14に図49に示すように予約強行の可否を問い合わせるメッセージを出力する(ステップS726)。第1演算制御部11は、入力を受け付けたら(ステップS727)、受け付けた内容を第2演算制御部21に伝達する。第2演算制御部21は、受け付けた内容が予約の強行を可とするか否とするかを判定する(ステップS728)。
予約の強行を可とする入力を受け付けたと判定した場合は(ステップS728でYES)、第2演算制御部21は重複フラグを設定し(ステップS729)、ダブルブッキングチェックのサブルーチンは終了する。予約の強行を可とする入力を受け付けていない判定した場合は(ステップS728でNO)、第2演算制御部21は重複フラグを解除し(ステップS730)、ダブルブッキングチェックのサブルーチンは終了する。
図53および図54は、実施の形態9の予約DB記録の処理手順を示すフローチャートである。前述の通り、予約DB記録のサブルーチンは、入力中のタスクの内容を重複予約分も含めて予約DB253に反映させるサブルーチンである。図53および図54を参照して、予約DB記録のサブルーチンの処理の流れを説明する。なお、図30から図33と共通する部分の説明は省略する。
第2演算制御部21は、カウンタIを1に設定し、中断タスクリストを空白に初期化する(ステップS861)。第2演算制御部21は、予約DB253から入力中のタスクレコードのI番目の参加者の参加開始時刻を含む予約レコードを取り出す(ステップS862)。第2演算制御部21は、予約レコードを取り出した時間帯にI番目の参加者が他のタスクに参加中であるか否かを判定する(ステップS863)。参加している事は、I番目の参加者の患者IDフィールドが、前の時間帯の「999999」が記録されていることにより判定する。参加中と判定した場合は(ステップS863でYES)、第2演算制御部21は予約DB253の記録を参加中のタスクの開始時間帯まで遡って調べ、先約のタスクの患者ID、内容、備考を、中断タスクリストに記録する(ステップS864)。なお、中断タスクリストへの記録は、既に記録されている内容への追加記録で行う。
参加中ではないと判定した場合(ステップS863でNO)およびステップS864の終了後に、第2演算制御部21は取り出した予約レコード中のI番目の人のフィールドに、入力中のタスクの患者ID、内容、備考を記録する(ステップS865)。
第2演算制御部21は、予約DB253から次の時間帯の予約レコードを取り出す(ステップS866)。第2演算制御部21は、予約レコードを取り出した時間帯はI番目の参加者が入力中のタスクに参加中の時間帯であるか否かを判定する(ステップS867)。参加中の時間帯の場合には(ステップS867でYES)、第2演算制御部21はステップS866で取り出した予約レコードのI番目の参加者の患者IDフィールドに患者IDの記録があるか否かを判定する(ステップS868)。記録がある場合には(ステップS868でYES)、第2演算制御部21は予約レコード中のI番目の参加者を示すフィールドに記録されている患者ID、内容、備考を、中断タスクリストに記録する(ステップS869)。なお、中断タスクリストへの記録は、既に記録されている内容への追加記録で行う。記録が無い場合には(ステップS868でNO)、第2演算制御部21は予約レコード中のI番目の参加者の患者IDフィールドに「999999」を記録する(ステップS870)。ステップS869またはステップS870の終了後、ステップS866に戻る。
ステップS866で予約レコードを取り出した時間帯が、入力中のタスクに参加中の時間帯ではない場合には(ステップS867でNO)、第2演算制御部21は入力中のタスクに参加する人全員の処理が終了したか否かを判定する(ステップS871)。全員の処理が終了していないと判定した場合には(ステップS871でNO)、カウンタIに1を加算して(ステップS872)、ステップS862に戻る。
全員の処理が終了したと判定した場合には(ステップS871でYES)、第2演算制御部21は入力中のタスクに使用する医療機器の予約を予約DB253に記録する(ステップS872)。医療機器の予約については、図31のステップS631からステップS635と同一なので説明を省略する。医療機器の予約の記録が終了したら、第2演算制御部21は予約DB253を保存する(ステップS873)。第2演算制御部21は、中断タスクリストを出力し(ステップS874)、約DB記録のサブルーチンは終了する。なお、中断タスクリストの出力先は、第2大容量記憶部25でも良いし、第2表示部24のプリンタ等の出力装置でも良い。
本実施の形態によれば、隙間時間を有効活用して多くの患者の診断、治療等の医療行為を行えるように予定を立てる事ができる。
[実施の形態10]
実施の形態10は、重複予約を行った場合に、先に実施していたタスクに戻って来る予定の時間帯を予約DB253に記録するものである。図55は、実施の形態10の予約DB253のイメージを示す説明図である。
図55を使用して、本実施形態の予約DB253の記録状態を説明する。図55は、実施の形態9と同様の予定を示している。すなわち、10時35分から11時15分まで患者ID「BBBBBB」の患者の右鼠頸部ヘルニアの手術の予定が入っている医師Cが、手術と平行して10時45分から10時55分に患者ID「DDDDDD」の診察も平行して行う。図55では、10時55分の予約レコードに、医師Cが患者ID「BBBBBB」の手術に参加する事が記録されている。すなわち、10時45分に一度患者「BBBBBB」の右鼠頸部ヘルニアの手術から離脱する医師Cが、10時55分に同じ手術に戻って来るという予定がわかる。なお、この内容が図4に示す情報処理システム4の初期画面のスケジュール一覧欄401に表示される。
図56および図57は、実施の形態10の予約DB記録の処理手順を示すフローチャートである。図56および図57に示すサブルーチンは、図53および図54に示すサブルーチンの代わりに使用するものである。図56および図57を参照して、予約DB記録のサブルーチンの処理の流れを説明する。なお、図53および図54と共通する部分の説明は省略する。
処理開始からI番目の人の患者IDフィールドに「999999」を記録する(ステップS870)までは、図53および図54の処理と同一である。第2演算制御部21は、入力中のタスクに参加中の時間帯ではないと判定した場合には(ステップS867でNO)、ステップS866で取り出した予約レコードのI番目の参加者の患者IDフィールドに「999999」の記録があるか否かを判定する(ステップS881)。記録があると判定した場合には(ステップS881でYES)、第2演算制御部21はステップS866で取り出した予約レコード中のI番目の参加者を示すフィールドに、最後にステップS869を通過した際に中断タスクリストに記録した事項を複写する(ステップS882)
「999999」の記録がないと判定した場合(ステップS881でNO)およびステップS882の終了後に、第2演算制御部21は入力中のタスクに参加する人全員の処理が終了したか否かを判定する(ステップS871)。以後は図53および図54の「処理と同一である。
本実施形態によれば、重複予約から戻る時間帯をスケジュール一覧欄401に表示する情報処理システム4を実現できる。
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。