(57)【要約】本発明の方法は、データベース（１３）内のデータにアクセスし、アクセスされたデータをフォームに入力し、第１のユーザがアクセスされたデータを含むフォームを使用し、第１のユーザによってフォームが使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベース（１３）を監視し、検出された変更に対応した規則に従って第１のユーザによって使用されている間にフォーム内でアクセスされたデータを更新し（２０ａ−ｎ）、更新に応じて、アクセスされたデータの更新状態を表示する。更新状態は、第１のユーザがデータにアクセスし始めてからアクセスされたデータが変更されていないかどうか、第１のユーザがアクセスされたデータを変更したかどうか、及び、第１のユーザがアクセスされたデータを使用している間に第２のユーザがアクセスされたデータを変更したかどうかを示す。この方法は、スタンドアローン型処理装置又はネットワーク（１０）において実施することができる。
2004528636.tif 000002
【特許請求の範囲】
【請求項１】
データベース内のアクセスされたデータへの変更を検出するためデータベースを監視し、
検出された変更に応答して同期ルールに従ってデータの使用中にアクセスされたデータを更新する、
方法。
【請求項２】
データベース内のアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に応答して同期ルールに従って、データの使用中にアクセスされたデータを更新するプロセッサを有する装置。
【請求項３】
データベースに格納されたデータにアクセスする手順と、
アクセスされたデータをフォームに入力する手順と、
第１のユーザが入力されアクセスされたデータを含むフォームを使用する手順と、
フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視する手順と、
検出された変更に対応したルールに従って、第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新する手順と、
を有する方法。
【請求項４】
更新に従ってアクセスされたデータの更新状態を表示する手順と、
第１のユーザによって使用される入力されアクセスされたデータをデータベースに格納する手順と、
を更に有する請求項３記載の方法。
【請求項５】
データベースに格納されたデータにアクセスし、アクセスされたデータをフォームに入力し、第１のユーザによって入力されアクセスされたデータを含むフォームが使用され、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に対応したルールに従って、第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新するプロセッサを有する装置。
【請求項６】
ルールは、第１のユーザと第２のユーザによってアクセスされるデータに対して同時に行われる変更を同期させる、請求項５記載の装置。
【請求項７】
ルールは、第２のユーザによるアクセスされたデータへの編集の特性と、アクセスされたデータの特性と、に基づいている、請求項５記載の装置。
【請求項８】
第１のユーザによるアクセスされたデータの使用には、アクセスされたデータの編集が含まれている、請求項５記載の装置。
【請求項９】
プロセッサは、フォームが第１のユーザによって使用されている間に、第１のユーザへ更新通知を行う、請求項５記載の装置。
【請求項１０】
更新通知は、フォーム内のアクセスされたデータの各々に対応する更新履歴情報の表示を含む、請求項９記載の装置。
【請求項１１】
更新通知は、アクセスされたデータの更新状態に応じた種々のカラーによる表示を含む、請求項１０記載の装置。
【請求項１２】
更新通知は、コメント吹き出しをアクセスされたデータと関連付けることを含む、請求項１０記載の装置。
【請求項１３】
入力されアクセスされたデータは局所的に記憶され、データベースは遠隔的に記憶されている、請求項５記載の装置。
【請求項１４】
プロセッサは、更に、アクセスされたデータの変更ログを保持する、請求項５記載の装置。
【請求項１５】
データベースに格納されたデータにアクセスする手段と、
アクセスされたデータをフォームに入力する手段と、
第１のユーザにより入力されアクセスされたデータを含むフォームを使用する手段と、
フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視する手段と、
検出された変更に対応したルールに従って、第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新する手段と、
を有する装置。
【請求項１６】
フォームを自動的に更新するシステムであって、
データをデータベースに格納するサーバと、
ネットワークを介してサーバに接続され、データベースに格納されたデータにアクセスするクライアントと、
を有し、
アクセスされたデータは第１のユーザによって使用されるフォームへ入力され、
データベースは、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するため監視され、
フォーム内のアクセスされたデータは、検出された変更に対応したルールに従って、第１のユーザによって使用されている間に更新される、
システム。
【請求項１７】
データベースに格納されたデータにアクセスする手順と、
アクセスされたデータをフォームに入力する手順と、
第１のユーザによって入力されアクセスされたデータを含むフォームが使用される手順と、
フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視する手順と、
検出された変更に対応したルールに従って、第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新する手順と、
を有する、
フォームを自動的に更新させる方法をコンピュータに実行させるための処理命令がエンコードされているコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア・アプリケーションによって使用されるデータ要素を自動的に更新する技術に関する。特に、本発明は、ソフトウェア・アプリケーションによって使用されるフォーム文書のデータ要素を自動的に更新する技術に関する。
【背景技術】
【０００２】
従来のシステムは、異なるアプリケーション若しくは同じアプリケーションが共通データベースを同時に使用／アクセスするため共通データベースにアクセスすることを可能にさせる。特に、データ要素を格納するフォーム文書を使用するアプリケーションは、アプリケーションを使用するユーザがフォーム内のデータ要素を同時に編集（更新）できるようにする。データ要素とは、例えば、フィールドであり、フィールドにはエントリー（データ）が含まれる。典型的に、このような同時使用を実現するため、システムは、第１のユーザが、例えば、データ要素を入力若しくは編集するためフォームを扱い始めたとき、共通データベース若しくは適用データ要素をロックし、これにより、第１のユーザがフォームにアクセスしている間に、他のユーザが共通データベースにアクセスすることを排除するか、又は、他のユーザがフォーム上若しくはフォームのある種のデータ要素に作用することを阻止する。したがって、典型的なシステムは、「後入れ、後勝ち」の更新手続きを実施している。特に、典型的なシステムでは、第１のユーザによってフォームに入力されたデータは、第１のユーザがフォームに電子署名し、保存し、印刷し、或いは、転送するなどしてフォームを仕上げる前に他のユーザに上書きされる可能性がある。
【０００３】
更に、共通（主／主要／中央）データベース及びローカル（アプリケーションベースの）データベースを保持する従来のシステムにおいて、共通データベース及びアプリケーションベースのデータベースは同期させなければならない。例えば、共通データベースがネットワーク（サーバ）データベースであるクライアント・サーバ・ネットワークのようなネットワーク環境において、クライアント端末側のアプリケーションベースのローカルデータベースは、ユーザがネットワーク接続をすることなくアプリケーションタスクを実行できる点で有利である。二つの別個のデータベースを保持するとき、多数のアプリケーションがアプリケーションベースのデータベース及びローカル共通データベースを用いて動いているネットワーク環境やスタンドアローン型環境では、データベースであるトランザクション・ログは、アプリケーションベースのデータベースに加えられた変更のログを保持することができる。アプリケーションベースのデータベースは、後の時点で、例えば、ユーザがネットワークへ再接続したとき、共通データベースと同期させられる。しかし、このような同期は、ユーザによる変更が個別に共通データベースへ適用されるときに、「後入れ、後勝ち」の問題を生じさせる。例えば、ネットワーク環境において、同期後に、オフラインで行われた変更は、他のユーザが何を実行したかとは無関係に、主データベースにおける最新の変更になるであろう。
【０００４】
より詳細に説明すると、二つのデータベースを保持し、共通データ要素を共有若しくは使用するフォームを使用するシステムにおいて、複数のユーザが異なるフォーム内の共通データ要素を同時に編集したとき、一方のユーザは他のユーザによって行われた変更に気付くことは無く、他のユーザのデータを上書き（削除）する可能性もある。更に、このようなシステムでは、ユーザは、他のユーザによって行われた変更について知ることなく、フォームを承認する。その上、このようなシステムでは、ユーザによるデータ入力は非効率的になる。例えば、二人のユーザは、共通データ要素を共有する同じ空白フォーム、若しくは、異なる空白フォームを開き、第１のユーザがフォームを記入し、フォームを保存すると（データを主データベースに格納するとき）、第２のユーザは、第２のユーザによって開かれたフォーム内の一部のフィールドが第１のユーザによって記入済みであることがわからない。したがって、第２のユーザがフィールドを記入し、フォームを保存するとき、第１のユーザのデータは上書きされるか、若しくは、削除される。更に、第２のユーザは、第１のユーザによって記入済みのフィールドを利用することができず、データ入力を繰り返すことを要求される。
［発明の開示］
【０００５】
本発明の実施例によれば、本発明は、データベース内のアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に応答して同期ルールに従ってデータの使用中にアクセスされたデータを更新することにより達成される。
【０００６】
更に、本発明は、データベース内のアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に応答して同期ルールに従ってデータの使用中にアクセスされたデータを更新するプロセッサを含む装置によって達成される。
【０００７】
更に、本発明は、データベースに格納されたデータにアクセスし、アクセスされたデータをフォームに入力し、第１のユーザが入力されアクセスされたデータを含むフォームを使用し、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に対応したルールに従って第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新し、更新に従ってアクセスされたデータの更新状態を表示し、第１のユーザがアクセスされたデータをデータベースに格納する。ルールは、データベース内のデータに加えられた同時的な変更を同期させるために適用される。アクセスされたデータの更新状態は、第１のユーザがアクセスされたデータの使用を開始してから、アクセスされたデータが変更されていないかどうか、第１のユーザがアクセスされたデータを変更したかどうか、並びに、第１のユーザがアクセスされたデータを使用している間に第２のユーザがアクセスされたデータを変更したかどうか、を示す表示メッセージでも構わない。更に、本発明は、本発明の方法を、クライアント・サーバ・システム若しくはインターネットのようなネットワーク環境におけるスタンドアローン型コンピュータ、若しくは、スタンドアローン型処理装置で実施することによって実現される。
【０００８】
更に、本発明は、データベースに格納されたデータにアクセスする手段と、アクセスされたデータをフォームに入力する手段と、第１のユーザが入力されアクセスされたデータを含むフォームを使用する手段と、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視する手段と、検出された変更に対応したルールに従って第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新する手段と、を含む装置によって達成される。
【０００９】
更に、本発明は、フォームを自動的に更新するシステムによって達成される。このシステムは、データをデータベースに格納するサーバと、ネットワークを介してサーバに接続され、データベースに格納されたデータにアクセスするクライアントと、を含み、アクセスされたデータは第１のユーザによって使用されるフォームへ入力され、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースは監視され、検出された変更に対応したルールに従って第１のユーザによって使用されている間にフォーム内のアクセスされたデータは更新される。
【００１０】
更に、本発明は、コンピュータにフォームを自動的に更新させる方法を実行させるための処理命令がエンコードされているコンピュータ読み取り可能な媒体によって達成される。この方法は、データベースに格納されたデータにアクセスし、アクセスされたデータをフォームに入力し、第１のユーザが入力されアクセスされたデータを含むフォームを使用し、フォームが第１のユーザによって使用されている間に第２のユーザによるアクセスされたデータへの変更を検出するためデータベースを監視し、検出された変更に対応したルールに従って第１のユーザによって使用されている間にフォーム内のアクセスされたデータを更新する。
【００１１】
本発明の効果は、添付図面と併せて好ましい実施例の説明によって明らかになり、容易に理解されるであろう。
【発明を実施するための最良の形態】
【００１２】
本発明を実施するための好ましい形態について詳細に説明する。好ましい形態の例は添付図面に例示されている。添付図面中、同じ参照番号は同じ要素を表す。以下に記述された実施例は、図面を参照して本発明を説明するためのものである。
【００１３】
図１は、ネットワーク１０に実現されているような本発明によるソフトウェアの機能ブロック図である。ネットワーク１０は、例えば、従来のトポロジーと、クライアント・サーバ・アーキテクチャのような従来のアーキテクチャとを備え、従来の通信プロトコルを使用する。ネットワーク１０は、例えば、ローカル・エリア・ネットワークでもよく、或いは、インターネットのようなワイド・エリア・ネットワークでもよい。図１では、少なくとも１台のサーバ１１はネットワーク１２と通信し、サーバ１１はデータベース１３にデータを格納する。データベース１３（共通データベース、ネットワークデータベース、中央データベース、主データベース、或いは、主要データベースとも呼ばれる。）は、例えば、構造化照会言語（ＳＱＬ）のような慣用的な、若しくは、標準的な問い合わせ言語をサポートしている通常の（商用）データベース管理システム（ＤＢＭＳ）でもよい。クライアント端末１４ａ−１４ｎは、ネットワーク１２と通信し、ＤＢＭＳ機能を使用してネットワーク１２を経由してデータベース１３内のデータを使用／アクセスするソフトウェアを実行する。少なくとも一つのサーバ１１及びクライアント端末１４ａ−１４ｎは、例えば、パーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータのような通常のコンピュータ、又は、その他のコンピューティング装置であり、情報を保存、表示、処理する能力を備え、従来の技術を使用してネットワークを介して情報を送受信することにより、遠隔コンピュータ及びコンピューティング装置と通信する能力を備えている。
【００１４】
各クライアント端末１４ａは、アプリケーション（ソフトウェア）１６ａ−１６ｎを実行することが可能であり、アプリケーションは、ネットワークデータベース１３にアクセスし、例えば、ユーザが使用するためのデータをデータベース１３から取り出し、データベース１３に格納する。データの用途には、閲覧すること、編集すること、データベース１３に新しいデータを入力（作成）すること、或いは、データを処理すること、が含まれる。更に、アプリケーションプログラム１６ａ−１６ｎは、それぞれに、ローカルデータベース１８ａ−１８ｎを保持する。しかし、他の一実施例では、アプリケーションプログラムは、別々のローカルデータベースを保持しない。本発明は、各アプリケーション１６に含まれるプログラムセグメントの形式でもよい。好ましい一実施例では、本発明は、コンピュータのマルチタスク用オペレーティングシステム環境で動かされ、従来のプログラミング技術を使用して夫々のアプリケーションプログラム１６と通信するソフトウェアプロセス（更新プロセス）２０ａ−２０ｎという形をとる。特に、各ソフトウェアプロセス２０は、クライアント端末１４で実行されるスレッドとして実現してもよい。次に、アプリケーションプログラム１６ａ−１６ｎに個別に対応したソフトウェアプロセス２０ａ−２０ｎの動作を詳細に説明する。
【００１５】
図２は、スタンドアローン型コンピューティング装置３０で実施されるときの本発明によるソフトウェアの機能ブロック図である。コンピューティング装置３０は、例えば、例えば、パーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータのような通常のコンピュータ、又は、その他のコンピューティング装置であり、情報を保存、表示、処理する能力を備えている。メモリ、ハードディスク装置、可搬型媒体用（例えば、ＣＤ−Ｒ、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、及び、ＤＶＤ−ＲＡＭ）のドライブ装置のような情報記憶のための記憶装置は、装置３０用のローカル記憶装置を通常の技術を用いて装置３０に接続される。スタンドアローン型システムで実施されるときには本発明に対して要求されるものではないが、コンピューティング装置３０は、従来の技術を使用してネットワークを介して情報を送受信することにより、他のコンピュータ及びコンピューティング装置と通信する能力を備えている。装置３０は、アプリケーション（ソフトウェア）１６ａ−１６ｎを実行する。アプリケーションプログラム１６ａ−１６ｎは、装置３０に局所的に格納されている共通データベース３２へアクセスし、例えば、ユーザが使用するためのデータをデータベース１３から取り出し、データベース１３に格納する。図１に示された実施例と同様に、データベース３２は、ＳＱＬのような慣用的な、若しくは、標準的な問い合わせ言語をサポートしている通常のデータベース管理システム（ＤＢＭＳ）でもよい。データの用途には、閲覧、編集、データベース３２への新しいデータの入力（作成）、或いは、データの処理が含まれる。更に、必須要件ではないが、アプリケーションプログラム１６ａ−１６ｎは、それぞれ、対応したアプリケーションデータベース１８ａ−１８ｎを保持する。本発明は、各アプリケーション１６に含まれるプログラムセグメントの形式でもよい。好ましい一実施例では、本発明は、装置３０のマルチタスク用オペレーティングシステム環境で動かされ、従来のプログラミング技術を使用して対応したアプリケーションプログラム１６と通信するソフトウェアプロセス２０ａ−２０ｎという形をとる。特に、各ソフトウェアプロセス２０は、装置３０で実行されるスレッドとして実施してもよい。次に、アプリケーションプログラム１６ａ−１６ｎにそれぞれ対応したソフトウェアプロセス２０ａ−２０ｎの動作を詳述する。勿論、本発明は、特定のハードウェアアーキテクチャに限定若しくは拘束されることはなく、図１及び２には、例が示されているに過ぎない。
【００１６】
図３を参照して本発明の動作を説明する。本発明の動作は、スタンドアローン構成とネットワーク構成に対して同じである。したがって、ネットワーク構成（図１）の動作を典型的な実施例として説明する。本発明は、ユーザによるデータベースへの同時変更の同期を対象としているが、本発明の一実施例は、アプリケーション１６がフォーム文書を使用するシステム内のソフトウェアプロセスの形をとる。例えば、保健・医療情報システムは、例えば、患者データを入力するために、フォームを使用し共有する様々なアプリケーションを含む。従来の技術を使用する本発明のシステムは、フォームのユーザによるデータベース１３内のデータへの更新の履歴を保持する。例えば、トランザクション・ログ・データベースは、データベース１３に対して行われた変更のログを保持する。アプリケーション１６ａが、例えば、ユーザコマンドに基づいて、ステップ４０でフォームを開くとき、アプリケーション１６は、ネットワークデータベース１３から開かれたフォームに対応しているデータにアクセスし、ユーザによる処理（使用）のためフォームにデータを入力する。各アプリケーション１６は、一つ以上のフォームを使用することが可能であり、一つ以上のフォームは重複するデータ要素を含む。
【００１７】
ネットワークデータベース１３内のデータの変更の履歴は保持されるので、開かれたフォーム内のデータ要素への更新の更新状態情報、若しくは、ログは、ステップ４２でユーザへ与えられ、ユーザは更新内容を再検討する機会が与えられる。アプリケーション１６ａに対応するソフトウェアプロセス２０ａは、開かれたフォームのデータ要素に対して有効な更新が行われたかどうかを調べるため、ステップ４４で、ネットワークデータベース１３を（システム要件に応じて決定されるように）定期的に検査する。更に、ソフトウェアプロセス２０ａは、開かれたフォームへの更新の履歴を維持するので、ソフトウェアプロセス２０ａは、フォーム、若しくは、ローカル・アプリケーションデータベース１８ａがネットワークデータベース１３と最後に同期させられた時点を判定することができる。開かれたフォームのデータ要素への変更が有効であるならば、データベース１３内の変更に対応したルールが、開かれたフォームのデータ要素を更新するため、ステップ４６で適用される。フォームが開かれている間、ユーザは、ステップ４８で開けられたフォームへのあらゆる更新が通知される。更に、更新の更新状態情報若しくはログは、ステップ４８でユーザへ供給され、ユーザは更新を再検討し、ステップ５０でフォームを保存する前に必要に応じて更新を変更する機会が与えられる。
【００１８】
したがって、本発明は、他のユーザのデータを不注意に（無意図的に）上書きする望ましくない影響を実質的に削減若しくは削除することにより、データベースに対して同時の変更が行われたとき、効率的な後入れ、後勝ちの更新手続き（即ち、同期）を提供する。更に、ステップ４２及び４８において、更新状態情報を与えることにより、フォームを開いたユーザにより変更されたデータ（フィールド）と、フォームが開かれた以降に変更されていないフィールドと、フォームが開かれたままの状態の間にネットワークデータベース１３から更新されたフィールドを区別できるようになる。データのネットワークデータベース１３への保存は、ある種の状況では、ユーザによるデータの承認のような法的な問題を含むことがあるので、ユーザは、データをネットワークデータベース１３へ保存する前に検証のため、フォーム内のデータに対する現在及び過去のすべての変更（ユーザと他のユーザによる変更）を再検討することができる。更に、第２のユーザによって入力されたデータを使用する第１のユーザによって開かれたフォームの自動更新は、第１のユーザによる不必要なデータ登録をなくす。例えば、あるユーザは、殆ど空白のフォームを開き、大部分のフィールドを仕上げる（記入する）ことが可能である。第１のユーザがフォームを保存する前に、第２のユーザが異なる場所で同じフォームを開き、そのフォームが殆ど空白であることに気付く可能性がある。第１のユーザが記入済みのフォームを保存すると、フォームに入力されたデータがネットワークデータベース１３に保存され、その後、第２のユーザのフォームは、本発明のソフトウェアプロセス２０によって自動的に更新（記入）される、第２のユーザは、フォームの中の残りの空白フィールドだけを記入すればよく、これにより時間が節約される。
【００１９】
次に、図４乃至６を参照して、ソフトウェアプロセス２０の動作を詳細に説明する。特に、図４乃至６は、フォームが開かれている間にフォームのデータ要素を更新するため、主要データベースへの変更に応じて適用される例示的な同期ルールセットのフローチャートである。フォームは、データ要素／データポイントの集まりでもよい。例えば、データ要素は、「姓」及び「電話番号」フィールドを表現し、姓及び電話番号のエントリー（登録データ）がそのフィールドに収容される。図４において、ソフトウェアプロセス２０は、ステップ６０及び６２において、開かれたフォーム内でアクセスされたデータへの有効な新データ（更新）に関してデータベース（例えば、ネットワークデータベース１３、ローカル主要データベース３２）を定期的に検査する。特に、開かれたファイルのデータ要素毎に、ステップ６２において、ネットワークデータベース１３は、更新に関して検査される。更新が有効であるならば、ステップ６４において、新レコード（変更されたデータ要素及び関連情報）が、新レコードのアレイ（リスト）として処理するため、ネットワークデータベース１３から取り出され、取り込まれる。ソフトウェアプロセス２０は、フォームが最後に更新された時間、或いは、フォーム（旧レコード）が開かれた時間に存在するレコードを、新レコード（例えば、データベース１３、３２からのレコード）と対照して検査する。例えば、旧レコードは、使用され、取り扱われ得るレコードであり、アプリケーションベースのデータベース１８に蓄積されているデータ、或いは、クライアント端末１４のメモリに蓄積されているデータを格納し得る。初期的に、ステップ６６において、エントリー（データ）を含む旧レコード、又は、例えば、開かれたフォーム内に含まれる、ユーザによって編集された（完成した、若しくは、記入された）データ要素を含む旧レコードは、新レコードに対して検査される。ステップ６６において、開かれたフォームに処理すべき旧レコードが存在する場合、旧レコードと新レコードは、ステップ６８で、データ要素照合（即ち、旧レコードは新レコードと同じデータ要素であること、例えば、両方が「姓」であることを照合すること）のため比較される。旧レコードと新レコードは、例えば、両方のレコードが同じタイプとインデックスを含む場合に、一致している、と判定される。フォーム内の組合せデータ要素は、例えば、保健情報システムにおける患者の投薬とアレルギーのような一つ以上のエントリー若しくはセレクションを含み得る。新レコードが組合せである場合、組合せ識別情報を照合規準として使用してもよい。ステップ６８において、一致していないと判定された場合、ステップ６６において、開かれたフォーム内の他の旧レコードに対して比較が繰り返される。ステップ６８において、一致していると判定された場合、旧レコードは、旧レコードが開かれたフォームのユーザによって更新されているかどうかを判定するため、ステップ７０で検査される。旧レコードがユーザによって更新されたことがステップ７０で判明したとき、新レコードは、ステップ７２において、新レコードが電子署名（ｅｓｉｇ）されたかどうかを判定するため検査される。データ要素は、データ要素を編集するためのパスワードを要求するような従来の技術を使用して電子署名することができる。新レコードが電子署名されている場合、旧レコードの電子署名と新レコードの電子署名は、ステップ７４で一致しているかどうかに関して比較される。旧レコードの電子署名と新レコードの電子署名が一致しない場合、旧レコードは、ステップ７６において、新しい電子署名付きのレコードで置き換えられる。したがって、ステップ７６において、開かれたフォームのデータ要素は、データベース１３からの変更されたデータ要素によって更新される。状態フラグは、ステップ７８において、更新の存在を知らせるためセットされる。状態フラグは、ユーザに更新状態情報を提供するため使用され得る。更新状態情報は後で詳述する。
【００２０】
ステップ７４において、新レコードの電子署名は、旧レコードの電子署名と一致するならば、この新レコードは、ステップ８０において、新レコードのリストから削除される。更に、ステップ７２において、新レコードには電子署名が付けられていないことが判明した場合、この新レコードは、ステップ８０で、新レコードのリストから削除される。したがって、原則として、開かれたファイルのユーザによって完成された既存フィールド（旧レコード）は、新データが別のユーザによって電子署名されている場合に限り（即ち、別のユーザの方が高い優先度を与えられ、署名付きのデータに対する他のユーザからの編集を禁止する場合に限り）、データベース１３からの新データで置換若しくは更新される。一般的に、開かれたフォームに対するユーザの現在の変更（データベース１３には未だ保存されていない変更）は、電子署名されているか否かとはかかわらず、ネットワークデータベース１３からの（例えば、他のユーザによる）変更が他のユーザによって電子署名されていない限り、ネットワークデータベース１３からの変更があっても維持される。例えば、第１のユーザがデータ要素に署名をし、データ要素をネットワークデータベース１３に保存した場合、署名付きデータ要素のエントリー（データ）は、同じ署名付きデータ要素を含むフォームを開き、同じデータ要素を変更し、データ要素に署名しているが、そのデータ要素を未だデータベース１３に保存していない第２のユーザによって修正されたり、削除されたりすることがない。このような状況下では、第２のユーザにより開かれたフォームは、第１のユーザによる書名付きデータ要素で更新されるであろう。
【００２１】
ステップ７０において、旧レコードがユーザによって更新されていない場合、新レコードは、ステップ８２において、新レコードが削除レコードであるかどうかを判定するため検査される。ステップ８２において、新レコードが削除レコードであると判定された場合、旧レコードは、ステップ８４において、削除済みのマークが付けられ、新レコードは、ステップ８０において、有効新レコードのリストから除去される。このマーキングは更新の存在を示す。
【００２２】
図４における例示的な同期ルールセットは、次のように要約することができる。例えば、ユーザによって使用するために開かれたフォームにレコード（旧レコード）が存在し、旧レコードがそのユーザによって入力若しくは修正され、（例えば、ネットワークデータベース１３からの）電子署名の無い一致する新レコードが存在する場合、新レコードは、開かれたフォームを更新することなく、新レコードのアレイから削除される（ステップ６６、６８、７０、７２、８０）。ユーザによって入力若しくは修正された旧レコードが存在し、（同じユーザによって署名された）一致する電子署名付きの一致する新レコードが存在する場合、新レコードは、開かれたフォームを更新することなく、新レコードのアレイから削除される（ステップ６６、６８、７０、７４、８０）。ユーザによって入力若しくは修正された旧レコードが存在し、（異なるユーザによって署名された）一致しない電子署名付きの一致する新レコードが存在する場合、旧レコードは新レコードによって置換される（更新が発生する）（ステップ６６、６８、７２、７４、７６、７８）。ユーザによって入力若しくは修正されなかった旧レコードが存在し、削除済みとしてマークされた一致する新レコードが存在する場合、旧レコードは削除済みとしてマークされ（更新が発生し）、新レコードは新レコードのアレイから削除される（ステップ６６、６８、８２、８４、８０）。勿論、他の同期ルールセットを本発明に適用することが可能であり、本発明は、図４乃至６に示された典型的な同期ルールセットに限定されない。
【００２３】
図５を参照すると、ステップ６６において条件が成立しないとき、新レコードのアレイ中の残りの新レコードの処理がステップ１００で始まる。特に、ステップ１００において、旧レコードのアレイ（即ち、開かれ、使用若しくは作業対象とされているフォームのレコードのアレイ）に追加された新レコードは、ステップ１００の処理に関して旧レコードであるとみなされる。一般的に、ステップ１００において、処理されるべき残りの旧レコードは、空白／ブランクのレコード、及び、一つ以上の薬物名を収容する「投薬」フィールドのような付加情報が入力された組合せレコードである。ステップ１００において、旧レコードが存在すると判定された場合、旧レコードと新レコードは、ステップ１０２において、データ要素と内容一致に関して（即ち、旧レコードと新レコードは、例えば、共に「姓」であるように同じデータ要素であるか、並びに、空白若しくは組合せフィールドに記入された旧レコードのエントリーは、新レコードのエントリーに一致するかに関して）比較される。例えば、両方のレコードが同じタイプ、インデックス及びデータを含む場合に、両方のエントリーは一致していると判定される。新レコードが組合せである場合、組合せ識別情報も照合規準として使用できる。ステップ１０２において、一致していると判定された場合、新レコードは、ステップ１０４において、新レコードのアレイから削除され、ステップ１００における開かれたフォームの他の旧レコードに対して比較が繰り返される。したがって、組合せ旧フィールドのエントリー（データ）が新レコードのエントリーと同一であるならば、更新を行う必要が無い。ステップ１０２において、一致していないと判定された場合、旧レコードは、旧レコードと新レコードは同じデータ要素であることにより一致しているかどうかを確認するため、ステップ１０６で検査される。例えば、両方のレコードが同じタイプとインデックスを吹くうばアイに一致していると判定することができる。新レコードが組合せデータ要素である場合、組合せ識別情報も照合規準として使用することが可能である。
【００２４】
ステップ１０６で一致していると判定された場合、旧レコードは、旧レコードが電子署名され、新レコードは電子署名されていないかどうかを判定するため、ステップ１０８で検査される。ステップ１０８において、旧レコードは署名付きであり、新レコードは署名無しである、と判定された場合、ステップ１０４において、新レコードを新レコードのアレイから削除することにより、更新は行われない。したがって、ステップ１０８では、旧レコードは署名付きであるので、適用されるべきルールに従って、別のユーザは、開かれたフォームで作業しているユーザの署名付きデータ要素を上書き若しくは編集し得ない（即ち、開かれたフォームのユーザは、署名付きデータ要素が他のユーザのデータを上書きするように、フォームを保存することができる。）。このルールは、開かれたフォーム内でユーザによって記入され、ユーザによって署名されていないフィールドは、更新データが高い優先度をもつ署名を付されない限り、ネットワークデータベース１３からの有効更新データに対して維持される、という（上述の）一般的なルールにも適合している。したがって、ステップ１０８において、旧レコードは署名無しであり、新レコードは署名付きであるならば、開かれたフォームの更新が行われ、新レコードは、ステップ１１０で更新のタイプに関して検査される。
【００２５】
ステップ１１０において、新レコードは削除レコードであると判定された場合、フォーム内の旧レコードは、ステップ１１２で削除され（即ち、フォーム内のフィールドのデータエントリーは削除され）、ステップ１１４において、状態フラグは、更新の存在を示すためにセットされる。ステップ１１０において、新レコードは削除レコードではないと判定された場合、フォーム内の旧レコードは、ステップ１１６において、新レコードで置換される（即ち、フォーム内のフィールドのデータエントリーは更新される。）。その後、ステップ１１４において、状態フラグがセットされ、更新の存在が示される。
【００２６】
ステップ１０６において、旧レコードと新レコードが一致しない場合、新レコードは、ステップ１１８において、新レコードが削除レコードであるかどうかを判定するため検査される。ステップ１１８において、新レコードは削除レコードであると判定された場合、新レコードは、ステップ１０４において、新レコードの処理を中止するため、新レコードのアレイから削除される。ステップ１１８において、新レコードは削除レコードではないと判定された場合、新しいユーザレコードは、ステップ１２０で、旧いユーザレコードアレイに追加される。したがって、ステップ１２０において、フォーム内の組合せフィールドのデータエントリーは、例えば、別の薬物を「投薬」フィールドに追加するように、データエントリーを追加することにより更新される。続いて、ステップ１１４で、状態フラグは、更新の存在を示すためにセットされ得る。ステップ１０４では、状態フラグがステップ１１４でセットされた後、フォームのデータ要素が更新された後、又は、新しい更新レコードの処理の後に、新レコードが新レコードのアレイから削除され、ステップ１００において、フォームの旧レコードを検査するための処理が繰り返される。
【００２７】
図５に示された例示的な同期ルールセットは、次のように要約することができる。旧レコードに正確に一致する（即ち、データ要素とエントリーが同じである）新レコードが存在する場合、新レコードは削除される（ステップ１００、１０２、１０４）。電子署名された新レコードが存在し、一致する旧レコードが存在する場合、旧レコードは新レコードで置換される（更新が発生する。）（ステップ１００、１０６、１０８、１１０、１１６、１１４、１０４）。削除されているとしてマークされ、電子署名されていない旧レコードと一致する新レコードが存在する場合、旧レコードは削除される（更新が発生する）（ステップ１００、１０６、１０８、１１０、１１２、１１４、１０４）。電子署名されていない新レコードであって、電子署名されていない旧レコードと一致する新レコードが存在する場合、旧レコードは新レコードで置換される（更新が発生する））ステップ１００、１０６、１０８、１１０、１１６、１１４、１０４）。電子署名されていない新レコードであって、電子署名されている旧レコードと一致する新レコードが存在する場合、新レコードは、開かれたフォームを更新することなく、削除される（ステップ１００、１０６、１０８、１０４）。一致する旧レコードがない新レコードが存在する場合、新レコードは旧レコードのアレイに追加され（即ち、開かれたフォームのデータ要素を完成させることにより更新が行われるか、又は、開かれたフォームの組合せデータ要素にエントリーを追加することにより更新が行われる。）（ステップ１００、１０６、１１８、１２０、１１４、１０４）。削除レコードとしてマークされ、旧レコードと一致しない新レコードが存在する場合、新レコードは開かれたフォームを更新することなく、新レコードのアレイを削除する（ステップ１００、１０６、１１８、１０４）。
【００２８】
勿論、この他の同期ルールセットを適用してもよく、本発明は、図５を参照して説明した例示的な同期ルールセットに限定されない。例えば、新レコードは、ユーザのフォームを自動的に更新する前に、検討／承認のためユーザに提示される。したがって、選択的な自動データ更新を達成することができる。更に、本発明のソフトウェアプロセス２０は、複数のユーザと複数のフォームに拡張することができる。例えば、４人のユーザがフォームを編集し、そのうちの１人のユーザがデータを保存する場合、他の３人のユーザは、自分のフォームがデータを保存したユーザのデータと重複するデータ要素を含んでいるならば、更新内容を取得することができる。
【００２９】
次に、図６を参照すると、ステップ１００において、処理すべきその他の旧レコードが存在しない場合、システムは、ステップ１３０において、更新されたデータ要素をクライアント端末１４の表示画面で見ることができるかどうかを判定する。ステップ１３０において、更新されたデータ要素は見ることができないと判定された場合、データベース１３からの新レコードの処理は完了する。更新されたデータ要素を見ることができる場合、ステップ１３２において、開かれたフォームと取り組んでいるユーザに更新を示す、或いは、通知するため、メッセージが表示される。見ることができるすべてのレコード（データ要素）に関して、ステップ１３４において、更新履歴／ログ情報がクライアント端末１４の表示画面に表示され得る。特に、更新ログ情報は、ユーザに、更新と、更新のタイプを再検討する機会を与え、更新の効果的な検証／確認若しくは許可を受け入れさせるために、様々なカラー、アイコン、或いは、注釈用吹き出しを使用して表示できる。例えば、ステップ１３８において、フォームデータ要素（フィールド）が開かれたフォームのユーザによって更新された場合、指定された「ユーザによる更新」を示すカラーがフィールドのエントリー（データ）を表示させるため、ステップ１４６で使用可能である。ステップ１４８において、フィールドのエントリーは、指定された「ネットワークデータベースからの更新」を示すカラーで表示できる。ステップ１５０において、フィールドのエントリーは、指定された「ユーザによる削除」を示すカラーで表示できる。ステップ１５２において、フィールドのエントリーは、「ネットワークデータベースからの削除」を示すカラーで表示できる。ステップ１５４において、フィールドのエントリーは、指定された「変更なし」を示すカラーで表示できる。勿論、アイコン及び情報吹き出しは、開かれてコンピュータに表示されたフォームのデータ要素に対する更新の対応と関連した任意のタイプの情報若しくは画像でも構わない。
【００３０】
以上の説明の通り、本発明によれば、例えば、多数のユーザが、共通データベースをロックすることなく、データベースからのデータを同時に使用して作業することを可能にさせるシステムを提供する効果が得られる。更に、本発明は、例えば、多数のユーザが、他のユーザによってデータベースに先に入力されたデータをうっかりと上書きすることなく、データベースからのデータを同時に使用して作業することを可能にさせるシステムを提供することができる。更に、本発明は、例えば、データベースからのデータを同時に使用して作業しているユーザに、他のユーザによってデータを取り扱っている間にデータベースに対してなされた変更を通知するシステムを提供することができる。
【００３１】
より詳細には、本発明は、例えば、データベースからのデータを格納しているフォーム文書を使用するアプリケーション、このアプリケーションは異なるアプリケーションでも構わない、を使用するユーザが、データベースをロックすることなく、フォームデータ（データ要素）にアクセスし、フォームデータを編集し、更新できるようにし、第１のユーザがフォームデータを編集（更新）している間に他のユーザによるデータベースへの変更をうっかりと上書きすることを防止し、ユーザがフォームデータにアクセスしている間に他のユーザによるデータベースへの変更をユーザに通知できるようにするシステムを提供し得る。更に、本発明は、実行中のアプリケーションでデータ要素を更新するため同期ルールを適用することにより、例えば、アプリケーションの使用中に効果的なデータリフレッシュを実現することができる。特に、本発明は、例えば、ユーザが、データベースからのデータ要素／データポイントの集まりであるフォーム文書を効率的に同時に編集することを可能にさせるシステムを提供することができる。更に、本発明のシステムは、異なるアプリケーションによって使用され、重複する（共有）データ要素を含む様々なフォームに適応することが可能である。
【００３２】
本発明の幾つかの好ましい実施例を例示し説明したが、本発明の原理及び精神から逸脱することなく、これらの実施例に変更をなし得ることは当業者によって認識されるであろう。本発明の範囲は、請求項に記載された事項とその均等な事項とに規定されている。
【図面の簡単な説明】
【００３３】
【図１】本発明が実施されるコンピュータシステムの一実施例における本発明によるソフトウェアの機能ブロック図である。
【図２】本発明が実施されるコンピュータシステムの別の実施例における本発明によるソフトウェアの機能ブロック図である。
【図３】本発明における動作のフローチャートである。
【図４】本発明によるソフトウェア処理のフローチャートである。
【図５】本発明によるソフトウェア処理のフローチャートである。
【図６】本発明によるソフトウェア処理のフローチャートである。
【図１】
2004528636.tif 000003
【図２】
2004528636.tif 000004
【図３】
2004528636.tif 000005
【図４】
2004528636.tif 000006
【図５】
2004528636.tif 000007
【図６】
2004528636.tif 000008
【国際公開パンフレット】
2004528636.tif 000009
2004528636.tif 000010
2004528636.tif 000011
2004528636.tif 000012
2004528636.tif 000013
2004528636.tif 000014
2004528636.tif 000015
2004528636.tif 000016
2004528636.tif 000017
2004528636.tif 000018
2004528636.tif 000019
2004528636.tif 000020
2004528636.tif 000021
2004528636.tif 000022
2004528636.tif 000023
2004528636.tif 000024
2004528636.tif 000025
2004528636.tif 000026
2004528636.tif 000027
2004528636.tif 000028
2004528636.tif 000029
2004528636.tif 000030
2004528636.tif 000031
2004528636.tif 000032
2004528636.tif 000033
【国際調査報告】
2004528636.tif 000034