様々な図面中の同じ参照符号は、同様の構成要素を示す。
図1は、電子診療レコードから医学的状態および事実を特定および抽出する例示のプロセスを実行する例示のコンピューティングシステムのブロック図100である。便宜のために、ブロック図100は、データ準備段階102、分割段階104、エンティティ抽出およびリンキング段階106、ならびに可視化および継続的学習段階108の4つの段階を含むものとして例示のプロセスを示している。なお、一部の実装において、例示のプロセスは、より少ないまたはより多い段階を含んでもよい。便宜のために、4つの段階それぞれが、コンピューティングシステムの個々のモジュール、例えばデータ準備モジュール204、境界検出モジュール206、エンティティ抽出およびリンキングモジュール208、ならびにグラフィカルユーザインターフェース(GUI:graphical user interface)生成器210などにより実行されるものとして示されている。なお、一部の実装において、電子診療レコードから医学的状態および事実を特定および抽出するプロセスの各段階は、他のコンピューティングモジュールにより実行されてもよい。
データ準備段階102の間、データ準備モジュール204は、例えばPDFバージョンの電子診療レコードを表現するデータなど、構造化されていない電子診療レコード(EHR:electronic health record)を表現するデータを受信する。EHRは、デジタル形式で記憶された患者の診療情報の体系的な集合である。例えばEHRは、医師の評価、処方された薬剤、アレルギー、免疫状態、受領した検査試験結果、放射線画像、バイタルサイン統計、体重および身長などの身体の統計データ、および請求情報を表現するデータを含むがこれに限定されない、患者の医療履歴を表現するデータを含んでもよい。EHRは、種々のヘルスケア提供者およびサービスにわたって共有される単一の修正可能なファイルに経時的な患者の健康状態を取り込む。データ準備モジュール204は、EHRから書式設定されたテキストを抽出して、書式設定されたテキストを境界検出モジュール206に提供する。
分割段階104の間、境界検出モジュール206は、EHRから抽出された書式設定されたテキストを受信し、書式設定されたテキストを複数の文書に分割し、各文書は、EHRから抽出されたテキストの一部分を含む。境界検出モジュール206は、受信した書式設定されたテキストを、文書タイプに基づき複数の文書に分割する。例えば、データ準備モジュールは、受信した書式設定されたテキストを、医師の記録、処方箋、検査結果、入院もしくは退院記録、紹介状、処置記録、または放射線画像を表現する個々の文書へと、受信したデータにおける種々のエンカウンター間の境界を検出する機械学習手法および/またはビジネスルールを使用して分離してもよい。
このようにして、受信した書式設定されたテキストを複数の文書に分割することで、後述するエンティティ抽出段階106に改善された文脈が提供される。エンティティにまつわるセマンティクスは文書タイプに依存して異なることもあるので、例えば、受信した書式設定されたテキストを複数の文書に分割することにより、個々の文書に出現するエンティティを特定し、曖昧さを除去し、リンキングするための改善されたテキスト上の文脈が提供される。別の例として、個々の文書内の根拠事実エンティティのみを考慮することで、状態から事実へのリンキングの範囲が、同じ文脈を共有するエンティティのみに縮減される。
エンティティ抽出およびリンキング段階106の間、エンティティ抽出およびリンキングモジュール208は、複数の文書それぞれのテキスト内のエンティティおよびエンティティ間の関係を自動的に特定および抽出する。この文脈において、エンティティは、医学的状態および根拠事実、例えば薬剤、症状、または処置などの発生を含む。複数の文書それぞれのテキストからエンティティを特定して抽出するために、エンティティ抽出およびリンキングモジュール208は自然言語処理手法を適用してもよい。次に、エンティティ抽出およびリンキングモジュール208は、例えば医療オントロジー212およびナレッジグラフまたはデータベース214などを含む複数のナレッジソースに対して論証手法を適用して、状態−事実リンキングを推論してもよい。エンティティ抽出およびリンキングモジュール208はさらに、抽出されたエンティティおよび状態−事実リンクをスコア付けおよびランク付けして、最も代表的なエンティティおよび状態−事実リンクのセットを生成してもよい。
可視化および継続的学習段階108の間、GUI生成器210は、最も代表的なエンティティおよび状態−事実リンクのセットを表現するデータを処理して、そのセットの中の抽出されたエンティティおよびエンティティ関係をEHRの平文表現に対するアノテーションとして表示するGUIを生成する。例えばOCR手法などを使用してPDF文書から書式設定されたテキストを抽出する場合、スタイル情報が失われることが多いので、一部の実装においては、EHRから抽出された、例えば見出しまたはテキストの活字書体などのスタイル情報が、GUIにおいてもとのEHRの視覚的構造を保持するために使用されてもよい。例えばシステムは、平文表現に対する別個のマークアップの形態でスタイル情報を提供してもよい。
アノテーション、スタイル情報、および抽出されたテキストを生成されたGUIにおいて別々の項目として扱うことで、例えば編集など、システムとのユーザインタラクション110が継続的学習のためのフィードバックとして捕捉されることが可能となる。例えばGUIは、生成されたアノテーションに関するフィードバックを提供するユーザ入力を受信して、経時的にナレッジベースを改善するよう構成されてもよい。抽出されたエンティティおよびエンティティ関係の有効化または無効化などのユーザ入力が、ナレッジベースにおいてモデル化および捕捉されてもよく、システムによって下される将来の決定に対して情報を与えるために使用されてもよい。一部の事例において、GUI表示は、これらのユーザインタラクションの捕捉を促進してもよく、スタイル情報は、EHRを視覚的に人手で確認しやすくしてもよい。
図2は、電子診療レコードから医学的状態および事実を自動的に特定および抽出する例示のシステム200のブロック図である。一部の実装において、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、インターネット、またはその組み合わせなどのコンピュータネットワーク202が、データ準備モジュール204、境界検出器206、エンティティ抽出およびリンキングモジュール208、グラフィカルユーザインターフェース生成器218、機械学習モデルおよびルールデータベース216、ナレッジベースシステム214、ならびに医療オントロジー212を接続する。一部の実装において、データ準備モジュール204、境界検出器206、エンティティ抽出およびリンキングモジュール208、グラフィカルユーザインターフェース生成器218、機械学習モデルおよびルールデータベース216、ナレッジベースシステム214、ならびに医療オントロジー212の全部または一部が、単一のコンピューティングシステムに実装されることが可能であり、ネットワーク上で何らの他のコンポーネントとも通信しなくてもよく、または1つもしくはそれより多い他のコンポーネントと通信してもよい。
データ準備モジュール204は、構造化されていない電子診療レコードからテキストを抽出するよう構成される。例えば、データ準備モジュール204は、例えばPDFファイルなどの電子診療レコードを表現するデータを受信するよう構成されてもよい。データ準備モジュール204は、受信されたデータを例えばハイパーテキストマークアップ言語(HTML:Hypertext Markup Language)形式などで機械コード化されたテキストに変換するよう構成された、例えば光学文字認識(OCR:optical character recognition)エンジンなどの1つ以上のデータ処理エンジンを含んでもよい。データ準備モジュール204は、機械コード化されたテキストをパースして、電子診療レコードの書式設定されたテキスト表現を抽出してもよい。データ準備モジュール204は、電子診療レコードの書式設定されたテキスト表現を境界検出モジュール206に提供してもよい。
一部の実装において、データ準備モジュール204は、機械コード化されたテキストからスタイル情報を抽出するようさらに構成されてもよい。例えば、データ準備モジュール204は、機械コード化されたテキストの或る部分がテキストの見出しを表現するかどうか、もともとはボールド、下線付き、またはイタリックフォントとして表示されていたかどうか、特定の色で表示されていたかどうか、箇条書きを含んだかどうかなどを示す情報を抽出してもよい。データ準備モジュール204は、さらに詳しくは後述するとおり、抽出されたスタイル情報をグラフィカルユーザインターフェース生成器210に提供してもよい。
境界検出モジュール206は、電子診療レコードの書式設定されたテキスト表現を受信し、受信した書式設定されたテキストを、例えば医師の記録、検査結果、または処方箋などの異なるタイプの複数の文書に分割するよう構成され、各文書は、例えば異なる日付もしくは異なる時刻の異なる医師の予約、または異なる医者によりおよび/または異なる日付もしくは異なる時刻に発行された処方箋などの、個々のエンカウンターを表現する。
受信した書式設定されたテキストを複数の文書に分割するために、境界検出モジュール206は、例えば書式設定されたテキストの各ページに対する特徴ベクトルのセットなど、書式設定されたテキストの個々の部分を特徴付ける数的特徴の特徴ベクトルを生成する。例示の数的特徴は、字句特徴、言語特徴、またはエンティティ特徴のうちの1つ以上を含む。例示の字句特徴は、書式設定されたテキストの或る部分にあるいくつかの行、語、名詞、または動詞を含む。例示の言語特徴は、英語などの領域言語における語の割合、またはテキストの或る部分において検出されたいくつかの異なる言語を含む。例示のエンティティ特徴は、テキストの或る部分にある疾患、薬剤、症状、試験、名前または日付などのいくつかの臨床的用語を含む。
境界検出モジュール206は、生成された特徴ベクトルを使用して、生成された特徴ベクトルに静的ルールまたは機械学習手法を適用することにより、電子診療レコードを表現する書式設定されたテキストを分割する。例えば、境界検出モジュール206は、機械学習モデルおよびルールデータベース216を含んでも、またはその他の形でこれにアクセスしてもよい。機械モデルおよびルールデータベース216は、文書境界を特定して関連性のないテキスト部分を特定するよう、例えば訓練などを介して構成された、ルールセットおよび/または分類器を含む。
例えば、機械モデルおよびルールデータベース216は、手書き署名を表現する特徴ベクトルが文書の終わりを示し、または語「医師」、「医者」、「記録」、もしくは「概要」のうちの1つ以上を含むヘッダを表現する特徴ベクトルが文書の始まりを示すということを指定するルールのセットを含んでもよい。
別の例として、機械モデルおよびルールデータベース216は、書式設定されたテキストの或る部分を表現する特徴ベクトルを入力として受信し、受信された入力を処理して、書式設定されたテキストのその部分が文書境界を含むか否かの見込みを示すスコアを出力として生成するように訓練を介して構成された、第1の分類器を含んでもよい。例えば、第1の分類器は、或るページのテキストの特徴、例えばページ上の行数、語数、ページで言及される疾患またはその他ホットワードを表現するベクトルを受信し、ベクトルを処理して、書式設定されたテキストのその部分が文書境界を含むか否かの見込みを示すスコアを生成するよう構成されてもよい。例えば第1の分類器は、訓練を介して、「yours sincerely」という語が文書の境界を示すと学習していてもよい。
別の例として、機械モデルおよびルールデータベース216は、書式設定されたテキストの或る部分を表現する特徴ベクトルを入力として受信し、受信された入力を処理して、書式設定されたテキストのその部分が関連性のないテキストまたは情報を含む見込みを示すスコアを出力として生成するように訓練を介して構成された、第2の分類器を含んでもよい。関連性のないテキストまたは情報の例として、患者の連絡先情報、ファックスの送付状、白紙のページ、不要な文字があるページ、病院パンフレットの情報などの領域固有で関連性のないページ、検査法情報が含まれる。
一部の実装において、第1の分類器および/または第2の分類器は、ランダムフォレスト、ロジスティック分類器、サポートベクタマシン、または決定木を含んでもよい。
境界検出モジュール206は、ルールのセットおよび機械学習モデルの出力を使用して、電子診療レコードを表現する書式設定されたテキストを、各文書内の関連性のないテキスト部分が削除されている個々の患者エンカウンターに対応する複数の文書に分割する。境界検出モジュール206は、関連性のないテキスト部分が削除された複数の文書をエンティティ抽出およびリンキングモジュール208に提供してもよい。
エンティティ抽出およびリンキングモジュール208は、境界検出モジュール206により生成された複数の文書において参照される医学的状態エンティティおよび根拠事実エンティティを抽出するよう構成される。例示の医学的状態エンティティは、疾患、不調、または例えば骨折もしくは痛みの原因などの患者の症状を表す任意の一般的な医学的状態を含む。根拠事実エンティティは、医学的状態エンティティを参照するか、それにリンキングされるか、またはその他その根拠となるエンティティである。例示の根拠事実エンティティには、薬剤、施された治療、症状、検査結果、指示された試験、処置、評価、医学的状態履歴、患者が訪問した医療センターおよび/またはその部門の名称、患者に処置をした医者の氏名、前記医者または保健センターにかかっている間に与えられた食事が含まれるが、これらに限られない。
エンティティ抽出およびリンキングモジュール208は、自然言語処理手法またはその他エンティティ抽出手法を適用して医学的状態エンティティおよび根拠事実エンティティを複数の文書から抽出する、認識エンジンコンポーネント210を含んでもよい。一部の事例では、エンティティ抽出およびリンキングモジュール208は、認識エンジンコンポーネント210から抽出されたエンティティのリストを受信して、例えば辞書語、短縮語、文脈語、または参照の中で言及されたエンティティなど、関連性のないエンティティを削除することによって、抽出されたエンティティのリストをフィルタリングしてもよい。一部の事例では、エンティティ抽出およびリンキングモジュール208は、抽出されたエンティティのリスト中の抽出されたエンティティをさらに分類またはラベル付けしてもよい。
エンティティ抽出およびリンキングモジュール208は、特定の文書から抽出された医学的状態エンティティを、同じ特定の文書内で発生する関連性のある根拠事実エンティティにリンキングするようにさらに構成される。例えば、エンティティ抽出およびリンキングモジュール208は、医療オントロジーデータベース212にアクセスして、同じ文書内に発生する抽出された医学的状態エンティティと任意の事実エンティティとの関係の候補のセットを特定してもよい。次に、エンティティ抽出およびリンキングモジュール208は、ナレッジベースシステム214に問い合わせを行い、特定された関係のセットの中のいずれかの関係が無効かどうかを判断し、抽出された医学的状態エンティティと任意の事実エンティティとのさらなる任意の関係を特定してもよい。無効な関係が特定されれば、エンティティ抽出およびリンキングモジュール208は、その関係を関係の候補セットから削除してもよい。
一部の実装において、エンティティ抽出およびリンキングモジュール208は、抽出されたエンティティおよび同じ文書内の医学的状態エンティティと根拠事実エンティティとの関係をスコア付けして、医学的状態エンティティおよび/または医学的状態エンティティと根拠事実エンティティとの関係の最も関連性のある代表的なセットを判断してもよい。エンティティ抽出およびリンキングモジュール208は、抽出されたエンティティおよび同じ文書内の医学的状態エンティティと根拠事実エンティティとの関係を、図6を参照して後述されるように、医学的状態エンティティおよび根拠事実エンティティの特徴に基づいてスコア付けしてもよい。
医療オントロジー212は、医療領域における、タイプ、特性、およびエンティティ間の相互関係の正式名称および定義を表現するデータを含む。例えば医療オントロジー212は、例えば統一化医療言語体系(UMLS:unified medical language system)などの生体医科学における制限用語の一覧表を含んでもよい。例えば医療オントロジー212は、生物医学的情報を概念ごとに編成するメタシソーラスを含んでもよく、各概念は、その意味を定義する固有の属性を有し、様々なもとの語彙で対応する概念名にリンキングされる。メタシソーラスは、例えば、疾患Xは疾患Y類「の一部である」などの階層関係、または状態Xは挙動Y「により生じる」などの連想関係など、概念間の関係を示してもよい。医療オントロジーは、メタシソーラス内の概念に1つ以上のセマンティックタイプ、例えば生体、生物学的機能、化学製品、解剖学的構造などを付与するセマンティックネットワークをさらに有してもよく、これらは、例えば「…に物理的に関係する」、「…に空間的に関係する」、「…に時間的に関係する」、「…に機能的に関係する」、または「…に概念的に関係する」などの関係などのセマンティック関係により互いにリンキングされる。
ナレッジベースシステム214は、構造化されたおよび構造化されていない医療情報を記憶するナレッジベースを含む。ナレッジベースシステム214は、ナレッジベースに記憶された情報について論証し、ルールおよびその他の形態の論理を使用して新情報を推測しまたは矛盾を強調することができる推論エンジンをさらに含んでもよい。一部の実装において、ナレッジベースシステム214は、ナレッジベースに記憶された情報に加えられる編集、または新情報の推測に使用される論理のルールもしくは形式に加えられる編集を示すユーザ入力を受信するよう構成されてもよい。
グラフィカルユーザインターフェース生成器218は、抽出されたエンティティおよび同じ文書内の医学的状態エンティティと根拠事実エンティティとの関係を表現するデータを受信し、受信したデータを処理してインタラクティブなグラフィカルユーザインターフェース(GUI)を生成するよう構成され、このGUIは、複数の文書に分割された電子診療レコードの平文表現を可視化し、根拠事実と医学的状態エンティティとをリンキングする複数の文書にわたるアノテーションを提供する。GUIを生成するために、グラフィカルユーザインターフェース生成器218は、上記のようにデータ準備モジュール204により生成された抽出されたスタイル情報を使用してもよい。
システム200は、GUIを介してユーザ入力を受信するよう構成されてもよい。例えば、ユーザは生成されたGUIを閲覧し、GUIを介して、表示されている文書境界またはリンキングされた根拠事実および医学的状態エンティティに対する編集を示してもよい。例えば、ユーザは文書境界を選択して、文書境界をより適切な場所にスライドさせてもよい。別の例としてユーザは、根拠事実エンティティを医学的状態エンティティにリンキングするアノテーションを、そのリンクが無効であれば削除してもよく、または、新たな根拠事実エンティティを例えば色などの適切な形で強調して、新たな根拠事実エンティティが対応する医学的状態エンティティにリンキングされるべきであると示してもよい。スタイル情報、ならびに抽出されたエンティティおよび同じ文書内の医学的状態エンティティと根拠事実エンティティとの関係を表現するデータを使用してインタラクティブGUIを生成することについては、図3を参照してさらに詳しく後述する。
図3は、電子診療レコードからリンキングされた医学的状態エンティティおよび根拠事実エンティティを生成するための例示のプロセス300のフローチャートである。便宜のために、プロセス300は、1つ以上の場所に位置する1つ以上のコンピュータのシステムにより実行されるものとして記載される。例えば、適切にプログラムされた図2のシステム200がプロセスを実行することができる。フローチャートは、特定の順序で発生するプロセス300の様々な段階を示すが、一部の段階は、一部の実装において、並行してまたは図3の例示のプロセス300に示されているのと異なる順序で実行されてもよい。
システムは、構造化されていない電子診療レコードから抽出された書式設定されたテキストを取得する(ステップ302)。例えばシステムは、例えばPDF文書を表現するデータなど、構造化されていない電子診療レコードを表現する入力データを受信してもよい。次にシステムは、受信した入力データを、例えば光学文字認識技術を使用して、ハイパーテキストマークアップ言語(HTML)形式に変換してもよい。一部の実装においてHTMLは、例えば改ページ、段落インデント、見出しなどを保持するなど、もとの電子診療レコードの書式設定または構造を保持してもよい。次にシステムは、HTMLをパースすることにより、書式設定されたテキストを抽出してもよい。HTMLがもとの電子診療レコードの改ページを保持する事例では、システムは、もとの電子診療レコードのページに対応する書式設定されたテキストのページを生成するために、ページ毎にHTMLをパースしてもよい。
システムは、書式設定されたテキストを複数の文書に分割する(ステップ304)。各文書は、例えば医師の予約または診察、検査結果、入院または退院記録、紹介状、処置記録または処方箋、および個々の文書エンカウンターなど、個々の文書タイプに関連してもよい。例えば、分割された書式設定されたテキストは、医師の予約に関連する複数の文書を含んで、各文書が別々の医師の予約を、例えば予約の日付および時刻に基づいて表現してもよい。したがって、複数の文書はそれぞれ、書式設定されたテキストの一部分またはサブセットを含み、すなわち、ステップ302を参照して取得された書式設定されたテキストよりも小さい。
一部の実装において、書式設定されたテキストを複数の文書に分割することは、機械学習手法および/またはビジネスルールを適用して、書式設定されたテキストを文書タイプおよび対応するエンカウンターに基づき自動的に分割することを含んでもよい。任意選択で、これは、書式設定されたテキストのうち関連性のない部分を特定および削除することをさらに含んでもよい。書式設定されたテキストを機械学習手法を適用して複数の文書に自動的に分割する例示のプロセスが、図4を参照して後述される。
システムは、複数の文書のそれぞれから、文書中で参照された1つ以上のエンティティを抽出する(ステップ306)。抽出されるエンティティは、医学的状態エンティティおよび根拠事実エンティティを含む。例示の医学的状態エンティティは、疾患、不調、または例えば骨折もしくは痛みの原因などの患者の症状を表す任意の一般的な医学的状態を含む。根拠事実エンティティは、医学的状態エンティティを参照するか、それにリンキングされるか、またはその他その根拠となるエンティティである。例示の根拠事実エンティティには、薬剤、施された治療、症状、検査結果、指示された試験、処置、評価、医学的状態履歴、患者が訪問した医療センターおよび/またはその部門の名称、患者に処置をした医者の氏名、前記医者または保健センターにかかっている間に与えられた食事が含まれるが、これらに限られない。
一部の実装において、システムは、各文書において参照される医学的状態および根拠事実エンティティを、自然言語処理手法、エンティティ抽出手法、または医療オントロジーのうちの1つ以上を適用して各文書中で参照される任意のタイプのエンティティを特定することにより、抽出してもよい。例えば、システムは、統一化医療言語体系(UMLS)または医療テキスト分析およびナレッジ抽出システム(cTAKES:clinical Text Analysis and Knowledge Extraction System)を含んでも、またはそれにアクセスしてもよい。
次にシステムは、例えば医学的状態エンティティまたは根拠事実エンティティでないエンティティなど、関連性のないエンティティを特定および削除してもよい。例えばシステムは、領域固有の指標を適用して、関連性のないエンティティを削除してもよい。例示の領域固有の指標には、辞書語、短縮語、文脈語、または参照の中で言及されたエンティティが含まれる。例えばシステムは、前置詞または接続詞であるエンティティ、関連性のない省略語などの1または2文字の長さしかないエンティティ、家族もしくは既往歴を参照する中で言及されたエンティティ、または例えばエンティティの前に「ない(no)」もしくは「否定する(denies)」があるものを削除するなど否定されたエンティティを削除してもよい。
システムは、各文書内で、抽出された根拠事実エンティティの1つ以上を、個々の抽出された医学的状態エンティティに、医療オントロジーおよび/または医療ナレッジベースを使用してリンキングする(ステップ308)。例えばシステムは、例えば疾患などの特定された医学的状態エンティティを用いて、医療ナレッジベースまたは医療オントロジーに問い合わせを行ってもよい。応答としてナレッジベースは、例えば、疾患などの特定された医学的状態エンティティの処置に、或るセットの薬剤が典型的に使用されると示してもよい。次にシステムは、薬剤のセットの中のいずれかの薬剤が文書中の根拠事実エンティティとして特定されたかどうかを判断してもよい。薬剤のセットの中の1つ以上の薬剤が文書内の根拠事実エンティティとして特定された場合、システムは、医学的状態エンティティを根拠事実エンティティにリンキングしてもよい。抽出された医学的状態エンティティを根拠事実エンティティにリンキングする例示のプロセスが、図5を参照してさらに詳しく後述される。
システムは、各文書に関して、リンキングされた根拠事実エンティティおよび医学的状態エンティティを表現する出力データを提供する(ステップ310)。図6を参照して後述されるとおり、一部の実装において、システムは、リンキングされた医学的状態エンティティと根拠事実エンティティとをスコア付けして、スコアが最も高いリンキングされた医学的状態および根拠事実エンティティを所定数表現する出力データを提供してもよく、またはスコアが所定の閾値を超えるリンキングされた医学的状態および根拠事実エンティティを表現する出力データを提供してもよい。
一部の実装において、提供された出力データは、リンキングされた根拠事実および医学的状態エンティティの可視化を表示する、インタラクティブなグラフィカルユーザインターフェース(GUI)を表現するデータを含んでもよい。GUIは、電子診療レコードから抽出され、複数の文書に分離された書式設定されたテキストを、リンキングされた根拠事実エンティティおよび医学的状態エンティティを示すアノテーションとともに表示してもよい。例えばGUIは、同じ文書内または複数の文書すべてに出現するリンキングされた医学的状態エンティティおよび根拠事実エンティティを表現するテキストを、同じ色で強調してもよく、またはリンキングされた医学的状態エンティティおよび根拠事実エンティティを表現するテキストに下線を引いてもよい。一部の事例、例えば、システムが特定された根拠事実エンティティをステップ306または308の間にセマンティックエンティティタイプにより分類する事例などにおいて、アノテーションは、リンキングされた医学的状態エンティティおよび根拠事実エンティティが属する分類を、例えばコメントまたは追加のマークアップされたテキストにより示してもよい。例示のGUIが、図7を参照して下記に示される。
そのようなGUIを生成するために、システムは、ステップ302において取得された電子診療レコードを表現するデータをハイパーテキストマークアップ言語形式に変換し、変換されたデータをパースして、電子診療レコードのスタイル情報を抽出してもよい。スタイル情報の例には、テキストの見出し、テキストの活字書体、テキストの色、またはテキストの構造が含まれる。システムは、例えば電子診療レコードから抽出された書式設定されたテキストの表示を生成するために、抽出されたスタイル情報を使用してインタラクティブなグラフィカルユーザインターフェースを生成してもよい。抽出されたスタイル情報をGUIに組み入れることにより、ユーザによってGUIがより容易にナビゲートされてもよい。
一部の実装において、システムは、継続的な学習ループを適用して、提供される出力データの精度を改善してもよい。例えばシステムは、インタラクティブGUIを介してユーザ入力をさらに受信してもよい。ユーザは、GUIを介してユーザ入力を提供し、例えば、可視化された文書境界(複数の文書を分離する)に対する編集またはリンキングされた根拠事実および医学的状態エンティティに対する編集など、GUIに加えられるべき編集を示してもよい。可視化された文書境界に対する例示の編集は、例えばステップ304を参照して上述したように、システムがテキストを間違って複数の文書に分離した事例などにおいて文書境界を移動することを含んでもよい。リンキングされた根拠事実および医学的状態エンティティに対する編集の例には、例えば、システムが医学的状態を根拠事実エンティティに、またはその逆に、間違ってリンキングしたと特定するのに応答して、アノテーションを付された医学的状態エンティティまたは根拠事実エンティティを追加または削除することが含まれる。
受信されたユーザ入力は、システムによって処理および使用されて、システムに含まれるモジュールまたはデータベースが更新されてもよい。例えば、受信されたユーザ入力は、ステップ308を参照して上述されたナレッジベースを更新するため、例えば特定の疾患の処置に典型的に使用される薬剤のセットから特定の薬剤を削除するために使用されてもよい。こうすることで、ナレッジベースに対する将来の問い合わせは、ユーザのフィードバックを反映する。
図4は、電子診療レコードから抽出された書式設定されたテキストを複数の部分のテキストに分割する例示のプロセス400のフローチャートである。便宜のために、プロセス400は、1つ以上の場所に位置する1つ以上のコンピュータのシステムにより実行されるものとして記載される。例えば、適切にプログラムされた図2のシステム200がプロセスを実行することができる。フローチャートは、特定の順序で発生するプロセス400の様々な段階を示すが、一部の段階は、一部の実装において、並行してまたは図4の例示のプロセス400に示されているのと異なる順序で実行されてもよい。
システムは、図3のステップ302において取得された書式設定されたテキストを分析して、書式設定されたテキストの個々の部分を特徴付ける数的特徴の複数の特徴ベクトルを計算する(ステップ402)。例えばシステムは、書式設定されたテキストをページ毎に分析して、書式設定されたテキストの個々のページを特徴付ける数的特徴の複数の特徴ベクトルを判断してもよい。システムにより計算された数的特徴は、柔軟であってもよく、領域固有とすることができる。一般に、数的特徴は、字句特徴、言語特徴、またはエンティティ特徴のうちの1つ以上を含んでもよい。例示の字句特徴は、書式設定されたテキストの或る部分にあるいくつかの行、語、名詞、または動詞を含む。例示の言語特徴は、英語などの領域言語における語の割合、またはテキストの或る部分において検出されたいくつかの異なる言語を含む。例示のエンティティ特徴は、テキストの或る部分にある疾患、薬剤、症状、試験、名前または日付などのいくつかの臨床的用語を含む。
システムは、計算された特徴ベクトルを第1の分類器に入力として提供する(ステップ404)。第1の分類器は、テキストの或る部分が文書境界を表現するか否かを予測するよう構成される。例えば、一部の実装において、第1の分類器は、受信された特徴ベクトルにルールを適用して、受信された特徴ベクトルを得られたテキストの部分が文書境界を含むか否かを判断する、ルールベースシステムを含んでもよい。あるいは、またはさらに、第1の分類器は、テキストの或る部分が文書境界を表現するか否かを予測するように訓練を介して構成された機械学習モデルを含んでもよい。例えば、第1の分類器は、受信された特徴ベクトルを処理して、受信された特徴ベクトルを得られたテキストの部分が文書境界を含むか否かの見込みを示すスコアを出力として提供するように、文書境界を含むまたは含まないものとしてラベル付けされた複数の電子診療レコードの複数ページから抽出された訓練用特徴ベクトルを使用して訓練されていてもよい。
例として、第1の分類器は、テキストの或る部分が語「投薬量」、「錠剤」、「mg」、または「ml」を含むと示す特徴ベクトル、テキストのその部分が項目のリストを含むと示す特徴ベクトル、およびテキストのその部分が手書きの署名を含むと示す特徴ベクトルを受信してもよい。第1の分類器は、前記特徴ベクトルを、訓練された機械学習モデルを使用して処理し、テキストのその部分を処方箋文書として分類してもよい。次に第1の分類器は、1つ以上の静的ルールを使用して、文書境界が手書きの署名の直後に発生する可能性が高いと判断してもよい。
システムは、計算された特徴ベクトルを第2の分類器に入力として提供するが、第2の分類器は、テキストの或る部分が関連性ありか否かを予測するように訓練を介して構成されている(ステップ406)。例えば第2の分類器は、受信した特徴ベクトルを処理し、受信した特徴ベクトルを得られたテキストの部分が関連性ありまたはなしである見込みを示すスコアを出力として提供するように、複数の電子診療レコードの各ページから抽出された特徴ベクトルを使用して訓練されていてもよい。テキストの或る部分は、医学的状態エンティティまたは根拠事実エンティティに関連性のある情報を含まなければ、関連性なしとみなされてもよい。例えば、患者の連絡先情報を表現するテキストは、関連性なしとみなされてもよく、その一方で、医者の連絡先情報を表現するテキストは、医者の住所は、例えば「整形外科医長スミス先生」など、医者が働く分野または部門の参照を含むと思われるので、関連性ありとみなされてもよい。
例えば、上記の例の続きで、第2の分類器は、テキストの或る部分が手書きの署名を含むことを示す特徴ベクトルを受信してもよい。第2の分類器は、特徴ベクトルを処理して、手書きの署名に対応するテキストの部分が関連性のあるものではないと判断してもよい。
テキストの各部分について、システムは、第1の分類器の出力に基づき、テキストのその部分が境界ページであるか否かを判断する(ステップ408)。テキストの或る部分が境界ページではないと判断するのに応答して、システムは、テキストのその部分が関連性ありか否かを第2の分類器からの出力に基づき判断する(ステップ410a)。テキストのその部分が関連性ありではないと判断するのに応答して、システムは、電子診療レコードの書式設定されたテキスト表現からテキストのその部分を削除する(ステップ412)。テキストのその部分を関連性ありと判断するのに応答して、システムは、テキストのその部分を出力として提供する(ステップ416)。
テキストの或る部分が境界ページであると判断するのに応答して、システムは、第2の分類器の出力に基づき、テキストのその部分が関連性ありか否かを判断する(ステップ410b)。テキストのその部分を関連性ありではないと判断するのに応答して、システムは、テキストの前の部分の後に境界を挿入する(ステップ414a)。テキストのその部分を関連性ありと判断するのに応答して、システムは、テキストのその部分の前に境界を挿入する(ステップ414b)。
システムは書式設定されたテキストの関連性がある部分を複数の文書の形式で出力し、各文書は個々の文書境界によって他の文書から分離されている(ステップ416)。
図5は、抽出された医学的状態エンティティを根拠事実エンティティにリンキングする例示のプロセス500のフローチャートである。便宜のために、プロセス500は、1つ以上の場所に位置する1つ以上のコンピュータのシステムにより実行されるものとして記載される。例えば、適切にプログラムされた図2のシステム200がプロセスを実行することができる。フローチャートは、特定の順序で発生するプロセス500の様々な段階を示すが、一部の段階は、一部の実装において、並行してまたは図5の例示のプロセス500に示されているのと異なる順序で実行されてもよい。
システムは、医療オントロジーにアクセスし、同じ文書内で発生する抽出された医学的状態エンティティと任意の事実エンティティとの関係の候補のセットを特定する(ステップ502)。例えばシステムは、生物医学的概念の包括的なシソーラスおよびオントロジーを提供する統一化医療言語体系(UMLS)にアクセスし、抽出された医学的状態エンティティおよび根拠事実エンティティと、UMLSのコンテンツとを比較して、抽出された医学的状態エンティティと根拠事実エンティティとの間にリンクが存在するかどうかを判断してもよい。例えばUMLSは、複数の文書のうちの1つから抽出される特定の疾患が、特定のセットの治療および薬剤により処置されてもよいと示してもよい。システムは、治療および薬剤のセットの中のいずれかが抽出された根拠事実に合致するかどうかを判断し、合致すれば、合致する根拠事実エンティティを医学的状態エンティティにリンキングしてもよい。
システムは、ナレッジベースに問い合わせを行い、特定された関係のセットの中のいずれかの関係が無効であるかどうかを判断する(ステップ504)。例えば、図3のステップ310を参照して上述したとおり、一部の実装においてシステムは、継続的な学習ループを適用してもよく、それによりユーザは、電子医療レコードの表現に対するアノテーションとしてリンキングされた医学的状態エンティティおよび根拠事実エンティティを表示するインタラクティブGUIを介して、入力を提供する。これらの実装において、ユーザは、リンキングされた医学的状態エンティティおよび根拠事実エンティティが無効であること、すなわち医学的状態エンティティが根拠事実エンティティにリンキングされてはならないことを示すフィードバックを提供してもよい。例えば、一部の実装において、医学的状態エンティティが根拠事実エンティティに誤ってリンキングされているかもしれない。それに応答して、ナレッジベースが、リンキングされた医学的状態エンティティおよび根拠事実エンティティが無効であると示すように更新されてもよい。別の例として、一部の実装において、根拠事実エンティティは、例えば別の綴りでなど、医療オントロジーに対して異なる形で電子ヘルスケアレコードにおいて言及されることもある。本例では、ユーザは、根拠事実エンティティが個々の医学的状態エンティティにリンキングされるべきであると示すフィードバックを提供してもよい。別の例として、一部の実装において、リンクが過度に広範で疾患のすべての形態を対象とするのに対して、患者の電子ヘルスケアレコードは患者の症状が一般的ではない当該疾患の或る特定の変種を指す場合、ユーザは、医療オントロジーにおける医学的状態エンティティにリンキングされた根拠事実エンティティを無効にしてもよい。
関係のうちの1つ以上を無効と判断するのに応答して、システムは、特定された関係のセットから無効な関係を削除する(ステップ506)。
システムは、ナレッジベースに問い合わせを行い、同じ文書内で発生する抽出された医学的状態エンティティと任意の事実エンティティとの新たな関係を特定する(ステップ508)。図2および3を参照して上述したとおり、ナレッジグラフが、領域知識、およびシステムとのユーザインタラクションをモデル化する。その結果、ナレッジグラフは、医学的状態エンティティと根拠事実エンティティとの有効な関係またはリンクを含む。システムは、ナレッジグラフに対して論証または推論手法を適用して、抽出された医学的状態エンティティと根拠事実エンティティとの追加の関係を抽出し、またはそれらの関係を一般化してもよい。例えば、一部の事例において、医療オントロジーは完全ではなく、例えばエッジケースを含むなどするかもしれないが、ナレッジグラフは、システム出力を確認、検証および補足するユーザからまたはそのユーザを介して他の情報源から領域知識を収集するので、より新しいことも、または抽出された医学的状態エンティティと根拠事実エンティティとの追加の関係を含むこともある。
図6は、リンキングされた医学的状態エンティティおよび根拠事実エンティティをスコア付けする例示のプロセスのフローチャートである。便宜のために、プロセス600は、1つ以上の場所に位置する1つ以上のコンピュータのシステムにより実行されるものとして記載される。例えば、適切にプログラムされた図2のシステム200がプロセスを実行することができる。フローチャートは、特定の順序で発生するプロセス600の様々な段階を示すが、一部の段階は、一部の実装において、並行してまたは図6の例示のプロセス600に示されているのと異なる順序で実行されてもよい。
システムは、特定された医学的状態エンティティに、医学的状態エンティティの特徴に基づいて関連性スコアを付与する(ステップ602)。医学的状態エンティティの例示の特徴は、医学的状態エンティティが文書内で出現する文脈に関係する特徴を含む。例えば、医師の記録の中で、「診断」または「処置計画」と題されたセクションに出現する医学的状態エンティティには、医師の記録の中で「家族の医療履歴」と題されたセクションに出現する医学的状態エンティティよりも高い関連性スコアが付与されてもよい。別の例として、文書中、臨床コードと一緒にまたはその付近で発生する医学的状態エンティティには、文書中、臨床コードとともにまたはその付近で発生しない医学的状態エンティティよりも高い関連性スコアが付与されてもよい。別の例として、他の医学的状態エンティティの付近で、例えば医学的状態エンティティのリストの一部として発生する医学的状態エンティティは、他の医学的状態エンティティの付近で発生しない医学的状態エンティティよりも低い関連性スコアを付与されてもよい。
医学的エンティティの他の例示の特徴は、医学的状態エンティティにリンキングされた根拠事実エンティティの品質に関係する特徴を含む。例えば、いくつかの根拠事実エンティティにリンキングされた医学的状態エンティティには、いずれの根拠事実エンティティにもリンキングされていない、または1つもしくは少数のみの根拠事実エンティティにリンキングされている医学的状態エンティティよりも高い関連性スコアが付与されてもよい。別の例として、医学的状態エンティティにごく接近して発生する根拠事実エンティティにリンキングされた医学的状態エンティティには、医学的状態エンティティにごく接近して発生しない根拠事実エンティティにリンキングされた医学的状態エンティティよりも高い関連性スコアが割り当てられてもよい。
システムは、スコア付けされた医学的状態エンティティをランク付けして、所定のサイズの代表的な状態エンティティのサブセットを判断する(ステップ604)。例えばシステムは、代表的なスコア上位5位の医学的状態エンティティのサブセットを決定してもよい。あるいは、システムは、医学的状態エンティティをランク付けおよびスコア付けして、関連性スコアが所定の関連性スコア閾値を超える代表的な状態エンティティのサブセット、例えば関連性スコアが80%を超える状態エンティティのサブセットなどを決定してもよい。
システムは、特定された根拠事実エンティティに個々の関連性スコアを、事実エンティティの特徴に基づき付与する(ステップ606)。関連性スコアは、根拠事実エンティティと医学的状態エンティティとの関係に関連してもよい。例えば、ユーザは、GUIを介してシステムにより出力される確認ツールを使用して、医学的状態−根拠事実関係にスコアを付与してもよい。別の例として、医療オントロジーは、異なるテキストにおけるエンティティおよび疾患の単語埋め込み類似度などの関係スコアを含んでもよい。別の例として、関連性スコアは、テキスト中の根拠事実エンティティの一意性/頻度、またはテキスト中の医学的状態エンティティの発生からのその近接性などの文書の特性に基づき計算されてもよい。
システムは、関連性スコアが所定の閾値を超える、リンキングされた根拠事実エンティティおよび医学的状態エンティティを表現するデータを出力として提供する(ステップ608)。例えば、システムは、特定されたリンキングされた医学的状態エンティティおよび根拠事実エンティティを、関連性スコアを使用してフィルタリングしてもよい。一部の実装において、根拠事実エンティティ関連性スコアの1つが所定の閾値を超えれば、システムは、医学的状態エンティティにリンキングされた根拠事実エンティティを表現するデータを提供してもよい。例えば医学的状態エンティティに所定の関連性閾値を超える関連性スコアが付与されれば、システムは、医学的状態エンティティと、医学的状態エンティティがリンキングされた任意の根拠事実エンティティを出力してもよい。一部の実装において、医学的状態エンティティおよび根拠事実エンティティの総計した関連性スコアが所定の閾値を超えれば、システムは、医学的状態エンティティにリンキングされた根拠事実エンティティを表現するデータを提供してもよい。他の実装では、システムは、リンキングされた医学的状態エンティティおよび根拠状態エンティティをランク付けして、いくつかの最高スコアの、リンキングされた医学的状態エンティティおよび根拠状態エンティティ、例えば上位10個のリンキングされた医学的状態エンティティおよび根拠状態エンティティなどを表現するデータを出力してもよい。
図7は、図3のステップ310を参照して上述した、例示のグラフィカルユーザインターフェース(GUI)の図700である。左パネル802は、電子診療レコードから抽出された、書式設定されたテキストを含む。例えば、左パネル802は、第1のエンカウンター(上述した文書分割プロセスの出力)に対応するタブ804を含む。左パネル802はさらに、抽出された疾患エンティティを表示する診断タブ806を含む。左パネル802はさらに、診断タブ806に関連する抽出された薬剤エンティティを表示する薬剤タブ808を含む。
右パネル810は、抽出された医学的状態エンティティおよび根拠事実が検証可能な、文書のスタイル表現を備えた平文を示す。抽出された医学的状態エンティティが、文書中のテキストと並ぶ。
図8は、例示的な汎用コンピュータシステム800の概略図を示す。システム800は、一部の実装に従って上述したプロセス300〜600に関連して記載された動作のために使用できる。システム800は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、モバイルデバイス、およびその他適切なコンピュータなどの様々な形態のデジタルコンピュータを表現することが意図される。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示でしかなく、本文書で記載および/または請求された本発明の実装を限定するものではない。
システム800は、プロセッサ810、メモリ820、ストレージデバイス830、および入出力デバイス840を含む。コンポーネント810、820、830、および820はそれぞれ、システムバス850を使用して相互接続されている。プロセッサ810は、システム800内で実行される命令を処理できてもよい。一実装では、プロセッサ810は、シングルスレッドプロセッサである。別の実装では、プロセッサ810は、マルチスレッドプロセッサである。プロセッサ810は、メモリ820内またはストレージデバイス830上に記憶された命令を処理して、入出力デバイス840上でユーザインターフェースのグラフィック情報を表示できてもよい。
メモリ820は、情報をシステム800内で記憶する。一実装では、メモリ820は、コンピュータ可読媒体である。一実装では、メモリ820は、揮発性メモリユニットである。別の実装では、メモリ820は、不揮発性メモリユニットである。
ストレージデバイス830は、システム800の大容量ストレージを提供できてもよい。一実装では、ストレージデバイス830は、コンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス830は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスとしてもよい。
入出力デバイス840は、システム800に入出力動作を提供する。一実装では、入出力デバイス840は、キーボードおよび/またはポインティングデバイスを含む。別の実装では、入出力デバイス840は、グラフィカルユーザインターフェースを表示するディスプレイユニットを含む。
本明細書に記載される各実施形態および機能動作のすべては、デジタル電子回路において、またはこの明細書で開示された構造およびその構造上の等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそのうちの1つ以上の組み合わせにおいて実装されてもよい。各実施形態は、1つ以上のコンピュータプログラム製品として、すなわちデータ処理装置により実行されるよう、またはデータ処理装置の動作を制御するよう、コンピュータ可読媒体上にコード化されたコンピュータプログラム命令の1つ以上のモジュールとして実装されてもよい。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号をもたらす物質の構成、またはその1つ以上の組み合わせとされてもよい。「データ処理装置」という用語は、データを処理するすべての装置、デバイスおよび機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。この装置は、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはその1つ以上の組み合わせなどを構成するコードを含んでもよい。伝播信号とは、人工的に生成された信号、例えば適切な受信機装置に伝送される情報をコード化するために生成される機械生成された電気信号、光信号、または電磁信号である。
コンピュータプログラム(別称プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコード)は、コンパイル型またはインタープリタ型言語を含む任意の種類のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、あるいはコンピューティング環境用に適した他の単位としてなど、任意の形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えばマークアップ言語文書に格納される1つ以上のスクリプト)、対象のプログラム専用の単一ファイル、または複数の連携ファイル(例えば1つ以上のモジュール、サブプログラム、またはコードの一部を格納する複数ファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上または1つの場所に位置するかもしくは複数の場所に分散し通信ネットワークにより相互接続された複数のコンピュータ上で実行されるよう展開されてもよい。
本明細書に記載されたプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実行する1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサにより実行されてもよい。プロセスおよび論理フローはさらに、例えばFPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(application specific integrated circuit:特定用途向け集積回路)などの専用論理回路により実行されてもよく、装置はさらに、専用論理回路として実装されてもよい。
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。
コンピュータの必須要素は、命令を実行するプロセッサ、ならびに命令およびデータを記憶する1つ以上のメモリデバイスである。一般に、コンピュータはさらに、例えば磁気、光磁気ディスク、もしくは光ディスクなど、データを記憶する1つ以上の大容量ストレージデバイスを含むか、またはそれからデータを受信するよう、もしくはそれにデータを転送するよう動作可能に結合されるか、またはその両方である。なお、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ごく数例を挙げると、例えばタブレットコンピュータ、モバイル電話、携帯情報端末(PDA:personal digital assistant)、モバイルオーディオプレーヤ、衛星航法システム(GPS:Global Positioning System)受信機など、別のデバイスに組み込まれてもよい。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体およびメモリデバイスを含み、例として、例えばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD−ROMディスクなどが含まれる。プロセッサおよびメモリは、専用論理回路により補完されてもよく、またはそれに組み込まれてもよい。
ユーザとの相互作用を提供するために、情報をユーザに表示する、例えばCRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を提供できる例えばマウスまたはトラックボールなどのキーボードおよびポインティングデバイスを有するコンピュータ上で、各実施形態が実装されてもよい。他の種類のデバイスが、同じくユーザとの対話を提供するために使用されてもよい。例えば、ユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックであってもよく、ユーザからの入力は、音響、スピーチ、または触覚入力を含め、任意の形式で受信されてもよい。
各実施形態は、例えばデータサーバとしてなど、バックエンドコンポーネントを含むコンピューティングシステム、または、例えばアプリケーションサーバなど、ミドルウェアコンポーネントを含むコンピューティングシステム、または、例えばユーザが各実装と相互作用できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータなど、フロントエンドコンポーネントを含むコンピューティングシステム、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの1つ以上の任意の組み合わせにおいて実装されてもよい。システムのコンポーネントは、例えば通信ネットワークなど、任意の形態または媒体のデジタルデータ通信により相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、および例えばインターネットなどのワイドエリアネットワーク(「WAN」)を含む。
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般に、互いに遠隔にあり、典型的には通信ネットワークを介して対話する。クライアントおよびサーバの関係は、各コンピュータ上で実行され互いにクライアント−サーバ関係を有するコンピュータプログラムにより生じる。
本明細書は多数の詳細を含むが、これらは、本開示の範囲または特許請求の範囲に対する制限として解釈されるべきではなく、むしろ特定の実施形態に特有の特徴の記載として解釈されるべきである。別々の実施形態との関連でこの明細書に記載されている特定の特徴は、単一の実施形態において組み合わせても実装されてもよい。逆に、単一の実施形態との関連で記載されている様々な特徴が、複数の実施形態で別々に、または任意の適切な一部組み合わせにおいても実装されてもよい。さらに、各特徴は、特定の組み合わせで動作するよう上記に記載されていることもあり、最初にそのように請求されていることもあるが、場合によっては、請求されている組み合わせの1つ以上の特徴が、その組み合わせから削除されることが可能であり、請求されている組み合わせは、一部組み合わせまたは一部組み合わせの変形物を対象としてもよい。
同じく、各動作は、図面内に特定の順序で示されているが、これは、望ましい結果を達成するために、当該の動作が、示されている特定の順序もしくは順次的な順序で実行されること、または示されているすべての動作が実行されることを要求するものと理解されてはならない。特定の状況では、マルチタスクおよび並列処理が有利なこともある。さらに、上述の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を要求するものと理解されてはならず、当然のことながら、記載されているプログラムコンポーネントおよびシステムは、一般に、単一ソフトウェア製品に統合されても、または複数のソフトウェア製品にパッケージ化されてもよい。
HTMLファイルに言及される各例において、他のファイルタイプまたは形式に置換されてよい。例えば、HTMLファイルは、XML、JSON、平文、またはその他のタイプのファイルにより置き換えられてもよい。さらに、テーブルまたはハッシュテーブルに言及される場合、他のデータ構造(スプレッドシート、リレーショナルデータベース、または構造化ファイルなど)が使用されてもよい。
このように、特定の実施形態が記載された。他の実施形態は、以下の特許請求の範囲に記載の範囲内にある。例えば、特許請求の範囲に記載されたアクションは、別の順序で実行されてもよく、依然として所望の結果を達成することができる。