(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】問診支援プログラム、問診支援装置および問診支援方法
(51)【国際特許分類】
G16H 50/00 20180101AFI20240911BHJP
【FI】
G16H50/00
(21)【出願番号】P 2020048215
(22)【出願日】2020-03-18
【審査請求日】2022-12-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】岡嶋 成司
【審査官】鹿谷 真紀
(56)【参考文献】
【文献】特開2004-126981(JP,A)
【文献】特開2018-120430(JP,A)
【文献】中国特許出願公開第111599478(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G16H 10/00-80/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成し、
前記木構造情報に基づいて前記疾患の中から被疑疾患を特定する、
処理を実行させる問診支援プログラム。
【請求項2】
前記被疑疾患の特定では、
前記木構造情報における上位ノード側から下位ノード側に対してノードを選択していきながら、前記症状のうち選択したノードに割り当てられた症状の有無についての問診項目を出力し、前記問診項目に対する回答に基づいて前記疾患の中から前記被疑疾患を特定する、
請求項
1記載の問診支援プログラム。
【請求項3】
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成し、
前記木構造情報に基づいて前記疾患の中から被疑疾患を特定する、処理部、
を有する問診支援装置。
【請求項4】
コンピュータが、
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成し、
前記木構造情報に基づいて前記疾患の中から被疑疾患を特定する、
問診支援方法。
【請求項5】
コンピュータに、
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成する、
処理を実行させる問診支援プログラム。
【請求項6】
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成する、処理部、
を有する問診支援装置。
【請求項7】
コンピュータが、
複数の疾患と、前記複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、前記複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、前記第2の情報における第1のノードの疾患に対応する症状と、
前記第2の情報において前記第1のノードの下位に位置する第2のノードの疾患に対応する症状と
の差分を抽出し、前記症状に関する木構造情報における一のノードに、前記第1のノードの疾患に対応する症状のうち前記差分の症状を除く症状を割り当て、前記木構造情報において前記一のノードの下位に位置する他のノードに、前記差分の症状を割り当てることにより、前記木構造情報を生成する、
問診支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、問診支援プログラム、問診支援装置および問診支援方法に関する。
【背景技術】
【0002】
症状の有無を問診しながら症状を引き起こす疾患を絞り込む「鑑別診断」を、コンピュータによって支援することが考えられている。例えば、診断の知識ベースを自動的に階層化し、上位階層から階層ごとに知識ベースを呼び出し、呼び出した知識ベースを用いてその階層において推察される原因を判定する診断エキスパートシステムが提案されている。
【0003】
また、携帯電話などの通信端末から一般のユーザが利用可能な自動問診システムも提案されている。例えば、通信端末からの問診要求に応じて通信端末に問診票が表示され、問診票に対する入力データに基づいて問診結果データが生成されて通信端末に表示される問診システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平3-158145号公報
【文献】国際公開第2011/016447号
【発明の概要】
【発明が解決しようとする課題】
【0005】
鑑別診断においては、疾患と症状との対応関係に基づいて、問診の回数ができるだけ少なくなるように症状を効率的に選択していこうとすると、疾患の見逃しが発生し、診断の精度が低下する場合がある。例えば、ある疾患を罹患した患者に複数の症状が発生し得る場合、本来はこれらの症状のすべてが発生していないことを確認しないと、この疾患でないことを確定できない。しかし、効率化のためにこれらの症状の一部のみを選択して、選択した各症状が発生していないことを確認した場合、この疾患が見逃されてしまう可能性がある。
【0006】
1つの側面では、本発明は、疾患の絞り込みを適正化することが可能な問診支援プログラム、問診支援装置および問診支援方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、コンピュータに次のような疾患特定処理を実行させる問診支援プログラムが提供される。この疾患特定処理では、複数の症状を、複数の症状のそれぞれに対応する疾患の間の関係性に基づいて階層化した木構造情報に基づいて、木構造情報における上位ノード側から下位ノード側に対してノードを選択していきながら、複数の症状のうち選択したノードに割り当てられた症状の有無についての問診項目を出力し、問診項目に対する回答に基づいて疾患の中から被疑疾患を特定する。
【0008】
また、1つの案では、上記の問診支援プログラムにしたがって実行される処理と同様の処理を実行する問診支援装置が提供される。
さらに、1つの案では、上記の問診支援プログラムにしたがって実行される処理と同様の処理をコンピュータが実行する問診支援方法が提供される。
【0009】
また、1つの案では、コンピュータに次のような処理を実行させる問診支援プログラムが提供される。この処理では、複数の疾患と、複数の症状のうち複数の疾患のそれぞれに対応する1以上の症状との対応関係を示す第1の情報と、複数の疾患の間の関係性を木構造によって示す第2の情報とに基づいて、第2の情報における第1のノードの疾患に対応する症状と、第2の情報において第1のノードの下位に位置する第2のノードの疾患に対応する症状との差分を抽出し、第1のノードの疾患に対応する症状のうち差分の症状を除く症状を一のノードに割り当て、一のノードの下位に位置する他のノードに差分の症状を割り当てることで、複数の症状を階層化した木構造情報を生成する。
【0010】
また、1つの案では、上記の問診支援プログラムにしたがって実行される処理と同様の処理を実行する問診支援装置が提供される。
また、1つの案では、上記の問診支援プログラムにしたがって実行される処理と同様の処理をコンピュータが実行する問診支援方法が提供される。
【発明の効果】
【0011】
1つの側面では、疾患の絞り込みを適正化できる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態に係る問診支援装置の構成例および処理例を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの構成例を示す図である。
【
図3】サーバ装置のハードウェア構成例を示す図である。
【
図4】サーバ装置の処理機能の構成例を示すブロック図である。
【
図8】疾患の階層関係を示す木構造の一例を示す図である。
【
図9】症状の因果連鎖の推定処理例を示す図である。
【
図14】前処理フェーズにおけるサーバ装置の処理例を示すフローチャートである。
【
図15】診断フェーズにおけるサーバ装置の処理例を示すフローチャート(その1)である。
【
図16】診断フェーズにおけるサーバ装置の処理例を示すフローチャート(その2)である。
【
図17】診断フェーズにおけるサーバ装置の処理例を示すフローチャート(その3)である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る問診支援装置の構成例および処理例を示す図である。
図1に示す問診支援装置1は、記憶部1aと処理部1bを有する。記憶部1aは、例えば、問診支援装置1が備える図示しない記憶装置として実現される。処理部1bは、例えば、問診支援装置1が備える図示しないプロセッサとして実現される。
【0014】
記憶部1aは、複数の症状についての木構造を示す木構造情報2を記憶する。この木構造情報2は、複数の症状を、各症状に対応する疾患の間の関係性(因果関係)に基づいて階層化することで生成される。
【0015】
図1では、疾患A1~A4の間の因果関係を示す因果関係情報3を例示している。因果関係情報3は、疾患A2は疾患A1の下位疾患であり、疾患A3,A4は疾患A2の下位疾患である、という因果関係を示している。また、疾患A1には、症状B1が対応付けられている。これは、疾患A1を罹患した患者には症状B1が発生し得ることを示す。疾患A2には症状B1,B2が対応付けられ、疾患A3には症状B1~B3が対応付けられ、疾患A4には症状B1,B2,B4が対応付けられている。
【0016】
図1に例示した木構造情報2は、因果関係情報3に基づいて症状B1~B4を階層化することで生成される。木構造情報2では、症状B1が割り当てられたノード2aの下位に、症状B2が割り当てられたノード2bが配置される。また、ノード2bの下位に、症状B3が割り当てられたノード2cと、症状B4が割り当てられたノード2dとが配置される。
【0017】
木構造情報2は、例えば、次のような手順で生成される。因果関係情報3から、親ノードと子ノードとの組が選択され、親ノードの疾患に対応する症状と、子ノードの疾患に対応する症状との差分が抽出される。これらの症状のうち、差分以外の症状が木構造情報2における1つのノードに割り当てられる。すでに同じ症状に割り当てられたノードがある場合、そのノードと統合される。また、差分の症状がそのノードの下位ノードに割り当てられる。
【0018】
このように、木構造情報2が示す木構造は、各ノードにユニークな症状が割り当てられた構造を有する。なお、疾患の因果関係によっては、1つのノードに複数の症状が割り当てられる場合もある。
【0019】
また、図示しないが、記憶部1aには、疾患A1~A4と症状B1~B4との対応関係(あるいは、疾患A1~A4と木構造情報2のノードとの対応関係)を示す情報が記憶されてもよい。
【0020】
処理部1bは、症状の有無を確認することで被疑疾患を特定する疾患特定処理を実行する。この疾患特定処理では、木構造情報2に基づいて次のような処理が行われる。処理部1bは、木構造情報2における上位ノード側から下位ノード側に対してノードを選択していきながら、症状B1~B4のうち選択したノードに割り当てられた症状の有無についての問診項目を出力する。処理部1bは、ノードを選択するたびに出力した問診項目に対して入力される回答に基づいて、疾患A1~A4の中から被疑疾患を特定する。
【0021】
なお、問診項目は、例えば、問診の対象とする症状を示す項目である。問診項目が出力されると、対応する症状の有無を示す回答が何らかの方法で入力される。例えば、問診項目に対応する症状の有無を問診するための問診情報が、疾患の特定を依頼するユーザが操作する端末装置に送信される。すると、ユーザは問診情報に基づいて症状の有無を示す回答を端末装置に対して入力し、入力された回答の情報が端末装置から問診支援装置1に送信される。
【0022】
ここで、木構造情報2は、あるノードに割り当てられた症状がないことがわかれば、その下位ノードに割り当てられた症状の有無に関係なく、下位ノードに割り当てられた症状に対応する疾患が被疑疾患でないことが確定する、という特徴を有する。このため、木構造情報2を用いることで、ある疾患に対応するすべての症状の有無を問診して、それらのすべての症状がないことを確認しなくても、その疾患がないことを確定できる場合が生じる。これは、場合によっては、問診対象として選択する症状の数を減らしても、疾患の見逃しが発生せず、疾患の特定精度を維持できることを示す。したがって、木構造情報2を用いた上記の疾患特定処理により、疾患の絞り込みを適正化できる。
【0023】
以下、疾患特定処理の一例を示す。ここでは最初に、木構造情報2のノード2aが選択されてノード2aに対応する症状B1の有無が問診され、症状B1があるという回答が得られたものとする。この場合、処理部1bは、ノード2aの下位のノード2bを選択し、ノード2bに対応する症状B2の有無を問診する問診情報を出力する(ステップS1)。
【0024】
ここで、症状B2があるという回答が入力されたとする(ステップS2:Yes)。この場合、処理部1bは、ノード2bの下位のノード2c,2dのいずれかを、所定の規則にしたがって選択する。ここでは例としてノード2dを選択したとすると、処理部1bは、ノード2dに割り当てられた症状B4の有無を問診する問診情報を出力する(ステップS3)。ここで、症状B4があるという回答が入力されたとする。この場合、ノード2dは末端のノードであることから、処理部1bは、症状B4に対応する疾患A4を被疑疾患として特定する(ステップS4)。
【0025】
一方、ステップS1の問診情報に対して、症状B2がないという回答が入力されたとする(ステップS2:No)。この場合、処理部1bは、現在のノード2bに割り当てられた症状B2には非対応であり、かつ、上位のノード2aに割り当てられた症状B1に対応する疾患A1を、被疑疾患として特定する(ステップS5)。
【0026】
木構造情報2では、ノード2bに割り当てられた症状がない場合、その下位のノード2c,2dに割り当てられた症状B3,B4の有無に関係なく、症状B2に対応する疾患A2でないだけでなく、症状B3,B4に対応する疾患A3,A4でないことが確定される。このため、症状B3,B4の有無を問診する問診情報を出力しなくても、疾患A3,A4でないことを正確に判定できる。
【0027】
このような問診支援装置1の処理により、疾患特定の精度を低下させることなく、症状の有無を問診する問診情報の出力回数が減少するように、疾患の絞り込みを適正化できる。
【0028】
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。
図2に示す情報処理システムは、サーバ装置100および端末装置200,200a,200b,・・・を含む。サーバ装置100と端末装置200,200a,200b,・・・とは、ネットワーク300を介して接続されている。ネットワーク300は、LAN(Local Area Network)でもよいし、WAN(Wide Area Network)やインターネットなどの広域ネットワークでもよい。なお、サーバ装置100は、
図1に示した問診支援装置1の一例である。
【0029】
サーバ装置100は、疾患や対応する症状を示すデータベースを備え、このデータベースを用いて鑑別診断処理を実行する。サーバ装置100は、症状を選択してその症状の有無を質問する質問情報を端末装置に送信する。サーバ装置100は、質問に対する回答情報を端末装置から受信し、受信した回答情報に応じて次の症状を選択し、その症状の有無を質問する質問情報を端末装置に送信する。サーバ装置100は、このような質問情報の送信と回答情報の受信とを繰り返すことで疾患の候補を絞り込んでいき、最終的に特定された疾患を示す情報を端末装置に送信する。
【0030】
端末装置200,200a,200b,・・・は、ユーザが使用するクライアントコンピュータである。端末装置200,200a,200b,・・・は、サーバ装置100から受信した質問情報に基づいて、質問の内容(選択された症状の有無を示す情報)を表示装置に表示させる。端末装置200,200a,200b,・・・は、ユーザによる質問に対する回答の入力を受け付け、回答の内容を示す回答情報をサーバ装置100に送信する。
【0031】
端末装置200,200a,200b,・・・を使用するユーザは、例えば医師である。この場合、例えば、医師による診断作業を支援するために、サーバ装置100による鑑別診断処理が利用される。また、端末装置200,200a,200b,・・・を使用するユーザは、一般の患者であってもよい。例えば、サーバ装置100による鑑別診断のWebサービスが一般の患者に提供されてもよい。
【0032】
図3は、サーバ装置のハードウェア構成例を示す図である。サーバ装置100は、例えば、
図3に示すようなコンピュータとして実現される。
サーバ装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。なお、プロセッサ101は、
図1に示した処理部1bの一例である。
【0033】
プロセッサ101には、バス108を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、サーバ装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0034】
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィックインタフェース(I/F)104、入力インタフェース(I/F)105、読み取り装置106および通信インタフェース(I/F)107がある。
【0035】
HDD103は、サーバ装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。なお、HDD103またはRAM102は、
図1に示した記憶部1aの一例である。
【0036】
グラフィックインタフェース104には、ディスプレイ104aが接続されている。グラフィックインタフェース104は、プロセッサ101からの命令にしたがって、画像をディスプレイ104aに表示させる。ディスプレイとしては、液晶ディスプレイや有機EL(Electroluminescence)などがある。
【0037】
入力インタフェース105には、入力デバイス105aが接続されている。入力インタフェース105は、入力デバイス105aから出力される信号をプロセッサ101に送信する。入力デバイス105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0038】
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、半導体メモリなどがある。
【0039】
通信インタフェース107は、ネットワーク300を介して端末装置200,200a,200b,・・・などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、サーバ装置100の処理機能を実現することができる。なお、端末装置200,200a,200b,・・・も
図3に示すようなコンピュータとして実現することができる。
【0040】
図4は、サーバ装置の処理機能の構成例を示すブロック図である。
図4に示すように、サーバ装置100は、記憶部110、因果連鎖計算部121、疾患特定処理部122、相互情報量計算部123および入出力処理部124を備える。記憶部110は、例えば、HDD103に確保された記憶領域として実装される。因果連鎖計算部121、疾患特定処理部122、相互情報量計算部123および入出力処理部124の処理は、例えば、プロセッサ101が所定のプログラムを実行することで実現される。
【0041】
記憶部110は、疾患症状対応情報111、疾患階層情報112および因果連鎖情報113を記憶する。サーバ装置100の処理フェーズは、鑑別診断を行う診断フェーズと、その前処理を実行する前処理フェーズとに分かれる。疾患症状対応情報111と疾患階層情報112は、前処理フェーズにおいて因果連鎖情報113を生成するために参照される情報である。因果連鎖情報113は、診断フェーズにおいて参照される情報である。
【0042】
疾患症状対応情報111は、診断結果となる複数の疾患と、各疾患を罹患した患者に現れ得る症状との対応関係を示す情報である。疾患階層情報112は、疾患の階層関係(親子関係)を示す情報である。因果連鎖情報113は、疾患の階層関係に基づいて症状を階層化した情報であり、後述するように、各ノードに1以上の症状が割り当てられた木構造を1組以上含む。
【0043】
因果連鎖計算部121は、前処理フェーズにおいて動作する。因果連鎖計算部121は、疾患症状対応情報111と疾患階層情報112とに基づいて因果連鎖情報113を生成し、記憶部110に格納する。
【0044】
一方、疾患特定処理部122、相互情報量計算部123および入出力処理部124は、診断フェーズにおいて動作する。疾患特定処理部122は、因果連鎖情報113に基づいて鑑別診断処理を実行する。相互情報量計算部123は、疾患特定処理部122における鑑別診断処理の過程において、ユーザに質問する症状を選択するために相互情報量を計算する。
【0045】
入出力処理部124は、端末装置200,200a,200b,・・・との間のインタフェース処理を実行する。入出力処理部124は、疾患特定処理部122によって質問事項として選択された症状の有無を質問するための質問情報を、ユーザの端末装置(端末装置200,200a,200b,・・・の1つ)に送信する。入出力処理部124は、送信した質問情報に対する回答情報をユーザの端末装置から受信し、疾患特定処理部122に通知する。入出力処理部124は、疾患特定処理部122による診断結果をユーザの端末装置に送信する。
【0046】
図5は、疾患症状対応情報の一例を示す図である。
図5に示すように、疾患症状対応情報111は、診断結果となる複数の疾患と、各疾患を罹患した患者に現れ得る症状との対応関係を示す情報を保持する。例えば
図5において、高尿酸血症を罹患した患者には、「尿酸値高」(尿酸値が高い)という症状が現れ得る。また、痛風を罹患した患者には、「尿酸値高」「関節炎症」「関節痛」という症状が現れ得る。
【0047】
ところで、サーバ装置100での鑑別診断処理は、
図5のような疾患と症状との対応関係に基づいて、疾患を特定するための症状を選択し、選択した症状の有無をユーザに質問するものである。この鑑別診断処理では、診断の正確性を高めるとともに、必要最小限の症状を効率的に選択することが望まれる。
【0048】
このような目的を達成するための方法の一例として、疾患と症状の相互情報量を用いて質問する症状を選択する次のような方法がある。この方法では、症状があるとわかった場合の疾患候補の数と、症状がないとわかった場合の疾患候補の数とが釣り合うような症状を選択し、その症状の有無を質問する。これは、症状の有無がわかったときに疾患の不確実性が最も減少するような質問を行うことに相当する。
【0049】
疾患XのエントロピーをH(X)とし、症状Yの有無がわかったときの疾患XのエントロピーをH(X|Y)とすると、疾患Xと症状Yの相互情報量I(X;Y)は、次の式(1)で表される。
I(X;Y)=H(X)-H(X|Y) ・・・(1)
疾患Xのエントロピーは、疾患Xの不確実度を示す。上記の「症状の有無がわかったときに疾患の不確実性が最も減少するような質問を行う」とは、症状Yがあるとわかったときと、ないとわかったときのそれぞれの相互情報量I(X;Y)の和が最小となるような症状を選択し、その症状の有無を質問することを示す。
【0050】
なお、エントロピーHは、次の式(2)を用いて計算される。式(2)において、pxは疾患Xの発生確率を示す。
【0051】
【0052】
このような方法によって質問する症状を順に選択し、選択した症状の有無を質問していくことで、疾患の候補数を効率的に減少させていくことができる。しかし、この方法では、疾患の見逃しが発生する可能性がある。
【0053】
例えば、
図5のような疾患と症状との関係から、上記方法により鑑別疾患を行うとする。このときに例えば、症状の中から最初に「発熱」が選択され、発熱の有無が質問されたとする。ここで、発熱があった場合、疾患の候補は、症状の中に「発熱」を含む疾患に絞り込まれる。一方、発熱がなかった場合には、症状の中に「発熱」を含む疾患は候補から外れてしまう。しかし、「発熱」を含む複数の症状が現れ得る疾患については、発熱がないからといってその疾患でないとは限らない。例えば
図5において、発熱がないからといって痛風性腎症でないとは限らない。
【0054】
あるいは、発熱がなかった場合に、「発熱」のみ除外した残りの症状の中から上記の方法で症状を選択していく方法も考えられる。しかし、この方法でも、選択の過程で痛風性腎症に対応付けられたすべての症状について、ないことが確認されるとは限らない。そのため、痛風性腎症が見逃される可能性が残る。
【0055】
そこで、次の
図6に示すように、疾患を症状の集合として取り扱うのではなく、症状の連鎖として取り扱うことを考える。
図6は、症状の連鎖の一例を示す図である。
図6では例として、痛風に対応する症状の因果関係の連鎖(因果連鎖)を示す。
図6の例では、血中の尿酸濃度が高いという症状があった場合、血中に尿酸結晶が生成され、それによって関節に結晶が蓄積されることから、関節の炎症や関節痛という症状が発生し得ることが示されている。
【0056】
このような場合、尿酸濃度が高いという症状は、関節の炎症や関節痛という症状の共通の祖先であることが示される。このような症状の因果関係に基づくと、共通の祖先となる症状を否定できれば、下位階層の症状の有無を確認しなくても、対応する疾患(ここでは痛風)を否定できる。したがって、このような症状の因果関係を考慮して問診対象の症状を選択することで、疾患の見逃しを防止しつつ、症状を効率的に選択できると考えられる。すなわち、下位階層の症状のみ否定されてもこの疾患であることを否定できないので、上位階層の症状を先に選択してその有無を確認することで、診断精度の向上と症状の選択効率化を両立できると考えられる。
【0057】
図7は、疾患の階層関係の一例を示す図である。
図7において、痛風に対応する症状としては、尿酸濃度が高い、関節の炎症、関節痛がある。また、痛風性腎症に対応する症状としては、これらの症状に加えてさらに発熱、腎機能の低下がある。このように、痛風性腎症に対応する症状の一部は痛風に対応する症状の一部として包含されるので、痛風と痛風性腎症との間には上位疾患と下位疾患という関係が成立している。これは、痛風の症状と痛風性腎症の症状が、尿酸濃度の上昇という共通の症状によって尿酸結晶が生成されることに起因している。
【0058】
この
図7の例のように、複数の疾患の間に階層関係がある場合には、各疾患に対応する症状について因果関係を推定できる。そこで、本実施の形態において、サーバ装置100の因果連鎖計算部121は、
図5に示したような疾患と症状との対応関係を示す疾患症状対応情報111と、疾患の階層関係(因果関係)を示す疾患階層情報112とに基づいて、症状の因果連鎖を推定する。なお、疾患階層情報112としては、医療系シソーラスなどの既存の公開情報を利用することができる。
【0059】
図8は、疾患の階層関係を示す木構造の一例を示す図である。
図8の上側には、疾患階層情報112によって示される疾患の木構造の一例を、疾患木構造112aとして示している。この疾患木構造112aでは、高尿酸血症の下位階層に痛風が配置され、痛風の下位階層に痛風性腎症と痛風結節とが配置されている。
【0060】
因果連鎖計算部121は、このような疾患木構造112aと、疾患症状対応情報111において疾患木構造112a内の各疾患に対応付けられた症状とに基づいて、疾患の因果連鎖情報を生成する。疾患木構造112aにおける上位疾患の症状と下位疾患の症状との間の差分の症状は、その他の症状との間で因果関係(階層関係)を有すると考えられる。これを利用して、因果連鎖計算部121は、疾患木構造112aにおける上位ノードから順に、隣接ノードの各疾患に対応する症状の差分を求めることで、症状の因果連鎖を推定していく。
【0061】
図9は、症状の因果連鎖の推定処理例を示す図である。この
図9を用いて、
図8の疾患木構造112aと疾患症状対応情報111とに基づく症状の因果連鎖の推定処理例を説明する。
【0062】
図9の例では、まず、最上位階層のノード112a1と、その下位階層のノード112a2とが比較される。具体的には、ノード112a1の疾患「高尿酸血症」に対応する症状と、ノード112a2の疾患「痛風」に対応する症状との差分が抽出される。この例では、痛風に対応する症状「関節炎症」、「関節痛」が差分として抽出される。この場合、症状「関節炎症」、「関節痛」は、残りの症状「尿酸値高」が割り当てられるノードの下位ノードに割り当てられる。
【0063】
次に、第2階層のノード112a2と、その下位階層の一方のノード112a3とが比較される。具体的には、ノード112a2の疾患「痛風」に対応する症状と、ノード112a3の疾患「痛風性腎症」に対応する症状との差分が抽出される。この例では、痛風性腎症に対応する症状「腎機能低下」、「発熱」が差分として抽出される。この場合、症状「腎機能低下」、「発熱」は、残りの症状「関節炎症」、「関節痛」が割り当てられるノードの下位ノードに割り当てられる。
【0064】
次に、第2階層のノード112a2と、その下位階層の他方のノード112a4とが比較される。具体的には、ノード112a2の疾患「痛風」に対応する症状と、ノード112a4の疾患「痛風結節」に対応する症状との差分が抽出される。この例では、痛風結節に対応する症状「尿酸沈着」が差分として抽出される。この場合、症状「尿酸沈着」は、残りの症状「関節炎症」、「関節痛」が割り当てられるノードの下位ノードに割り当てられる。
【0065】
このようにして、症状の因果連鎖を示す木構造131が推定される。木構造131においては、症状「尿酸値高」が割り当てられたノードの下位階層に、症状「関節炎症」、「関節痛」が割り当てられたノードが配置される。また、症状「関節炎症」、「関節痛」が割り当てられたノードの下位階層に、症状「腎機能低下」、「発熱」が割り当てられたノードと、症状「尿酸沈着」が割り当てられたノードとが配置される。なお、症状についての1つの木構造においては、同一の症状が複数ノードに割り当てられることはない。
【0066】
図10は、因果連鎖情報の構成例を示す図である。因果連鎖情報113は、例えば
図10に示すように、症状木構造情報114と疾患対応情報115を含む。
症状木構造情報114には、
図9に示したような手順で推定された、症状の因果連鎖を示す木構造(症状木構造)の情報が格納される。
図10の例では、3つの症状木構造114a~114cを示す情報が格納されている。
【0067】
症状木構造114aは
図9に示した木構造131と同一であり、第1階層のノードN1-1に症状「尿酸値高」が割り当てられ、第2階層のノードN2-1に症状「関節炎症」、「関節痛」が割り当てられている。第3階層には、症状「腎機能低下」、「発熱」が割り当てられたノードN3-1と、症状「尿酸沈着」が割り当てられたノードN3-2とが配置されている。
【0068】
症状木構造114bにおいては、第1階層のノードN1-2に症状「関節炎症」、「関節痛」、「発熱」、「関節変形」が割り当てられ、第2階層のノードN2-2に症状「咳」が割り当てられている。症状木構造114cにおいては、第1階層のノードN1-3に症状「母趾回旋」が割り当てられ、第2階層のノードN2-3に症状「関節痛」、「脱臼」が割り当てられている。
【0069】
疾患対応情報115は、症状木構造114a~114cの各ノードと疾患との対応関係を示す情報を保持する。このような疾患対応情報115により、症状木構造114a~114cの各ノードに割り当てられた症状と、疾患との対応関係が示される。
図10の例では、疾患「高尿酸血症」は症状木構造114aのノードN1-1に対応付けられ、疾患「痛風」は症状木構造114aのノードN1-1,N2-1に対応付けられている。また、疾患「痛風性腎症」は症状木構造114aのノードN1-1,N2-1,N3-1に対応付けられ、疾患「痛風結節」は症状木構造114aのノードN1-1,N2-1,N3-2に割り当てられている。
【0070】
また、図示しないが、疾患「リウマチ」は症状木構造114bのノードN1-2に割り当てられ、疾患「リウマチ性肺炎」は症状木構造114bのノードN1-2,N2-2に割り当てられている。さらに、疾患「開張足」は症状木構造114cのノードN1-3に割り当てられ、疾患「外反母趾」は症状木構造114cのノードN1-3,N2-3に割り当てられている。
【0071】
なお、疾患対応情報115では、疾患に対して、対応する症状が割り当てられているノードのうち症状木構造内の最下層ノードが保持されていてもよい。この場合、後述する鑑別診断処理においては、症状木構造114a~114cにおけるノードが選択されると、そのノードに対応する疾患が一意に決定される。
【0072】
次に、
図11~
図13を用いて、診断フェーズにおける鑑別診断処理の例を説明する。
図11は、鑑別診断処理の例を示す第1の図である。
図12は、鑑別診断処理の例を示す第2の図である。
図13は、鑑別診断処理の例を示す第3の図である。
【0073】
図11~13では、
図10に示した因果連鎖情報113に基づいて鑑別診断処理が実行されるものとする。また、
図11~
図13では、説明をわかりやすくするために、症状木構造情報114に含まれる症状木構造114a~114cを、ノードに対応付けられる疾患ごとに分解した状態で示す。
【0074】
まず、
図11に示すように、疾患特定処理部122は、症状の症状木構造114a~114cにおけるルート(第1階層)のノードN1-1,N1-2,N1-3に割り当てられた症状の中から、質問事項とする症状を選択する。このとき、疾患特定処理部122は、症状の有無がわかったときに疾患の不確実性が最も減少するような症状を、前述の式(1)、式(2)を用いた相互情報量計算部123による計算結果に基づいて選択する。
【0075】
ノードN1-1には疾患「高尿酸血症」、「痛風」、「痛風性腎症」、「痛風結節」が対応付けられており、ノードN1-2には疾患「リウマチ」、「リウマチ性肺炎」が対応付けられており、ノードN1-3には疾患「開張足」、「外反母趾」が対応付けられている。ここでは、これらの8つの疾患それぞれの発生確率は等しいと仮定する。すなわち、各疾患の発生確率はいずれも1/8とする。この場合、次の式(3)により各疾患のエントロピーH(X)が3.0と算出される。
【0076】
【0077】
また、ノードN1-1に割り当てられた症状「尿酸値高」の有無を質問した場合の相互情報量は、次のように算出される。もし症状「尿酸値高」がある場合、疾患は高尿酸血症、痛風、痛風性腎症、痛風結節の4つに絞り込まれるので、これらの各疾患の発生確率は1/4となる。一方、症状「尿酸値高」がない場合、疾患はリウマチ、リウマチ性肺炎、開張足、外反母趾の4つに絞り込まれるので、これらの各疾患の発生確率も1/4となる。
【0078】
したがって、症状「尿酸値高」がある場合の疾患「高尿酸血症」、「痛風」、「痛風性腎症」、「痛風結節」のいずれかと症状「尿酸値高」との相互情報量は、次の式(4-1)により1.0と算出される。また、症状「尿酸値高」がない場合の疾患「高尿酸血症」、「痛風」、「痛風性腎症」、「痛風結節」のいずれかと症状「尿酸値高」との相互情報量は、次の式(4-2)により1.0と算出される。
【0079】
【0080】
相互情報量計算部123は、ノードN1-1に割り当てられた症状「尿酸値高」の有無を質問した場合の相互情報量の和として、式(4-1)により算出された1.0と式(4-2)により算出された1.0とを合計した2.0を算出する。
【0081】
また、ノードN1-2に割り当てられた症状「関節炎症」、「関節痛」、「発熱」、「関節変形」のそれぞれの有無を質問した場合の相互情報量は、次のように算出される。もしこれらのいずれかの症状がある場合、疾患はリウマチ、リウマチ性肺炎の2つに絞り込まれるので、これらの各疾患の発生確率は1/2となる。一方、上記のいずれの症状もない場合、疾患は高尿酸血症、痛風、痛風性腎症、痛風結節、開張足、外反母趾の6つに絞り込まれるので、これらの各疾患の発生確率は1/6となる。
【0082】
したがって、症状「関節炎症」、「関節痛」、「発熱」、「関節変形」のいずれかがある場合の疾患「リウマチ」、「リウマチ性肺炎」のいずれかと、これらの各症状との相互情報量は、次の式(5-1)により2.0と算出される。また、症状「関節炎症」、「関節痛」、「発熱」、「関節変形」のいずれもない場合の疾患「リウマチ」、「リウマチ性肺炎」のいずれかと、これらの各症状との相互情報量は、次の式(5-2)により0.415・・・と算出される。
【0083】
【0084】
相互情報量計算部123は、ノードN1-2に割り当てられた症状「関節炎症」、「関節痛」、「発熱」、「関節変形」のそれぞれの有無を質問した場合の相互情報量の和として、式(5-1)により算出された2.0と式(5-2)により算出された0.415・・・とを合計した2.415・・・を算出する。
【0085】
また、ノードN1-3に割り当てられた症状「母趾回旋」の有無を質問した場合の相互情報量は、次のように算出される。もし症状「母趾回旋」がある場合、疾患は開張足、外反母趾の2つに絞り込まれるので、これらの各疾患の発生確率は1/2となる。一方、症状「母趾回旋」がない場合、疾患は高尿酸血症、痛風、痛風性腎症、痛風結節、リウマチ、リウマチ性肺炎の6つに絞り込まれるので、これらの各疾患の発生確率は1/6となる。
【0086】
したがって、症状「母趾回旋」がある場合の疾患「開張足」、「外反母趾」のいずれかと症状「母趾回旋」との相互情報量は、式(5-1)と同様の計算により2.0と算出される。また、症状「母趾回旋」がない場合の疾患「開張足」、「外反母趾」のいずれかと症状「母趾回旋」との相互情報量は、式(5-2)と同様の計算により0.415・・・と算出される。
【0087】
症状の有無がわかったときに疾患の不確実性が最も減少するような症状とは、疾患がある場合とない場合のそれぞれの相互情報量の和が最小となる症状である。したがって、疾患特定処理部122は、相互情報量の和が2.0と最小になった症状「尿酸値高」を選択し、症状「尿酸値高」の有無を質問する質問情報を入出力処理部124に送信させる。
【0088】
なお、相互情報量の和が最小の症状が複数存在した場合には、疾患特定処理部122は、それらの症状の中から所定の規則にしたがって(例えばランダムに)症状を選択する。
次に、
図12は、症状「尿酸値高」があると回答されたケースを示す。このケースでは、疾患特定処理部122は、症状木構造114aのノードN1-1の下位階層に存在するノードN2-1を処理対象とする。
【0089】
ノードN1-1の下位階層に1つのノードN2-1しか存在していないため、このノードN2-1に割り当てられた症状「関節炎症」、「関節痛」は同一の(または単一の)疾患に対応付けられている。この場合、症状「関節炎症」、「関節痛」のどれを選択しても各疾患の発生確率は同一なので、相互情報量の算出は不要である。疾患特定処理部122は、症状「関節炎症」、「関節痛」のいずれかを所定の規則にしたがって選択し、選択した症状の有無を質問する質問情報を入出力処理部124に送信させる。また、その症状がないと回答された場合、疾患特定処理部122は、ノードN2-1に対応付けられた他方の症状の有無を質問する質問情報を入出力処理部124に送信させる。
【0090】
図12の例では、症状「関節炎症」、「関節痛」の両方ともないと回答されたとする。この場合、疾患特定処理部122は、上位階層のノードN1-1に対応付けられた疾患のうち、ノードN2-1に割り当てられている症状を含まない疾患「高尿酸血症」を、診断結果として特定する。なお、疾患「高尿酸血症」は、上位階層のノードN1-1に対応付けられた疾患のうち、現在のノードN2-1に対応付けられていない疾患として特定することもできる。
【0091】
ここで、例えば疾患「痛風性腎症」については、痛風性腎症に対応する症状「尿酸値高」、「関節炎症」、「関節痛」、「腎機能低下」、「発熱」のすべてがないことを確認することで、疾患が痛風性腎症でないことを確定できる。これに対して、因果連鎖情報113を用いることにより、
図12の例のように、これらの症状のうち症状「腎機能低下」、「発熱」の有無を質問しなくても、疾患が痛風性腎症でないことを正確に判定できる。また、疾患「痛風結節」についても同様に、症状「尿酸沈着」の有無を質問しなくても疾患が痛風結節でないことを正確に判定できる。このため、ノードN2-1より下位のノードに割り当てられた疾患についての質問を省略して質問回数を減らすことが、疾患を見逃す要因にならない。このように、因果連鎖情報113を用いて鑑別診断を行うことで、診断精度を低下させることなく、症状の質問回数を抑制して診断を効率化できるようになる。
【0092】
一方、
図13は、症状「関節炎症」、「関節痛」のいずれかがあると回答されたケースを示す。このケースでは、疾患特定処理部122は、症状木構造114aのノードN2-1の下位階層に存在するノードN3-1,N3-2を処理対象とする。そして、疾患特定処理部122は、ノードN3-1に割り当てられた症状「腎機能低下」、「発熱」およびノードN3-2に割り当てられた症状「尿酸沈着」の選択処理を行う。
【0093】
相互情報量計算部123は、症状「腎機能低下」、「発熱」、「尿酸沈着」のそれぞれの有無を質問した場合の相互情報量の和を式(1)、式(2)を用いて計算する。疾患特定処理部122は、これらの症状の中から相互情報量の和が最小の症状を選択し、選択した症状の有無を質問する質問情報を入出力処理部124に送信させる。
【0094】
図13の例では、症状「腎機能低下」または症状「発熱」が選択されてその症状の有無が質問され、その症状があると回答されたとする。疾患特定処理部122は、ノードN3-1が最下位階層のノードであることから、ノードN3-1に対応付けられた疾患「痛風性腎症」を診断結果として特定する。このように、最下位階層のノードに割り当てられた症状がある場合には、そのノードに対応付けられた疾患が診断結果として特定される。
【0095】
次に、サーバ装置100の処理についてフローチャートを用いて説明する。
まず、
図14は、前処理フェーズにおけるサーバ装置の処理例を示すフローチャートである。
【0096】
[ステップS11]因果連鎖計算部121は、疾患と症状との組み合わせを示す情報を取得して、疾患症状対応情報111を生成し、記憶部110に格納する。
[ステップS12]因果連鎖計算部121は、疾患の階層関係を示す情報を取得して、疾患階層情報112を生成し、記憶部110に格納する。
【0097】
[ステップS13]因果連鎖計算部121は、疾患階層情報112から、疾患の木構造を1つ選択する。これにより、症状の因果連鎖を示す1つの症状木構造の生成が開始される。
【0098】
[ステップS14]因果連鎖計算部121は、選択した疾患の木構造の上位階層側(ルートノード側)から、未選択の隣接ノードの組(親子関係にあるノードの組)を1組選択する。
【0099】
[ステップS15]因果連鎖計算部121は、疾患症状対応情報111から、選択した隣接ノードにおける親ノード、子ノードのそれぞれについての症状を取得する。因果連鎖計算部121は、親ノードの症状と子ノードの症状との差分(子ノードの症状のうち親ノードの症状に含まれていない症状)を抽出する。
【0100】
[ステップS16]因果連鎖計算部121は、隣接ノードにおける親ノードの症状を、症状木構造の親ノードに割り当て、抽出された差分の症状を、症状木構造の子ノードに割り当てる。隣接ノードにおける親ノードの症状が割り当てられたノードが症状木構造にすでに存在する場合、そのノードの子ノードに対して差分の症状が割り当てられる。
【0101】
[ステップS17]因果連鎖計算部121は、ステップS13で選択した疾患の木構造におけるすべての隣接ノードの組を選択済みかを判定する。因果連鎖計算部121は、未選択の隣接ノードの組がある場合、処理をステップS14に進めて、未選択の隣接ノードの組を1つ選択する。一方、隣接ノードの組をすべて選択済みの場合、症状木構造が1つ生成されたことになる。この場合、因果連鎖計算部121は、生成された症状木構造の構造と、各ノードに割り当てられた症状とを示す情報を因果連鎖情報113における症状木構造情報114に登録する。これとともに、因果連鎖計算部121は、各ノードと疾患との対応関係を示す情報を因果連鎖情報113における疾患対応情報115に登録する。そして、因果連鎖計算部121は、ステップS18の処理を実行する。
【0102】
[ステップS18]因果連鎖計算部121は、疾患階層情報112に含まれる疾患の木構造をすべて選択済みかを判定する。因果連鎖計算部121は、未選択の木構造がある場合、処理をステップS13に進めて、未選択の木構造を1つ選択する。一方、すべての木構造を選択済みの場合、因果連鎖情報113の生成が完了し、因果連鎖計算部121は処理を終了する。
【0103】
図15~
図17は、診断フェーズにおけるサーバ装置の処理例を示すフローチャートである。
図15の処理は、端末装置200,200a,200b,・・・のいずれかからの処理の開始要求に応じて開始される。ここでは例として、端末装置200から処理の開始要求を受信したものとする。
【0104】
[ステップS21]疾患特定処理部122は、因果連鎖情報113の症状木構造情報114に含まれる各症状木構造のルートノード(第1階層のノード)を、処理対象として選択する。
【0105】
[ステップS22]疾患特定処理部122は、症状木構造情報114から各ルートノードに割り当てられた症状を取得し、それらの症状をリスト化する。
[ステップS23]このステップS23の実行開始時では、処理対象の階層の各ノードに割り当てられた症状がリスト化されている(ステップS22、
図16のステップS32、
図17のステップS44でのリスト化に相当)。疾患特定処理部122は、リストに含まれる未選択の症状(質問事項として選択されていない症状)の中から、質問事項とする症状を選択する。疾患特定処理部122はこの選択のために、相互情報量計算部123に計算を実行させる。
【0106】
相互情報量計算部123は、リスト内の未選択の症状に対応付けられた疾患を、因果連鎖情報113の疾患対応情報115から取得する。相互情報量計算部123は、未選択の症状それぞれについて、症状がある場合とない場合のそれぞれにおける症状と疾患の相互情報量を、前述の式(1)、式(2)を用いて計算する。
【0107】
ここで、式(1)におけるエントロピーH(X)の計算では、リスト内の未選択の症状に対応付けられた疾患の数をn1とすると、1/n1が疾患の発生確率として用いられる。疾患がある場合の式(1)におけるエントロピーH(X|Y)の計算では、計算対象の症状に対応付けられた疾患の数をn2とすると、1/n2が疾患の発生確率として用いられる。疾患がない場合の式(1)におけるエントロピーH(X|Y)の計算では、リスト内の未選択の症状に対応付けられた疾患のうち計算対象の症状に対応付けられた疾患を除く他の疾患の数をn3とすると、1/n3が疾患の発生確率として用いられる。
【0108】
相互情報量計算部123は、リスト内の未選択の症状ごとに、症状がある場合の相互情報量と症状がない場合の相互情報量との和を計算して、疾患特定処理部122に通知する。疾患特定処理部122は、リスト内の未選択の症状のうち相互情報量の和が最小の症状を質問事項として選択し、選択した症状の有無を質問する質問情報を入出力処理部124に送信させる。入出力処理部124は、この症状の有無を質問する質問情報を端末装置200に送信して、回答情報の待ち状態となる。端末装置200に接続された表示装置には、この症状の有無をユーザに質問する情報が表示される。
【0109】
[ステップS24]入出力処理部124は、端末装置200から症状の有無を示す回答情報を受信し、回答情報の内容を疾患特定処理部122に通知する。疾患特定処理部122は、症状があると回答された場合、
図16のステップS31の処理を実行し、症状がないと回答された場合、ステップS25の処理を実行する。
【0110】
[ステップS25]疾患特定処理部122は、リスト内に質問事項として未選択の症状があるかを判定する。疾患特定処理部122は、未選択の症状がある場合、処理をステップS23に進めて、未選択の症状の中から質問事項とする症状を選択する。一方、疾患特定処理部122は、すべての症状が選択済みの場合、ステップS26の処理を実行する。
【0111】
[ステップS26]このケースは、ステップS23または
図16のステップS34で処理対象となっていた症状木構造上の階層に対応付けられたすべての症状について、症状なしと回答されたケースである。この場合、疾患特定処理部122は、まず、症状木構造において現在の階層より1つ上位の階層にノードがあるかを判定する。疾患特定処理部122は、上位ノードがある場合、ステップS27の処理を実行し、上位ノードがない場合、ステップS28の処理を実行する。
【0112】
[ステップS27]疾患特定処理部122は、上位ノードに対応付けられた疾患のうち、現在の階層の各ノードに割り当てられた症状を含まない疾患を、診断結果として特定する。この疾患は、上位ノードに対応付けられた疾患のうち、現在の階層の各ノードに対応付けられていない疾患として特定することもできる。疾患特定処理部122は、特定された疾患を診断結果として入出力処理部124に通知して、診断結果を送信させる。入出力処理部124は、診断結果として特定された疾患を提示する情報を端末装置200に送信する。これにより、端末装置200に接続された表示装置に、診断結果として特定された疾患が表示される。
【0113】
[ステップS28]このケースは、現在の階層が最上位階層である(処理対象が各症状木構造のルートノードである)ケースであり、この場合には疾患を特定できない。疾患特定処理部122は、疾患が特定できなかったことを示す情報を入出力処理部124に送信させる。これにより、疾患が特定できなかったことが端末装置200に通知される。
【0114】
ただし、すでにステップS27または
図17のステップS41で1回以上疾患が特定されて診断結果が送信されている場合には、ステップS28では診断処理の終了が端末装置200に通知される。
【0115】
以下、
図16を用いて説明を続ける。
[ステップS31]疾患特定処理部122は、因果連鎖情報113の症状木構造情報114に基づき、症状木構造において、直前のステップS23またはステップS34で選択された症状が割り当てられているノードより1つ下位の階層にノードがあるかを判定する。疾患特定処理部122は、下位ノードが1つ以上ある場合、ステップS32の処理を実行し、下位ノードがない場合(現在の処理対象のノードが症状木構造における末端ノードの場合)、
図17のステップS41の処理を実行する。
【0116】
[ステップS32]疾患特定処理部122は、症状木構造情報114から、下位階層の各ノードに割り当てられている症状を取得し、それらの症状をリスト化する。
[ステップS33]疾患特定処理部122は、下位階層のノードの数を判定する。疾患特定処理部122は、ノードが1つのみの場合、ステップS34の処理を実行し、ノードが2つ以上ある場合、
図15のステップS23の処理を実行する。
【0117】
[ステップS34]下位ノードが1つの場合、そのノードに割り当てられている症状はすべて同一の疾患に対応する症状であるので、各症状についての相互情報量の和は等しくなる。そのため、リストから症状を選択するための相互情報量の和の計算は不要である。疾患特定処理部122は、所定の規則にしたがって、リスト内の未選択の症状の中から質問事項とする症状を選択する。例えば、未選択の症状の中からランダムに症状が選択される。
【0118】
疾患特定処理部122は、選択した症状の有無を質問する質問情報を入出力処理部124に送信させる。入出力処理部124は、この症状の有無を質問する質問情報を端末装置200に送信して、回答情報の待ち状態となる。端末装置200に接続された表示装置には、この症状の有無をユーザに質問する情報が表示される。
【0119】
[ステップS35]入出力処理部124は、端末装置200から症状の有無を示す回答情報を受信し、回答情報の内容を疾患特定処理部122に通知する。疾患特定処理部122は、症状があると回答された場合、ステップS31の処理を実行し、症状がないと回答された場合、ステップS36の処理を実行する。
【0120】
[ステップS36]疾患特定処理部122は、リスト内に質問事項として未選択の症状があるかを判定する。疾患特定処理部122は、未選択の症状がある場合、処理をステップS34に進めて、未選択の症状の中から質問事項とする症状を選択する。一方、疾患特定処理部122は、すべての症状が選択済みの場合、
図15のステップS26の処理を実行する。
【0121】
以下、
図17を用いて説明を続ける。
[ステップS41]このケースは、症状木構造における末端ノードに割り当てられた症状について、症状があると回答されたケースである。この場合、疾患特定処理部122は、当該末端ノードに対応付けられている疾患を、診断結果として入出力処理部124に通知して、診断結果を送信させる。入出力処理部124は、診断結果として特定された疾患を提示する情報を端末装置200に送信する。これにより、端末装置200に接続された表示装置に、診断結果として特定された疾患が表示される。
【0122】
[ステップS42]疾患特定処理部122は、ステップS41での処理対象となっていたノードの上位側ノードに割り当てられた症状の中に、質問事項として未選択の症状があるかを判定する。ここで言う「上位側ノード」には、第1階層における他の症状木構造のルートノードも含まれる。疾患特定処理部122は、未選択の症状がある場合、ステップS43の処理を実行する。一方、未選択の症状がない場合、診断処理は終了となる。この場合、疾患特定処理部122は、診断処理の終了を端末装置200に通知するように入出力処理部124に指示する。
【0123】
[ステップS43]このケースでは、疾患の見逃しが発生しないように、上位側ノードに割り当てられている未選択の症状の有無をチェックする処理が開始される。疾患特定処理部122は、まず、ステップS42で発見された未選択の症状が割り当てられたノードの階層のうち、最上位階層を選択する。
【0124】
[ステップS44]疾患特定処理部122は、症状木構造情報114から、選択した最上位階層に含まれる各ノードに割り当てられた症状を取得し、それらの症状をリスト化する。そして、疾患特定処理部122は、処理を
図15のステップS23に進める。ステップS23では、リスト内の未選択の症状の中から質問事項とする症状が選択される。
【0125】
以上説明した第2の実施の形態のサーバ装置100によれば、
図15のステップS21の開始から最初に疾患が特定されるまでの処理において、疾患を絞り込むための症状を効率的に選択してその症状の有無をユーザに質問していくことができる。これとともに、疾患を見逃す可能性を低減し、診断の正確性を高めることができる。特に、
図15のステップS27で疾患が特定された場合、それより下位ノードが存在したとしても、下位ノードに割り当てられた症状の有無を質問することなく、現ノードおよび下位ノードの症状に対応する疾患を否定し、他の疾患を正確に特定できる。したがって、効率的な処理によって高い診断精度を得ることができる。
【0126】
また、ステップS27または
図17のステップS41で疾患が特定された後、
図17のステップS43以降の処理により、階層を遡って未選択の症状の有無が再チェックされる。これにより、疾患の見逃しを防止し、診断精度を高めることができる。
【0127】
なお、上記の各実施の形態に示した装置(例えば、問診支援装置1、サーバ装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0128】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0129】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【0130】
1 問診支援装置
1a 記憶部
1b 処理部
2 木構造情報
2a~2d ノード
3 因果関係情報
A1~A4 疾患
B1~B4 症状
S1~S5 ステップ