(57)【要約】  ルール検証システムは、患者の所見セットに所見を追加することによって生じ得るすべての競合を再帰的に解決する。システムは、得られる所見セットがいずれの規則にも違反しないように、既存の所見セットに追加または削除することができる所見セットを決定する。各ルールは、「ＩＦ｛述語｝、ＴＨＥＮ｛結論｝」構成を用いて構成され、所見が、真の述語と偽の結論を提供する場合、再帰的解決プロセスには、ルールの述語に違反する第１の所見のセットと、ルールの結論を満たす第二の所見のセットとを、各違反ルールについて、発見することを含む。再帰的プロセスは、実現不可能な解で終わるブランチのセットを提供するか、すべてのルールを満たす完全な一連の結果で終わるブランチのセットを提供する。
2018534708.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを含む非一時的コンピュータ可読媒体であって、前記プログラムは、プロセッサにより実行されたとき、前記プロセッサに、
患者の既存の複数の所見を受け取り、
前記患者の新しい所見を受け取り、
既存の前記複数の所見に前記新しい所見を加え、
複数の医療ルールを含む医療ルールデータベースにアクセスし、
前記複数の医療ルールを、前記複数の所見に適用して、前記複数の医療ルールに基づき、前記複数の所見中の少なくとも１つの競合を特定し、
前記複数の医療ルールに基づいて、前記複数の所見中の少なくとも１つの競合を特定すると、
各競合を再帰的に解決して、各々がすべての競合を解決しすべてのルールを満たす複数の完全解決策セットを決定し、
ユーザに前記複数の完全解決策セットを提示し、
各医療ルールは、ＩＦ  ｛述語｝  ＴＨＥＮ  ｛結果｝の形式であり、
ルールの各競合を再帰的に解決することは、
前記ルールの述語を満たさない第１の解決策セットと、
結果を満たす第２の解決策セットとを決定することを含む、
媒体。
【請求項２】
各解決策セットは、前記患者の複数の既存の所見に加える又は引く所見セットを含む、
請求項１に記載の媒体。
【請求項３】
前記述語及び結果のうち少なくとも１つは、前記複数の所見のうち１つ以上に適用される量化子を含む、請求項１に記載の媒体。
【請求項４】
各量化子は、
前記複数の所見のうち１つ以上の全部、
前記複数の所見のうち１つ以上のどれでもない、
前記複数の所見のうち１つ以上の少なくとも１つ、
前記複数の所見のうち１つ以上の多くとも１つ、
請求項３に記載の媒体。
【請求項５】
前記プログラムは、前記プロセッサに、すべてのルールを満たす完全な解決策セットを提供する、
請求項１に記載の媒体。
【請求項６】
前記プログラムは、前記プロセッサに、終了基準に基づいて前記複数の解決策セットを提供させる、
請求項１に記載の媒体。
【請求項７】
前記終了基準は、解決策を提供する時間と、提供される解決策の所定数とのうち少なくとも１つを含む、請求項６に記載の媒体。
【請求項８】
前記終了基準は、潜在的な各解決策に関連する複雑さの尺度を含む、請求項６に記載の媒体。
【請求項９】
前記終了基準は、潜在的な各解決策に関連するコストの尺度を含む、請求項６に記載の媒体。
【請求項１０】
前記終了基準は、提案される各解決策において追加される各所見が真である確立の尺度を含む、
請求項６に記載の媒体。
【請求項１１】
ルール検証システムであって、
プロセッサと、
前記プロセッサに結合したユーザインターフェースと、
前記プロセッサに結合したメモリとを有し、
前記プロセッサは、
前記ユーザインターフェースを解して患者の識別情報に基づいて、現在の所見の患者記録にアクセスし、
既存の所見に関連する複数のルールであって、各ルールは「ＩＦ述語ＴＨＥＮ結果」の形式である複数のルールにアクセスし、
前記現在の所見に起因する前記複数のルールの少なくとも１つのルールの違反を特定し、
前記ルールの違反を解決し、前記現在の所見におけるすべてのルール違反を無くす、現在の所見への少なくとも１つの変更セットを特定し、
前記ユーザインターフェースを介して、少なくとも１つの変更セットからセレクト変更セットのユーザの選択を受け取り、
前記セレクト変更セットを前記現在の所見に適用し、
前記セレクト変更セットの適用に基づいて現在の所見の患者記録を更新するように構成される、
システム。
【請求項１２】
前記プロセッサは、もしあれば、前記ルールの述語に違反する少なくとも１つの第１の変更セットと、もしあれば、前記ルールの結果を満たす少なくとも１つの第２の変更セットとを特定することにより、前記ルールの違反を解決する、
請求項１１に記載のシステム。
【請求項１３】
前記プロセッサは、前記違反を解決するのに必要な変更セットの各変更を前記プロセッサが特定したときに生じた各ルールの違反を再帰的に解決することにより、前記ルールの違反を解決する、
請求項１１に記載のシステム。
【請求項１４】
前記プロセッサは、少なくとも１つの変更セットの複雑さ尺度と、少なくとも１つの変更セットのコスト尺度と、少なくとも１つの変更セットを決定する時間とのうち少なくとも１つを含む終了基準に基づいて、前記ルールの違反を解決する少なくとも１つの変更セットの識別を終了する、
請求項１１に記載のシステム。
【請求項１５】
患者の既存の複数の所見を受け取ることと、
前記患者の新しい所見を受け取ることと、
既存の前記複数の所見に前記新しい所見を加えることと、
複数の医療ルールを含む医療ルールデータベースにアクセスすることと、
前記複数の医療ルールを、前記複数の所見に適用して、前記複数の医療ルールに基づき、前記複数の所見中の少なくとも１つの競合を特定することと、
前記複数の医療ルールに基づいて、前記複数の所見中の少なくとも１つの競合を特定すると、
各競合を再帰的に解決して、各々がすべての競合を解決しすべてのルールを満たす完全な複数の解決策セットを決定することと、
ユーザに前記複数の完全解決策セットを提示することと、
前記ユーザによる選択解決策セットの選択を受け取ることと、
前記選択解決策セットを実装することにより前記患者の既存の所見を補正することと、を含み、
各医療ルールは、ＩＦ｛述語｝ＴＨＥＮ｛結果｝の形式であり、
ルールの各競合を再帰的に解決することは、
前記ルールの述語を満たさない第１の解決策セットと、
結果を満たす第２の解決策セットとを決定することを含む、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子カルテ（ＥＭＲ）の分野に関し、特に、患者の医療記録における矛盾（ｃｏｎｆｌｉｃｔｓ  ｏｒ  ｃｏｎｔｒａｄｉｃｔｉｏｎｓ）を識別し、これらの矛盾のすべてを解決する１つまたは複数の解決策セットを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
生涯にわたって、人（以下、患者）は、様々な施設および開業医（以下、サービスプロバイダ）から医療サービスを受けることができる。コンピュータ技術の出現により、患者の病歴は、電子カルテ（ＥＭＲ）として電子形式で維持され得る。コンピュータネットワーキングの出現により、様々なサービスプロバイダからの患者の記録のすべてが、この患者のための統合電子カルテに統合される可能性がある。
【０００３】
時間が経過すると、患者の医療記録が増加し、その結果、患者の記録に矛盾（ｃｏｎｆｌｉｃｔｓ  ｏｒ  ｃｏｎｔｒａｄｉｃｔｉｏｎｓ）が現れる可能性がある。このような競合（ｃｏｎｆｌｉｃｔｓ）は、患者の記録への誤った入力、未確認の所見、患者特性の変化などのために発生する可能性がある。例えば、患者が体重減少および運動の体制を開始した場合、高血圧、高コレステロール、糖尿病などの以前の所見はもはや有効ではない可能性がある。患者への医療サービスの現在の提供者は、患者の以前の状態を知らない可能性があり、そのような以前の所見を明示的に取り消さないかも知れない。同様の方法で、最初の所見が正しくないと判断された場合、特に最終的に決定された所見に何の影響もない場合、サービス提供者は患者記録を更新しないことがある。明らかに、プロバイダのエントリーが間違っていた場合、そのプロバイダは間違ったことを知らない。
【０００４】
回顧的調査では、「確定した経胸腔レポートの約４分の１（２４．１％）および経食道レポートの１０．１％が、互いに矛盾（ｉｎｃｏｎｓｉｓｔｅｎｔ）する結果を示している」（Ｃｈａｎｄｒａ、Ａｒｌｉｎｇ、Ｒｏｃｋ＆Ｓｐｅｎｃｅｒ、２０１０）ことが示されている。別の評価（Ｓｐｅｎｃｅｒ  ｅｔ  ａｌ．，２０１５）は、以前の結果を裏付け、レポートの８３％が少なくとも１つの規則に違反し、レポートの６２％が少なくとも２つの規則に違反していることを示した。
【０００５】
患者の医療記録内の所見の競合を識別するシステムおよび方法が開発されている。特許文献１が含まれ、これはここに参照援用する。これらのシステムは、様々な提供者の間で患者の記録を更新するために使用される明確に規定された「所見コード（ｆｉｎｄｉｎｇ  ｃｏｄｅｓ）」の使用によって促進される。特定の医学的所見のための明確に定義された所見コードを用いて、より具体的な医学的診断を容易にする欠落所見を推奨するなどの「ベストプラクティス」手順を促進する規則が開発されている。また、これらの明確に定義された所見コードの使用は、患者の記録における所見の間の競合（ｃｏｎｆｌｉｃｔｓ）の特定を容易にする。
【０００６】
本明細書で使用される場合、患者の「所見」は、その患者に関連し得る任意のデータ要素を含む。年齢、性別、人種などの人の個人データは、患者に関連する「所見」とみなされ、血圧、血糖値、脈拍数、ＨＤＬ、ＣＤＬ、Ａ１Ｃなどの患者の生理学的データと同様である。患者に関連する他のデータは、例えば、慢性うつ病、不安障害などの診断／所見を含む「所見（ｆｉｎｄｉｎｇ）」と考えることができる。患者に提供される治療、例えば化学療法、放射線療法、物理療法、処方薬などは、「所見」とみなされてもよい。
【０００７】
前述の特許出願では、患者の記録が更新され、患者の記録中の所見の間に競合が見つかった場合、システムは競合を識別し、いくつかの実施形態では、競合解決の提案を提供する。各ソリューションがプロバイダによって実施されると、患者の記録が更新及び再評価され、残りの競合が識別され、潜在的な解決策が再び提供され得る。このプロセスは、すべての競合が患者の記録から削除されるまで続けられる。新しい所見がそれぞれ患者の記録に入力されると、記録が再評価され、この新しい発見によって生じた競合が識別され、他の潜在的な解決策が提供され得る。
【０００８】
例示的な先行技術のシステムその他は、患者の記録が更新されるたびに、ユーザに競合を警告することによって、患者の記録における競合を排除するか、少なくとも少なくすることができるが、そのようなシステムを用いることがせいぜいフラストレーションを引き起こすような状況もある。特にフラストレーションが溜まる状況は、「カスケード」ルール違反の発生である。患者の記録が更新されたときに競合が識別されるが、提案された解決策が異なる競合を生じさせる。様々な競合を解決することにより、再度、別の競合が生じる可能性がある。場合によっては、この競合１−解決策１−競合２−解決策２−競合３−解決策３などのプロセスは、無限ループに入る可能性がある。カスケーディングルール違反に直面した場合、ユーザは、解決策を決定するためにシステムを使用することをやめるかどうか、決めなければならず、その時点で、ユーザはこれらのカスケードルール違反の原因を手動で判断する必要がある。
【０００９】
図１は、カスケーディングルール違反を生じるルールおよび所見の例を示す。４つの潜在的所見（Ａ、Ｘ、Ｙ、Ｚ）を以下に列挙する：
Ａ＝駆出率が著しく低下している。
【００１０】
Ｘ＝ＢＭＩ＜２５及び駆出率＞４５％
Ｙ＝駆出量は体の大きさに対して正常である。
【００１１】
Ｚ＝駆出率は正常である。
【００１２】
本明細書での参照を容易にするために、患者の記録に所見が存在すると述べることは、その所見がこの患者に当てはまると述べることと同等である。患者の記録中に所見が見つからなくても、これは必ずしも所見が間違っていることを意味しない。これは、通常、このユーザの所見がまだ決定されていないことを意味する。
【００１３】
この例には、３つのルール１０１が含まれ、上に列挙した所見に対して記号Ａ、Ｘ、ＹおよびＺを用いている。テキスト形式で：
１．患者のＢＭＩは２５未満であり、駆出率（各心拍で心臓から圧送されるアウトバウンド血液の割合）が４５％より大きい（所見Ｘが真である）場合、この体のサイズに対して、患者の駆出率は正常である（Ｙは真に違いない）。
【００１４】
２．患者の駆出率がこの体のサイズに対して正常である（所見Ｙが真である）場合、患者の駆出率は正常である（所見Ｚは真でなければならない）。
【００１５】
３．患者の駆出率は、著しく低下している（所見Ａが真である）と、正常（所見Ｚが真である）との両方であることはできない。
【００１６】
この例では、患者の既存所見はＡであり（ステップ１１０）、新しい所見Ｘがこの所見に加えられ（ステップ１１５）、新しい既存所見のセット｛Ａ、Ｘ｝ができる。記録検証システムがこの新しいエントリーにより起動され、ルール＃１（Ｉｆ  Ｘ，  ｔｈｅｎ  Ｙ）に違反していることをレポートする（ステップ１３０）。このルールに違反しているのは、所見Ｘが患者記録にあるのだから、所見Ｙが患者記録に無いが、有るべきだからである。この違反には可能性のある解決策が２つある。テキストボックス１３０に示すように、患者記録からＸを削除するか、患者記録にＹを追加するかである。
【００１７】
この例では、ユーザはオプション「Ａｄｄ  Ｙ」を選択し（ステップ１３５）、所見セット｛Ａ，Ｘ，Ｙ｝を生成する（ステップ１４０）。これらの所見１４０は、第２のルールに違反している。Ｚが患者記録に無いからである。システムはこのルール違反を、Ｙの削除またはＺの追加という潜在的解決策とともに、ユーザにレポートする（ステップ１５０）。この例では、ユーザはオプション「Ａｄｄ  Ｚ」を選択し（ステップ１５５）、所見セット｛Ａ，Ｘ，Ｙ、Ｚ｝を生成する（ステップ１６０）。
【００１８】
システムは、この所見セット｛Ａ，Ｘ，Ｙ，Ｚ｝（ステップ１６０）が第３のルール（ＡとＺは排他的である）に違反していることをレポートし、Ａの削除またはＺの削除のいずれかの選択を提案する。ユーザがＡの削除を選択すると（ステップ１７５）、解決策｛Ｘ，Ｙ，Ｚ｝はどのルールにも違反せず、患者記録はこれらの所見を反映する。しかし、ユーザがＺの削除を選択すると（ステップ１７５）、システムは次々とルール違反を挙げてくる。
【００１９】
この単純なケースでは、Ａを除去する（すなわち、患者にとってＡの発見がもはや真ではないと医師に判断させる）解決策が明らかになる（ステップ１７０）。しかし、より複雑な場合には、直ちに明らかではない追加と削除の組み合わせが求められる。
【００２０】
カスケーディングルール違反の原因が訂正されないかぎり、特に、検証プロセスの最初のステップは、新たに追加された所見が競合を引き起こすかどうかを判定する前に、既存の患者レコードが競合しないことを検証する場合、検証システムは、カスケーディングルール違反が継続的に発生する。幾つかの検証システムでは、ユーザは、システムに、競合の選択を無視させる、ルールの選択を無視させて、カスケーディングルール違反を解消するオプションを提供されるが、かかるオプションは検証プロセスの精度を低下させ、結局、検証の有効性が比較的低いものとなる可能性がある。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】米国特許出願第１３／９９９，８３１号（Ｒｏｂｅｒｔ  Ａｒｌｉｎｇ  ａｎｄ  Ｊｏｓｅｐｈ  Ｒｏｃｋにより２０１３年５月３１日に出願、発明の名称「ＭＥＤＩＣＡＬ  ＩＮＦＯＲＭＡＴＩＯＮ  ＳＹＳＴＥＭ  ＲＵＬＥＳＥＴ  ＧＥＮＥＲＡＴＩＯＮ  ＡＮＤ／ＯＲ  ＥＶＡＬＵＡＴＩＯＮ  ＧＲＡＰＨＩＣＡＬ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ」、優先日２０１０年１２月３日）。
【発明の概要】
【００２２】
医師が一連のカスケーディング規則違反をしないようにするルール検証方法およびシステムを提供することは有益であろう。すべての競合を排除するために患者の記録に加えられなければならない完全な変更のセットを医師に提示するルール検証方法およびシステムを提供することもまた有益であろう。
【００２３】
これらの懸念の１つまたは複数にさらに対処するために、本発明の一実施形態では、新しい所見が患者の記録に追加されると、ルール検証システムは、この追加された所見によって生じ得るすべての競合を、得られた所見のセットがいずれのルールにも違反しないように、患者の既存の所見セットに追加されたり削除されたりする可能性がある所見のセットを判定することにより、再帰的に解消する。各ルールは、「ＩＦ  ｛述語｝、ＴＨＥＮ  ｛結果｝」構成を用いて構成され、所見が、真の述語と、偽の結果とを提供する場合、再帰的解決プロセスには、その述語に違反する第１の所見のセットと、その結果を満たす第二の所見のセットとを発見することを含む。再帰的プロセスは、実現不可能な解で終わるブランチのセットを提供するか、すべてのルールを満たす完全な一連の結果で終わるブランチのセットを提供する。医師は、すべての規則を満たすこれらの完全な所見セットのそれぞれを生成するために患者の所見に加えられ得る一連の変更を提供され、これらの変更のセットの１つを選択して患者の所見に適用することができる。
【００２４】
例示的な実施形態では、述語および結果は、複数の所見のうちの１つまたは複数に適用される量化子を含み、各量化子は、１つ以上の所見のすべてを含む、１つ以上の所見のいずれも含まない、１つ以上の所見のうち少なくとも１つを含む、または１つ以上の所見のうちの多くとも１つを含むうちの１つである。
【００２５】
システムは、すべてのルールを満たすあらゆるソリューションを提供するように構成することができ、または、例えば、解を提供するための時間、提供された所定数の解、潜在的解それぞれの複雑さの尺度などに基づいて、終了基準を適用することができる。
【図面の簡単な説明】
【００２６】
実施例を挙げて添付した図面を参照して本発明をさらに詳しく説明する。
【図１】先行技術のルール検証システムのカスケーディングルール違反の例を示す図である。
【図２】本発明の態様によるルール検証システムの一例を示す例示的なフロー図である。
【図３】本発明の態様に解決プロセスを示す例示的なフロー図である。
【図４】ルールの記述に違反する所見セットを判定するための例示的なフロー図を示す。
【図５】ルールの結果を満たす所見セットを判定するための例示的なフロー図を示す。
【図６】図１の例の競合を解決する完全な各所見セットの例示的な判定を示す。
【図７】ルール検証システムを示す例示的なブロック図である。  全ての図面で、同じ参照数字は同じかまたは対応する特徴または機能を示す。図面は例示を目的として含まれており、本発明の範囲を限定するものではない。
【発明を実施するための形態】
【００２７】
以下の説明では、限定ではなく説明を目的として、本発明の概念の完全な理解を提供するために、具体的なアーキテクチャ、インタフェース、手法などの具体的な詳細事項を説明する。しかし、当業者には言うまでもなく、本発明は、これらの具体的な詳細事項とは別の実施形態でも実施することができる。同様に、本明細書の本文は、図に示されている例示的な実施形態に監視、特許請求の範囲に明示的に含まれる限定を超えて請求項に係る発明を限定するものではない。単純かつ明瞭にするため、周知の装置、回路、および方法の詳細な説明は、不必要な詳細事項で本発明の説明を不明瞭にしないように、省略されている。
【００２８】
図２は、本発明の態様によるルール検証システムの一例を示す例示的なフロー図である。この例示的なシステムは、ユーザ（例えば、医師）が患者の記録に新しい所見を追加することによってトリガされ得る（ステップ２１０）。システムは、患者の記録に新しい所見を追加し（ステップ２２０）、更新された所見のセットに適用されるルールのセットにアクセスする（ステップ２３０）。この例示的な実施形態では、ルールは、ＩＦ  Ｑ１（Ａ１、Ａ２、Ａｍ）、ＴＨＥＮ  Ｑ２（Ｂ１、Ｂ２、Ｂａｎ）という形式である。ここで、Ｑ１（Ａ１、Ａ２、．．．  Ａｍ）は「述語」と呼ばれ、Ｑ２（Ｂ１、Ｂ２、．．．  Ｂａｎ）はこのＩＦ  ．．．  ＴＨＥＮ  ．．．構造の「結果」と呼ばれる。Ａ１、Ａ２、．．．  Ｂ１、Ｂ２  ．．．という用語は、このルールに適用可能な所見である。上記のように、本明細書中で使用されるように、表現におけるＡ１などの所見の存在は、「この患者の所見Ａ１は正しい」を表現する簡便な方法である。「０」と「１」のバイナリ値を使用して、０が「偽」を表し、１が「真」を表す場合、式「Ａ１−＞１」は「この患者の所見Ａ１は真である」ことと同じであり、式「Ａ１−＞０」は「この患者の所見Ａ１は偽である」ことと同じである。留意すべき重要な点として、式中に所見現れないことがあり、これは所見が真であっても偽であってもよく、式に影響を与えないことを意味する。すなわち、式中に「Ａ１−＞１」が存在しなくても、「Ａ１−＞０」を示唆するものではない。
【００２９】
Ｑ１とＱ２は「量化子」と呼ばれ、式Ｑ１（Ａ１、Ａ２、．．．  Ａｍ）とＱ２（Ｂ１、Ｂ２、．．．  Ｂｎ）が真となるために真でなければならない所見の間の関係を表す。例示的な実施形態では、量化子Ｑ１およびＱ２は、「Ａｌｌ（すべて）」、「Ｎｏｎｅ（なし）」、「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ（少なくとも１つ）」、および「Ａｔ  Ｍｏｓｔ  Ｏｎｅ（多くとも１つ）」のうちの１つとすることができる。たとえば、Ｑ１が「Ａｌｌ」の場合、Ａｌｌ（Ａ１  ．．．  Ａｍ）が真であるには、所見Ａ１  ．．．  Ａｍの１つひとつが真でなければならない。Ｑ１が「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」である場合、所見Ａ１ないしＡｍのうちのゼロまたは１つが真であり、他のすべての結果が偽でなければならない。同様に、Ｑ１が「Ｎｏｎｅ」の場合、所見Ａ１ないしＡｍのうちどれも真ではなく、Ｑ１が「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」の場合、所見Ａ１ないしＡｍの１つ以上が真でなければならない。
【００３０】
当業者には言うまでもなく、述語または結果がただ１つの所見を有する場合、量化子「Ａｌｌ」および「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」はいずれも同じ効果を有する。例えば、図１の例の第１のルール（“Ｉｆ  Ｘ  ｔｈｅｎ  Ｙ”）は、「ＩＦ  Ａｌｌ｛Ｘ｝  ＴＨＥＮ  Ａｌｌ｛Ｙ｝」、「ＩＦ  Ａｌｌ｛Ｘ｝  ＴＨＥＮ  Ａｔ  Ｌｅａｓｔ  Ｏｎｅ｛Ｙ｝」、などと表すことができる。
【００３１】
同様に、図１の例の第３のルール（「ＡとＺは互いに排他的である」）は、ＩＦ  Ａｌｌ｛｝  ＴＨＥＮ  Ａｔ  Ｍｏｓｔ  Ｏｎｅ  ｛Ａ、Ｚ｝」と表すことができる。すべての式｛｝はどの所見とも無関係であるため、常に真であり、したがってこのルールの意味は、「すべての状況下で、所見Ａまたは所見Ｚのうち１つのみが真である」ことである。このルールは、「ＩＦ  Ａｌｌ  ｛Ａ−＞１｝  ＴＨＥＮ  Ａｌｌ  ｛Ｚ−＞０｝」と「ＩＦ  Ａｌｌ  ｛Ｚ−＞１｝  ＴＨＥＮ  Ａｌｌ  ｛Ａ−＞０｝」との２つのルールとして表し得る。
【００３２】
ステップ２４０において、ルール検証システムが初期化される。例示的な実施形態では、「ｓ」は現在の所見（新しく追加された所見を含む）のセットを表し、「ｔ」は、現在の所見のセットに存在する可能性があるすべての競合を除去（解消）するために、現在の所見に追加または現在の所見から削除されなければならない所見を表す。セット「Ｔ」は、すべての競合を解決するすべてのセット「ｔ」が含まれる。セット「ｔ／ｓ」は、セット「ｔ」と、セット「ｔ」の所見と矛盾しない現在セット「ｓ」の所見のいずれかを含む。概念的には、セット「ｔ／ｓ」には、これらの必要な追加または削除された所見に影響を与えない他の既存の所見をすべて保持しつつ、すべての競合を解決するために必要な追加または削除された所見がすべて含まれる。つまり、セット「ｔ」は、所与のルールセットを満たすために除去される必要がある所見のみを、現在の所見から削除する。
【００３３】
ステップ２５０において、現在の所見のセットｓ内のすべての競合を解決する所見のセットｔの全てが、セットＴに集められ、このセットＴはステップ２６０でユーザに報告される。この患者が現在の所見のセットｓ中のあらゆる競合（ｃｏｎｆｌｉｃｔｓ）を解決するために、現在の所見になされることができる変化の各セットを与えられると、医師は、これらの完全な解決策のそれぞれを評価して、どの解決策を受け入れるか判断する（ステップ２７０）。
【００３４】
上記のように、患者の状態は時間とともに変化する可能性があり、医師は、どの提案された解決策が患者の現在の状態に最もよく一致するのかを容易に特定することができる。例えば、患者の以前の体重が、その人が肥満であったという所見を提供した場合、現在の競合に対し提案される解決策は、患者が肥満であったという所見を取り除くことであり得る。実際、患者が引き続き肥満である場合、医師はこの「解決策」を選択しないだろう。一方、患者が体重を減らした場合、この以前の「所見」はもはや有効ではなく、医師はこの所見を患者の現在の所見から除去する解決策に同意するだろう。
【００３５】
いくつかの状況では、追加のテストまたは他の情報収集手順を実施して、提案されたどの解決策を受け入れるかを決定する必要があり、現在の所見における競合を解決するためにどの所見が必要であるかの識別は、現在の所見におけるすべての競合を解決する複数の解決策の中から適切な解決策のセットを選択するのに必要な試験／手順の特定を容易にする。
【００３６】
医師が現在の所見に対する所定の変更のセットｔを選択するとき、システムは、患者の記録を更新してこれらの変更ｔを有効にし、それにより患者の記録における現在の所見の全ての競合を解決する。
【００３７】
図３は、本発明の態様に解決プロセスを示す例示的なフロー図である。以下に詳述するように、この解決プロセスは再帰的プロセスであり、ルール違反の可能な各解決策は、この解決策が別のルール違反を含むかどうかの判定を含み、もしそうであれば、この他のルールの違反の可能性のある解決策のそれぞれは、元のルール違反の可能性のある解決策に含まれる。
【００３８】
上記のように、現在の所見ｓへの変更のセットｔは、現在の所見によってもたらされた競合を解決するために必要な変更である。セットｔ中の所見は、現在の所見ｓと競合することがあり、多くの場合、競合する（ｓ中の競合する所見の削除を特定するため）が、ｔ中の前に必要であった所見とは競合しないことがある。ステップ３１０において、そのような競合状況が生じた場合、これまでにセット「ｔ」に行われた変更は実施不可能である。したがって、システムは、変更のこの特定のセット「ｔ」を実行不可能として識別し、ヌルセットを返す（ステップ３２０）。
【００３９】
一方、ステップ３１０において、それまでに開発されたセットｔの必要な変更が競合を含まない場合、システムは、ステップ３３０において、現在の所見のセットｓ内のすべての競合が、セットｔにおいて識別された変更によって解決されたかどうか、判断する。そうであれば、すべての競合の解消は完全であり、プロセスは元に戻る（ステップ３６０）。これまでに開発されたこの解決策のセットｔは、解決策ｔの完全なセットに含まれることになる。以下でさらに詳細に説明する。
【００４０】
ステップ３３０において、システムが、これまでに開発されたセット「ｔ／ｓ」によってルール違反していると判定した場合、システムは、現在のルールの述語に違反するセット「ｔ／ｓ」を生成する変更の各セット「ｔ」を決定することによって、現在のルール違反を解決する（ステップ３４０）。現在のルール違反は、ルールの述語が真であり、ルールの結果が偽であるときに生じる。ルールの述語が偽であるようにセット「ｔ」により所見を変更することにより、ルールは呼び出されず、違反は発生しない。
【００４１】
ステップ３５０において、現在のルールの結果を満たす所見のセット「ｔ／ｓ」を提供する所見に対する変更の各セット「ｔ」が決定される。上記の通り、現在のルール違反は、ルールの述語が真であり、ルールの結果が偽であるときに生じる。所見のセット「ｔ／ｓ」が現在のルールの結果を満たすように、変更のセット「ｔ」により所見を変更することにより、ルールが満たされ、違反が生じない。
【００４２】
現在違反されているルールの述語に違反し、現在違反されているルールの結果を満たすと判断された各セット「ｔ」は、現在の所見のセットｓの最初に特定されるルール違反の述語に違反するか、最初に特定されたルール違反の結果を満たすセット「ｔ」が、返され、現在の所見「ｓ」にあるすべての競合を除去する解決策のセット「Ｔ」に加えられるまで、「ｎｅｘｔ  ｈｉｇｈｅｒ  ｕｐ」ルール解決策に返される。
【００４３】
効果的には、図３の再帰的プロセスは、現在の所見のセットｓによって違反されたルールの述語に違反するか、またはこの違反されたルールの結果を満たす複数のブランチを含むツリーを作成する。ブランチの末端リーフは、このブランチが実現しないことを示すヌルセットであるか、または現在の所見のセットｓが違反するルールの述語に違反するか、結果を満たすブランチの末端にある末端リーフである。実現する各ブランチの末端にある「最終的」解決策は、所見のセット「ｔ／ｓ」中のすべての競合を満たす解決策を見いだすので、変更のセット「ｔ」は、元の所見のセット「ｓ」中のすべての競合を解決することが保証される。したがって、元のセット「ｓ」中の最初に特定されたルール違反の選択は、すべての解決策「ｔ」の解決策のセット「Ｔ」にとって重要ではない。
【００４４】
図４と５は、より詳細なフロー図であって、「ｔ／ｓ」が現在違反しているルールの述語に違反するのに必要な変更のセット「ｔ」を決定し（図３のステップ３４０）、「ｔ／ｓ」が現在違反しているルールの結果を満たすのに必要な変更のセット「ｔ」を決定する（図３のステップ３５０）再帰的プロセスの実装に使うことができる。
【００４５】
図４は、ルールの述語に違反する所見のセットを決定する（ステップ３４０）例示的フロー図である。ルールの述語はＱ１｛Ａ１，  Ａ２…  Ａｍ｝という形式であり、ここでＱ１は「Ａｌｌ」、「Ｎｏｎｅ」、「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」及び「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」のうちの１つである。ステップ４０５において、Ｑ１が、これらの量化子のうちの１つであると識別される。
【００４６】
Ｑ１が「Ａｌｌ」であるとき、所見Ａ１．．．Ａｍのうちの少なくとも１つが偽（ー＞０）であれば、述語に違反する。ループ４１０−４１４は、所見Ａ１．．．Ａｍの各Ａを処理し（ｓｔｅｐ  ｔｈｒｏｕｇｈ）、Ａが偽である（Ａ−＞０）との所見を、述語「Ａｌｌ｛Ａ１，  Ａ２…  Ａｍ｝」に違反する変更「ｔ」のセットに追加する。追加された所見Ａ−＞０により生じる新しい所見のセット「ｔ／ｓ」における競合は、図３に示したプロセスを用いて、ステップ４１２において解消される（ゆえに「再帰的」解決と言う）。
【００４７】
既存の、必要な変更のセット「ｔ」が、所見を真に設定する（Ａ−＞１）ことを含む場合、この（Ａ−＞０）のセット「ｔ」への追加には矛盾があり、この変更のセット「ｔ」は実施できないと判断される（図３のステップ３２０）。
【００４８】
一方、現在の変更のセット「ｔ」が、この所見Ａが真であることを示さない場合、所見「ｔ」へのこの付加（Ａ−＞０）が受け入れられる。  重要な留意点として、現在の所見「ｓ」はＡが真であるとの矛盾する所見を含むことがあるし、こうした反対の所見を受け入れることは、この先行する所見をひっくり返すことができると医師が判断することを必要とすることと同じである。現在の所見「ｓ」がこの追加（Ａ−＞０）と矛盾する所見を含んでいない場合、医師は、（先行する所見に矛盾することなく）所見Ａが偽であることを確認するだけでよい。幾つかの場合には、医師は、自分の患者記録の評価に基づき、この決定をする。他の場合には、医師は、追加テストやその他の情報収集プロセスを行って、提案された追加的所見を確認する必要があり得る。
【００４９】
各所見Ａ１．．．Ａｍを偽に設定することに対応する変更のセット「ｔ」への追加の決定により、「ｍ」個の変更のセット「ｔ」が得られる。もちろん、これらの「ｍ」個の変更のセット「ｔ」のうち、一部または全部は実行不可能である（すなわち「ｔ」内の競合）。残りの実行可能な変更のセット「ｔ」はが、現在の所見のセット「ｓ」により生じた現在違反となっているルール中の競合を解消する、「ｔ／ｓ」への変更として返される。すなわち、ループ４１０−４１４は、各々が現在のルールの述語に違反するセット「ｔ／ｓ」を提供する０ないしｍ個の変更のセット「ｔ」を生成する（Ａ−＞０を追加する前にブランチ「ｔ」に分岐する）。
【００５０】
Ｑ１が「Ｎｏｎｅ」であるとき、所見のうちの少なくとも１つが真であれば、述語に違反する。ループ４２０−４２４はループ４１０−４１４と同様であるが、ステップ４１２において所見Ａが偽に設定される（Ａ−＞０）のと対照的に、ステップ４２２において各所見Ａが真に設定される（Ａ−＞１）点で相違する。ループ４１０−４１４のように、ｍ個の変更のセット「ｔ」が生成され、そのうちの一部は実現不可能である可能性があり、残りは、所見のセット「ｓ」が違反する現在のルールの述語「Ｎｏｎｅ（Ａ１，  Ａ２…  Ａｍ）」に違反するセット「ｔ／ｓ」をそれぞれが提供する０ないしｍ個の変更のセット「ｔ」である。
【００５１】
Ａ１が「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」である場合、所見Ａ１．．．Ａｍのうちすべてが偽である場合にのみ、述語に違反する。すなわち、述語に違反する変更「ｔ」のｍ個のセットを生成する上記の「Ａｌｌ」及び「Ｎｏｎｅ」とは対照的に、（すべての所見が偽である）１つの解決策のみが、述語「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ  （Ａ１，  Ａ２…  Ａｍ）」に違反する。したがって、ループ４３０−４３４は、ステップ４３２において、すべての所見を偽に設定し（Ａ−＞０）、この単一の所見セットの「ｔ」への追加により生じ、現在のルールの述語に違反する競合は、ステップ４３６において解消される。
【００５２】
Ｑ１が「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」である場合、所見Ａのうち少なくとも２つが真であれば、述語「Ａｔ  Ｍｏｓｔ  Ｏｎｅ  （Ａ１，  Ａ２…  Ａｍ）」に違反する。このプロセスが実行されると（図３のステップ３４０）、既存の述語は真でなければならず、（そうでなければ、ルールには違反しない）、それゆえ現在の「ｔ／ｓ」中の所見Ａのうちどれも真ではなく、または「ｔ／ｓ」中の所見Ａの１つが真である。「ｔ／ｓ」において、所見Ａのうち２つ以上が真であれば、このルールには違反しない。述語「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」に違反しているからである。
【００５３】
ステップ４４０において、セット「ｔ／ｓ」にアクセスして、所見Ａの０または１が正しいか判断する。「ｔ／ｓ」中の所見Ａの１つが真であるとき、ループ４６０−４６６は、他の所見Ａ１の各々が真である所見を追加する（ステップ４６２）。各所見Ａ１−＞１が変更のセット「ｔ」に追加されるので、所見のセット「ｔ／ｓ」中にのこるどの競合も解決される（ステップ４６４）。よって、ｍ−１個の所見セットが定義され、そのうちの一部は実施不可能である（「ｔ」における競合）。したがって、現在のルールの述語に違反する所見のセット「ｔ／ｓ」を生成する０ないしｍ−１個の実現可能な変更セットが生成される。
【００５４】
ステップ４４０において、所見のセット「ｔ／ｓ」中の所見Ａのどれも真に設定されていないとき、ステップ４５０−４６０内のネストされたループ４５２−４５８は、ステップ４５４において、真に設定される２つの設定Ａ１、Ａ２を含む変更セット「ｔ」を生成する。これらの追加により生成される所見セット「ｔ／ｓ」中に残っている競合が、ステップ４５６において解決される。「ｔ」のｍ＊（ｍ−１）／２個のセットまでが生成され、そのうちの一部は実現不可能である（「ｔ」における競合）。したがって、現在のルール中のすべての競合を解消するセット「ｔ／ｓ」を提供する０ないしｍ＊（ｍ−１）／２個の変更セット「ｔ」が決定される。
【００５５】
図５は、ルールの結果を満足する所見のセットを決定する（ステップ３５０）例示的フロー図である。ルールの述語はＱ２｛Ｂ１，  Ｂ２…  Ｂｍ｝という形式であり、ここでＱ２は「Ａｌｌ」、「Ｎｏｎｅ」、「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」及び「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」のうちの１つである。ステップ５０５において、Ｑ２が、これらの量化子のうちの１つであると識別される。
【００５６】
Ｑ２が「Ａｌｌ」であるとき、すべての所見Ｂ１．．．Ｂｎが真（ー＞１）のときにのみ、結果が満たされる。ループ５１０−５１４は、所見Ｂ１．．．Ｂｍの各Ｂを処理し（ｓｔｅｐ  ｔｈｒｏｕｇｈ）、Ｂが真である（Ｂ−＞１）との所見を、述語「Ａｌｌ｛Ｂ１，  Ｂ２…  Ｂｍ｝」を満たす変更「ｔ」のセットに追加する（ステップ５１２）。図３に示すプロセスを用いて、ステップ５１６において、すべての所見Ｂ１．．．Ｂｎが真であるとの所見の追加後に残っている新しい所見セット「ｔ／ｓ」中の競合が解決される。
【００５７】
既存の、必要な変更のセット「ｔ」が、いずれかの所見を偽に設定する（Ｂ−＞０）ことを含む場合、この（Ｂ−＞１）のセット「ｔ」への追加には矛盾があり、この変更のセット「ｔ」は実施できないと判断される（図３のステップ３２０）。
【００５８】
一方、現在の変更セット「ｔ」がどの所見Ｂも偽であることを示さない場合、「ｔ」においてすべての所見Ｂ１．．．Ｂｎを真に設定することは受け入れられる。  重要な留意点として、現在の所見「ｓ」はＢが偽であるとの矛盾する所見を含むことがあるし、こうした反対の所見を受け入れることは、この先行する所見をひっくり返すことができると医師が判断することを必要とすることと同じである。現在の所見「ｓ」がこれらの追加（Ｂ−＞１）と矛盾する所見を含んでいない場合、医師は、（先行する所見に矛盾することなく）すべての所見Ｂ１．．．Ｂｎが真であることを確認するだけでよい。上記の通り、医師は、この追加が妥当であることを確認するため、追加テストその他の情報を必要とするかも知れない。
【００５９】
すべての所見Ｂ１．．．Ｂｎを真に設定することに対応する変更セット「ｔ」への追加のこの決定により、１つの変更セット「ｔ」が得られる。これは実現不可能（すなわち、「ｔ」内での競合）であり得る。変更セット「ｔ」が実現可能であると判断されると、現在の所見セット「ｓ」により生じた現在のルール違反における競合を解決するセット「ｔ／ｓ」を生成する変更セットとして返される。
【００６０】
Ｑ２が「Ｎｏｎｅ」である場合、セット「ｔ／ｓ」内のどの所見も真ではないとき、結果が満たされる。ループ５２０−５２４はループ５１０−５１４と同様であるが、ステップ５１２において所見Ｂが真に設定される（Ｂ−＞０）のと対照的に、ステップ５２２において各所見Ｂが偽に設定される（Ｂ−＞１）点で相違する。ループ５１０−５１４と同様に、１つの変更セット「ｔ」が生成され、これは実現不可能であり得る。変更セット「ｔ」が実現可能であるとき、セット「ｔ」が、現在のルールの結果「Ｎｏｎｅ（Ｂ１，  Ｂ２…  Ｂｎ）」を満たすのに必要な変更セットとして返される。
【００６１】
Ｑ２が「Ａｔ  Ｌｅａｓｔ  Ｏｎｅ」であるとき、所見Ｂ１．．．Ｂｎのうちの少なくとも１つが真であれば、結果は満たされる。上記の通り、このプロセスは、ルールの結果が真であったとき、起動されない。すなわち、すべての所見Ｂ１．．．Ｂｎは、患者記録中にはないか、または患者記録において偽に設定されていなければならない。したがって、ループ５３０−５３４は、「ｔ」中の各所見Ｂを真に設定し（Ｂ−＞１）、その結果得られたセット「ｔ／ｓ」中にのこる任意の競合が解決される（ステップ５３２）。このループ５３０−５３４において、ｎ個の変更セット「ｔ」が導入され、そのうちの一部は実現不可能であり得る。したがって、０ないしｎ個の実現可能な変更セットが提供され、これらの変更セット「ｔ」は各々が、現在のルールに関して現在の所見セット「ｓ」中のすべての競合を解決する所見セット「ｔ／ｓ」を提供する。
【００６２】
Ｑ２が「Ａｔ  Ｍｏｓｔ  Ｏｎｅ」であるとき、所見のうちゼロまたは１つが真である場合、結果「Ａｔ  Ｍｏｓｔ  Ｏｎｅ  （Ｂ１，  Ｂ２…  Ｂｎ）」は満たされる。現在の所見「ｔ／ｓ」は、このルール違反プロセスを起動させるには、少なくとも２つの所見が真でなければならない。ループ５４０−５４４において、「ｔ」において、すべての所見Ｂ１．．．Ｂｎが偽に設定され（ステップ５４２）、Ｂが真（Ｂ−＞１）であることを示すセット「ｓ」中のすべての所見を無効にする（ｏｖｅｒｒｉｄｅ）。その後、ループ５４６−５５４において、元のセット「ｓ」において真に設定されたＢｎｏ所見のみを評価して、この所見ＢがＢ１．．．Ｂｎ中の唯一の真である所見とする効果を判断すればよい（ステップ５４８）。ステップ５５０において、ｔ中のこの所見Ｂは真に設定され（Ｂ−＞１）、その結果得られるセット「ｔ／ｓ」の任意の競合が解決される（ステップ５５２）。
【００６３】
図４と５において、現在のルールに基づいて所見間のすべての競合を解決する所見セット「ｔ／ｓ」を提供する実現可能な変更セット「ｔ」の各々が、現在の解決プロセスを起動するプロセスに返される。したがって、最上レベルにおいて、現在の所見セット「ｓ」に競合が特定されたとき、返される変更セット「ｔ」の各々は、現在の所見セット「ｓ」中にあり得るすべての競合を解決すると保証される。
【００６４】
図６は、図２の例示的プロセスを用いて、図１の例の競合を解決する完全な各所見セットの例示的な判定を示す。サービスプロバイダは、患者の現在の所見｛Ａ｝１１０に所見Ｘ１１５を追加し、所見セット｛Ａ，  Ｘ｝１２０を生成する。これは競合解決プロセス（図２の２５０）により評価される。これらの所見１２０は、図１のルール１０１の各々に関して評価される。ルールは、「ＩＦ  Ｑ１（Ａ１，  Ａ２…  Ａｍ）  ＴＨＥＮ  Ｑ２（Ｂ１，  Ｂ２…  Ｂｎ）」ルール６０１の形式で構成（ｃａｓｔ）される。
【００６５】
図１の例と同様に、ユーザ（例えば、サービスプロバイダ）は、所見Ｘ１１５を現在の患者所見セットＡ１１０に追加することを望む。その結果得られるセット１２０は、これに対応して所見｛Ａ，Ｘ｝を含む。以後、この所見は所見セット「ｓ」と呼ぶ。ルール検証システムは、この新しいセット「ｓ」１２０を処理して、どのルール６０１にも違反していないことを確認し、またはいずれかのルール６１０に違反していれば、セット１２０中のすべての違反を除去する解決策を特定する。
【００６６】
ステップ６１０において、所見Ｘは第１のルール「ＩＦ  Ａｌｌ｛Ｘ｝  ＴＨＥＮ  Ａｌｌ｛Ｙ｝」に違反する。所見Ｙがセット１２０に含まれていないからである。この競合には２つの潜在的な解決策がある：Ａｌｌ｛Ｘ｝に違反する（６１０ａ）か、またはＡｌｌ  ｛Ｙ｝を満たす（６１０ｂ）かである。
【００６７】
図４を参照して、所見Ａｌｌ｛Ｘ｝に違反するには、少なくとも１つの所見が偽に設定されなければならない。「Ａｌｌ」量化子中には所見（Ｘ）が１つしかなく、ループ４１０−４１４は所見（Ｘ−＞０）を所見セット「ｔ」に導入する（６１５ｔ）。結果として得られるセット「ｔ／ｓ」６１５はこの所見セット「ｔ」６１５ｔを含み（点線の上）、すべての所見は「ｔ」中の所見セット６１５ｓと競合しない「ｓ」である（点線の下）。
【００６８】
所見セット「ｓ」は｛Ａ，  Ｘ｝であり、このセット中のＸ（すなわち、Ｘ−＞１）は、解決策セット「ｔ／ｓ」に追加されて現在の競合を解決するのに必要な所見（Ｘ−＞０）と競合する。したがって、所見Ａのみが、「ｔ」中の所見と校合しないが（Ｘ−＞０）、得られたセット「ｔ／ｓ」に含まれる。この結果セット「ｔ／ｓ」は｛Ａ−＞１，  Ｘ−＞０｝を含み、これはどのルール６０１にも違反しない。したがって、この解決策は、所見Ｘ１１５を所見セット｛Ａ｝１１０に追加することにより生じた競合を解決する。
【００６９】
効果的に、この解決策は、ユーザが所見Ｘ  １１５を所見｛Ａ｝  １１０の集合に追加することを防止する。例えば、所見Ｘを入力することが、誤植の結果であった場合、これは適切な解決策であるかもしれない。したがって、本発明のルール検証システムは、提案された所見が既存の所見と矛盾していることをユーザに通知することによって、誤った所見の入力を回避することが多い。
【００７０】
あるいは、セット「ｓ」｛Ａ，Ｘ｝中の競合は、現在、違反となっているルール「ＩＦ  Ａｌｌ｛Ｘ｝  ＴＨＥＮ  Ａｌｌ｛Ｙ｝」の結果を満たすことにより、解決され得る。図５のステップ５１０〜５１６に示すように、Ａｌｌ｛Ｙ｝の満足は、全ての所見（この場合は単一の所見Ｙ）を真（Ｙ−＞１）に設定する必要がある。得られた所見セット「ｔ／ｓ」６２０は、「ｔ」｛（Ｙ−＞１）｝６２０ｔの所見と矛盾しない「ｓ」｛Ａ、Ｘ｝の所見と、「ｔ」のこの追加の所見（Ｙ−＞１）６２０ｔとを含む。所見Ａも所見Ｘも所見Ｙ−＞１と矛盾しない。したがって、所見ＡおよびＸは、解決策セット｛Ｙ−＞１；Ａ−＞１；Ｘ−＞｝６２０中に含まれる（６２０ｓ）。
【００７１】
｛Ｙ−＞１；  Ａ−＞１；  Ｘ−＞１｝  ６２０の解決策セット「ｔ／ｓ」は、いずれかのルールに違反するか判断するため評価され、第２のルール「ＩＦ  Ａｌｌ｛Ｙ｝  ＴＨＥＮ  Ａｌｌ｛Ｚ｝」に違反することがわかる（６３０）。第１のルールに違反する６１０例のように、２つの潜在的解決策は、Ａｌｌ｛Ｙ｝  （Ｙ−＞０）に違反すること、またはＡｌｌ｛Ｚ｝  （Ｚ−＞１）を満たすことである。
【００７２】
Ａｌｌ｛Ｙ｝の違反は、追加された所見「ｔ」（Ｙ−＞１）  ６２０ｔの現在のセットへのＹ−＞０の追加を要する。しかし、変更セット「ｔ」においてＹ−＞０とＹ−＞１を要求することは、実施不可能である。したがって、潜在的解決策セットのこのブランチは実現不可能であり、このことを表示するため、「ｎｕｌｌ」応答が返される（６３９）。
【００７３】
Ａｌｌ｛Ｚ｝を満たすことは、Ｚ−＞１を変更セット「ｔ」６２０ｔに追加することを要する。この所見は現在の変更セット「ｔ」６２０ｔと矛盾せず、それゆえＺ−＞１が変更セット「ｔ」６４０ｔに追加される。「ｓ」（Ａ−＞１；  Ｘ−＞１）の所見はどれもこの所見と矛盾するので、これらの所見セットは、結果として得られる所見セットｔ／ｓ  ｛Ａ−＞１；  Ｘ−＞１；  Ｙ−＞１；  Ｚ−＞１｝  ６４０に含まれる。
【００７４】
解決策セット「ｔ／ｓ」｛Ａ−＞１；  Ｘ−＞１；  Ｙ−＞１；  Ｚ−＞１｝  ６４０が評価され、ルール６０１のいずれかに違反するか判断され、第３のルール「ＩＦ  Ａｎｙ｛｝  ＴＨＥＮ  ＡｔＭｏｓｔＯｎｅ｛Ａ，  Ｚ｝」に違反することが分かる。Ａ−＞１とＺ−＞１が両方ともこの解決策セット「ｔ／ｓ」６４０に含まれるからである。
【００７５】
この矛盾を解消するため、述語Ａｎｙ｛｝に違反するか、結果ＡｔＭｏｓｔＯｎｅ｛Ａ，  Ｚ｝を満たさなければならない。述語Ａｎｙ｛｝は所見を含まないので、この述語に違反する所見の変化は無い。したがって、潜在的な解決策のこのブランチに沿った解決策は実現不可能であり、ヌル応答（ｎｕｌｌ  ｒｅｓｐｏｎｓｅ）が返される（ステップ６５９）。
【００７６】
結果ＡｔＭｏｓｔＯｎｅ｛Ａ，Ｚ｝を満たすため、図５のステップ５４０−５５４のプロセスが、現在実行可能な解決策セット「ｔ／ｓ」６４０に適用される。ループ５４０−５４４において、結果中の各所見は、変更セット｛ｔ｝において「一時的に」偽（Ａ−＞０，Ｚ−＞０）に設定される。この設定は一時的である。所見が解決されるまで（図３のステップ３１０）、その後に追加される所見がセット「ｔ」と矛盾するかチェックされないからである。それまで、後で追加される所見は、「一時的」所見と置き換えられるだけである。
【００７７】
ループ５４６−５５４は、所見ＡとＺのそれぞれに対して行われる。ステップ５４８において、所見Ａは、元の所見セット「ｓ」｛Ａ，Ｘ｝の要素と比較され、「ｓ」（「ｙｅｓ」）であることが分かる。セット「ｔ」は、「ｔ」｛Ｚ−＞０；  Ｙ−＞１；  Ｚ−＞１｝中のＡ−＞０とＺ−＞０と、その結果のセット「ｔ／ｓ」｛Ａ−＞０，  Ｚ＝＞０，  Ｚ−＞１，  Ｙ−＞１；  Ｘ−＞１｝  ６６０とを含み、解決されている（ステップ５５２）。セット「ｔ」６６０ｔは矛盾｛Ｚ−＞０；  Ｚ−＞１｝を含むので、潜在的解決策のこのブランチは実現不可能であり、ヌルセットが返される（ステップ６６９）。
【００７８】
重要な留意点として、本発明のプロセスは、矛盾する変更の特定および排除を容易にするので、先行技術における前述の無限カスケード解決策の可能性は、最初に所見を真とすることを示唆し、次にこの所見を偽に設定する、又はその逆の解決策を防止することによって回避され得る。
【００７９】
ループ５４６−５５４が次いで所見Ｚに適用される。ステップ５４８において、Ｚは「ｓ」中に無く、Ｚ−＞１が「ｔ」に追加され、（一時的に）先行アサインメントＺ−＞０を置き換える（ステップ５４２）。変更セット「ｔ」はステップ５４２からＡ−＞０を依然として含み、得られるセット「ｔ」は｛Ａ−＞０，  Ｚ−＞１，  Ｙ−＞１｝  ６７０ｔである（Ｚ−＞１の「追加」は冗長である。Ｚ−＞１はセット「ｔ」６４０ｔ中にあるからである）。得られる所見セット「ｔ／ｓ」６７０は、「ｔ」｛Ａ−＞０，  Ｙ−＞１，  Ｚ−＞１｝  ６７０ｔにこれらを含んでおり、さらに「ｔ」中のこれらの所見と矛盾しない「ｓ」｛Ａ−＞１，  Ｘ−＞１｝中の所見を含む。「ｓ」中の所見Ａ−＞１は「ｔ」中のＡ−＞０と矛盾するので、この所見Ａ−＞１は得られるセット「ｔ／ｓ」｛Ａ−０，  Ｚ−＞１，  Ｙ−＞１；  Ｘ−＞１）  ６７０に含まれない。
【００８０】
これらの発見「ｔ／ｓ」６７０の評価は、違反するルール６０１を明らかにしておらず、所見「ｔ」６７０ｔのセットは、所見Ｘの追加１１５によって生じた矛盾を解決するために使用され得る変更セットとして、元の所見セット｛Ａ｝１１０に返される。この変更セット｛Ａ−０，  Ｚ−＞１，  Ｙ−＞１｝は、元の所見セット｛Ａ｝１１０にあった所見Ａ−＞１の破棄を必要とする。上記の通り、かかる破棄は、患者の状態が変化したとき、（投薬、運動、体重減などにより）正当化される。したがって、本発明のルール検証システムは、古い所見または以前に誤った所見の削除を容易にすることが分かる。
【００８１】
述語に違反するか、または最初に決定された違反されたルールの結果を満たす（ＩＦ  Ａｌｌ  ｛Ｘ｝  ＴＨＥＮ  Ａｌｌ  ｛Ｙ｝）すべての解決策を見つけた後、ルール検証システムは、可能な変更セット「ｔ」のすべての「Ｔ」を返す。それはそれぞれ、所見Ｘを元の所見セット｛Ａ｝への追加によって生じる矛盾を解決し、所見セット｛Ａ、Ｘ｝を形成する。この例では、返される変更セット「ｔ」は、次を含む：
１．  ｛Ｘ−＞０｝  ６１５ｔ；及び
２．  ｛Ａ−＞０；  Ｙ−＞１；  Ｚ−＞１｝  ６７０ｔ。
【００８２】
この例では、ユーザは、｛Ａ，Ｘ｝における競合を解決する２つのオプションが与えられ、それぞれは所見Ａ、Ｘのうち１つの破棄を必要とする。先行所見Ａまたは新しい所見Ｘのそのような破棄は直感に反し、従来の紛争の段階的解決では、ＡまたはＸのいずれかが偽でなければならないという現実がユーザによって認識されるまで、ルール違反がカスケードし続けます。この例示的状況において本発明を用いて、ユーザは、ＡまたはＸが偽でなければならないとの現実にすぐに直面する。他の解決策は実現可能でなく、巡回的解決の試みは回避されるからである
図７は、本発明のルール検証システムを示す例示的なブロック図である。プロセッサ７２０は、上で詳述したように、本発明のルール検証プロセスを提供する１つまたは複数のプログラムを実行するように構成されている。プロセッサ７２０は、ユーザインターフェース７１０を介して、患者の識別情報と、この患者の記録７６０における所見の変更に適用されるルールセット７５０とを受信する。（本発明は、新しい所見の追加の文脈で提示されるが、この新しい所見は、以前の所見がもはや有効ではないこと（すなわち、「付加」自体ではなく「削除」）であってもよい）。ルール検証システムの要素間の通信は、ネットワーク７４０を介して行うことができる。
【００８３】
プロセッサは、特定の患者の所見をメモリ７３０にコピーして、各所見への効率的なアクセスを容易にし、これらの所見に適用されるルールの一部または全部をメモリ７３０にコピーすることもできる。幾つかの実施形態では、特にルールセット７５０が大きい場合、ルールは、患者の所見の処理中にアクセスされる（ｅｎｃｏｕｎｔｅｒｅｄ）ので、メモリに追加（キャッシュ）され得る。すなわち、各ルールは、そのルールに適用可能なすべての所見の識別を含むことができる。患者の各所見がアクセスされると、その所見に関連する各規則が、メモリ７３０にまだロードされていなければ、メモリ７３０にロードされる。
【００８４】
ユーザが患者の記録内の所見に加えられる変更を識別すると、プロセッサ７２０は適用可能な規則７５０を適用して、結果として得られる現在の所見セット内に競合があれば特定する。競合が発見された場合、プロセッサは、図２ないし図５を参照して詳述した例示的な手順を適用して、患者の現在の所見セットのすべての競合を排除するのに必要な１つまたは複数の変更を特定する。
【００８５】
患者の所見セットにおける全ての競合を排除する決定された変更セットの各々は、ユーザインターフェース７１０を介してユーザに提示される。変更セットを評価した後、ユーザは、所与の変更セットを選択し、プロセッサ７２０は、これらの変更を患者記録７６０に実施する。上述したように、所与の変更セットの選択は即時ではないかもしれない。変更の一部または全部がユーザに受け入れられると判断される前に、ユーザは追加情報を収集する必要があるからである。
【００８６】
本発明を、図面と上記の説明に詳しく示し説明したが、かかる例示と説明は例であり限定ではなく、本発明は開示した実施形態には限定されない。
【００８７】
例えば、解決策セットＴが、実現可能な解決策の全てを含まなくてもよい実施形態において、本発明を実施することが可能である。十分に想像されるように、複雑な患者記録に適用される大きなルールセットでは、ルールに対する各ソリューションの組み合わせと順列が大きくなるにつれ、競合に対する実現可能なソリューションの数は非常に大きくなる可能性がある。ユーザに提示される解の数を制限するために、「複雑度」レベルを予め定めて、まだ実現可能な解決策の任意のブランチのセット「ｔ」が所見における所定の変更数ｎの変更を越える場合、その解決策における後続のブランチにより提供される解決策は、「複雑すぎる」と定義され、このブランチに沿った処理は終了する。したがって、解決策セット「Ｔ」は、「複雑さレベルｎ未満のすべての実現可能解」を含む。ユーザが、この複雑度レベル以下の報告された解決策が受け入れられないと判断した場合、複雑度レベルが上昇し、プロセスが繰り返される（または再開される）。
【００８８】
他の終了基準を使用して、ユーザに提示される解決策の数を制限することができ、これは、例えば、所与の経過時間後に検証プロセスを終了させることを含む。別の例示的な実施形態では、前述の複雑さレベルは、「ｔ」における変更数に基づいているのではなく、提案された変更が受け入れられる可能性のある複合尤度に基づいていてもよい。例えば、患者の体温が高いとの所見の可能性は、患者が何らかのまれな疾患を有するという所見の可能性よりも高く、体温が高いとの所見を含む解決策のブランチは、まれな疾患の所見を含むブランチよりも終了する可能性が低い。同様に、ブランチを時期尚早に終了させなければならない場合、終了基準は、所見を決定するために割り当てられた「コスト」に基づいてもよい。ブランチが、患者の体温を測定する必要とする所見を含む場合、そのブランチは、生検などの侵襲的処置やＭＲＩなどのコストのかかる処置を必要とするものよりも、終了する可能性が低い。検証プロセス中に各ブランチが検証されるので、これまでブランチがそれまで必要とする各所見についてコストまたは複雑度の尺度が蓄積され得る。尺度が所定のしきい値を超えると、そのブランチを越えるさらなる処理は終了され得る。
【００８９】
同様に、各ソリューション「ｔ」は、決定されるとすぐに表示され、ユーザは、所見を変更し、検証プロセスを再開（ｒｅｓｔａｒｔｉｎｇ  ｏｒ  ｒｅｓｕｍｉｎｇ）するオプションを提供されてもよい。例えば、表示された解決策の大部分が、ユーザが誤っていると知っている所見を追加することを含む場合、システムは、ユーザがそのような経路に沿った解決策を追究するのを防ぐことができるように構成することができる。
【００９０】
例えば、性別、年齢などの一定の「所見」は、「永続的」であると特定され、システムはそのような永続的な所見と矛盾するいかなるブランチも開始させない。例えば、これらの所見がセット「ｐ」に含まれる場合、図３の判断ブロック３１０は、「Ｃｏｎｆｌｉｃｔ  ｉｎ  ｔ，  ｏｒ  ｐ？」として再表示されることがある。ユーザが、システムが誤っていることが知られている経路をたどることをユーザが防止できるようにする上記の例では、ユーザは、現在のルール検証処理の間、特定の所見を一時的に「永続的」と定めることができる。
【００９１】
また、本発明は、新たに入力された所見を検証するという文脈で提示されるが、当業者には言うまでもなく、本発明を既存の患者記録に適用することができ、患者記録内の既存の所見のいずれか１つが、他の既存の所見のすべてに加えられた「新しい」所見であると考えることができる。例示的な実施形態では、施設は、患者が新しい所見の収集のために到着する前に、所与の患者について本発明の検証プロセスを開始することができ、新たに収集された所見に起因する追加の競合の潜在的な導入前に、患者記録内の矛盾が解決されるようにしてもよい。
【００９２】
同様に、本発明の実施形態は、２つ（またはそれ以上）のプロバイダデータベースで患者に関連するレコードを「マージ」するために使用され得る。本明細書で使用される「新しい所見」は、単一の所見に限定されず、新しい所見セットを含むことができる。つまり、２つのレコードのマージは、（１つのデータベースの）新しい所見セットの、（他のデータベースの）既存の所見セットへの追加であると考えることができる。
【００９３】
請求項に記載した発明を実施する際、図面、本開示、及び添付した特許請求の範囲を研究して、開示した実施形態のその他のバリエーションを、当業者は理解して実施することができるであろう。請求項において、「有する（ｃｏｍｐｒｉｓｉｎｇ）」という用語は他の要素やステップを排除するものではなく、「１つの（「ａ」又は「ａｎ」）」という表現は複数ある場合を排除するものではない。単一のプロセッサまたはその他のアイテムが請求項に記載した複数のユニットの機能を満たすこともできる。相異なる従属クレームに手段が記載されているからといって、その手段を組み合わせて有利に使用することができないということではない。コンピュータプログラムは、光記憶媒体や他のハードウェアとともに、又はその一部として供給される固体媒体などの適切な媒体に記憶／配布することができ、インターネットや有線又は無線の電気通信システムなどを介して他の形式で配信することもできる。請求項に含まれる参照符号は、その請求項の範囲を限定するものと解してはならない。
【図１】
2018534708.tif 000003
【図２】
2018534708.tif 000004
【図３】
2018534708.tif 000005
【図４】
2018534708.tif 000006
【図５】
2018534708.tif 000007
【図６】
2018534708.tif 000008
【図７】
2018534708.tif 000009
【国際調査報告】
2018534708.tif 000010
2018534708.tif 000011