Портфолио / Интернет-проекты / Медицинская экспертная система дифференциальной диагностики

Врач имеет дело не с болезнями, а с больными,
из которых каждый болеет по-своему
(Владимир Петрович Сербский)

Демо-версия экспертной системы

Совместный проект с корпорацией Электронные Медицинские Системы.
Страница проекта на сайте корпорации: Медицинская экспертная система диагностики.

Анализ предметной области

Современный уровень развития искусственного интеллекта позволяет разрабатывать не только программы, решающие однотипные прикладные задачи. Этот класс программного обеспечения служит для поддержки принятия решений. Например, для нужд медицины, такими программами являются ассистенты врачей, помогающие проанализировать все собранные о пациенте данные для их обоснованной интерпретации.

Разрабатываемая экспертная система решает проблему избыточности информации, трудности ее связного анализа и учета взаимных влияний симптомов и диагнозов друг на друга.

Основополагающая идея заключается в построении логики процесса постановки диагноза, корректной с точки зрения медицины и прозрачной для врача.

В результате обсуждения проекта с практикующим врачом-терапевтом (сотрудником кафедры СПбГМА имени Павлова) и специалистом в области социальной гигиены и организации здравоохранения, были выявлены потребности в:

  • определении основного и сопутствующих заболеваний;
  • ликвидации противоречий в симптомах и диагнозах пациента;
  • обнаружении ситуаций, когда все возможные диагнозы имеют приблизительно равные коэффициенты уверенности;
  • выявлении эффекта суммации — когда несколько «безобидных» диагнозов, существующие одновременно у пациента, могут привести к угрозе жизни или вызовут развитие осложнений;
  • высоком быстродействии — время на ввод информации о пациенте, формулировку запроса к экспертной системе и процесс логического вывода жестко ограничены в клинических условиях.

В результате анализа классификаций причин диагностических ошибок были выявлены те причины, которым можно успешно противостоять с помощью разрабатываемой экспертной системы. Объективные причины диагностических ошибок:

  1. недостаточный уровень развития науки;
  2. низкая степень оснащенности лечебных учреждений;
  3. большой объем практической нагрузки врача;
  4. атипичное течение или редкость заболевания;
  5. низкий уровень подготовки врачебных кадров;
  6. ошибки лабораторно-инструментальных исследований.

Субъективные причины диагностических ошибок:

  1. низкая квалификация, общая методологическая неподготовленность;
  2. чрезмерная вера в лабораторно-инструментальные данные (их недооценка или переоценка);
  3. плохая организация работы врача;
  4. дефекты организации консультаций;
  5. логические ошибки диагностики.

Практическое обоснование

Российская Федерация обладает низким общим уровнем медицины по сравнению с европейским медицинским институтом. Отдельные специалисты являются профессионалами мирового уровня, своеобразными звездами среди пустоты. Как показывает история, глубина знаний отдельных ученых не стоит ничего, если общий уровень знаний общества низок, а те, кто считаются специалистами — ими на самом деле не являются. Для человечества важнейшую роль в его эволюции играет общий уровень знаний и подготовки, а не редкие локальные максимумы.

Актуальность разрабатываемой экспертной системы обоснована множественностью и стертыми формами заболеваний, когда симптомы похожи на заболевания. Генерализованный междисциплинарный подход позволяет передать опыт диагностирования внутренних заболеваний врачами-специалистами(экспертами) врачу-терапевту(пользователю), ассистентом которого является разрабатываемая экспертная система. Решения о постановке диагнозов врач принимает самостоятельно, учитывая или пренебрегая результатами консультации с экспертной системой.

Программа диагностики проецирует имеющийся набор признаков (симптомов и диагнозов) на список заболеваний и находит их согласованное объяснение в терминах небольшого числа совместно проявляющихся патологий.

Основная функция разрабатываемой экспертной системы заключается в выдаче врачу-терапевту списка достоверной с точки зрения экспертной системы гипотезы дифференциального диагноза на основании введенных симптомов и предполагаемых, имеющихся или исключенных сопутствующих диагнозов. У врача должна быть возможность просмотреть ход рассуждений и проследить причинность действий экспертной системы.

Экспертной системой будут пользоваться врачи для ввода данных о состоянии пациента и получения консультации. Ответственность за принятие решений полностью лежит на враче-терапевте. Разрабатываемая компьютерная программа не может быть «истиной в последней инстанции» или полной заменой человеку в рассматриваемой предметной области. Разнообразие методов диагностики в медицине не поддается какой-либо полноценной, законченной логико-семантической формализации.

Инженеры по знаниям формализуют опыт экспертов на язык правил вывода экспертной системы. Эксперты из различных областей медицины проверяют корректность работы правил вывода, тестируя консультационную часть экспертной системы. Введенные на этапе разработки правила для нескольких областей медицины не претендуют на исключительную полноту и служат примером для демонстрации механизма логического вывода.

База знаний

База знаний — совокупность фактов и правил вывода, допускающих логический вывод и осмысленную обработку информации. Факты представлены глубинными (фундаментальными) знаниями о медицине, такими как иерархия болезней и иерархия параметров для описания симптомов. Правила вывода являются поверхностными (управляющими, практическими) знаниями, такими как правила диагностики болезни по симптомам и дифференциации болезней. База знаний находится в таблицах базы данных с префиксом "kb".

Симптомы — информация, доступная врачу на этапе постановки диагноза, описывающая текущее состояние пациента. Симптомы составляются врачом из связного множества параметров, объявленных в базе знаний. Примеры симптомов: «боль в спине справа» (параметры: боль, в спине, справа), «повышенная температура» (параметры: повышенная, температура).

Диагнозы — названия всех возможных заболеваний человека и их групп по международной классификации МКБ-10 (иерархия из более чем 10 000 диагнозов). Пример диагнозов: «мигрень классическая», «ишемическая болезнь сердца».

Правила вывода — символьные выражения вида: «Если есть/нет симптом/диагноз А с уверенностью K—M, то добавить/удалить симптом/диагноз B с уверенностью N». Экспертная система должна уметь объяснить различную конфигурацию симптомов и диагнозов, используя правила вывода. В ходе отбора и применения правил вывода решатель использует операционную память для манипулирования симптомами и диагнозами.

Операционная память

В операционной памяти хранятся симптомы, диагнозы, применимые правила вывода и рассуждения, относящиеся к очередному сеансу работы врача с экспертной системой.

Для начала работы врач заносит все имеющиеся или исключенные симптомы и диагнозы в операционную память. Затем происходит процесс логического вывода, каким-то образом изменяющий состав операционной памяти. Вывод результатов консультации представляет собой обновленные списки симптомов, диагнозов, активированные правила логического вывода и сделанные каждым из них изменения в операционной памяти.

Решатель может добавлять и удалять элементы анамнеза из памяти и изменять коэффициенты уверенности этих элементов.

Коэффициенты уверенности

Каждый симптом и диагноз в рабочей памяти может иметь свой коэффициент уверенности — целое число диапозона [–100; +100], описывающее 4 случая:

  • положительное значение является признаком наличия симптома или диагноза, где +100 — максимально достоверно;
  • нулевое значение означает крайнюю неуверенность в факте наличия или отсутствия симптома или диагноза;
  • отрицательное значение является признаком исключения симптома или диагноза, где 100 — максимально достоверно;
  • неизвестный коэффициент уверенности означает, что он не значим для этого симптома или диагноза и им можно пренебречь или априори неизвестен, а его уточнение невозможно; для простоты, внутри программы он обозначается числом 101.

В результате выполнения очередного правила может возникнуть ситуация добавления или исключения уже существующего симптома или диагноза с новым значением коэффициента уверенности. Пусть CF — коэффициент уверенности в наличии у пациента определенного симптома или диагноза, а CFN — коэффициент уверенности симптома или диагноза применяемого правила. Замена значения CF на CFN происходит в 2 случаях:

  1. CF равен нулю или отсутствует;
  2. | CFN | больше или равен | CF |.

Правила вывода

Каждое правило вывода может содержать условие или действие или и то, и другое. Правила соединены между собой дугами и гипердугами, которым присвоен модификатор коэффициента уверенности. Правило заносится в применимые при истинности его условия в процессе отбора правил. Каждое действие использует накопленный коэффициент уверенности в операциях с рабочей памятью.

В случае обнаружения пустого условия оно считается истинным. При обнаружении пустого действия не совершается никаких действий. Корневое правило имеет пустое условие и действие. С него начинается поиск применимых правил по иерархии правил вывода в базе знаний.

Если условие правила на конце дуги соблюдено, то дуга пройдена, и правило на ее конце добавляется в список применимых. Гипердуги отличаются тем, что в их состав входит одно или более правило для проверки по принципу "все или никто": только если все условия этих правил и правила на конце дуги удовлетворены, то дуга может быть пройдена. В список применимых добавится не только правило с конца гипердуги, но и все правила внутри гипердуги. Алгоритм проверки проходимости дуг при отборе правил представлен в виде блок-схемы:

Блок-схема проверки проходимости дуг

Отбор правил реализован в виде рекурсивной функции. На блок-схеме не указаны передача коэффициентов уверенности и проверка на наличие циклов. Правило А — один из входных параметров метода отбора, содержащий номер подходящего правила. При первом вызове метода параметр равен номеру корневого правила.

Примеры условий:

  1. “Если есть симптом < Головная боль > < +10 – +50 >”;
  2. “Если нет диагноза < Мигрень >”.

Значение элементов условий: “Есть” — существует в рабочей памяти пациента с указанным коэффициентом уверенности, “Нет” — отсутствует в рабочей памяти пациента.

Примеры действий: “Добавить диагноз < Простуда > < +65 >”, “Добавить симптом < Боль в горле >”. Значение элементов действий: “Добавить” — накопленное значение коэффициента уверенности складывается с коэффициентом уверенности в действии правила, “Исключить” — из коэффициента уверенности в действии правила вычитается накопленное значение коэффициента уверенности, “Удалить” — удалить объект и его коэффициент уверенности из рабочей памяти.

Машина логического вывода

Машина логического вывода управляет симптомами и диагнозами при помощи применимых правил вывода. Состоит из нескольких функциональных частей, реализующих цикл логического вывода.

Решатель

На вход решателю поступает описание задачи в виде списка симптомов и диагнозов с заданными коэффициентами уверенности, а на выходе он выдает решение задачи в форме измененных входных данных, дополненных применимыми правилами и историей изменений. Его работа состоит из двух этапов:

  1. запуска отбора применимых правил, управляемого введенными данными о симптомах и диагнозах. На этом этапе строится таблица со значениями хеш-функции вызовом метода для введенных врачом симптомов и происходит отбор правил.
  2. выполнения всех правил в списке применимых с учетом внесенных изменений уже выполненными правилами.

Отбор применимых правил

Поиск применимых правил начинается с корневого (не имеющего действия и условия). Для всех исходящих из правила дуг и связанных с ним правил выполняется проверка: если условие очередного правила на конце дуги верно и дуга проходима (о проходимости гипердуг написано в разделе 3.4), то такое правило добавляется в список применимых. После этого поиск продолжается по исходящим из добавленного правила дугам. И так далее, пока не будут пройдены все исходящие из корневого правила ветки.

Интерпретатор

Активизируется решателем после завершения отбора правил. Для каждого элемента из списка применимых правил выполняется проверка условия. Если оно все еще удовлетворяется, то правило передается исполнителю.

Может показаться, что интерпретатор является излишним усложнением и после отбора достаточно просто выполнить действия всех отобранных подходящих правил. Но это не так из-за того, что изменения, которые происходят при выполнении действий, могут повлечь невыполнение некоторых ранее применимых правил. Это важно учитывать для согласованного применения отобранных правил.

Исполнитель

Исполнитель применяет правило в операционной памяти на симптом или диагноз, указанный в его действии. Сделанные изменения протоколируются для ведения истории рассуждений.

Механизм разбора правила и выполнения соответствующих действий тривиален и описывается методом решателя ExecuteRule, принимающим в качестве параметра номер применимого правила из операционной памяти.

Цикл логического вывода

Входными данными для цикла логического вывода являются симптомы и диагнозы, введенные врачом при помощи интерфейса ввода данных. Врач может указать для любого симптома и диагноза коэффициент уверенности. Пример набора входных данных:

Симптомы:

  • боль в пояснице;
  • высокое давление: +100%;
  • нарушение обмена веществ: +75%.

Диагнозы:

  • мигрень с аурой;
  • простудное заболевание: +100%.

При завершении ввода входных данных начинается процесс логического вывода. Машина логического вывода запускает отборщик подходящих правил, начиная с корневого. Число, присвоенное дуге, соответствует модификатору коэффициента уверенности, связанному с каждым подходящим правилом. Он последовательно передается от правила к правилу до обнаружения ложного условия или терминального узла, где ветка рекурсии обрывается. Это накопленное число используется для подсчета коэффициента уверенности применения действий отобранных правил. Новый коэффициент уверенности применения действия равен сумме накопленного коэффициента уверенности правила и коэффициента уверенности, указанного в действии правила.

Для решения проблемы циклов в орграфе правил пройденный путь накапливается. Ветка рекурсии останавливается на уже пройденном ранее правиле. Важно понимать, что к одному и тому же правилу могут привести два разных маршрута и правило может быть применено два или более раз. Механизм накопления пути лишь избавляет от зацикливания поиска.

В результате работы экспертной системы, врач получает выходные данные. Вывод результатов консультации включает в себя обновленные входные данные и последовательность применимых правил со сделанными изменениями в операционной памяти. Далее приведен пример выходных данных.

Симптомы:

  • боль в пояснице;
  • высокое давление: +100%;
  • нарушение обмена веществ: +75%.

Диагнозы:

  • Мигрень с аурой;
  • Простудное заболевание: +100%;
  • Гипертония: +25%;
  • Астма: -20%.

Применимые правила:

  • Дифференциация астмы от простудных заболеваний: +20%;
  • Диагностика гипертонии по давлению: +25%.

Изменения:

  • Добавить диагноз гипертония: +25%;
  • Исключить диагноз астма: +20%.

Графический интерфейс

Диалог между врачом и экспертной системой реализован в виде тонкого клиента (веб-приложения). Для каждого посетителя при очередном визите заводится уникальный номер сессии, по которому экспертная система различает пользователей. В рамках дипломного проекта не рассматривается механизм аутентификации и более сложного взаимодействия с врачом.

При помощи интерфейса ввода данных врач составляет список симптомов и диагнозов, имеющихся у пациента или предполагаемых врачом (с положительным коэффициентом уверенности или без него). Так же добавляются исключенные диагнозы и симптомы (с отрицательным коэффициентом уверенности).

Внешний вид экрана ввода исходных данных

Ввод входных данных осуществляется на основании наблюдений за пациентом и его клинической картины. Симптомы представляют собой набор связанных параметров из базы данных. Иерархия диагнозов построена по структуре международной классификации МКБ-10 и дополнена заболеваниями из медицинских справочников. Добавление диагнозов происходит через интерфейс добавления диагноза:

Дизайн интерфейса добавления диагноза

Добавление симптома

Как только все симптомы и диагнозы добавлены в списки с соответствующими коэффициентами уверенности, врач нажимает на кнопку «Проконсультироваться» и автоматически переходит на страницу просмотра результатов консультации.

Результаты консультации отображены в виде обновленных списков диагнозов и симптомов, а так же информации о рассуждениях в виде списка правил и сделанных ими изменений. Внешний вид результатов логического вывода:

Дизайн окна вывода результатов консультации

Интерфейс просмотра результатов консультации отличается от ввода данных наличием рассуждений в нижней части экрана. При выборе соответствующего правила в таблице слева, выбирается изменение в таблице справа, сделанное этим правилом, если оно есть. Изменение состоит из описания действия и уверенности. При этом указывается старое и новое значение коэффициента уверенности для каждого изменения. Ниже таблицы рассуждений выводится подробная информация о выбранном правиле и его точная формулировка, взятая из базы знаний.

В результате работы машины логического вывода изменяется список симптомов и диагнозов и коэффициенты уверенности элементов списка. При повторном нажатии на кнопку «Проконсультироваться», происходит переход на страницу результатов консультации. Таким образом, можно сколько угодно раз модифицировать данные гипотезы диагноза и получать новые результаты.

Управление правилами вывода

Для обучения экспертной системы навыкам диагностики был создан специальный интерфейс. С помощью него инженер по знаниям формализует практический опыт врачей для задач диагностики.

Интерфейс управления правилами вывода

Иерархия правил вывода может быть изменена при помощи форм управления связями:

Часть интерфейса управления правилами, отвечающая за изменение состава гипердуг

Форма добавления нового правила в базу знаний

Процесс

Cписок использованных источников

  1. MYCIN // Википедия — свободная энциклопедия. - 2010. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/MYCIN (дата обращения 20 Марта 2010);
  2. Гиперграф // Википедия — свободная энциклопедия. - 2010. [Электронный ресурс]. URL: http://ru.wikipedia.org/wiki/Гиперграф (дата обращения 20 Марта 2010);
  3. Питер Джексон. Введение в экспертные системы. - М.: Вильямс, 2001. -624 с.: ISBN: 5-8459-0150-2, 0-201-87686;
  4. Marvin Minsky. A Framework for Representing Knowledge. // MIT-AI Laboratory Memo - 1974 - № 306;
  5. Джозеф Джарратано, Гари Райли. Экспертные системы: принципы разработки и программирование. Пер. с англ. М. Издательский дом «Вильямс», 2006 - 1152 с.;
  6. Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ. Пер. с англ. В. А. Кондратенко, С. В. Трубицына. М.: Финансы и статистика, 1990 - 320 с.;
  7. Уотермен Д. Руководство по экспертным системам: Пер. с англ. под ред. В. Л. Стефанюка. М.: «Мир», 1989 - 388 с.;
  8. Егоров Н.В., Карпов А.Г. Диагностические информационно-экспертные системы. М.: Вильямс, 2002 - 220 с.;
  9. Лорьер Ж. Л. Системы искусственного интеллекта. М.: Мир, 1991 - 475 с.;
  10. Продеус А. Н., Захрабова Е. Н. Экспертные системы в медицине. М.: Век +, 1998 - 361 c.;
  11. Уткин В.Б., Балдин К.В. Информационные системы и технологии в экономике. М.: Юнити, 2005 - 301 c.;
  12. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. СПб: Питер, 2000 - 414 с.;
  13. Под ред. Э. Кьюсиака. Искусственный интеллект: Применение в интегрированных производственных системах: Пер. с англ. М.: Машиностроение, 1991 - 357 c.;
  14. Поспелов Г.С. Искусственный интеллект - основа новой информационной технологии. М.: Наука, 1998 - 348 c.;
  15. Под ред. С. Осуги, Ю. Саэки. Приобретение знаний: Пер.с япон. М.: Мир, 1990 - 413 с.;
  16. Л.С. Берштейн. Нечеткие модели для экспертных систем в САПР. М.: Энергоатомиздат, 1991 - 136 с.;
  17. Р.А. Алиев, Н.М. Абдикеев, М.М. Шахназаров. Производственные системы с искусственным интеллектом. М.: Радио и связь, 1990 - 213 с.;
  18. Под ред. Ф. Хейес-Рота, Д. Уотермена, Д. Лената. Построение экспертных систем. М.: Мир, 1987 - 423 с.

Отзывы

Имеется акт об успешном внедрении на базе государственной поликлиники Санкт-Петербурга №38.

Клинический случай из практики врача анестезиолога-реаниматолога высшей категории, профессора, доктора медицинских наук Константина Михайловича Лебединского:

«Женщина 26 лет заболела остро: резкие боли в животе и пояснице довольно быстро сменились судорожным синдромом и прогрессирующими нарушениями двигательной сферы. К моменту моего обхода в отделении нейрореанимации Мариинской больницы уже имелись нижняя параплегия и верхний парапарез, периодически отмечался слабо выраженный абдоминальный болевой синдром, нарушение пищеварения, тенденция к тахикардии и артериальной гипертензии. На основании этих симптомов я пришел к предположению о порфирии.

Поскольку сталкиваться с этой группой болезней приходится крайне редко, вечером я внимательно изучил все доступные источники – и гипотеза переросла в уверенность. Созвонившись с коллегами, сразу согласовали специфическую терапию «первой ступени» – большие дозы глюкозы (благо большого вреда от них в случае ошибки не ожидалось). Меня попросили перевести пациентку в неврологическую реанимацию МАПО, что и было сделано в ближайшие двое суток. Диагноз порфирии (правда, не вполне ясно – острой перемежающейся или наследственной) был подтвержден вначале лабораторией медицинского центра МЧС, а затем коллегами из центра по изучению порфирий университета Хельсинки. Проконсультировавшись с нашими неврологами и московскими гематологами – профессором Александром Васильевичем Пивником и кандидатом медицинских наук Ярославом Сергеевичем Пустовойтом – мы начали специфическую терапию «второй линии» препаратом Нормосанг.

Дальше последовала двухмесячная эпопея, включавшая, несмотря на всё проводимое лечение, прогрессирующий отек мозга, кому, длительную искусственную вентиляцию легких и, наконец, медленное восстановление. После выписки из МАПО мы направили пациентку на неврологическую реабилитацию – порфирийные параличи довольно легко обратимы. »

О диагностировании и лечении порфирии врач пишет:

«Острую порфирию можно подозревать у любого больного, поступающего в клинику с неожиданной приступообразной болью, периферической нейропатией или с нарушением психики. Причем в каждом индивидуальном случае может наблюдаться либо целый набор перечисленных симптомов, либо только отдельные из них. Кроме того, особенность этой патологии такова, что в результате полисиндромности ее клинических проявлений больные могут поступать в стационары различных профилей, где многие врачи-специалисты оказываются привлеченными в процесс лечения. Зачастую больные с острыми приступами порфирии проходят многоэтапные мытарства по различным отделениям клиник, включая хирургические, урологические, гинекологические, неврологические и психосоматические. При отсутствии правильного диагноза история болезни не редко может иметь следующий печальный конец: тошнота и рвота, нестерпимые сильные боли в животе ошибочно наводят на мысль об острой хирургической патологии. При неправильной диагностике и, следовательно, лечении, острые порфирии являются смертельными заболеваниями (летальность, в среднем, составляет 60%). Напротив, четкая своевременная диагностика и адекватная терапия спасают практически всех больных, возвращая их к нормальной полноценной жизни. »

Врачи, пользующиеся экспертной системой, смогут распознать (или проверить и исключить) порфирию на самых ранних посылах без риска осложнений и развития болезни. Использование программы диагностики повысит шансы успешно справиться с болезнью. Можно сформулировать симптомы, которые наблюдались у больной:

  1. периферическая нейропатия;
  2. резкие боли в животе;
  3. нарушения психики;
  4. гипертелоризм;
  5. тошнота и рвота;
  6. судороги;
  7. тахикардия;
  8. верхний парапарез.

Входные данные при диагностировании порфирии

Результаты нажатия кнопки "Проконсультироваться" показаны ниже. Добавлены диагнозы, соответствующие введенному набору симптомов с соответствующими коэффициентами уверенности.

Результаты консультации

Список рассуждений, где для выбранного рассуждения отображено сделанное им изменение в операционной памяти. Список рассуждений представлен применимыми правилами, где отмечены правила с выполненными действиями (столбец "Выполнено") и значением накопленного коэффициента уверенности (столбец "Уверенность").

Список применимых правил и изменений

На рисунке показаны правила для диагностики порфирии. Зеленым цветом выделены те из них, которые были бы задействованы при анализе указанных симптомов.