(57)【要約】【課題】  複数のサーバ間で、各サーバが処理に使用するデータを同期させることができるプログラム、データ同期方法及びデータ同期装置を提供する。【解決手段】  複数のＷＥＢサーバ２００から、各ＷＥＢサーバ２００の記憶する保険点数情報のうち、更新日時が最も新しい保険点数情報の更新日時情報を取得し、取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した更新日時情報に対応するデータを、複数のサーバで処理に使用するデータに決定するデータ取得部２７４と、決定したデータの更新日時情報を出力する出力部２７６とを備える。【選択図】        図４
2014235712.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得し、取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定し、前記決定したデータの前記更新日時情報を出力する処理をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記出力する処理は、前記決定したデータの更新日時情報を記憶し、サーバからの要求により、該要求のあったサーバに前記更新日時情報を送信する管理装置に、前記決定したデータの更新日時情報を送信する処理であることを特徴とする請求項１記載のプログラム。
【請求項３】
前記管理装置に、前記更新日時情報が記憶されているか否かを問い合わせ、前記管理装置に前記更新日時情報が記憶されていない場合に、前記複数のサーバに、前記更新日時が最も新しいデータの更新日時情報の取得を要求することを特徴とする請求項２記載のプログラム。
【請求項４】
複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得するステップと、
前記取得するステップで取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定するステップと、
前記決定したデータの前記更新日時情報を出力するステップと、
を有することを特徴とするデータ同期方法。
【請求項５】
複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得する取得手段と、
前記取得手段で取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定する選択手段と、
前記決定したデータの前記更新日時情報を出力する出力手段と、
を備えることを特徴とするデータ同期装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、データ同期方法及びデータ同期装置に関する。
【背景技術】
【０００２】
ネットワークを利用してクライアント端末からのリクエストを処理するサーバシステムでは、複数のクライアント端末からのリクエストを複数のサーバに分散させることで負荷分散を行っている。
【０００３】
特許文献１には、記憶サブシステムのデータ二重化方法において、データの整合性を保証する技術が開示されている。特許文献２には、サーバに負荷をかけずに、ユーザが監視するファイルの更新状態を迅速に知ることができるワールドワイドウェブブラウザ装置が開示されている。特許文献３には、クライアント・サーバ型データベースにおいて、クライアントがサーバにアクセスする際のネットワークの使用率を少なくする技術が開示されている。特許文献４には、一度のデータ同期で大量の情報を送受信することがないように、適当なデータ送信量でのデータ同期を自動的に開始することで、通信時間の増大やデータ同期中のエラーの起こる可能性を抑えるデータ同期システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２８２６２８号公報
【特許文献２】特開２００１−２５６１００号公報
【特許文献３】特開平９−５４７１９号公報
【特許文献４】特開２００４−８６８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のサーバでクライアント端末からのリクエストを処理する場合、各サーバが記憶する、リクエストを処理するためのデータを同期させておかないと、リクエストを処理するサーバによって異なる処理結果が生じる場合がある。
【０００６】
１つの側面では、本発明は、複数のサーバ間で、各サーバが処理に使用するデータを同期させることができるプログラム、データ同期方法及びデータ同期装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、プログラムは、複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得し、取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定し、前記決定したデータの前記更新日時情報を出力する処理をコンピュータに実行させる。
【０００８】
１つの態様では、データ同期方法は、複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得するステップと、前記取得するステップで取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定するステップと、前記決定したデータの前記更新日時情報を出力するステップとを有する。
【０００９】
１つの態様では、データ同期装置は、複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得する取得手段と、前記取得手段で取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定する選択手段と、前記決定したデータの前記更新日時情報を出力する出力手段とを備える。
【発明の効果】
【００１０】
複数のサーバ間で、各サーバが処理に使用するデータを同期させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態のシステム構成の一例を示す図である。
【図２】点数マスタファイル及びＷＥＢ点数ファイルの一例を示す図である。
【図３】ＷＥＢサーバ、クライアント端末及びＡＰサーバの備えるハードウェアの一例を示す図である。
【図４】ＷＥＢサーバの制御部が備える機能ブロックの一例を示す図である。
【図５】ＡＰサーバの制御部が備える機能ブロックの一例を示す図である。
【図６】ＷＥＢサーバで保険点数の計算を行う場合の処理手順を示すシーケンス図である。
【図７】ＷＥＢサーバのＨＤＤが記憶するＷＥＢ点数ファイルの一例を示す図である。
【図８】ＡＰサーバで保険点数の計算を行う場合の処理手順を示すシーケンス図である。
【図９】ＤＢサーバの記憶する点数マスタファイルを更新する場合の処理手順を示すシーケンス図である。
【図１０】（Ａ）は更新前の点数マスタファイルに登録された保険点数情報の一例を示す図であり、（Ｂ）は更新後の点数マスタファイルに登録された保険点数情報の一例を示す図である。
【図１１】ＷＥＢサーバの記憶する保険点数情報を更新する場合の処理手順を示すシーケンス図である。
【図１２】（Ａ）はＤＢサーバの記憶する点数マスタファイルの一例を示す図であり、（Ｂ）はＷＥＢサーバの記憶するＷＥＢ点数ファイルの一例を示す図である。
【図１３】保険点数の計算に使用する保険点数情報の更新日時を同期させる場合の処理手順を示すシーケンス図である。
【図１４】ＷＥＢサーバの起動時の処理手順を示すシーケンス図である。
【図１５】クライアント端末の表示装置に表示される画面の一例を示す図であり、ＷＥＢサーバが選択された場合に表示される画面の一例を示す図である。
【図１６】クライアント端末の表示装置に表示される画面の一例を示す図であり、更新日時管理装置が選択される場合の一例を示す図である。
【図１７】クライアント端末から保険点数の計算指示を受け付けたＷＥＢサーバの処理手順を示すフローチャートである。
【図１８】クライアント端末から保険点数の計算指示を受け付けて、ＡＰサーバに保険点数の計算を行わせる場合のＷＥＢサーバの処理手順を示すフローチャートである。
【図１９】ＷＥＢサーバからの保険点数の計算要求を受け付けたＡＰサーバの処理手順を示すフローチャートである。
【図２０】クライアント端末から点数マスタファイルの更新指示を受け付けたＷＥＢサーバの処理手順を示すフローチャートである。
【図２１】ＷＥＢサーバから点数マスタファイルの更新指示を受け付けたＡＰサーバの処理手順を示すフローチャートである
【図２２】ＷＥＢ点数ファイルを更新する場合のＷＥＢサーバの処理手順を示すフローチャートである。
【図２３】ＷＥＢサーバから保険点数情報の取得要求を受け付けたＡＰサーバの処理手順を示すフローチャートである。
【図２４】クライアント端末から同期処理の指示を受け付けたＷＥＢサーバの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
まず、図１を参照しながら本実施形態のシステム構成の一例について説明する。図１に、本実施形態のシステム構成の一例を示す。本実施形態は、ネットワーク５０に、複数のクライアント端末１００ａ〜１００ｍ（ｍは任意の自然数）と、複数のサーバ装置と、更新日時管理装置５００とを接続した構成を備える。複数のサーバ装置は、複数のＷＥＢ（ウェブ）サーバ２００ａ〜２００ｎ（ｎは任意の自然数）と、複数のＡＰ（アプリケーション）サーバ３００ａ〜３００ｋ（ｋは任意の自然数）と、ＤＢ（データベース）サーバ４００とを備える。ネットワーク５０は、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）やＶＰＮ（Virtual Private Network）などの任意の種類の通信網を採用することができる。なお、以下では、クライアント端末１００ａ〜１００ｍを総称して呼ぶ場合に、クライアント端末１００と表記する。同様に、ＷＥＢサーバ２００ａ〜２００ｎ、ＡＰサーバ３００ａ〜３００ｋについても、ＷＥＢサーバ２００、ＡＰサーバ３００と表記する。
【００１３】
クライアント端末１００は、例えば、医療機関に設置される端末である。クライアント端末１００は、操作者によって入力された診療データをＷＥＢサーバ２００に送信して、ＷＥＢサーバ２００に保険点数の計算等の会計処理を依頼する。なお、診療データには、例えば、患者の氏名、生年月日等の患者情報、処方された薬、採血等の検査の有無、レントゲン等の画像撮影の有無、注射、手術等の患者に対して行われた診療行為及びその結果のデータ等が含まれる。また、クライアント端末１００は、ＷＥＢサーバ２００に、点数マスタファイルの更新指示、保険点数情報の取込み指示、同期処理の指示等の指示を送る。これらの指示の詳細については後述する。
【００１４】
ＷＥＢサーバ２００は、クライアント端末１００からの指示により、保険点数の計算、点数マスタファイルの更新処理、保険点数情報の取込み処理、同期処理等の処理を行う。
【００１５】
ＡＰサーバ３００は、ＤＢサーバ４００へのデータ保存、ＤＢサーバ４００からのデータの読み出し等を行う。また、ＡＰサーバ３００は、ＷＥＢサーバ２００からの要求により、保険点数の計算等の処理を行う。
【００１６】
ＤＢサーバ４００は、点数マスタファイル、各ＷＥＢサーバ２００のＩＰアドレス等を記憶する。図２に、点数マスタファイルの一例を示す。点数マスタファイルとは、医療費算定の基礎となる個々の診療行為の保険点数を記録したファイルである。点数マスタファイルには、版数、更新日時、診療行為コード、診療行為省略名称、点数情報等の情報が含まれる。なお、以下では、版数と、更新日時と、診療行為コードと、診療行為省略名称と、点数情報とを少なくとも含む情報の集まりを保険点数情報と呼ぶ。また、保険点数情報の集まりを点数マスタと呼び、この点数マスタを登録したファイルを点数マスタファイルと呼ぶ。版数は、保険点数情報が更新された回数を示している。版数の値が大きいものほど、更新日時が新しい保険点数情報であることを示している。更新日時は、対応する保険点数情報の直近の更新日時を示している。診療行為コードは、各診療行為を識別するコードを示す。診療行為コードは、例えば、９桁の数字で表される。診療行為省略名称は、診療行為コードが示す診療行為の省略名称を示している。点数情報は、診療行為ごとの保険点数を示す。
【００１７】
更新日時管理装置５００は、更新日時情報を記憶する。更新日時情報は、ＷＥＢサーバ２００又はＡＰサーバ３００が保険点数の計算に使用する保険点数情報の更新日時を示している。ＷＥＢサーバ２００又はＡＰサーバ３００は、保険点数の計算の際に、更新日時管理装置５００から更新日時情報を取得し、取得した更新日時情報の示す更新日時の保険点数情報を使用して保険点数の計算を行う。
【００１８】
次に、図３を参照しながら、クライアント端末１００、ＷＥＢサーバ２００及びＡＰサーバ３００の備えるハードウェアの一例を説明する。なお、クライアント端末１００、ＷＥＢサーバ２００及びＡＰサーバ３００は、ほぼ同一のハードウェア構成を備えているので、以下の説明では、代表してＷＥＢサーバ２００のハードウェア構成について説明する。また、図３に示す括弧内の数字は、クライアント端末１００とＡＰサーバ３００との備えるハードウェアに付した番号をそれぞれ示している。
【００１９】
ＷＥＢサーバ２００は、制御部２１０を備える。制御部２１０は、ＣＰＵ（Central Processing Unit）２１１、ＲＯＭ（Read Only Memory）２１２、ＲＡＭ（Random Access Memory）２１３を備える。ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３の各部は、バス２６０に接続している。ＲＯＭ２１２には、ＣＰＵ２１１が制御に使用する制御プログラム等が保存されている。ＣＰＵ２１１は、制御プログラムをＲＯＭ２１２又はハードディスク装置（以下、ＨＤＤと表記する）２５０から読み出してＲＡＭ２１３に記憶させる。その後、ＣＰＵ２１１は、ＲＡＭ２１３に記憶させた制御プログラムに従って処理（演算）を行う。ＲＡＭ２１３は、ＣＰＵ２１１のワークメモリとして使用され、ＣＰＵ２１１が演算に使用するデータや、ＣＰＵ２１１による演算後のデータ等を記憶する。ＣＰＵ２１１、ＲＡＭ２１３などのハードウェアと、制御プログラムとの協働によって実現される機能ブロックについては、図４を参照しながら後述する。
【００２０】
ＷＥＢサーバ２００は、入力装置２２１と、入力インターフェース（以下、インターフェースをＩ／Ｆと略記する）２２２とを備える。入力Ｉ／Ｆ２２２は、入力装置２２１と、バス２６０とに接続している。入力装置２２１は、マウス、キーボード等の入力デバイスである。入力装置２２１がユーザによって操作されると、入力装置２２１は、受け付けた操作内容を示す操作情報を、入力Ｉ／Ｆ２２２を介して制御部２１０に送る。入力Ｉ／Ｆ２２２は、入力装置２２１から操作情報を入力し、入力した操作情報を、バス２６０を介して制御部２１０に送る。
【００２１】
ＷＥＢサーバ２００は、グラフィックＩ／Ｆ２３２と、表示装置２３１とを備える。グラフィックＩ／Ｆ２３２は、バス２６０と表示装置２３１とに接続している。グラフィックＩ／Ｆ２３２は、制御部２１０で処理されたグラフィックデータを表示装置２３１に表示させるためのインターフェースである。グラフィックＩ／Ｆ２３２は、制御部２１０から受け取ったグラフィックデータを波形電気信号に変換して表示装置２３１に送る。
【００２２】
ＷＥＢサーバ２００は、ネットワークＩ／Ｆ２４０を備える。ネットワークＩ／Ｆ２４０は、バス２６０と、ネットワーク５０とに接続する。ネットワークＩ／Ｆ２４０は、制御部２１０から送られたデータを入力し、入力したデータを、ネットワーク５０を介してクライアント端末１００、ＡＰサーバ３００又は他のＷＥＢサーバ２００に送信する。また、ネットワークＩ／Ｆ２４０は、ネットワーク５０を介してクライアント端末１００、ＡＰサーバ３００又は他のＷＥＢサーバ２００から受信したデータを制御部２１０に出力する。
【００２３】
ＷＥＢサーバ２００は、ＨＤＤ２５０を備える。ＨＤＤ２５０は、ＣＰＵ２１１が制御に使用する制御プログラムや、図２に示す点数マスタファイルを記憶する。なお、以下では、ＷＥＢサーバ２００のＨＤＤ２５０が記憶する点数マスタファイルをＷＥＢ点数ファイルと呼び、ＤＢサーバ４００の記憶する点数マスタファイルと区別できるようにする。ＤＢサーバ４００の記憶する点数マスタファイルと、ＷＥＢサーバ２００の記憶するＷＥＢ点数ファイルとは同一のファイルである。しかし、ＤＢサーバ４００の点数マスタファイルは更新されたが、ＷＥＢサーバ２００のＷＥＢ点数ファイルは更新されていない場合、両ファイルは、一致しない場合がある。すなわち、ＷＥＢサーバ２００が、ＤＢサーバ４００から更新された保険点数情報を取得しないと、ＷＥＢ点数ファイルには、更新された新しい保険点数情報が登録されていないことになる。
なお、図３には、記憶装置の一例としてＨＤＤ２５０を示したが、ハードディスク装置に限定されるものではない。例えば、コンピュータで読み込み可能なフレキシブルディスク（ＦＤ）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ等の可搬記憶媒体でもよい。また、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、光磁気ディスク、ＩＣカードなどの可搬記憶媒体であってもよい。
【００２４】
次に、図４を参照しながらＷＥＢサーバ２００の備える機能ブロック２７０について説明する。機能ブロック２７０とは、制御部２１０のＣＰＵ２１１、ＲＡＭ２１３などのハードウェアと、制御プログラムとの協働によって実現される処理を、一連の処理で実現される機能ごとにまとめたブロックである。ＷＥＢサーバ２００は、機能ブロック２７０として、入力部２７１と、要求解析部２７２と、更新要求部２７３と、データ取得部２７４と、点数計算処理部２７５と、出力部２７６とを備える。
【００２５】
入力部２７１は、クライアント端末１００、ＡＰサーバ３００又は他のＷＥＢサーバ２００から送信され、ネットワークＩ／Ｆ２４０で受信したデータを入力する。入力部２７１は、入力したデータを要求解析部２７２に出力する。
【００２６】
要求解析部２７２は、入力部２７１が出力したデータを入力する。要求解析部２７２は、入力したデータを解析し、入力したデータの出力先を、解析結果に応じて更新要求部２７３、データ取得部２７４、点数計算処理部２７５のいずれかに変更する。
【００２７】
更新要求部２７３は、要求解析部２７２の出力したデータを入力する。更新要求部２７３は、入力したデータにクライアント端末１００から送られた点数マスタファイルの更新指示が含まれる場合、ＡＰサーバ３００に送る、点数マスタファイルの更新要求を生成する。この更新要求には、クライアント端末１００から送られた、更新する保険点数情報が含まれる。更新要求部２７３は、生成した更新要求と、更新する保険点数情報とを含むデータを出力部２７６に出力する。出力部２７６は、更新要求部２７３から入力したデータを、ネットワークＩ／Ｆ２４０を介してＡＰサーバ３００に送信する。ＡＰサーバ３００は、ＷＥＢサーバ２００から点数マスタファイルの更新要求と、更新する保険点数情報とを入力すると、入力した保険点数情報をＤＢサーバ４００に送り、ＤＢサーバ４００に登録する。保険点数情報のＤＢサーバ４００への登録が完了すると、ＡＰサーバ３００は、更新の完了を通知する情報（以下、更新完了通知と呼ぶ）をＷＥＢサーバ２００に送信する。更新要求部２７３は、ＡＰサーバ３００から送られた更新完了通知を入力すると、クライアント端末１００に送信する更新完了通知を生成して、出力部２７６に出力する。
【００２８】
データ取得部２７４は、要求解析部２７２の出力したデータを入力する。データ取得部２７４が要求解析部２７２から入力するデータには、クライアント端末１００から送られた、保険点数情報の取込み指示がある。取込み指示とは、ＤＢサーバ４００の点数マスタファイルに登録され、ＷＥＢサーバ２００のＷＥＢ点数ファイルには登録されていない保険点数情報を、ＷＥＢサーバ２００にＤＢサーバ４００から取得させる指示である。データ取得部２７４は、ＨＤＤ２５０のＷＥＢ点数ファイルを参照して、更新日時が最も新しい保険点数情報の更新日時情報を取得する。データ取得部２７４は、更新日時情報を取得すると、ＡＰサーバ３００に送る保険点数情報の取得要求を生成する。データ取得部２７４は、生成した取得要求に、取得した更新日時情報を付加したデータを出力部２７６に出力する。出力部２７６は、データ取得部２７４から入力したデータをネットワークＩ／Ｆ２４０を介してＡＰサーバ３００に送信する。
データ取得部２７４は、取得要求に対する応答として、ＡＰサーバ３００から送られた保険点数情報を入力すると、入力した保険点数情報をＨＤＤ２５０の記憶するＷＥＢ点数ファイルに登録する。
【００２９】
また、データ取得部２７４が要求解析部２７２から入力するデータには、クライアント端末１００から送られる、同期処理の指示がある。同期処理の指示とは、各ＷＥＢサーバ２００が保険点数の計算に使用する保険点数情報を同期させる指示である。すなわち、各ＷＥＢサーバ２００が、保険点数の計算に使用する保険点数情報の更新日時を一致させる処理である。この同期処理は、例えば、各ＷＥＢサーバ２００に割り当てられたＩＰアドレスのうち、ＩＰアドレスの値が最も小さいＷＥＢサーバ２００が実行する。ＷＥＢサーバ２００は、更新日時管理装置５００からＩＰアドレスを取得し、自身のＩＰアドレスよりも値の小さいＩＰアドレスのＷＥＢサーバ２００にｐｉｎｇコマンドを送信する。送信したｐｉｎｇコマンドに対する応答がＷＥＢサーバ２００からあった場合には、自身よりもＩＰアドレスの値の小さいＷＥＢサーバ２００が存在する。この場合、ｐｉｎｇコマンドを送信したＷＥＢサーバ２００は、同期処理を行わない。また、ｐｉｎｇコマンドを送信したＷＥＢサーバ２００からの応答がない場合、自身よりもＩＰアドレスの値の小さいＷＥＢサーバ２００が起動状態にないことになる。この場合、ｐｉｎｇコマンドを送信したＷＥＢサーバ２００が同期処理を実行することになる。
【００３０】
データ取得部２７４は、同期指示を入力すると、他のＷＥＢサーバ２００に送信する、更新日時情報の取得要求を生成する。この取得要求は、各ＷＥＢサーバ２００の保有する点数マスタファイルに登録された保険点数情報のうち、更新日時が最も新しい保険点数情報の更新日時の取得を要求するものである。データ取得部２７４は、生成した取得要求を含むデータを出力部２７６に出力する。出力部２７６は、データ取得部２７４から入力したデータを、ネットワークＩ／Ｆ２４０を介して各ＷＥＢサーバ２００に送信する。
データ取得部２７４は、各ＷＥＢサーバ２００から最新の更新日時情報を取得すると、取得した更新日時情報のうち、更新日時が最も古い更新日時を選択する。更新日時が最も古いものを選択することで、すべてのＷＥＢサーバ２００で同じ更新日時の保険点数情報を使用した保険点数の計算が可能になる。すなわち、各ＷＥＢサーバ２００で保険点数計算に使用する保険点数情報の同期をとることができる。データ取得部２７４は、選択した更新日時を更新日時情報として更新日時管理装置５００に送信し、更新日時管理装置５００に登録する。
【００３１】
点数計算処理部２７５は、要求解析部２７２が出力したデータを入力する。点数計算処理部２７５が要求解析部２７２から入力するデータには、クライアント端末１００から送られる、保険点数の計算指示がある。点数計算処理部２７５は、保険点数の計算指示を入力すると、更新日時管理装置５００に送る、更新日時情報の取得要求を生成する。点数計算処理部２７５は、生成した取得要求を含むデータを出力部２７６に出力する。出力部２７６は、データ取得部２７４から入力したデータを、ネットワークＩ／Ｆ２４０を介して更新日時管理装置５００に送信する。
点数計算処理部２７５は、更新日時管理装置５００から送られた更新日時情報を入力した場合、入力した更新日時情報の示す更新日時の保険点数情報を、ＨＤＤ２５０のＷＥＢ点数ファイルから取得する。点数計算処理部２７５は、取得した保険点数情報を使用して保険点数の計算を行い、処理結果をＲＡＭ２１３に記憶させる。また、点数計算処理部２７５は、保険点数の計算結果を含む、クライアント端末１００に送信するデータを生成する。点数計算処理部２７５は、生成したデータを出力部２７６に出力する。出力部２７６は、点数計算処理部２７５から入力したデータをネットワークＩ／Ｆ２４０を介してクライアント端末１００に送信する。
【００３２】
出力部２７６は、更新要求部２７３、データ取得部２７４及び点数計算処理部２７５から出力されたデータを入力し、入力したデータをネットワークＩ／Ｆ２４０に出力する。
【００３３】
次に、図５を参照しながらＡＰサーバ３００の制御部３１０が備える機能ブロック３７０について説明する。ＡＰサーバ３００は、機能ブロック３７０として、入力部３７１と、要求解析部３７２と、更新処理部３７３と、データ取得部３７４と、点数計算処理部３７５と、出力部３７６とを備える。入力部３７１、要求解析部３７２及び点数計算処理部３７５の処理動作については、図４にて説明したＷＥＢサーバ２００の入力部２７１、要求解析部２７２及び点数計算処理部２７５の処理とほぼ同一であるため、説明を省略する。
【００３４】
更新処理部３７３は、ＡＰサーバ３００の具備するクロックからシステム時刻を入力している。更新処理部３７３は、ＷＥＢサーバ２００から送られた更新要求及び更新する保険点数情報を入力すると、ＤＢサーバ４００に送る、保険点数情報の更新要求を生成する。この更新要求には、クライアント端末１００から送られた、更新する保険点数情報が含まれる。更新処理部３７３は、生成した更新要求と、更新する保険点数情報とを含むデータを出力部３７６に出力する。更新処理部３７３は、更新要求と、更新する保険点数情報とを含むデータをＤＢサーバ４００に送って、ＤＢサーバ４００の記憶する点数マスタファイルに登録させる。更新処理部３７３は、ＤＢサーバ４００から更新完了通知を受け取ると、更新完了通知を受け取ったシステム時刻を更新日時としてＤＢサーバ４００に登録する。更新処理部３７３は、更新完了通知を受け取ったシステム時刻をＤＢサーバ４００に送り、ＤＢサーバ４００の記憶する点数マスタファイルに登録させる。ＤＢサーバ４００への保険点数情報及び更新日時の登録が完了すると、更新処理部３７３は、ＷＥＢサーバ２００に更新完了通知を送信する。
【００３５】
データ取得部３７４は、要求解析部３７２から入力したデータが、ＷＥＢサーバ２００から受信した、保険点数情報の取得要求及び更新日時情報であった場合、ＤＢサーバ４００に送る、保険点数情報の取得要求を生成する。データ取得部３７４は、生成した取得要求に、ＷＥＢサーバ２００から受信した更新日時情報を付加したデータを出力部３７６に出力する。出力部３７６は、データ取得部３７４から入力したデータを、ネットワークＩ／Ｆ３４０を介してＤＢサーバ４００に送信する。
ＤＢサーバ４００は、ＡＰサーバ３００から取得要求と、更新日時情報とを受信すると、受信した更新日時情報の示す更新日時よりも更新日時の新しい保険点数情報を点数マスタファイルから取得する。ＤＢサーバ４００は、取得した保険点数情報をＡＰサーバ３００に送信する。
データ取得部３７４は、ＤＢサーバ４００から送られた、保険点数情報を入力した場合、入力した保険点数情報を含むデータをＷＥＢサーバ２００に送信する。
【００３６】
次に、シーケンス図を参照しながらクライアント端末１００からの処理要求を受けたＷＥＢサーバ２００、ＡＰサーバ３００及び更新日時管理装置５００の処理の概要を説明する。
【００３７】
まず、クライアント端末１００から送られた保険点数の計算指示を受信したＷＥＢサーバ２００と、更新日時管理装置５００との処理の概要を図６のシーケンス図を参照しながら説明する。
ＷＥＢサーバ２００は、クライアント端末１００から保険点数の計算指示を受け付ける（図６に示す保険点数の計算指示Ａ）。ＷＥＢサーバ２００は、保険点数の計算指示を受け付けると、更新日時管理装置５００に、更新日時管理装置５００の記憶する更新日時情報の取得要求を出力する（図６に示す更新日時情報の取得要求Ｂ）。取得要求を受信した更新日時管理装置５００は、不図示の記憶部に記憶している更新日時情報を取り出し、ＷＥＢサーバ２００に送信する（図６に示す更新日時情報の送信Ｃ）。ＷＥＢサーバ２００は、更新日時情報を更新日時管理装置５００から取得すると、取得した更新日時情報の示す更新日時の保険点数情報をＨＤＤ２５０に記憶したＷＥＢ点数ファイルから取得する（図６に示す保険点数情報の取得Ｄ）。また、該当する更新日時の保険点数情報が点数マスタファイルに登録されていない場合、ＷＥＢサーバ２００は、更新日時情報の示す更新日時よりも更新日時が古い保険点数情報のうち、版数が最大のものの保険点数情報を取得する。
【００３８】
ここで、図７を参照しながら、保険点数の計算に使用する保険点数情報の選択方法について具体的に説明する。図７には、ＷＥＢサーバ２００のＷＥＢ点数ファイルの一例を示す。図７に示す例では、診療行為コードが「000001」、「000002」、「000003」の３種類の保険点数情報がＷＥＢ点数ファイルに登録されている。また、診療行為コードが「000001」、「000002」の保険点数情報は、更新日時が2012年10月2日、1時23分45秒のものと、2012年9月15日、10時03分20秒のものが登録されている。診療行為コードが「000003」の保険点数情報は、更新日時が2012年10月2日、1時23分45秒のものは登録されておらず、2012年9月15日、10時03分20秒のものが登録されている。例えば、診療行為コードが「000001」、「000002」の保険点数情報は更新が行われたが、診療行為コードが「000003」の保険点数情報は、更新がされなかったとする。この場合、診療行為コードによって更新日時にずれが生じる。
【００３９】
例えば、ＷＥＢサーバ２００が更新日時管理装置５００から取得した更新日時情報が、2012年10月2日、1時23分45秒であったと仮定する。この場合、ＷＥＢサーバ２００は、保険点数の計算に、診療行為コードが「000001」、「000002」の保険点数情報を使用する場合には、2012年10月2日、1時23分45秒のものを使用する。また、ＷＥＢサーバ２００は、保険点数の計算に、診療行為コードが「000003」の保険点数情報を使用する場合には、2012年9月15日、10時03分20秒のものを使用する。すなわち、ＷＥＢサーバ２００は、更新日時情報の示す更新日時よりも更新日時が古い保険点数情報のうち、版数の値が最も大きい保険点数情報を使用する。版数の値が最も大きいということは、更新日時管理装置５００から取得した更新日時よりも更新日時が古い保険点数情報のなかで、更新日時が最も新しいことを示している。
【００４０】
ＷＥＢサーバ２００は、ＷＥＢ点数ファイルから保険点数情報を取得すると、取得した保険点数情報を使用して、保険点数の計算を行う（図６に示す点数計算Ｅ）。ＷＥＢサーバ２００は、クライアント端末１００から取得した診療データに記録された診療行為の保険点数を計算する。保険点数の計算が終了すると、ＷＥＢサーバ２００は、保険点数の計算結果をクライアント端末１００に送信する（図６に示す計算結果の送信Ｆ）。
【００４１】
次に、ＷＥＢサーバ２００から保険点数の計算要求を受信した場合のＡＰサーバ３００の処理の概要を、図８に示すシーケンス図を参照しながら説明する。クライアント端末１００から保険点数の計算要求を受信したＷＥＢサーバ２００は、ＡＰサーバ３００に、保険点数の計算要求を出力する（図８に示す保険点数の計算要求Ａ）。例えば、ＷＥＢサーバ２００の処理負荷が高く、ＷＥＢサーバ２００で保険点数の計算を行っていると、処理に遅延が生じると判定した場合、ＷＥＢサーバ２００は、ＡＰサーバ３００に保険点数の計算要求を出力する。
ＡＰサーバ３００は、保険点数の計算要求を受け付けると、更新日時管理装置５００に、更新日時管理装置５００の記憶する更新日時情報の取得を要求する（図８に示す更新日時情報の取得要求Ｂ）。取得要求を受信した更新日時管理装置５００は、更新日時情報をＡＰサーバ３００に送信する（図８に示す更新日時情報の送信Ｃ）。ＡＰサーバ３００は、更新日時情報を取得すると、保険点数情報の取得要求に、取得した更新日時情報を付加してＤＢサーバ４００に送信する（図８に示す保険点数情報の取得要求Ｄ）。ＤＢサーバ４００に登録された点数マスタファイルも、診療行為コードごとに更新日時が管理されている。このため、ＤＢサーバ４００は、診療行為コードごとに、ＡＰサーバ３００から受信した更新日時の保険点数情報が存在するか否かを判定する。すなわち、図７を参照しながら説明したように、ＤＢサーバ４００は、保険点数情報の診療行為コードが、ＡＰサーバ３００から受信した更新日時のものが存在する保険点数情報の診療行為コードの場合には、受信した更新日時の保険点数情報を選択する。また、ＤＢサーバ４００は、ＡＰサーバ３００から受信した更新日時のものが存在しない保険点数情報の診療行為コードの場合には、更新日時情報の示す更新日時よりも更新日時が古い保険点数情報のうち、版数が最も大きい保険点数情報を選択する。ＤＢサーバ４００は、診療行為コードごとに選択した保険点数情報を、要求元のＡＰサーバ３００に送信する（図８に示す保険点数情報の送信Ｅ）。
【００４２】
ＡＰサーバ３００は、点数マスタファイルから保険点数情報を取得すると、取得した保険点数情報を使用して、保険点数の計算を行う（図８に示す点数計算Ｆ）。ＡＰサーバ３００は、ＷＥＢサーバ２００から取得した診療データに記録された各診療行為の保険点数の合計値を計算する。保険点数の計算が終了すると、ＡＰサーバ３００は、保険点数の計算結果をＷＥＢサーバ２００に送信する（図８に示す計算結果の返信Ｇ）。
【００４３】
次に、図９を参照しながら、クライアント端末１００から点数マスタファイルの更新要求を受け付けたＷＥＢサーバ２００とＡＰサーバ３００との処理の概要を説明する。
ＷＥＢサーバ２００は、クライアント端末１００から点数マスタファイルの更新指示を受け付ける（図９に示す点数マスタファイルの更新指示Ａ）。この点数マスタファイルの更新指示には、更新する保険点数情報が付加されている。なお、更新する保険点数情報は、クライアント端末１００の操作者が、入力装置２２１を操作して入力してもよい。又は、クライアント端末１００からの更新要求を受信したＷＥＢサーバ２００が、保険点数情報を登録したサイトにアクセスして保険点数情報を取得するものであってもよい。点数マスタファイルの更新要求を受け付けたＷＥＢサーバ２００は、点数マスタファイルの更新要求をＡＰサーバ３００に送信する（図９に示す点数マスタファイルの更新要求Ｂ）。この点数マスタファイルの更新要求にも、更新する保険点数情報が付加されている。ＷＥＢサーバ２００から点数マスタファイルの更新要求を受け付けたＡＰサーバ３００は、ＷＥＢサーバ２００から取得した保険点数情報をＤＢサーバ４００に送信して、ＤＢサーバ４００に登録する（図９に示す点数マスタファイルの更新処理Ｃ）。また、ＡＰサーバ３００は、ＤＢサーバ４００への保険点数情報の登録が完了すると、更新完了通知をＷＥＢサーバ２００に送信する（図９に示す更新完了通知Ｄ）。ＡＰサーバ３００からの通知を受けたＷＥＢサーバ２００は、更新完了通知をクライアント端末１００に送信する（図９に示す更新完了通知Ｅ）。
図１０（Ａ）に、更新前の点数マスタファイルの一例を示し、図１０（Ｂ）に、更新後の点数マスタファイルの一例を示す。点数マスタファイルの更新処理により、更新後の点数マスタファイルには、診療行為コードが「000001」、「000002」であって、更新日時が2012年10月2日、1時23分45秒の保険点数情報が追加登録されている。
【００４４】
次に、図１１を参照しながら、保険点数情報の取込み指示をクライアント端末１００から受信した場合のＷＥＢサーバ２００とＡＰサーバ３００の処理の概要を説明する。
ＷＥＢサーバ２００は、クライアント端末１００から保険点数情報の取込み指示を受け付ける（図１１に示す保険点数情報の取込み指示Ａ）。取込み指示を受け付けたＷＥＢサーバ２００は、ＨＤＤ２５０に記憶するＷＥＢ点数ファイルから更新日時情報を取得する。ＷＥＢサーバ２００は、点数マスタファイルに登録された保険点数情報のうち、更新日時が最も新しい保険点数情報の更新日時情報を取得する（図１１に示す更新日時情報の取得Ｂ）。ＷＥＢサーバ２００は、保険点数情報の取得要求を生成して、生成した取得要求に、取得した更新日時情報を付加してＡＰサーバ３００に送信する（図１１に示す保険点数情報の取得要求Ｃ）。保険点数情報の取得要求を受信したＡＰサーバ３００は、ＤＢサーバ４００に保険点数情報の取得要求を送信する（図１１に示す険点数情報の取得要求Ｄ）。この取得要求にも、更新日時情報が付加されている。ＤＢサーバ４００は、取得要求を受信すると、受信した取得要求に付加された更新日時情報の示す更新日時よりも更新日時が新しい保険点数情報を点数マスタファイルから取得する。すなわち、ＡＰサーバ３００から受信した更新日時情報が示す更新日時の保険点数情報と、この更新日時よりも前の保険点数情報とは、ＷＥＢサーバ２００のＷＥＢ点数ファイルに登録されている。このため、ＤＢサーバ４００は、ＡＰサーバ３００から受信した更新日時情報の示す更新日時よりも更新日時が新しい保険点数情報を点数マスタファイルから取得する。ＤＢサーバ４００は、取得した保険点数情報をＡＰサーバ３００に送信する（図１１に示す保険点数情報の送信Ｅ）。ＡＰサーバ３００は、保険点数情報をＤＢサーバ４００から受信すると、受信した保険点数情報をＷＥＢサーバ２００に送信する（図１１に示す保険点数情報の送信Ｆ）。
図１２を参照しながら、上述の処理についてより具体的に説明する。図１２（Ａ）に、ＤＢサーバ４００が記憶する点数マスタファイルの一例を示し、図１２（Ｂ）に、ＷＥＢサーバ２００が記憶するＷＥＢ点数ファイルの一例を示す。ＷＥＢサーバ２００は、ＷＥＢ点数ファイルを参照して、更新日時情報として2012年9月15日の10時03分20秒を選択する。ＷＥＢサーバ２００は、ＷＥＢ点数ファイルに登録された保険点数情報のうち、更新日時が最も新しい更新日時を選択する。ＷＥＢサーバ２００は、選択した更新日時情報をＡＰサーバ３００を介してＤＢサーバ４００に送信する。ＤＢサーバ４００は、ＡＰサーバ３００から受信した更新日時が、2012年9月15日の10時03分20秒であった場合、この日時よりも更新日時が新しい2012年10月2日1時23分45秒の保険点数情報を取得する。ＤＢサーバ４００は、取得した保険点数情報をＡＰサーバ３００に送信する。
【００４５】
ＷＥＢサーバ２００は、ＡＰサーバ３００から保険点数情報を受信すると、受信した保険点数情報をＨＤＤ２５０のＷＥＢ点数ファイルに登録する（図１１に示す保険点数情報のＷＥＢ点数ファイルへの登録Ｇ）。また、ＷＥＢサーバ２００は、保険点数情報の登録が終了すると、点数マスタファイルの更新完了通知をクライアント端末１００に送信する（図１１に示す保険点数情報の取込み完了通知Ｈ）。
【００４６】
次に、クライアント端末１００から保険点数情報の同期指示を受信した場合のＷＥＢサーバ２００及び更新日時管理装置５００の処理の概要を図１３を参照しながら説明する。なお、図１３を参照しながら行う説明では、ＷＥＢサーバ２００として、ＷＥＢサーバ２００ａ、２００ｂ、２００ｃの３つがあるものとし、ＷＥＢサーバ２００ａが処理を実行するものとして説明する。
【００４７】
ＷＥＢサーバ２００ａは、クライアント端末１００から保険点数情報の同期処理の指示を受け付ける（図１３に示す同期処理指示Ａ）。同期処理の指示を受け付けたＷＥＢサーバ２００ａは、更新日時管理装置５００に、各ＷＥＢサーバ２００ａ、２００ｂ、２００ｃのＩＰアドレスの取得要求を送信する（図１３に示すＩＰアドレスの取得要求Ｂ）。ＩＰアドレスの取得要求を受信した更新日時管理装置５００は、ＷＥＢサーバ２００ａに、各ＷＥＢサーバ２００ａ、２００ｂ、２００ｃのＩＰアドレスを送信する（図１３に示すＩＰアドレスの送信Ｃ）。ＩＰアドレスを取得したＷＥＢサーバ２００ａは、各ＷＥＢサーバ２００ａ、２００ｂ、２００ｃのＩＰアドレスを比較し、自身のＩＰアドレスが値の最も小さいＩＰアドレスであるか否かを判定する。ここでは、ＷＥＢサーバ２００ａのＩＰアドレスが値の最も小さいＩＰアドレスであるとする。自身のＩＰアドレスが値の最も小さいＩＰアドレスであると判定したＷＥＢサーバ２００ａは、他のＷＥＢサーバ２００ｂ、２００ｃに更新日時情報の取得要求を送信する（図１３に示す更新日時情報の取得要求Ｄ１、Ｄ２）。更新日時情報の取得要求を受信したＷＥＢサーバ２００ｂ、２００ｃは、それぞれに記憶するＷＥＢ点数ファイルに登録された保険点数情報のうち、更新日時が最も新しい保険点数情報を選択し、選択した保険点数情報の更新日時情報を取得する。ＷＥＢサーバ２００ｂ、２００ｃは、取得した更新日時情報をＷＥＢサーバ２００ａに送信する（図１３に示す更新日時情報の送信Ｅ１、Ｅ２）。ＷＥＢサーバ２００ａは、各ＷＥＢサーバ２００から更新日時情報を取得すると、取得した更新日時情報のなかから更新日時が最も古い更新日時を選択する（図１３に示す更新日時の選択Ｆ）。ＷＥＢサーバ２００ａは、更新日時の登録要求に、選択した更新日時を添付して更新日時管理装置５００に送信する（図１３に示す更新日時の登録要求Ｇ）。また、ＷＥＢサーバ２００ａは、要求元のクライアント端末１００に、同期処理の完了通知を送信する（図１３に示す同期処理完了通知Ｈ）。
【００４８】
次に、ＷＥＢサーバ２００の起動時の処理の概要について、図１４に示すシーケンス図を参照しながら説明する。なお、図１４を参照しながら行う説明でも、ＷＥＢサーバ２００として、ＷＥＢサーバ２００ａ、２００ｂ、２００ｃの３つがあるものとし、ＷＥＢサーバ２００ａが処理を実行するものとして説明する。
ＷＥＢサーバ２００は、起動すると、自身のＲＡＭ２１３に各ＷＥＢサーバ２００のＩＰアドレスが記憶されているか否かを判定する（図１４に示す起動Ａ、構成情報の確認Ｂ）。ＩＰアドレスがＲＡＭ２１３に記憶されていないと判定すると、ＷＥＢサーバ２００は、ＡＰサーバ３００に、ＩＰアドレスの取得要求を送信する（図１４に示すＩＰアドレスの取得要求Ｃ）。ＡＰサーバ３００は、ＷＥＢサーバ２００からの取得要求に応じて、各ＷＥＢサーバ２００のＩＰアドレスをＤＢサーバ４００から取得する（図１４に示すＩＰアドレスの取得要求Ｄ及びＩＰアドレスの送信Ｅ）。ＡＰサーバ３００は、ＩＰアドレスを取得すると、取得したＩＰアドレスをＷＥＢサーバ２００に送信する（図１４に示すＩＰアドレスの送信Ｆ）。
【００４９】
次に、ＷＥＢサーバ２００は、更新日時管理装置５００に、更新日時情報が記憶されているか否かを確認する処理を行う。ＷＥＢサーバ２００は、更新日時管理装置５００に、更新日時情報の送信を要求する（図１４に示す更新日時情報の送信要求Ｇ）。ＷＥＢサーバ２００は、更新日時管理装置５００から更新日時情報を受信することができた場合には、この処理を終了する。また、ＷＥＢサーバ２００は、更新日時情報を受信することができなかった場合、他のＷＥＢサーバ２００ｂ、２００ｃに更新日時情報の取得要求を送信する（図１４に示す更新日時情報の取得要求Ｈ１、Ｈ２）。なお、この後のＷＥＢサーバ２００ａ、２００ｂ、２００ｃ及び更新日時管理装置５００の処理は、図１３に示すシーケンス図のＤ〜Ｈで説明済みであるので省略する。また、図１４に示す処理は、ＷＥＢサーバ２００の起動時だけに行われるものではなく、例えば、ＷＥＢサーバ２００が処理を行っていない時間帯に行うものであってもよい。
【００５０】
図１５に、クライアント端末１００の表示装置１３１に表示される表示画面の一例を示す。図１５に示す表示画面には、ネットワーク５０に接続したサーバを選択するサーバ選択欄６１０と、サーバ選択欄６１０に表示された各サーバが保険点数情報の更新を行った最新の更新日時を示す更新日時表示欄６２０とが表示される。また、表示画面には、サーバ選択欄６１０で選択されたサーバの記憶する点数マスタファイル又はＷＥＢ点数ファイルの登録情報を表示するメイン表示欄６３０が表示される。このメイン表示欄６３０には、サーバ選択欄６１０で選択されたサーバに、保険点数情報のＤＢサーバ４００からの取得を要求する取込ボタン６３１が表示される。この取込ボタン６３１が押下されることで、図１１のシーケンス図で説明した保険点数情報の取込み処理が、サーバ選択欄６１０で選択したサーバで実行される。また、メイン表示欄６３０には、サーバ選択欄６１０で選択したサーバに、このサーバが記憶する古い保険点数情報を消去するように指示する削除ボタン６３２が表示される。削除ボタン６３２が押下されることで、サーバ選択欄６１０で選択されたサーバが記憶する、選択された保険点数情報が削除される。さらに、メイン表示欄６３０には、更新日時管理装置５００の記憶する更新日時情報を更新する同期ボタン６３３が表示される。この同期ボタン６３３が押下されることで、図１３のシーケンス図で説明した保険点数情報の同期処理が、サーバ選択欄６１０で選択されたサーバで実行される。
【００５１】
図１６には、サーバ選択欄６１０に表示された更新日時管理装置５００が選択された場合に、メイン表示欄６３０に表示される表示画面の一例を示す。図１６に示す表示画面には、自動ボタン６５１と、マニュアルボタン６５２と、更新日時入力欄６５３と、設定ボタン６５４とが表示される。自動ボタン６５１が操作されると、クライアント端末１００から事前に設定されたＷＥＢサーバ２００に、図１３で説明した保険点数情報の同期処理の指示が送信される。
また、図１６に示すマニュアルボタン６５２が選択された状態で、更新日時入力欄６５３に更新日時が入力され、設定ボタン６５４が押下されると、更新日時入力欄６５３に入力された更新日時情報が更新日時管理装置５００に送られる。更新日時管理装置５００は、クライアント端末１００から送られた更新日時情報を新たな更新日時として記憶する。従って、各ＷＥＢサーバ２００、ＡＰサーバ３００が保険点数の計算に使用する保険点数情報の更新日時を、クライアント端末１００の表示画面から指定することができる。このため、例えば、ＷＥＢサーバ２００に、更新日時が古い保険点数情報を使用した保険点数の計算を行わせることも可能となる。
【００５２】
次に、フローチャートを参照しながら、各サーバの個別の動作手順について説明する。まず、クライアント端末１００から保険点数の計算指示を受けた場合のＷＥＢサーバ２００の制御部２１０の処理手順を図１７に示すフローチャートを参照しながら説明する。
ＷＥＢサーバ２００の制御部２１０は、保険点数の計算指示を受信した場合（ステップＳ１／ＹＥＳ）、更新日時管理装置５００に更新日時情報の取得要求を送信する（ステップＳ２）。制御部２１０は、更新日時管理装置５００からデータ送信があるまで待機する。更新日時管理装置５００から送信されたデータを受信した場合（ステップＳ３／ＹＥＳ）、制御部２１０は、受信したデータが更新日時情報であるか否かを判定する（ステップＳ４）。受信したデータが更新日時情報ではなかった場合、制御部２１０は、ステップＳ３の処理に戻る。また、受信したデータが更新日時情報であった場合（ステップＳ４／ＹＥＳ）、制御部２１０は、ＨＤＤ２５０に記憶するＷＥＢ点数ファイルから保険点数情報を取得する（ステップＳ５）。制御部２１０は、更新日時管理装置５００から取得した更新日時情報の示す更新日時の保険点数情報をＷＥＢ点数ファイルから取得する（ステップＳ５）。また、ＷＥＢ点数ファイルに登録された保険点数情報は、診療行為コードごとに更新され、診療行為コードには、更新日時管理装置５００から取得した更新日時のものが登録されていないものがある。この場合、制御部２１０は、更新日時管理装置５００から取得した更新日時情報よりも更新日時が古い保険点数情報のうち版数の値が最も大きい保険点数情報をＷＥＢ点数ファイルから取得する（ステップＳ５）。制御部２１０は、取得した保険点数情報を使用して保険点数を計算する（ステップＳ６）。制御部２１０は、保険点数を計算すると、保険点数の計算結果をクライアント端末１００に送信して、表示装置１３１に表示させる（ステップＳ７）。
【００５３】
次に、図１８に示すフローチャートを参照しながら、ＡＰサーバ３００に保険点数の計算処理を実行させる場合のＷＥＢサーバ２００の制御部２１０の処理手順を説明する。
ＷＥＢサーバ２００の制御部２１０は、保険点数の計算指示をクライアント端末１００から受信すると（ステップＳ１１／ＹＥＳ）、クライアント端末１００から受信した診療データと、保険点数の計算要求とをＡＰサーバ３００に送信する（ステップＳ１２）。
【００５４】
ＡＰサーバ３００に保険点数の計算要求を送信した制御部２１０は、ＡＰサーバ３００から保険点数の計算完了通知があるまで待機する（ステップＳ１３）。ＡＰサーバ３００からデータを受信すると、（ステップＳ１３／ＹＥＳ）、制御部２１０は、受信したデータは、保険点数の計算結果であるか否かを判定する（ステップＳ１４）。受信したデータが保険点数の計算結果ではなかった場合（ステップＳ１４／ＮＯ）、制御部２１０は、ステップＳ１３に戻り、ＡＰサーバ３００からのデータ受信を待機する。受信したデータが保険点数の計算結果であった場合（ステップＳ１４／ＹＥＳ）、制御部２１０は、受信した保険点数の計算結果をクライアント端末１００に送り、クライアント端末１００の表示装置１３１に表示させる（ステップＳ１５）。
【００５５】
次に、ＷＥＢサーバ２００から保険点数の計算要求を受信した場合のＡＰサーバ３００の制御部３１０の処理手順を図１９に示すフローチャートを参照しながら説明する。
ＡＰサーバ３００の制御部３１０は、ＷＥＢサーバ２００から保険点数の計算要求を受信すると（ステップＳ２１／ＹＥＳ）、更新日時管理装置５００に更新日時情報の取得要求を送信する（ステップＳ２２）。制御部３１０は、更新日時管理装置５００からデータ送信があるまで待機する。更新日時管理装置５００から送信されたデータを受信した場合（ステップＳ２３／ＹＥＳ）、制御部３１０は、受信したデータが更新日時情報であるか否かを判定する（ステップＳ２４）。受信したデータが更新日時情報ではなかった場合、制御部３１０は、ステップＳ２３の処理に戻る。また、受信したデータが更新日時情報であった場合（ステップＳ２４／ＹＥＳ）、制御部３１０は、ＤＢサーバ４００の記憶する点数マスタファイルから保険点数情報を取得する（ステップＳ２５）。制御部３１０は、ＷＥＢサーバ２００の場合と同様に、更新日時管理装置５００から取得した更新日時情報の示す更新日時の保険点数情報をＤＢサーバ４００から取得する（ステップＳ２５）。また、点数マスタファイルに登録された保険点数情報には、更新日時管理装置５００から取得した更新日時のものが登録されていないものもある。この場合、制御部３１０は、更新日時管理装置５００から取得した更新日時情報よりも更新日時が古い保険点数情報のうち版数の値が最も大きい保険点数情報を点数マスタファイルから取得する（ステップＳ２５）。制御部３１０は、取得した保険点数情報を使用して保険点数を計算する（ステップＳ２６）。制御部３１０は、保険点数を計算すると、保険点数の計算結果をＷＥＢサーバ２００に送信する（ステップＳ２７）。
【００５６】
次に、クライアント端末１００から点数マスタファイルの更新指示を受信した場合のＷＥＢサーバ２００の処理手順を図２０に示すフローチャートを参照しながら説明する。
クライアント端末１００の操作者は、入力装置１２１を操作して、点数マスタファイルの更新指示を入力する。クライアント端末１００は、点数マスタファイルの更新要求を入力装置１２１で受け付けると、受け付けた更新指示をＷＥＢサーバ２００に送信する。
【００５７】
ＷＥＢサーバ２００の制御部２１０は、クライアント端末１００から点数マスタファイルの更新指示を受信すると（ステップＳ３１／ＹＥＳ）、ＡＰサーバ３００に点数マスタファイルの更新要求を送信する（ステップＳ３２）。制御部２１０は、点数マスタファイルの更新要求に、クライアント端末１００から受信した、更新する保険点数情報を付加してＡＰサーバ３００に送り、点数マスタファイルの更新を要求する（ステップＳ３２）。そして、制御部２１０は、ＡＰサーバ３００からデータを受信するまで待機する（ステップＳ３３）。ＡＰサーバ３００からデータを受信すると（ステップＳ３３／ＹＥＳ）、制御部２１０は、受信したデータは、点数マスタファイルの更新完了通知であるか否かを判定する（ステップＳ３４）。受信したデータが、点数マスタファイルの更新完了通知ではない場合（ステップＳ３４／ＮＯ）、制御部２１０は、ステップＳ３３に戻り、ＡＰサーバ３００からのデータ受信があるまで待機する。また、受信したデータが、点数マスタファイルの更新完了通知であった場合（ステップＳ３４／ＹＥＳ）、制御部２１０は、点数マスタファイルの更新完了通知をクライアント端末１００に通知する（ステップＳ３５）。
【００５８】
次に、ＷＥＢサーバ２００から点数マスタファイルの更新要求を受信したＡＰサーバ３００の処理手順を図２１に示すフローチャートを参照しながら説明する。
ＡＰサーバ３００の制御部３１０は、ＷＥＢサーバ２００から点数マスタファイルの更新要求を受信すると（ステップＳ４１）、点数マスタファイルの更新要求に付加された保険点数情報をＤＢサーバ４００に送ってＤＢサーバ４００に登録する。ＤＢサーバ４００に送られた保険点数情報は、ＤＢサーバ４００の記憶する点数マスタファイルに登録される（ステップＳ４２）。また、制御部３１０は、ＷＥＢサーバ２００から更新要求を受信した時刻を、ＤＢサーバ４００に登録した保険点数情報の更新日時とし、この時刻をＤＢサーバ４００に登録する（ステップＳ４２）。保険点数情報のＤＢサーバ４００への登録が完了すると、制御部３１０は、ＷＥＢサーバ２００に点数マスタファイルの更新完了通知を送信する（ステップＳ４３）。
【００５９】
次に、ＤＢサーバ４００から保険点数情報を取得して、ＷＥＢサーバ２００のＷＥＢ点数ファイルを更新する手順を図２２に示すフローチャートを参照しながら説明する。
ＷＥＢサーバ２００の制御部２１０は、クライアント端末１００から保険点数情報の取込み指示を受信すると（ステップＳ５１／ＹＥＳ）、ＨＤＤ２５０に記憶したＷＥＢ点数ファイルから更新日時を取得する（ステップＳ５２）。制御部２１０は、ＷＥＢ点数ファイルに登録された保険点数情報のうち、更新日時が最も新しい保険点数情報を選択し、選択した保険点数情報の更新日時を取得する（ステップＳ５２）。次に、制御部２１０は、保険点数情報の取得要求に、取得した更新日時を付加してＡＰサーバ３００に送信する（ステップＳ５３）。その後、制御部２１０は、ＡＰサーバ３００からの応答があるまで待機する（ステップＳ５４）。ＡＰサーバ３００からデータを受信すると（ステップＳ５４／ＹＥＳ）、制御部２１０は、受信したデータに保険点数情報が含まれるか否かを判定する（ステップＳ５５）。ＡＰサーバ３００は、ＷＥＢサーバ２００から取得した更新日時よりも更新日時が新しい保険点数情報がＤＢサーバ４００の点数マスタファイルに登録されていない場合、ＷＥＢサーバ２００に保険点数情報を送信しない。この場合、ＡＰサーバ３００は、ＷＥＢサーバ２００に、ＷＥＢサーバ２００のＷＥＢ点数ファイルは最新の状態である旨を通知する。また、ＡＰサーバ３００は、ＷＥＢサーバ２００から取得した更新日時よりも更新日時が新しい保険点数情報がＤＢサーバ４００の点数マスタファイルに登録されている場合、該当する保険点数情報をＤＢサーバ４００から取得する。ＡＰサーバ３００は、ＤＢサーバ４００から取得した保険点数情報をＷＥＢサーバ２００に送信する。
制御部２１０は、ＡＰサーバ３００から保険点数情報を受信しなかった場合（ステップＳ５５／ＮＯ）、受信したデータに、ＷＥＢ点数ファイルは最新の状態である旨の通知が含まれるか否かを判定する（ステップＳ５６）。制御部２１０は、ＷＥＢ点数ファイルは最新の状態である旨の通知を受信すると（ステップＳ５６／ＹＥＳ）、この処理を終了する。また、制御部２１０は、ＡＰサーバ３００から保険点数情報を受信した場合（ステップＳ５５／ＹＥＳ）、受信した保険点数情報をＨＤＤ２５０に記憶したＷＥＢ点数ファイルに登録する（ステップＳ５７）。
【００６０】
次に、ＷＥＢサーバ２００から保険点数情報の取得要求を受信したＡＰサーバ３００の処理手順を図２３に示すフローチャートを参照しながら説明する。
ＷＥＢサーバ２００から保険点数情報の取得要求と、更新日時とを受信すると（ステップＳ６１）、ＡＰサーバ３００の制御部３１０は、受信した取得要求と更新日時とをＤＢサーバ４００に送信する（ステップＳ６２）。ＤＢサーバ４００は、ＡＰサーバ３００から保険点数情報の取得要求を受信すると、ＡＰサーバ３００から受信した更新日時よりも更新日時が新しい保険点数情報が点数マスタファイルに登録されているか否かを判定する。ＤＢサーバ４００は、受信した更新日時よりも新しい保険点数情報が点数マスタファイルに登録されている場合には、該当する保険点数情報を取得してＡＰサーバ３００に送信する。また、ＤＢサーバ４００は、受信した更新日時よりも新しい保険点数情報が登録されていない場合には、その旨をＡＰサーバ３００に通知する。
制御部３１０は、ＤＢサーバ４００から保険点数情報を受信した場合には（ステップＳ６３／ＹＥＳ）、受信した保険点数情報をＷＥＢサーバ２００に送信する（ステップＳ６４）。また、制御部３１０は、ＤＢサーバ４００から保険点数情報を受信することができなかった場合には（ステップＳ６３／ＮＯ）、ＷＥＢサーバの点数マスタファイルは最新の状態である旨をＷＥＢサーバ２００に通知する（ステップＳ６５）。
【００６１】
次に、クライアント端末１００から同期処理の指示を受信した場合のＷＥＢサーバ２００の処理手順について図２４に示すフローチャートを参照しながら説明する。
ＷＥＢサーバ２００の制御部２１０は、クライアント端末１００から同期処理の指示を受信すると（ステップＳ７１／ＹＥＳ）、更新日時管理装置５００に各ＷＥＢサーバ２００のＩＰアドレスの取得要求を送信する（ステップＳ７２）。制御部２１０は、更新日時管理装置５００から各ＷＥＢサーバ２００のＩＰアドレスを受信すると（ステップＳ７３／ＹＥＳ）、自身のＩＰアドレスと、他のＷＥＢサーバ２００のＩＰアドレスとを比較する（ステップＳ７４）。制御部２１０は、取得したＩＰアドレスのなかから自身のＩＰアドレスを取得し、自身のＩＰアドレスの値が他のＩＰアドレスよりも小さいか否かを判定する（ステップＳ７４）。自身のＩＰアドレスが最も値の小さいアドレスではないと判定すると（ステップＳ７４／ＮＯ）、制御部２１０は、自身のＩＰアドレスよりも値の小さいＷＥＢサーバ２００にｐｉｎｇコマンドを送信する（ステップＳ７５）。そして、制御部２１０は、ｐｉｎｇコマンドを送信したＷＥＢサーバ２００から応答を受信したか否かを判定する（ステップＳ７６）。ｐｉｎｇコマンドを送信したＷＥＢサーバ２００からの応答を受信した場合（ステップＳ７６／ＹＥＳ）、制御部２１０は、この処理を終了する。また、ｐｉｎｇコマンドを送信したＷＥＢサーバ２００からの応答を受信できなかった場合（ステップＳ７６／ＮＯ）、制御部２１０は、ステップＳ７７の処理に移行する。また、自身のＩＰアドレスが最も値の小さいアドレスであると判定した場合も（ステップＳ７４／ＹＥＳ）、制御部２１０は、ステップＳ７７の処理に移行する。ステップＳ７７では、制御部２１０は、取得したＩＰアドレスを使用して他のＷＥＢサーバ２００との通信を行う。制御部２１０は、他のＷＥＢサーバ２００に、他のＷＥＢサーバ２００の記憶する保険点数情報のうち、更新日時が最も新しい保険点数情報の更新日時を送信するように要求する（ステップＳ７７）。すべてのＷＥＢサーバ２００から更新日時を取得すると（ステップＳ７８／ＹＥＳ）、制御部２１０は、取得した更新日時のうち、日時が最も古い更新日時を、更新日時管理装置５００に記憶させる更新日時として選択する（ステップＳ７９）。制御部２１０は、選択した更新日時を更新日時管理装置５００に送り、更新日時管理装置５００に記憶させる（ステップＳ８０）。
【００６２】
以上、詳細に説明したように本実施形態は、ＷＥＢサーバ２００が、他の各ＷＥＢサーバ２００から、各ＷＥＢサーバ２００の記憶する保険点数情報のうち、更新日時が最新の保険点数情報の更新日時を取得する。そして、取得した更新日時情報のうち、更新日時が最も古い更新日時をＷＥＢサーバ２００に保険点数の計算に使用させる保険点数情報として選択する。このため、他のＷＥＢサーバ２００に記憶されていない更新日時の保険点数情報を使用して保険点数を計算してしまうことがなく、各ＷＥＢサーバ２００が保険点数の計算に使用する保険点数情報の更新日時を揃えることができる。従って、複数のＷＥＢサーバ２００間で、各ＷＥＢサーバ２００が処理に使用するデータを同期させることができる。
【００６３】
例えば、ＷＥＢサーバ２００、ＡＰサーバ３００及びＤＢサーバ４００といった複数のサーバ間で、分散トランザクション制御により、ＤＢサーバ４００の記憶する点数マスタファイルを同期させる場合を考える。この場合、トランザクションの制御が複雑となり、また、分散トランザクション制御を実現するためのシステムを作成するためのコストがかかる。これに対して本実施形態は、各ＷＥＢサーバ２００がＤＢサーバ４００から取得済みの保険点数情報のうち、最新のものを選択して、選択した保険点数情報の更新日時を更新日時管理装置５００に記憶させる構成を採用している。従って、複雑な制御を必要とせず、各ＷＥＢサーバ２００が処理に使用するデータを同期させることができる。
【００６４】
また、どのサーバからもアクセスが可能な更新日時管理装置５００に更新日時情報を記憶させておき、保険点数の計算の際には、ＷＥＢサーバ２００に更新日時情報を更新日時管理装置から取得させる。従って、複数のＷＥＢサーバ２００間で、各ＷＥＢサーバ２００が処理に使用するデータを同期させることができる。
【００６５】
また、ＷＥＢサーバ２００が、更新日時管理装置に、更新日時情報が登録されているか否かを問い合わせ、更新日時情報が登録されていない場合に、前述のように各ＷＥＢサーバ２００に保険点数情報の取得要求を送信する。取得要求を受け付けた他のＷＥＢサーバ２００は、各ＷＥＢサーバ２００の記憶する保険点数情報のうち、更新日時が最新の保険点数情報の更新日時を取得要求を受け付けたＷＥＢサーバ２００に送る。従って、更新日時管理装置に更新日時情報が登録されていない場合に、更新日時管理装置に更新日時情報を登録することができる。
【００６６】
上述した実施形態は、本発明の好適な実施の形態である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。例えば、上述した実施形態では、更新日時情報を記憶する更新日時管理装置５００をＷＥＢサーバ２００やＡＰサーバ３００とは別に設ける構成としていた。これ以外に、更新日時情報を記憶するＷＥＢサーバ２００又はＡＰサーバ３００を事前に設定しておいて、設定したＷＥＢサーバ２００又はＡＰサーバ３００に更新日時情報を記憶させるものであってもよい。
【００６７】
また、上述した実施形態では、保険点数情報を登録した点数マスタファイルを例に説明した。これ以外に、システム制御情報を登録した共通マスタファイルについても点数マスタファイルと同様に処理することができる。例えば、患者の年齢に応じて設定された入院基本料計算条件や、ＩＤカードを発行するか否かを設定したＩＤカード発行条件等の情報が共通マスタファイルに登録される。
【００６８】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得し、取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定し、前記決定したデータの前記更新日時情報を出力する処理をコンピュータに実行させることを特徴とするプログラム。
（付記２）  前記出力する処理は、前記決定したデータの更新日時情報を記憶し、サーバからの要求により、該要求のあったサーバに前記更新日時情報を送信する管理装置に、前記決定したデータの更新日時情報を送信する処理であることを特徴とする付記１記載のプログラム。
（付記３）  前記管理装置に、前記更新日時情報が記憶されているか否かを問い合わせ、前記管理装置に前記更新日時情報が記憶されていない場合に、前記複数のサーバに、前記更新日時が最も新しいデータの更新日時情報の取得を要求することを特徴とする付記２記載のプログラム。
（付記４）  複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得するステップと、
前記取得するステップで取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定するステップと、
前記決定したデータの前記更新日時情報を出力するステップと、
を有することを特徴とするデータ同期方法。
（付記５）  前記出力するステップは、前記決定したデータの更新日時情報を記憶し、サーバからの要求により、該要求のあったサーバに前記更新日時情報を送信する管理装置に、前記決定したデータの更新日時情報を送信する処理であることを特徴とする付記４記載のデータ同期方法。
（付記６）  前記管理装置に、前記更新日時情報が記憶されているか否かを問い合わせ、前記管理装置に前記更新日時情報が記憶されていない場合に、前記複数のサーバに、前記更新日時が最も新しいデータの更新日時情報の取得を要求するステップを有することを特徴とする付記５記載のデータ同期方法。
（付記７）  複数のサーバから、各サーバの記憶するデータのうち、更新日時が最も新しいデータの更新日時情報を取得する取得手段と、
前記取得手段で取得した更新日時情報のなかから、更新日時が最も古い更新日時情報を選択して、選択した前記更新日時情報に対応するデータを、前記複数のサーバで処理に使用するデータに決定する選択手段と、
前記決定したデータの前記更新日時情報を出力する出力手段と、
を備えることを特徴とするデータ同期装置。
（付記８）  前記出力手段は、前記決定したデータの更新日時情報を記憶し、サーバからの要求により、該要求のあったサーバに前記更新日時情報を送信する管理装置に、前記決定したデータの更新日時情報を送信する手段であることを特徴とする付記７記載のデータ同期装置。
（付記９）  前記取得手段は、前記管理装置に、前記更新日時情報が記憶されているか否かを問い合わせ、前記管理装置に前記更新日時情報が記憶されていない場合に、前記複数のサーバに、前記更新日時が最も新しいデータの更新日時情報の取得を要求することを特徴とする付記８記載のデータ同期装置。
【符号の説明】
【００６９】
１００  クライアント端末
２００  ＷＥＢサーバ
３００  ＡＰサーバ
４００  ＤＢサーバ
５００  更新日時管理装置
１１０、２１０、３１０  制御部
２７１、３７１  入力部
２７２、３７２  要求解析部
２７３  更新要求部
２７４、３７４  データ取得部
２７５、３７５  点数計算処理部
２７６、３７６  出力部
３７３  更新処理部
【図１】
2014235712.tif 000003
【図２】
2014235712.tif 000004
【図３】
2014235712.tif 000005
【図４】
2014235712.tif 000006
【図５】
2014235712.tif 000007
【図６】
2014235712.tif 000008
【図７】
2014235712.tif 000009
【図８】
2014235712.tif 000010
【図９】
2014235712.tif 000011
【図１０】
2014235712.tif 000012
【図１１】
2014235712.tif 000013
【図１２】
2014235712.tif 000014
【図１３】
2014235712.tif 000015
【図１４】
2014235712.tif 000016
【図１５】
2014235712.tif 000017
【図１６】
2014235712.tif 000018
【図１７】
2014235712.tif 000019
【図１８】
2014235712.tif 000020
【図１９】
2014235712.tif 000021
【図２０】
2014235712.tif 000022
【図２１】
2014235712.tif 000023
【図２２】
2014235712.tif 000024
【図２３】
2014235712.tif 000025
【図２４】
2014235712.tif 000026