(57)【要約】【課題】データを複数のデータベース（ＤＢ）に分散保存するデータ記憶システムを提供する。【解決手段】データ記憶システム１は、複数のＤＢ１０と、ＤＢ１０を管理するＤＢＭＳ２０とを備える。複数のＤＢ１０は、同じ複数のフィールドを含むテーブルを有して構成され、各テーブルは、データ値の書込または読出が可能なフィールドと、当該テーブル以外の他のテーブルへのリンク情報が格納されるフィールドを有する。アプリケーションプログラム５０は、ＤＢ１０からリンク情報を受け取ると、そのリンク情報で特定されるＤＢ１０にアクセスして、データの書込または読出を行う。【選択図】図１
2008310399.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースと、データベースを管理する管理システムとを備えて、複数のデータベースにデータを分散保存させるデータ記憶システムであって、
前記複数のデータベースは同じ複数のフィールドを含むテーブルを有して構成され、各テーブルは、データ値の書込または読出が可能なフィールドと、当該テーブル以外の他のテーブルへのリンク情報が格納されるフィールドを有することを特徴とするデータ記憶システム。
【請求項２】
前記管理システムは、アプリケーションプログラムからの指示により、全てのデータベースのテーブルに、新たなレコードを作成することを特徴とする請求項１に記載のデータ記憶システム。
【請求項３】
前記管理システムは、データ値の書込または読出が可能なフィールドをテーブルごとに特定するマッピング情報を利用して、レコードを作成することを特徴とする請求項２に記載のデータ記憶システム。
【請求項４】
前記管理システムは、マッピング情報を利用して、各テーブルにおいて、データ値の書込が可能なフィールドにはｎｕｌｌデータを保存し、データ値の書込が不能なフィールドには、参照するべき他のテーブルのリンク情報を格納することを特徴とする請求項３に記載のデータ記憶システム。
【請求項５】
前記管理システムは、アプリケーションプログラムにより特定されるデータベースのフィールドにアクセスがあると、そのフィールドに格納されているデータ値またはリンク情報をアプリケーションプログラムに送信し、
アプリケーションプログラムは、受信したリンク情報により特定されるデータベースのフィールドに再アクセスすることを特徴とする請求項１から４のいずれかに記載のデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶システムに関し、特に複数のデータベースにデータを分散保存させるデータ記憶システムに関する。
【背景技術】
【０００２】
病院では、日々、様々な種類の情報がデータベース（ＤＢ）に記録されている。医師が患者を検査すると、その検査に使用した器材や、医師が作成したレポート、また検査時に取得した画像など、検査に関する情報が互いに紐付けられて病院内の医用ＤＢに格納される。従来、複数の医用サーバを備え、端末装置から送信された問い合わせを受信した医用サーバが、問い合わせを他の医用サーバに転送し、これに対する医用サーバの応答を端末装置に返信する医用サーバシステムが提案されている（たとえば、特許文献１）。
【特許文献１】特開２００１−２９０８８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
現在、患者や検査に関する情報を病院外のＤＢに保存することには法律上の制約があるため、患者や検査に関する情報は、病院内のＤＢに保存する必要がある。このとき、情報が一括して外部に流出するリスクを回避するために、患者や検査に関する情報は、それぞれ異なるＤＢに分散して保存されることが望ましい。複数のＤＢに情報を分散保存することで、アクセスが集中する状況を回避することも可能となる。
【０００４】
時代の変化などにより、患者や検査に関する一部または全部の情報を院外にも保存できるようになると、院外のデータ記憶システムと、院内のデータ記憶システムとの連携をとることが困難となることが予想される。病院側のサーバは、院外のデータ記憶システムに対してデータを書き込み、または読み出すために、院外のＤＢの構造を把握しておけばよいが、これらは病院側サーバの管理下にないため、複数の院外ＤＢの構造を完全に把握することは容易でない。なお院内、院外を問わず、保存するべきデータ種類が多い場合に、分散するＤＢシステムに対して、データを所望のＤＢに書き込み、または所望のＤＢから読み出すことは必ずしも容易でない。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、効率よくデータを分散保存することのできるデータ記憶システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様は、複数のデータベースと、データベースを管理する管理システムとを備えて、複数のデータベースにデータを分散保存させるデータ記憶システムである。このデータ記憶システムにおいて、前記複数のデータベースは同じ複数のフィールドを含むテーブルを有して構成され、各テーブルは、データ値の書込または読出が可能なフィールドと、当該テーブル以外の他のテーブルへのリンク情報が格納されるフィールドを有する。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、データを分散保存することのできるデータ記憶システムを提供できる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施例を詳細に説明する前に、まず概要を説明する。本発明の実施例におけるデータ記憶システムは、複数のデータベースと、データベースを管理する管理システムとを備えて、複数のデータベースにデータを分散保存させる機能をもつ。このデータ記憶システムでは、複数のデータベースは同じ複数のフィールドを含むテーブルを有する。各テーブルには、データ値の書込または読出が可能なフィールドと、当該テーブル以外の他のテーブルへのリンク情報が格納されるフィールドとが設けられる。このように本実施例のデータ記憶システムでは、各データベースのテーブルにおいて、データ値を格納するフィールドと、データ値を記憶可能な他のテーブルへのリンク情報を格納するフィールドの２種類を設けることで、アプリケーションプログラムによるデータ記憶システムへのアクセスを容易にすることが可能となる。以下の実施例では、医用情報を記憶する医用データ記憶システムについて説明するが、用途は医用情報の記憶に限定されるものではない。
【００１０】
図１は、本発明の実施例にかかるデータ記憶システム１の構成を示す。実施例にかかるデータ記憶システム１は、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅおよびマスタＤＢ１０ｆを含む複数のデータベース（以下、総称する場合は「ＤＢ１０」とよぶ）と、ＤＢ１０を管理するデータベース管理システム（以下、「ＤＢＭＳ２０」とよぶ）を備える。ＤＢＭＳ２０は、ネットワーク３０を介して医用サーバ４０に接続される。医用サーバ４０では、ＤＢ１０にアクセスするためのアプリケーションプログラム５０が起動され、医用サーバ４０は、アプリケーションプログラム５０により、所望のＤＢ１０に対してデータを書き込み、または読み出すことができる。医用サーバ４０は、病院内部に設けられる。
【００１１】
実施例では、データ記憶システム１における全てのＤＢ１０が病院外部に配設されている。たとえば、法律等による諸々の制約条件が緩和されて、病院外部に全ての情報を持ち出せるようになった場合に、医用情報を全て病院外部のＤＢ１０に分散保存するようにした例である。
【００１２】
本実施例においてＤＢ１０は、情報の集合体を意味し、ＤＢＭＳ２０と協同してデータ記憶システム１を構築する。ＤＢ１０は、複数のフィールドを含むテーブルそのものであってよく、ＤＢＭＳ２０は、複数のテーブルの相互に関係をもたせて管理するリレーショナルデータベース管理システムであってもよい。本実施例において複数のＤＢ１０は、同じ複数のフィールドを含むテーブルを有して構成される。各ＤＢ１０は、１つのテーブルを有してもよく、２以上のテーブルを有してもよいが、以下では、ＤＢ１０が１つのテーブルを有する器であるものとして説明する。なお、複数のＤＢ１０は、異なるハードディスクなどの記憶装置に構築されてもよく、また同一の記憶装置に構築されてもよい。
【００１３】
各ＤＢ１０のテーブルは、同じ複数の項目を有して構成される。これにより、各テーブルは同じフィールドをもつことになる。各テーブルは、データ値の書込または読出が可能な「第１フィールド」と、当該テーブル以外の他のテーブルへのリンク情報が格納される「第２フィールド」とを有する。データ値の書込または読出が可能な第１フィールドは、テーブルごとに設定される。以下、各ＤＢ１０に割り当てられる第１フィールドおよび第２フィールドを例示する。
【００１４】
図２は、各ＤＢ１０のテーブルの例を示す。
図２（ａ）は、患者ＤＢ１０ａのテーブルを示す。患者ＤＢ１０ａのテーブルは、患者氏名および患者ＩＤのフィールドのみを第１フィールドに設定され、それ以外のフィールドを第２フィールドに設定される。これにより患者ＤＢ１０ａにおいては、患者氏名および患者ＩＤのフィールドにデータ値が書き込まれ、または記憶したデータ値が読み出されることを可能とする一方で、患者氏名および患者ＩＤ以外のフィールドにデータ値を書き込むことはできない。図２（ａ）に示す例では、レコードＩＤを「０００１」とするレコードとして、患者氏名「ＡＡＡ」、患者ＩＤ「１００１００」が保存され、患者氏名および患者ＩＤ以外のフィールドには、対応するデータ値が格納されている又は格納されるべき他のＤＢ１０のリンク情報が格納されている。レコードＩＤを「０００２」とするレコードについても同様である。リンク情報は、当該他のＤＢ１０のアクセス先を特定できる情報であればよく、たとえばＩＰアドレスの形式をとってもよい。
【００１５】
図２（ｂ）は、器材ＤＢ１０ｂのテーブルを示す。器材ＤＢ１０ｂのテーブルは、使用器材のフィールドのみを第１フィールドに設定され、それ以外のフィールドを第２フィールドに設定される。これにより器材ＤＢ１０ｂにおいては、使用器材のフィールドにデータ値が書き込まれ、または記憶したデータ値が読み出されることを可能とする一方で、使用器材以外のフィールドにデータ値を書き込むことはできない。図２（ｂ）に示す例では、レコードＩＤを「０００１」とするレコードとして、使用器材「なし」が保存され、使用器材以外のフィールドには、対応するデータ値が格納されている又は格納されるべき他のＤＢ１０のリンク情報が格納されている。レコードＩＤを「０００２」とするレコードについても同様である。
【００１６】
図２（ｃ）は、レポートＤＢ１０ｃのテーブルを示す。レポートＤＢ１０ｃのテーブルは、レポートのフィールドのみを第１フィールドに設定され、それ以外のフィールドを第２フィールドに設定される。これによりレポートＤＢ１０ｃにおいては、レポートのフィールドにデータ値が書き込まれ、または記憶したデータ値が読み出されることを可能とする一方で、レポート以外のフィールドにデータ値を書き込むことはできない。図２（ｃ）に示す例では、レコードＩＤを「０００１」とするレコードとして、レポート「レポート１００１００．Ｆｉｌｅ」が保存され、レポート以外のフィールドには、対応するデータ値が格納されている又は格納されるべき他のＤＢ１０のリンク情報が格納されている。レコードＩＤを「０００２」とするレコードについても同様である。
【００１７】
以上は、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃのテーブルであるが、他のＤＢ１０、すなわち静止画ＤＢ１０ｄ、動画ＤＢ１０ｅ、マスタＤＢ１０ｆなどについても同様である。
【００１８】
以上のように、データ記憶システム１においては、複数のＤＢ１０が同一のテーブルを有し、それぞれに割り当てられるデータ項目のみのデータ値を保存する。これにより、データの分散保存を実現でき、セキュリティの高いデータ記憶システム１を実現できる。また、各ＤＢ１０が同一のレコードを記憶することで、後述するように、医用サーバ４０のアプリケーションプログラム５０は、データ記憶システム１におけるＤＢ構造を意識することなく、所望のデータにアクセスできるようになる。
【００１９】
図３は、医用サーバ４０の構成を示す。医用サーバ４０は、アクセス先設定部４３、通信部４４、判別部４５、医用データ格納部４６および制御部４７を備える。制御部４７は、読出指示部４１および書込指示部４２を備える。このうち、読出指示部４１、書込指示部４２、アクセス先設定部４３および判別部４５は、アプリケーションプログラム５０により実現される。読出指示部４１はＤＢ１０に対してデータの読出を指示する機能をもち、書込指示部４２はＤＢ１０に対してデータの書込を指示する機能をもつ。アクセス先設定部４３は、複数のＤＢ１０のうち、アクセス先となるＤＢを設定する。判別部４５は、ＤＢ１０から送信される情報を判別し、判別結果に応じた処理を実行する。医用データ格納部４６は、ＤＢ１０に対して書き込むデータを一時的に記憶し、またＤＢ１０から読み出されたデータを一時的に記憶するバッファ装置である。通信部４４は、ネットワーク３０を介してアクセス先設定部４３により特定されるＤＢとの間で情報を送受信する。
【００２０】
図４は、ＤＢＭＳ２０の構成を示す。ＤＢＭＳ２０は、通信部２１、書込／読出制御部２２、レコード作成部２３およびマッピング情報保持部２４を備える。書込／読出制御部２２は、医用サーバ４０により指示されるＤＢにアクセスして、データを書き込み、または読み出す処理を実行する。レコード作成部２３は、ＤＢＭＳ２０で管理する全てのＤＢ１０に新しいレコードを作成する。マッピング情報保持部２４は、データ値の書込が可能なフィールドをテーブルごとに特定するマッピング情報を保持する。このマッピング情報を利用して、レコード作成部２３は、管理下にあるＤＢ１０に新しいレコードを追加することができる。通信部２１は、ネットワーク３０を介して医用サーバ４０との間で情報を送受信する。
【００２１】
以下、図３および図４を参照して、ＤＢ１０に対してデータを書き込む手順と、ＤＢ１０からデータを読み出す手順について説明する。
【００２２】
＜データ書込手順＞
一例として、レコードＩＤ「０００３」のレコードの使用器材フィールドに、「内視鏡」と書き込む場合について説明する。
【００２３】
データをＤＢ１０に書き込む前段階として、アプリケーションプログラム５０は、ＤＢ１０がデータを書き込める状態にあるか確認する。そのために、読出指示部４１が、レコードＩＤと、項目（フィールド）を特定した情報を含む読出指示を作成し、通信部４４が、アクセス先設定部４３により特定されるアクセス先に読出指示を送信する。ここでは、レコードＩＤを「０００３」、フィールド特定情報を「使用器材」とする読出指示が作成される。アクセス先設定部４３は、アクセス先として、所定のＤＢ１０のアドレスを保持している。本実施例のデータ記憶システム１では、各ＤＢ１０が第１フィールドと第２フィールドを保持することで、アクセス先は任意のＤＢ１０でよい。アクセス先設定部４３は、たとえば患者ＤＢ１０ａのアドレスをアクセス先のデフォルト値として保持する。この場合、通信部４４は、患者ＤＢ１０ａに読出指示を送信する。
【００２４】
ＤＢＭＳ２０の通信部２１は、患者ＤＢ１０ａに対する読出指示を受け取り、書込／読出制御部２２に送る。書込／読出制御部２２は、読出指示に含まれるレコードＩＤと、フィールド特定情報をもとに、患者ＤＢ１０ａから情報を読み出す。
【００２５】
読出指示に含まれるレコードＩＤが「０００３」の場合、図２（ａ）を参照して、患者ＤＢ１０ａのテーブルには、該当するレコードが存在しない。したがって書込／読出制御部２２は、該当するレコードが存在しないことを示すレコード未保存情報を通信部２１から医用サーバ４０に送信させる。判別部４５は、通信部４４からレコード未保存情報を受け取ると、ＤＢ１０がデータを書き込めない状態にあることを確認し、書込指示部４２に対して、新規レコードの作成指示を生成させる。書込指示部４２は、レコードＩＤ「０００３」のレコードを用意させるレコード作成指示を作成し、通信部４４が、患者ＤＢ１０ａにレコード作成指示を送信する。
【００２６】
レコード作成部２３は、通信部２１からレコード作成指示を受けると、マッピング情報保持部２４に保持されているマッピング情報を利用して、全てのＤＢ１０のテーブルに新たなレコードを追加する。図２（ａ）〜図２（ｃ）に関連して説明したように、患者ＤＢ１０ａは、患者氏名および患者ＩＤのフィールドのみへのデータ書込を可能とし、器材ＤＢ１０ｂは、使用器材のフィールドのみへのデータ書込を可能とし、レポートＤＢ１０ｃは、レポートのフィールドのみへのデータ書込を可能とする。データ書込が可能とされないフィールドには、データが書き込まれるべき他のテーブルのリンク情報が書き込まれる。マッピング情報保持部２４は、この情報をマッピング情報としてテーブルごとに保持しており、レコード作成部２３は、このマッピング情報を利用することで、各テーブルに、レコードを適切に追加することができる。
【００２７】
図５は、各ＤＢ１０のテーブルの例を示す。図５（ａ）は、患者ＤＢ１０ａのテーブルを示し、図５（ｂ）は、器材ＤＢ１０ｂのテーブルを示し、図５（ｃ）は、レポートＤＢ１０ｃのテーブルを示す。
【００２８】
図５（ａ）の患者ＤＢ１０ａのテーブルでは、レコードＩＤ「０００３」のレコードが追加され、患者氏名および患者ＩＤのフィールドには、データを書き込むことが可能なことを示す「ｎｕｌｌ」が記録される。患者氏名および患者ＩＤ以外のフィールドには、対応するデータ値が格納されるべき他のＤＢ１０のリンク情報が記録されている。
図５（ｂ）の器材ＤＢ１０ｂのテーブルでは、レコードＩＤ「０００３」のレコードが追加され、使用器材のフィールドには、データを書き込むことが可能なことを示す「ｎｕｌｌ」が記録される。使用器材以外のフィールドには、対応するデータ値が格納されるべき他のＤＢ１０のリンク情報が記録されている。
図５（ｃ）のレポートＤＢ１０ｃのテーブルでは、レコードＩＤ「０００３」のレコードが追加され、レポートのフィールドには、データを書き込むことが可能なことを示す「ｎｕｌｌ」が記録される。レポート以外のフィールドには、対応するデータ値が格納されるべき他のＤＢ１０のリンク情報が記録されている。
なお、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅなどの他のテーブルについても同様である。
【００２９】
レコード作成部２３は、全ＤＢ１０にレコードを作成すると、レコード作成が終了したことを示すレコード作成終了情報を通信部２１から医用サーバ４０に送信させる。判別部４５は、通信部４４からレコード作成終了情報を受け取ると、読出指示部４１に、レコードＩＤと、フィールドを特定した情報を含む読出指示を作成させる。ここでは、レコードＩＤを「０００３」、フィールド特定情報を「使用器材」とする読出指示が作成される。読出指示は、通信部４４から患者ＤＢ１０ａに送信される。
【００３０】
書込／読出制御部２２は、患者ＤＢ１０ａのレコードＩＤ「０００３」で特定されるレコードの使用器材フィールドに記録されているデータを読み出す。図５（ａ）を参照して、このフィールドには、「器材ＤＢのリンク情報」が記録されている。書込／読出制御部２２は、この情報を通信部２１から医用サーバ４０に送信させ、判別部４５は、通信部４４から情報を受け取ると、リンク情報であることを判別し、書込指示部４２に対して、データの書込指示を生成させる。書込指示部４２は、レコードＩＤ「０００３」と、フィールド特定情報「使用器材」と、書き込むべきデータ値「内視鏡」を含む書込指示を作成する。
【００３１】
このとき、判別部４５は、アクセス先設定部４３に設定されているアクセス先のアドレスを、器材ＤＢ１０ｂのアドレスに一時的に変更する。これにより、通信部４４は、器材ＤＢ１０ｂに書込指示を送信する。なお、変更したアクセス先のアドレスは、書込指示の送信後、元のデフォルトのアクセス先のアドレスに戻される。書込／読出制御部２２は、書込指示を受けると、器材ＤＢ１０ｂのテーブルのレコードＩＤ「０００３」で特定されるレコードの「使用器材」フィールドに、「内視鏡」を記録する。これにより、データを適切なＤＢ１０に書き込むことができる。書込／読出制御部２２は、書込処理を終了すると、医用サーバ４０に対して書込終了メッセージを送信する。
【００３２】
以上は、リンク情報がＤＢＭＳ２０から返信された後、すぐに書込指示を作成する例について説明したが、リンク情報が返信されると、そのリンク情報で特定されるＤＢ１０のテーブルに、レコードが本当に存在しているか確認するための読出指示を送信することも可能である。ＤＢ１０より「ｎｕｌｌ」データが返信されると、判別部４５は、書込指示部４２に対して書込指示を生成させる。
【００３３】
データ記憶システム１では、各ＤＢ１０が第１フィールドと第２フィールドを保持することで、アプリケーションプログラム５０は、最初はどのＤＢにアクセスしても、結果としてデータを書き込むことができる。そのため、上述の例では、アクセス先設定部４３がアクセス先を変更したあと、すぐにデフォルト値に戻すこととしたが、変更後のアクセス先を、そのまま保持することも可能である。
【００３４】
レコードＩＤ「０００３」のレコードが作成された後、レコードＩＤ「０００３」の患者氏名のフィールドに「ＣＣＣ」、および患者ＩＤのフィールドに「３０１２４３」と書き込む場合について説明する。
読出指示部４１は、レコードＩＤを「０００３」、フィールド特定情報を「患者氏名」および「患者ＩＤ」とする読出指示を作成する。読出指示は、通信部４４から患者ＤＢ１０ａに送信される。
【００３５】
書込／読出制御部２２は、患者ＤＢ１０ａのレコードＩＤ「０００３」で特定されるレコードの患者氏名フィールド、患者ＩＤフィールドに記録されているデータを読み出す。図５（ａ）を参照して、これらのフィールドには、それぞれ「ｎｕｌｌ」が記録されている。書込／読出制御部２２は、この情報を通信部２１から医用サーバ４０に送信させ、判別部４５は、通信部４４から情報を受け取ると、データを書込可能であることを判別し、書込指示部４２に対して、データの書込指示を生成させる。書込指示部４２は、レコードＩＤ「０００３」と、フィールド特定情報「患者氏名」および「患者ＩＤ」と、書き込むべきデータ値「ＣＣＣ」、「３０１２４３」を含む書込指示を作成する。通信部４４は、患者ＤＢ１０ａに書込指示を送信する。書込／読出制御部２２は、書込指示を受けると、患者ＤＢ１０ａのテーブルのレコードＩＤ「０００３」で特定されるレコードの「患者氏名」および「患者ＩＤ」フィールドに、「ＣＣＣ」、「３０１２４３」を記録する。これにより、データを適切なＤＢ１０に書き込むことができる。書込／読出制御部２２は、書込処理を終了すると、医用サーバ４０に対して書込終了メッセージを送信する。
【００３６】
このように、医用サーバ４０は、複数のＤＢ１０の構造を把握することなく、適切なＤＢ１０にデータを書き込むことが可能である。これは、各テーブルが同一の構造をとり、データを書込可能な第１フィールドと、他のテーブルへのリンク情報を格納する第２フィールドとを有することで実現される。このように複数のＤＢ１０を構築することで、アプリケーションプログラム５０は、単純な機能でデータの書込処理を実現できる。また、ＤＢ１０に変更があった場合でも、アプリケーションプログラム５０側でＳＱＬ文などの変更を必要としないため、病院側のシステム管理者の負担を軽減することができる。
【００３７】
＜データ読出手順＞
一例として、レコードＩＤ「０００２」の使用器材のフィールドからデータを読み出す場合について説明する。
【００３８】
読出指示部４１は、レコードＩＤを「０００２」、フィールド特定情報を「使用器材」とする読出指示を作成し、通信部４４が、アクセス先設定部４３により特定されるアクセス先に読出指示を送信する。このアクセス先のアドレスは、患者ＤＢ１０ａのアドレスであり、通信部４４は、患者ＤＢ１０ａに読出指示を送信する。
【００３９】
書込／読出制御部２２は、通信部２１から読出指示を受け取り、読出指示に含まれるレコードＩＤと、フィールド特定情報をもとに、患者ＤＢ１０ａから情報を読み出す。図５（ａ）を参照して、レコードＩＤ「０００２」のレコードの「使用器材」フィールドには、「器材ＤＢのリンク情報」が記録されている。書込／読出制御部２２は、この情報を通信部２１から医用サーバ４０に送信させ、判別部４５は、通信部４４から情報を受け取ると、リンク情報であることを判別し、読出指示部４１に対して、データの読出指示を再生成させる。
【００４０】
このとき、判別部４５は、アクセス先設定部４３に設定されているアクセス先のアドレスを、器材ＤＢ１０ｂのアドレスに一時的に変更する。これにより、通信部４４は、器材ＤＢ１０ｂに読出指示を送信する。なお、変更したアクセス先のアドレスは、読出指示の送信後、元のデフォルトのアクセス先のアドレスに戻される。書込／読出制御部２２は、読出指示を受けると、器材ＤＢ１０ｂのテーブルのレコードＩＤ「０００２」で特定されるレコードの「使用器材」フィールドから、データ値「内視鏡」を読み出す。書込／読出制御部２２は、読出処理を終了すると、医用サーバ４０に対して、データ値「内視鏡」を送信する。
【００４１】
データ記憶システム１では、各ＤＢ１０が第１フィールドと第２フィールドを保持することで、アプリケーションプログラム５０は、最初はどのＤＢにアクセスしても、結果としてデータを読み出すことができる。そのため、上述の例では、アクセス先設定部４３がアクセス先を変更したあと、すぐにデフォルト値に戻すこととしたが、変更後のアクセス先を、そのまま保持することも可能である。
【００４２】
次に、レコードＩＤ「０００２」の患者氏名および患者ＩＤのフィールドからデータを読み出す場合について説明する。
読出指示部４１は、レコードＩＤを「０００２」、フィールド特定情報を「患者氏名」および「患者ＩＤ」とする読出指示を作成し、通信部４４が、アクセス先設定部４３により特定されるアクセス先に読出指示を送信する。このアクセス先のアドレスは、患者ＤＢ１０ａのアドレスであり、通信部４４は、患者ＤＢ１０ａに読出指示を送信する。
【００４３】
書込／読出制御部２２は、通信部２１から読出指示を受け取り、読出指示に含まれるレコードＩＤと、フィールド特定情報をもとに、患者ＤＢ１０ａから情報を読み出す。図５（ａ）を参照して、レコードＩＤ「０００２」のレコードの「患者氏名」フィールドおよび「患者ＩＤ」フィールドには、「ＢＢＢ」、「２００２３５」が記録されている。書込／読出制御部２２は、このデータ値「ＢＢＢ」、「２００２３５」を読み出す。書込／読出制御部２２は、読出処理を終了すると、医用サーバ４０に対して、データ値「ＢＢＢ」、「２００２３５」を送信する。
【００４４】
このように、医用サーバ４０は、複数のＤＢ１０の構造を把握することなく、適切なＤＢ１０からデータを読み出すことが可能である。これは、各テーブルが同一の構造をとり、データが記録されている第１フィールドと、他のテーブルへのリンク情報を格納する第２フィールドとを有することで実現される。このように複数のＤＢ１０を構築することで、アプリケーションプログラム５０は、単純な機能でデータの読出処理を実現できる。また、ＤＢ１０に変更があった場合でも、アプリケーションプログラム５０側でＳＱＬ文などの変更を必要としないため、病院側のシステム管理者の負担を軽減することができる。
【００４５】
図６は、ＤＢＭＳ２０の構成の変形例を示す。ＤＢＭＳ２０は、図４に示した通信部２１、書込／読出制御部２２、レコード作成部２３およびマッピング情報保持部２４に加えて、判別部２５を備える。判別部２５は、図３に示す医用サーバ４０の判別部４５の機能を代替する。
【００４６】
具体的に判別部２５は、書込／読出制御部２２で取得された情報をもとに、アプリケーションプログラム５０により書き込みを希望するレコードの存在の有無を判別する。図２に示すＤＢ１０の例では、レコードＩＤ３のレコードが存在しないため、既述したように書込／読出制御部２２は、該当するレコードが存在しないことを示すレコード未保存情報を生成する。判別部２５は、レコード未保存情報を受け取ると、ＤＢ１０がデータを書き込めない状態にあることを確認し、レコード作成部２３に対してレコードＩＤ「０００３」のレコードを用意させるレコード作成指示を作成する。レコード作成部２３は、レコード作成指示を受けると、マッピング情報保持部２４に保持されているマッピング情報を利用して、全てのＤＢ１０のテーブルに新たなレコードを追加する。
【００４７】
また判別部２５は、書込／読出制御部２２でＤＢ１０から読み出した情報が、所望のデータ値であるのか、またはリンク情報であるかを判別する。所望のデータ値であるときは、判別部２５は、書込／読出制御部２２に対して送信指示を送り、書込／読出制御部２２は、そのデータ値を通信部２１から医用サーバ４０に送信する。一方、リンク情報であるときは、書込／読出制御部２２に対して、そのリンク情報で特定されるテーブルに保持されたデータ値を読み出させる。判別部２５は、このデータ値がリンク情報でないことを確認すると、書込／読出制御部２２に対して送信指示を送り、書込／読出制御部２２は、そのデータ値を通信部２１から医用サーバ４０に送信する。
【００４８】
以上のように、判別部２５をＤＢＭＳ２０に持たせることで、アプリケーションプログラム５０から判別部４５の機能を外すことができ、アプリケーションプログラム５０の開発工数を削減できる。また、ＤＢＭＳ２０と医用サーバ４０の間の通信回数を少なくできるため、情報の読出時間または書込時間を短縮できる。
【００４９】
図７は、本発明の実施例にかかるデータ記憶システムの構成の変形例を示す。このデータ記憶システム１ａは、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅおよびマスタＤＢ１０ｆを含む複数のＤＢ１０と、ＤＢ１０を管理する複数のＤＢＭＳ２０を備える。データ記憶システム１ａでは、患者ＤＢ１０ａおよび器材ＤＢ１０ｂを管理するＤＢＭＳ２０ａと、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅ、マスタＤＢ１０ｆを管理するＤＢＭＳ２０ｂとが設けられる。
【００５０】
ＤＢＭＳ２０ａおよび２０ｂは、それぞれが管理するＤＢ１０のマッピング情報をもっており、レコードの追加指示を受けて、ＤＢ１０にレコードを追加する。その他の構成および動作は、図１に示すデータ記憶システム１のＤＢＭＳ２０と同様である。なお、図６に示すように判別部２５を各ＤＢＭＳ２０にもたせる場合は、レコードの追加指示を生成した判別部２５が、別のＤＢＭＳ２０のレコード作成部２３に対してもレコード追加指示を伝えることで、データ記憶システム１ａにおける全てのテーブルに、同じレコードを作成することが可能となる。
【００５１】
図８は、本発明の実施例にかかるデータ記憶システムの構成の変形例を示す。このデータ記憶システム１ｂは、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅおよびマスタＤＢ１０ｆを含む複数のＤＢ１０と、ＤＢ１０を管理する複数のＤＢＭＳ２０を備える。データ記憶システム１ｂでは、患者ＤＢ１０ａを管理するＤＢＭＳ２０ｄと、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅ、マスタＤＢ１０ｆを管理するＤＢＭＳ２０ｃとが設けられる。ＤＢＭＳ２０ｄおよび患者ＤＢ１０ａは病院内部に設けられ、ＤＢＭＳ２０ｃおよびＤＢ１０ｂ〜１０ｆは病院外部に設けられる。
【００５２】
ＤＢＭＳ２０ｃおよび２０ｄは、それぞれが管理するＤＢ１０のマッピング情報をもっており、レコードの追加指示を受けて、ＤＢ１０にレコードを追加する。その他の構成および動作は、図１に示すデータ記憶システム１のＤＢＭＳ２０と同様である。なお、図６に示すように判別部２５を各ＤＢＭＳ２０にもたせる場合は、レコードの追加指示を生成した判別部２５が、別のＤＢＭＳ２０のレコード作成部２３に対してもレコード追加指示を伝えることで、データ記憶システム１ｂにおける全てのテーブルに、同じレコードを作成することが可能となる。
【００５３】
なお、図８に示すデータ記憶システム１ｂでは、患者ＤＢ１０ａが病院内部に設けられている。たとえば、患者情報を病院外部で管理してはいけないという法律的な規制が課されている場合、ＤＢ１０ｂ〜１０ｆのいずれかにアクセスすることで、患者ＤＢ１０ａのリンク情報から患者ＤＢ１０ａにアクセスできることは禁止されなければならない。そこで、病院外部に情報開示することが好ましくないＤＢ１０については、外部からのアクセスを禁止するために、そのＤＢ１０のリンク情報が、院外ＤＢ１０のレコードから削除されてもよい。これにより、情報開示を禁止されているＤＢ１０への外部からのアクセスが不可能となり、法律による規制を遵守することができる。なお、このような事情は法律の問題だけでなく、病院側で情報を外部に開示したくない場合も含まれる。
【００５４】
一方、このような情報開示の是非についての事情は、時代に応じて変化することもある。たとえば患者情報を外部で管理してもよくなった場合、院外ＤＢ１０のレコードにリンク情報を追記すればよい。また、そのような事態に事前に備えるべく、リンク情報は予め格納しておき、院内ＤＢ１０からの読出を不可とするフラグをオンに設定しておくことで対応することも可能である。事情の変化により外部への情報開示が可能となったときに、このフラグをオフに設定することで、外部からのアクセスを可能にできる。これは、フラグの設定だけですむため、事情の変化に効率よく対応できる利点がある。
【００５５】
図９は、本発明の実施例にかかるデータ記憶システムの構成の変形例を示す。このデータ記憶システム１ｃは、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅおよびマスタＤＢ１０ｆを含む複数のＤＢ１０と、ＤＢ１０を管理するＤＢＭＳ２０ｅを有するアプリケーションサーバ７０を備える。ＤＢＭＳ２０ｅは、ＤＢ１０ａ〜１０ｆを管理する。アプリケーションサーバ７０は、伝文パーサ６０、アプリケーションプログラム５０ａをさらに有する。図９に示すデータ記憶システム１ｃでは、医用サーバ４０から、各種指示またはデータを含む伝文がアプリケーションサーバ７０に送信され、伝文パーサ６０が、その伝文を構文解析して、アプリケーションプログラム５０ａに引き渡す。
【００５６】
伝文の形式は、一般に医用サーバ４０ごとに異なる。また医用サーバ４０のバージョンがアップすると、伝文形式がバージョンアップされることもある。そのような場合、伝文パーサ６０は、伝文を構文解析して、アプリケーションプログラム５０ａで処理可能なデータに分解することで、データ記憶システム１ｃが効率的に動作することが可能となる。なお伝文パーサ６０は、医用サーバ４０のゲートウェイに設けられてもよい。いずれの場合であっても、医用サーバ４０の伝文形式の違いを伝文パーサ６０で吸収することで、医用サーバ４０は、ＤＢ１０の構造を意識することなく、データの書込または読出を効率よく実行することが可能となる。
【００５７】
図１０は、本発明の実施例にかかるデータ記憶システムの構成の変形例を示す。このデータ記憶システム１ｄは、患者ＤＢ１０ａ、器材ＤＢ１０ｂ、レポートＤＢ１０ｃ、静止画ＤＢ１０ｄ、動画ＤＢ１０ｅおよびマスタＤＢ１０ｆを含む複数のＤＢ１０と、ＤＢ１０を管理するＤＢＭＳ２０ｆを備える。データ記憶システム１ｄでは、医用サーバ４０がネットワーク３０を介してＷｅｂサーバ８０と接続し、アプリケーションプログラム５０ｂが、Ｗｅｂサーバ８０とＤＢＭＳ２０ｆに接続する構成がとられている。
【００５８】
データ記憶システム１ｄでは、ＤＢ１０が全てファイアウォール内に配置される。医用サーバ４０からアクセスがあると、アプリケーションプログラム５０ｂがＤＢＭＳ２０ｆからデータを抽出し、医用サーバ４０で参照可能な形にしてＷｅｂサーバ８０にデータを配置する。Ｗｅｂサーバ８０は、医用サーバ４０からのアクセスが終了したときに、アプリケーションプログラム５０ｂから供給されたデータを削除する。
【００５９】
このような構成をとることで、ＤＢ１０を外部ネットワークにさらす必要がなくなるため、セキュリティの高いデータ記憶システム１ｄを構築できる。また、Ｗｅｂサーバ８０のデータは、医用サーバ４０からのアクセスが終了次第、削除することで、情報流出を防いだシステムを実現できる。
【００６０】
なおＷｅｂサーバ８０にデータを配置する場合、アプリケーションプログラム５０ｂは、ＤＢ１０からの情報をｘｍｌ化してもよい。複数のＤＢ１０に分散保存した情報を収集してＷｅｂサーバ８０に配置する場合、それぞれのテーブルに格納されているデータ容量に差があるため、Ｗｅｂサーバ８０に配置するまでの時間が異なることが想定される。そこで、Ｗｅｂサーバ８０は、ＤＢ１０からデータの読出しが終わるまで、各ＤＢ１０について「ローディング中」であることを示す文字列を表示させ、たとえば読出しが終了したＤＢ１０から、レコード情報を表示していくようにしてもよい。これにより、全ての情報が揃わなくても医用サーバ４０に結果を表示することができるため、医用サーバ４０において情報表示を待っているユーザのストレスを軽減することができる。
【００６１】
以上は、データ記憶システムにおいてＤＢ１０が既に作成されていることを前提としたが、ＤＢ構造は、ユーザにより以下のように初期設定されてもよい。
【００６２】
図１１は、ＤＢ作成ツールの構成を示す。ＤＢ作成ツール９０は、病院外のデータサーバに設けられてもよく、また病院内の医用サーバ４０に設けられてもよい。ＤＢ作成ツール９０は、入力受付部９１、選択項目取得部９２、変更部９３、テーブル生成部９４、マーク部９５、ＧＵＩ生成部９６およびリスト保持部９７を備える。
【００６３】
図１２は、ＤＢ作成ツール９０によりディスプレイに表示されるＤＢ作成画面１００を示す。このＤＢ作成画面１００には、追加ボタン１０１、削除ボタン１０２、修正ボタン１０３、保存ボタン１０４からなるボタン群と、仮ＤＢ作成画面１０５およびリスト選択画面１０６が表示される。リスト選択画面１０６には、ユーザにより設定可能な項目リストがチェックボックス１０７とともに表示される。ユーザがチェックボックス１０７を選択し、追加ボタン１０１を押下すると、仮ＤＢ作成画面１０５に仮ＤＢアイコン１０８が表示される。
【００６４】
ＧＵＩ生成部９６は、リスト保持部９７から設定可能リストを読み込み、ＧＵＩ画面を生成して、ディスプレイに表示する。このＧＵＩ画面が、図１２に示すＤＢ作成画面１００である。ユーザは、作成したいテーブルごとにチェックボックス１０７をチェックし、追加ボタン１０１を押下すると、入力受付部９１が選択された項目を受け付け、選択項目取得部９２に送る。選択項目取得部９２は、選択項目を取得して、仮ＤＢアイコン１０８を仮ＤＢ作成画面１０５に表示させる。なお、仮ＤＢアイコン１０８を表示する前に、ＤＢ作成画面１００に、そのＤＢにつける名前と、ＤＢの格納先を入力するウインドウが表示され、ユーザにより、ＤＢ名と格納先とが決定されてもよい。これらの決定情報は、それぞれ対応付けられてテーブル生成部９４に送られる。
【００６５】
マーク部９５は、選択済みのチェックボックス１０７が再選択されないように、選択済みのチェックボックス１０７にマークを付与する。図１２の例では、患者氏名、患者ＩＤのチェックボックスが、再選択できないように×マークされている。なおマーク部９５は、選択済みのチェックボックス１０７に色付けするなど、通常色とは異なる配色を施してもよい。なお、リスト選択画面１０６において、使用器材のチェックボックス１０７にチェックが入っているが、この状態で追加ボタン１０１が押下され、ＤＢ名および格納先が決定されると、仮ＤＢアイコン１０８が仮ＤＢ作成画面１０５に表示され、また使用器材のチェックボックス１０７に×マークが表示される。
【００６６】
ユーザが、以上のようにしてＤＢに格納する情報を決定する。選択項目取得部９２は、各ＤＢに対して選択された項目を取得し、テーブル生成部９４が、ＤＢ名と対応付けて、選択項目を保持する。ユーザにより、保存ボタン１０４が押下されると、入力受付部９１は、テーブル生成部９４に、各ＤＢのテーブルを作成する指示を送る。テーブル生成部９４は、選択された全ての項目を収集して、各テーブルに設定する項目を特定する。また、各ＤＢごとに選択された項目を利用して、それぞれのテーブルを作成する。これにより、ＤＢ１０は、図２に示すテーブルを保持することが可能となる。
【００６７】
ＤＢの作成時、ユーザは、削除ボタン１０２を押下して、仮ＤＢアイコン１０８を削除することで、設定した仮ＤＢについての情報をリセットできる。これにより、マーク部９５は、対応するチェックボックス１０７の×マークを解除し、ユーザにより選択可能な状態に変更する。
【００６８】
ユーザは、修正ボタン１０３を押下して、設定したＤＢのテーブルを修正することができる。テーブル生成部９４は、ユーザから修正指示が入ると、対応するテーブルの修正処理を行う。
【００６９】
データをテーブル間で移動させる指示の場合、テーブル生成部９４は、移動元のテーブルのフィールドから移動先のテーブルのフィールドにデータをコピーする。次に、移動元および移動先のテーブル以外のテーブルの同じフィールドのリンク情報を、移動先のアドレスを示すリンク情報に置換する。それから、移動元のフィールドのデータを、移動先のアドレスを示すリンク情報に置換する。これにより、テーブル生成部９４は、データをテーブル間で移動させることができる。なお、新たなＤＢを作成して、新たなＤＢにデータを移動する場合も同様であり、この場合は新規ＤＢのテーブルが移動先のテーブルに対応する。
【００７０】
テーブルの修正処理が終了すると、テーブル生成部９４は、マッピング情報保持部２４（図４参照）に保持していたマッピング情報を更新する。複数のＤＢＭＳ２０が存在するデータ記憶システム１においては、１つのＤＢＭＳ２０に組み込まれたＤＢ作成ツール９０がＤＢ作成処理を実行し、その処理結果を示すマッピング情報を他のＤＢＭＳ２０に通知することで、他のＤＢＭＳ２０においても同様のＤＢ修正処理が実行される。
【００７１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、ＤＢ１０は院外に配置され、または院外または院内に配置されるとしたが、全てのＤＢ１０が院内に配置されてもよい。また、実施例では医用情報の記憶システムについて説明したが、他の種類の情報の記憶システムについても本発明を適用できることは言うまでもない。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施例にかかるデータ記憶システムの構成を示す図である。
【図２】各ＤＢのテーブルの例を示す図である。
【図３】医用サーバの構成を示す図である。
【図４】ＤＢＭＳの構成を示す図である。
【図５】各ＤＢのテーブルの例を示す図である。
【図６】ＤＢＭＳの構成の変形例を示す図である。
【図７】本発明の実施例にかかるデータ記憶システムの構成の変形例を示す図である。
【図８】本発明の実施例にかかるデータ記憶システムの構成の変形例を示す図である。
【図９】本発明の実施例にかかるデータ記憶システムの構成の変形例を示す図である。
【図１０】本発明の実施例にかかるデータ記憶システムの構成の変形例を示す図である。
【図１１】ＤＢ作成ツールの構成を示す図である。
【図１２】ＤＢ作成ツールによりディスプレイに表示されるＤＢ作成画面を示す図である。
【符号の説明】
【００７３】
１・・・データ記憶システム、１０・・・ＤＢ、２０・・・ＤＢＭＳ、２１・・・通信部、２２・・・書込／読出制御部、２３・・・レコード作成部、２４・・・マッピング情報保持部、２５・・・判別部、３０・・・ネットワーク、４０・・・医用サーバ、４１・・・読出指示部、４２・・・書込指示部、４３・・・アクセス先設定部、４４・・・通信部、４５・・・判別部、４６・・・医用データ格納部、４７・・・制御部、５０・・・アプリケーションプログラム、６０・・・伝文パーサ、７０・・・アプリケーションサーバ、８０・・・Ｗｅｂサーバ、９０・・・ＤＢ作成ツール、９１・・・入力受付部、９２・・・選択項目取得部、９３・・・変更部、９４・・・テーブル生成部、９５・・・マーク部、９６・・・ＧＵＩ生成部、９７・・・リスト保持部。  
【図１】
2008310399.tif 000003
【図２】
2008310399.tif 000004
【図３】
2008310399.tif 000005
【図４】
2008310399.tif 000006
【図５】
2008310399.tif 000007
【図６】
2008310399.tif 000008
【図７】
2008310399.tif 000009
【図８】
2008310399.tif 000010
【図９】
2008310399.tif 000011
【図１０】
2008310399.tif 000012
【図１１】
2008310399.tif 000013
【図１２】
2008310399.tif 000014