реализовать возможность обучения экспертной системы.
1.2 Актуальность создания системы
По данным Всемирной организации здравоохранения, во всем мире насчитывается около 37 миллионов слепых людей и 124 миллиона человек с плохим зрением. В России, по данным независимых источников, каждый второй житель имеет какое-либо нарушение зрения. От воспалительных заболеваний ежегодно нарушается зрение у 4 млн. россиян. 60 процентов россиян старше 50 лет испытывают серьезные проблемы со зрением. При этом три четверти заболеваний можно было бы избежать при своевременной диагностике и лечении заболевания.
Данная экспертная система может применяться врачами-офтальмологами для автоматизации работы и для консультации в случае при неоднозначных симптомах не проводить анализ для всех заболеваний, а двигаться в сторону наиболее вероятных диагнозов.
На сегодняшний день подобная система будет актуальна тем, что большинство людей слишком заняты и не ценят своё здоровье, а поэтому не спешат идти к врачу, экономя время и деньги.
Подобных систем мало. Имеются ввиду системы, основанные на диалоге с пациентом. Существуют экспертные системы для диагностирования глазных заболеваний на основе изображения глазного дна, но они требуют работы со специалистом. Большинство систем оценивает общее состояние организма и в такой специализированной области не может дать удовлетворяющего ответа. Возможно, подобные системы существуют и установлены в различных клиниках, но доступ к ним имеют только сотрудники, вследствие чего их изучение затруднено.
Поэтому разработка экспертной системы диагностирования глазных заболеваний для автоматизации работы врача-офтальмолога и для взаимодействия с пациентом без специалиста является актуальной.
1.3 Описание предметной области
.3.1 Понятие офтальмологии
Офтальмология ("ophthalmos" - глаз и "logos" - слово, наука) - это область клинической медицины, которая занимается изучением этиологии, патогенеза и различных проявлений нарушений функции зрения человека. Эта наука изучает всевозможные заболевания органов зрения - глазного яблока и его придатков, окружающей глаз клетчатки и образующих глазницу костных структур.[1]
Врачей этой специальности называют офтальмологами, или окулистами (от лат. oculue - глаз). Офтальмология выделилась в самостоятельную дисциплину как из-за важности функций органа зрения, так и из-за особенностей методов его обследования.
Орган зрения является важнейшим орудием познания внешнего мира. Основная информация об окружающей действительности (до 70%) поступает в мозг именно через этот анализатор. Следует подчеркнуть, что глаз - это дистантный анализатор высшего порядка. Ему свойственно пространственное восприятие глубины, передвижения предметов, их удаленности, телесности. Неслучайно в ряде стран существовали религиозные секты, члены которых поклонялись богу в образе глаза. Хорошо известно, что даже незначительная потеря зрения может изменить судьбу человека. Что страшнее: жить слепым или умереть? Многие литературные произведения отвечают на этот вопрос так: лишить человека зрения - худшее наказание, чем лишить его жизни.
Офтальмология занимает заметное место в медицинской науке. Орган зрения или «зеркало души», как его называют в литературе, является одновременно неплохим «зеркалом здоровья» человеческого организма. Большинство заболеваний человека находят свое подтверждение в специфических глазных проявлениях. Для примера можно привести изменения глазного дна при гипертонической болезни, изменения сосудов при диабете, изменения зрительного нерва при внутричерепных новообразованиях и другие. Многие врачи других медицинских специальностей зачастую нуждаются в консультациях офтальмолога для уточнения прогноза заболевания или выбора оптимального варианта лечения. Если же искать точки соприкосновения офтальмологии с другими отраслями медицины, то можно с уверенностью сказать, что все они в той или иной мере связаны с офтальмологией.[2]
1.3.2 Глазные заболевания и их симптомы
По данным Всемирной организации здравоохранения, во всем мире насчитывается около 37 миллионов слепых людей и 124 миллиона человек с плохим зрением. Каждые пять секунд в мире слепнет один взрослый человек, каждую минуту - ребенок.
В России, по данным независимых источников, каждый второй житель имеет какое-либо нарушение зрения. От воспалительных заболеваний ежегодно нарушается зрение у 4 млн. россиян. 60 процентов россиян старше 50 лет испытывают серьезные проблемы со зрением, каждый пятый из них страдает глаукомой. Среди основных причин заболеваний органов зрения специалисты называют: воспалительные заболевания, травмы, близорукость, глаукома.
Человеческий глаз - это сложная оптическая система. Ни один, даже очень дорогой фотообъектив не может похвастаться такой точностью и яркостью передачи изображения. Глаз состоит из прозрачных сред (роговицы, внутриглазной жидкости в передней и задней камерах, хрусталика и стекловидного тела) и окружающих их оболочек, причем практически в любой из этих составляющих может выйти из строя, воспалиться. Именно по этим компонентам глаза и его придаточного аппарата основано разделение.
Классификация по МКБ - 10. Класс VII. Болезни глаза и его придаточного аппарата (H00-H59)
Болезни век, слезных путей и глазницы
Болезни конъюнктивы
Болезни склеры, роговицы, радужной оболочки и цилиарного тела
Болезни хрусталика
Болезни сосудистой оболочки и сетчатки
Глаукома
Болезни стекловидного тела и глазного яблока
Болезни зрительного нерва и зрительных путей
Болезни мышц глаза, нарушения содружественного движения глаз, аккомодации и рефракции
Зрительные расстройства и слепота. Другие болезни глаза и его придаточного аппарата.[3]
Список болезней, выбранных для тестирования приложения можно посмотреть в Приложении А.
Есть множество внешних и внутренних факторов, которые плохо сказываются на качестве зрения и ведут к проблемам.
Возраст.
Формирование глаза обычно заканчивается к 18 годам. Самый опасный возраст для развития близорукости - это 9-14 лет. Осложнения на глаза могут дать гормональные сбои в период полового созревания, колоссальная нагрузка во время учебы, экзаменов. 40 лет - это следующий «переходный» возраст для глаз, когда показываться офтальмологу нужно регулярно. К этому времени в зрительной системе, как и во всем организме, начинаются возрастные изменения. В них запускаются естественные процессы (дистрофические процессы), которые потом могут стать основой серьезных болезней глаз. После 55 лет большинству людей приходится сталкиваться с глазными заболеваниями. Самые распространенные: глаукома, катаракта, близорукость и центральная дистрофия сетчатки.
Наследственность.
Многие болезни передаются по наследству. Такие как астигматизм, близорукость, глаукома, дальнозоркость, макулодистрофия.
Общее состояние организма.
Различные заболевания - не менее важная причина ухудшения зрения. Покраснение, раздражение, слезотечение глаз сопровождают заболевания щитовидной железы, диабет, атеросклероз, гипертония, тяжелый ревматический артрит, заболевания кишечника, нарушения кровообращения при остеохондрозе.
Вредные привычки и влияние вредных веществ.
Вредные вещества, такие как алкоголь и наркотики или пристрастие к курению вызывает пагубные изменения во всём организме, а не только заболевания глаз. Курение может вызвать конъюнктивит, закупорку сосудов, табачную амблиопию. Алкоголь и наркотики - атрофию зрительного нерва.
Солнечный свет.
Воздействие на глаз сильного солнечного света может ускорить в течении длительного времени может ускорить процесс корковой катаракты.
Работа с компьютером.
В последнее 10-летие появился диагноз «компьютерный синдром». При длительной работе на ПК возникает синдром «сухого глаза».
Это не полный перечень причин, которые портят зрение: ветер, дым, смог, испарение лаков и красок, напряжение внимания при работе с ПК, длительный прием медикаментов, нанесение косметики и т.д.[4]
Список факторов, выбранных для тестирования приложения можно посмотреть в Приложении А.
Симптомы глазных заболеваний могут проявляться различно, это могут быть различные изменения зрения (центрального и бокового), неприятные ощущения (боли, рези, чувства инородного тела), а так же изменения на самом глазном яблоке или окружающих глаз тканях (образования на веках, выпадение ресниц). Данные симптомы могут возникать внезапно (молнии перед глазами, острая боль) или нарастать постепенно (снижение зрения, чувство сухости), оставаясь незаметными для человека в течении продолжительного времени. Как правило, большинство таких жалоб вызваны проблемами в органе зрения, но часто их появление связано и с общими заболеваниями организма.
Несмотря на все многообразие заболеваний глаз, пациенты, зачастую, имеют очень похожие симптомы глазных болезней.
Например, любое глазное воспаление проявляется покраснением глаза. Каждая инфекция конъюнктивы сопровождается отделяемым из глаза. Симптомами более серьезных заболеваний роговицы, сосудов глаза, сетчатки, хрусталика, является снижение остроты зрения. Далее приведены основные симптомы заболеваний глаз, которые пациент может заметить самостоятельно. Большинство из них является поводом для обращения к специалисту.[5]
Боль или дискомфорт в области век самая частая жалоба может характеризовать множество глазных заболеваний.
Липкое отделяемое из глаза может быть из-за блефарита, дакриоцистита или конъюнктивита.
Вспышки света могут появиться вследствие отслойки сетчатки или стекловидного тела, разрыва сетчатки.
Двоение или диплопию могут вызвать астигматизм, диабетическая ретинопатия, кератоконус.
Снижение зрения вызывают многие заболевания.
Искажение видимых объектов может быть из-за астигматизма, кератоконуса или макулодистрофии.
Многие заболевания вызывают покраснение век или глаза.
Опухоль на веках любого цвета появляется из-за базалиомы, халязиона или ячменя.[12,13]
И это не полный список симптомов.
Список симптомов, выбранный для тестирования приложения можно посмотреть в Приложении А.
1.3.3 Виды и методы диагностики офтальмоилоги
Офтальмология стала самостоятельным направлением в медицине, отделившись от общей хирургии в XIX в. Позже она разделилась на виды, основанные на методах лечения.
Клиническая офтальмология занимается вопросами консервативного лечения патологий глаза, хирургическая - оперативными вмешательствами на органах зрения. Отдельно стоит неотложная офтальмология, которая решает острые состояния, такие как травмы глаза, ожоги роговицы, отслоение сетчатки и другие.
Для диагностики офтальмологических заболеваний используется множество разнообразных специальных методов исследования. В настоящее время глазной врач в своей работе использует периметр, офтальмоскоп, щелевую лампу, тонометр, гониоскоп, таблицы для определения остроты зрения (см. рис. 1.1) и цветоощущения, эхографическое и электрофизиологическое оборудование, аппараты для оценки циркуляции крови и внутриглазной жидкости. С помощью этих методов офтальмолог может довольно точно определить зрительные функции и физиологические параметры глаза, визуально оценить состояние его тканей и образований, наблюдать патологические процессы и т. д.[6]
Рисунок 1.1 - Таблица Д.А. Сивцева для исследования остроты зрения
Обилие методов объясняется многообразием функций глаза и его доступностью для наблюдения. Именно многообразие методов исследования и их высокая разрешающая способность позволяет офтальмологам довольно точно распознавать патологии у большинства больных. Установить диагноз существенно помогает также детальный опрос больного.[6]
Диагностика зрения - это наиболее важный этап в борьбе за здоровье глаз. Существуют серьезные глазные заболевания, оказывающие значительное влияние на зрение. Ранняя диагностика и лечение этих заболеваний являются основным способом предупреждения частичной потери зрения, а иногда и слепоты. Более того, в результате диагностики можно по глазным проявлениям обнаружить на начальных стадиях такие общие заболевания, как: гипертоническая болезнь, сахарный диабет, атеросклероз, туберкулез, ревматизм, шейный остеохондроз, болезни щитовидной железы и многие другие.
Качественная диагностика напрямую зависит от технического оснащения.
Помимо приборов, которые предоставляют данные для офтальмолога (ретинальная камера, щелевая лампа, пахиметр), на основании которых он заключает диагноз, существуют экспертные системы, разработанные для диагностики и помощи врачам. При работе подобных систем врач не принимает участия или его участие минимально.
1.3.4 Определение экспертных систем, достоинство и назначение
Экспертные системы - это яркое и быстро прогрессирующее направление в области искусственного интеллекта. На протяжении всего своего существования экспертные системы вызывают к себе повышенный интерес. Причиной этого интереса является возможность их применения к решению задач из самых различных областей человеческой деятельности. Пожалуй, не найдется такой проблемной области, в которой не было бы создано ни одной экспертной системы или, по крайней мере, такие попытки не предпринимались бы.[7]
Экспертная система - это программное обеспечение, которое выполняет функции эксперта при решении какой-либо компетентной ему задаче. Экспертная система оперирует со знаниями, которые определённым образом формализованы и представлены в памяти ЭВМ в виде базы знаний, которая может изменяться и дополняться в процессе развития системы. Экспертные системы ориентированы на решение задач, которые требуют проведения экспертизы человеком-экспертом. Они выдают советы, дают консультации, выполняют классификацию и ставят диагноз. В отличие от программ, использующих процедурный анализ, экспертная система решает задачи в конкретной предметной области на основе дедуктивных рассуждений. Подобные системы нередко способны найти решение задачи, которая плохо определена или не структурирована. Это полезно в тех системах, где существует недостаток знаний или невозможно провести полный анализ. Главное достоинство экспертной системы - возможность накапливания знаний, сохранение их длительное время, обновление и тем самым обеспечение относительной независимости конкретной организации от наличия в ней квалифицированных специалистов.
Обычная статическая ЭС состоит из следующих основных компонентов (рис. 2.):
решателя (интерпретатора);
рабочей памяти (РП), называемой также базой данных (БД);
базы знаний (БЗ);
компонентов приобретения знаний;
объяснительного компонента;
диалогового компонента.
База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи.
База знаний в экспертной системе предназначена для хранения долгосрочных данных, описывающих рассматриваемую область, и правил, описывающих целесообразные преобразования данных этой области.
Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует последовательность правил, которые применяются к исходным данным и приводят к решению задачи.
Компонент приобретения знаний автоматизирует процесс наполнения экспертную систему знаниями, осуществляемый пользователем-экспертом.
Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она использовала в процессе.
Искусственный интеллект - самое молодое научное направление. Появление его было подготовлено развитием мощности вычислительных машин.
Рисунок 1.2 - Структура статической ЭС
Искусственный интеллект занимает исключительное положение. Это связано со следующим: сейчас часть функций программирования оказалось возможным передать машине. При этом общение с машиной происходит на языке, близком к разговорному. Для этого в ЭВМ закладывают огромную базу знаний, способы решения, правила, процедуры синтеза, программы, а также средства общения, позволяющие пользователю легко общаться с ЭВМ. Если раньше производство ориентировалось на участие человека, то в настоящее время находят применение технологиям, основанным на роботизации и автоматизации системы управления. Интеллектуальные системы в настоящее время начинают занимать ведущее положение в проектировании образцов изделий. Часть изделий невозможно спроектировать без их участия.
Системы, относящиеся к системам искусственного интеллекта в настоящее время:
-экспертные системы. Первые системы, которые нашли широкое применение. Их элементы используются в системах проектирования, диагностики, управления и играх. Основаны на вводе знаний экспертов в ЭВМ и разработке специальной системы по их использованию.
-системы естественно-языкового общения. Данные системы позволяют производить обработку связанных текстов по какой-либо тематике на естественном языке.
-системы речевого общения.
-системы обработки визуальной информации. Находят применение в обработке аэрокосмических снимков, данных, поступающих с датчиков.
-системы машинного перевода.
.3.5 Области применения экспертных систем
Существует ряд прикладных задач, которые решаются с помощью систем, основанных на знаниях, более успешно, чем любыми другими средствами. При определении целесообразности применения таких систем нужно руководствоваться следующими критериями:
.данные и знания надежны и не меняются со временем;
.пространство возможных решений относительно невелико;
.в процессе решения задачи должны использоваться формальные рассуждения;
.должен быть по крайней мере один эксперт, способный явно сформулировать свои знания и объяснить свои методы применения этих знаний для решения задач.
В таблице 1.1 приведены сравнительные свойства прикладных задач, по наличию которых можно судить о целесообразности использования для их решения экспертных систем.
Таблица 1.1 - Критерий применимости экспертных систем
ПрименимыНеприменимыНе могут быть построены строгие алгоритмы или процедуры, но существуют эвристические методы решения.Имеются эффективные алгоритмические методы.Есть эксперты, которые способны решить задачу.Отсутствуют эксперты или их число недостаточно.По своему характеру задачи относятся к области диагностики, интерпретации или прогнозирования.Задачи носят вычислительный характер.Доступные данные "зашумлены".Известны точные факты и строгие процедуры.Задачи решаются методом формальных рассуждений.Задачи решаются процедурными методами, с помощью аналогии или интуитивно.Знания статичны (неизменны).Знания динамичны (со временем изменяются).
В целом экспертную систему не рекомендуется применять для решения следующих типов задач:
-математических, решаемых обычным путем формальных преобразований и процедурного анализа;
-задач распознавания, поскольку в общем случае они решаются численными методами;
-задач, знания о методах решения которых отсутствуют (невозможно строить базу знаний).[8]
Области применения систем, основанных на знаниях, могут быть сгруппированы в несколько основных классов: медицинская диагностика, контроль и управление, диагностика неисправностей в механических и электрических устройствах, обучение.
Диагностика.
Системы диагностирования используются для установления связи между нарушениями их возможными причинами. Наиболее часто это медицинская диагностика или техническая. MYCIN - самая известная медицинская система, которая предназначена для диагностики и наблюдения за состоянием больного при бактериальных инфекциях и менингите.
Прогнозирование.
Прогнозирующие системы предсказывают возможные результаты или события на основе данных о текущем состоянии объекта (погода, урожайность, поток пассажиров).
Планирование и проектирование.
Такие системы предназначены для достижения конкретных целей при решении задач с большим числом переменных (консультации по приобретению товаров, проектирование космических станций и так далее).
Интерпретация.
Интерпретирующие системы обладают способностью получать определенные заключения на основе результатов наблюдения. PROSPECTOR одна из наиболее известных интерпретирующих систем. Этой системе удалось обнаружить залежи руды стоимостью в миллион долларов, причём наличие этих залежей не предполагал ни один из экспертов. Другая система подобного типа - HASP/SIAP. Она определяет местоположение и тип судов в океане по данным акустических систем слежения.
Контроль и управление.
Интеллектуальные системы контроля могут принимать решения, анализируя данные, поступающие от нескольких источников. Их применение - это работа на атомных электростанциях, управление воздушным движением и осуществление медицинского контроля. Они полезны для оказания помощи при выработке решений в критических ситуациях и при регулировании финансовой деятельности предприятия.
Обучение.
Экспертно-обучающие системы реализуют такие педагогические функции, как обучение, контроль, диагностику и тестирование знаний обучаемого. Подобные системы создают модель того, что обучающийся знает и как он эти знания применяет к решению проблемы. Системы диагностируют и указывают обучающемуся его ошибки, анализируя модель и строя планы исправлений указанных ошибок.
Большинство экспертных систем включают знания, по содержанию которых их можно отнести одновременно к нескольким типам.[9]
Методы искусственного интеллекта нашли широкое применение в области диагностики заболеваний. Интеллектуальные системы в области медицинской диагностики направлены на поддержку принятия решения о характере заболевания практикующим врачом на основании результатов различных медицинских обследований и данных о самочувствии пациента.
Большинство таких систем носят прескриптивный характер, то есть имеют вид правил: если есть такие наблюдения, то необходимо делать такое вмешательство.
1.4 Рассмотрение аналогов существующей системы
Существуют аналогичные системы, реализованные в виде приложений и используемые в различных клиниках. Доступ к подобным системам есть только у сотрудников клиники. Из-за того, что они являются коммерческой тайной, их сложно изучить.
Рассмотрим другие экспертные системы, действия которых не аналогичны, но они известны.
Диагноз.ру - известная система онлайн-диагностики (рисунок 1.3). Это система постановки диагноза по симптомам. Система бесплатная, создана в 2002 году. Система широкого профиля, помимо глазных заболеваний может диагностировать болезни кожи, крови, нервной системы и т.д. Используется искусственный интеллекта на базе нечеткой логики (fuzzy logic), что позволяет получить результаты диагностики, по достоверности близкие к клиническим. Достоверность результатов системы на данный момент составляет в среднем 68%.
CASNET/GLACOMA - это медицинская экспертная система для диагностики и выдачи рекомендаций по лечению глазных заболеваний, связанных с глаукомой. На ее основе разработан язык инженерии знаний EXPERT, с помощью которого создан ряд других медицинских диагностических систем по офтальмологии, ревматологии и эндокринологии. Особенностью этого семейства систем является явное выделение понятия факта (априорно известных или опытных данных) и гипотезы (предположительного диагноза или рекомендации) и использование правил, логически связывающих факты между собой и гипотезы с фактами.[10]
Рисунок 1.3 - Система диагностики Диагноз.ру
Другая компьютерная система диагностики глазных заболеваний DIADEL предназначена для автоматического установления раннего диагноза глазных заболеваний (диабетическая ретинопатия, отделение сетчатки, глаукома) по состоянию сосудистой системы на цифровых изображениях глазного дна человека (рисунок 1.4).
Система автоматически подсчитывает около десятка характерных признаков кровеносных сосудов на изображениях глазного дна: число разветвлений, углы разветвлений, извилистость сосудов, средний диаметр, амплитуду и частоту вариации толщины сосудов и другие параметры.
Современные компьютеризированные диагностические приборы, отмечают малейшие отклонения от нормы, определяют наличие заболевания на самых ранних стадиях его появления, гарантируют точность постановки диагноза и составление полной картины зрительной системы пациента, фиксируют и прогнозируют возникновения заболевания. [11]
Рисунок 1.4 - Система DIADEL
Все эти системы обладают либо широкой областью применения, либо узкой областью применения и может использоваться по назначению только в ней.
.5 Целесообразность создания системы
Если задаться вопросом, для чего подобной системе представительство в сети, можно выделить несколько моментов. Во-первых, это система для диагностирования глазных заболеваний. Любой интересующийся человек может пройти диагностику и получить достоверные сведения. Во-вторых, это система для автоматизации работы врача и любой врач может провести диагностику пациента и, в случае сомнения, направить больного на анализы наиболее вероятного заболевания. В-третьих, это канал распространения информации о глазных заболеваниях. В-четвёртых, это инструмент косвенного побуждения пойти на приём к офтальмологу.
Но при всех очевидных преимуществах у большинства клиник не подобных систем диагностики. У некоторых есть, но к ним имеют доступ только сотрудники клиники и они не распространены.
Многие больницы понимают, что подобное приложение необходимо, но не знают, как подступиться к этому вопросу, так как сразу возникает несколько проблем:
-отсутствие оборудования или подключения к сети Интернет в больнице;
-отсутствие большого числа экспертов для обучения системы;
-отсутствие финансовых средств на разработку и поддержку приложения.
А существующие приложения в малочисленных клиниках могут доставлять ряд проблем. Проблемы могут быть следующие:
-необходимо обучение для работы с программой;
-сложная и неудобная система обучения или отсутствие таковой;
-конфликты с разработчиками, сложность в поддержке приложения;
-нюансы взаимодействия: зачастую заказчики доверяются разработчикам в заключении договоров на хостинг и доменное имя, а при прекращении отношений часто теряют доступ к управлению доменом, хостингом, сайтом.
Отсутствие оборудования и подключения к сети Интернет обсуждать сложно, так как это вопрос бюджета и компьютеризации конкретной организации или региона.
Остальные проблемы решаемы: необходимо найти систему, с которой могли бы работать простые пользователи компьютера, и построить отношения с разработчиками так, чтобы ежедневное использование сайта от них не зависело.
Сегодня существуют различные возможности для создания. Можно обратиться к услугам профессионалов или создать сайт самостоятельно.
Для управления сайтом достаточно одного человека. Он должен разграничивать права пользователей на обычных и экспертов, которые могут обучать систему. Поэтому перед разработкой сайта необходимо точно определить на кого точно ориентируется сайт, какую информацию и в каком виде разместить на страницах, разработать стратегию работы с целевой аудиторией.
Так же необходимо помнить, что нельзя ориентироваться только на пользователей. Конкуренты, СМИ, спонсоры и т.д. могут быть заинтересованы сайтом подобного типа и к ним нужно относиться терпимо и тоже учитывать их.
Сайт должен постоянно обновляться, администраторы должны повышать его притягательность, стимулировать интерес пользователей. Сеть Интернет предлагает своим пользователям миллионы веб-сайтов и совершенно невообразимый объём информации. Хоть это и узкоспециализированный сайт, большое внимание нужно уделить визуальным характеристикам сайта, сделать его притягательным, интересным, удобным и запоминающимся
Перспективы развития подобного приложения огромны. Так как на сегодняшний день интернет заполонил жизнь обычного человека и такие интерактивные элементы как форумы, блоги, получение сертификатов, интеграция с социальными сетями, необходимы для сайта. Это привлечёт посетителей и даст рекламу в социальных сетях. А размещаемая на сайте реклама частично покроет расходы на поддержку и развитие сайта. Стоит так же рассмотреть возможность интеграции приложения в систему регистратуры конкретной больницы и записи к специалисту.
.6 Требования технического задания к автоматизированной системе
.6.1 Назначение разработки
Разрабатываемый программный продукт предназначен для диагностирования глазных заболеваний человека по описанию симптомов с помощью байесовских сетей доверия. Данный продукт может использоваться пользователями как консультант для автоматизации работы.
.6.2 Требования к функциональным характеристикам
Программный продукт должен обеспечивать выполнение следующих функций:
1.ввод логина и пароля для регистрации нового пользователя приложения;
2.авторизация для уже зарегистрированных пользователей;
.опрос пользователя о его жалобах;
.вывод результата диагностики по жалобам пациента;
.страница с описанием каждого диагноза, с его симптомами и факторами, которые могут повлиять на возникновение подобного заболевания;
.добавление нового диагноза, симптома или фактора**;
.добавление новых связей типа «диагноз-симптом», «диагноз-фактор»**;
.возможность ведения для каждого пользователя таблицы предварительных диагнозов**;
.добавление и удаление записей из таблицы предварительных диагнозов**;
.обучение сети через добавление записи из таблицы предварительных диагнозов**;
.возможность обучение сети из выводимого результата работы приложения**;
.наличие страницы с описанием приложения.
Входные данные от пользователей:
.логин и пароль;
2.список отмеченных симптомов и факторов;
.название симптома, фактора, диагноза**;
.диагноз с набором симптомов и факторов**;
.предварительный диагноз: диагноз, симптомы, факторы**;
.выбор предварительного диагноза**.
Выходные данные приложения:
.список наиболее вероятных диагнозов;
2.таблица с предварительными диагнозами**;
.описание диагнозов.
1.6.3 Стадии и этапы разработки
- техническое задание - формулирование назначения, необходимой функциональности, особенностей используемых технических средств;
эскизный проект - построение модели (внутреннее представление данных), вида (интерфейса пользователя), определение согласования между ними;
технический проект - реализация ввода входных данных, интерфейса пользователя;
рабочий проект - реализация всех необходимых функций для требуемого продукта, определенных в техническом задании, выполнение назначения продуктом согласно техническому заданию;
проведение испытаний программы.
.7 Теоретические сведения о байесовских сетях доверия
.7.1 Представление нечётких знаний
Для создания экспертной системы для диагностики глазных заболеваний человека необходимы эффективные, компактные и понятные способы представления информации, связанные с неопределённость. Так как при решении реальных задач часто возникают ситуации неопределенности, которые можно разделить на две категории: отсутствие достаточно полного и достоверного знания о предметной области и отсутствие возможности получить исчерпывающую информацию о конкретном состоянии среды, объекте, ситуации и т.п.
В первом случае речь может идти о плохо изученных явлениях, противоречивых теориях или нечетко сформулированных концепциях. Возможна также и противоположная ситуация: предметная область хорошо изучена, но эксперты предпочитают прибегать к неформальным, но более эффективным, эвристическим приемам, вместо использования рутинных точных методов.
Существуют и более прозаичные источники неопределенности знаний, любая информация обладает некоторой погрешностью, допустим процент ошибок, обусловленных «человеческим фактором». Возможно, также, что приходиться пользоваться информацией, полученной ранее, и которую невозможно не проверить, не дополнить не получить повторно.
Для преодоления проблемы неопределенности знаний в области искусственного интеллекта были разработаны различные методы, применяемые при построении экспертных систем. Наиболее неформальный подход - это использование коэффициентов уверенности, выражающих степень достоверности знания (пример использования MYCIN). Альтернативный способ заключается в использовании теории вероятности. Однако не ясно, как с помощью вероятности представить такие понятия как «часто», «иногда», «старый», «высокий» и т.п. Кроме того, теория вероятности подразумевает значительное количество вычислений, для обновления вероятностных оценок. Широкое распространение получили также аппараты нечеткой логики теории и функций доверия. Однако в последние годы внимание исследователей все больше привлекает теория вероятностей, с ее развитым и строго формализованным аппаратом.
Рассмотрим подробнее теорию вероятности для весьма эффективного её использования в представлении неопределённости знаний, а именно байесовскую сеть.
1.7.2 Байесовская сеть
Байесовская сеть (или байесова сеть, байесовская сеть доверия, англ. Bayesian network, belief network) - графическая вероятностная модель, представляющая собой множество переменных и их вероятностных зависимостей.
Математический аппарат байесовых сетей создан американским ученым Джудой Перлом, лауреатом Премии Тьюринга (2011 г.).
Формально, байесовская сеть - это направленный ациклический граф, каждой вершине которого соответствует случайная переменная, а дуги графа кодируют отношения условной независимости между этими переменными. Вершины могут представлять переменные любых типов, быть взвешенными параметрами, скрытыми переменными или гипотезами.
В силу того, что байесовская сеть - это полная модель для переменных и их отношений, она может быть использована для того, чтобы давать ответы на вероятностные вопросы. Это процесс вычисления апостериорного распределения переменных по переменным-свидетельствам называют вероятностным выводом. Это следствие дает универсальную оценку для приложений, где нужно выбрать значения подмножества переменных, которое минимизирует функцию потерь, например, вероятность ошибочного решения.[15]
Байесовская сеть позволяет получить ответы на следующие типы вероятностных запросов:
-нахождение вероятности свидетельства,
-определение априорных маргинальных вероятностей,
-определение апостериорных маргинальных вероятностей, включая:
§прогнозирование, или прямой вывод, - определение вероятности события при наблюдаемых причинах,
§диагностирование, или обратный вывод (абдукция), - определение вероятности причины при наблюдаемых следствиях,
§межпричинный (смешанный) вывод (intercausal inference) или трансдукция, - определение вероятности одной из причин наступившего события при условии наступления одной или нескольких других причин этого события.
-вычисление наиболее вероятного объяснения наблюдаемого события (Most probable explanation, MPE),
-вычисление апостериорного максимума (Maximum a-posteriori, MAP).
В основе байесовских сетей лежит теорема Байеса (формула перерасчета гипотез) теории вероятностей для определения апостериорных вероятностей попарно несовместных событий Bi по их априорным вероятностям:
.
Вероятности гипотезы называется апостериорной вероятностью события после наблюдения A, тогда как - априорная вероятность.
Разрабатывая концептуальную модель предметной области, инженер может увидеть, что предметная область хорошо описывается в терминах событий, вероятностей событий, а также причинно-следственных взаимосвязей между ними.
Например, в этих терминах может быть описана задача поиска причин неисправностей. Так - событие А может быть следствием каких-то событий Н. В терминах продукционной модели можно записать:
Если Н, то А, т.е. если происходит событие Н, то произойдет и событие А.
Есть два события Н и , которые составляют полную группу событий и несовместны. Формула полной вероятности события А имеет следующий вид:
,
где Р(Н), P() - априорная вероятность событий Н и соответственно; Р(А/Н), Р(А/) - условные вероятности того, что в результате Н произойдет А или в результате произойдет А.
В задаче диагностики А уже произошло, и ищется причина - произошло А по вине Н или по какой-то иной причине, т.е. .
Формула Байеса позволяет оценить апостериорные вероятности причин, в рассматриваемом случае Н и .
Если Р(Н) > Р(), то более вероятной причиной считается событие H, в противном случае не H.
В конкретных задачах для экспертной системы можно определить больше причин, чем две. Формула Байеса для случая, когда предполагается n несовместных событий, составляющих полную группу:
.
В диагностической системе взаимосвязь между разными событиями может быть более сложная - многоуровневая (рисунок 1.5).
Рисунок 1.5 - Граф связей между событием А и его причинами
Связи на рисунке 1.5 означают, что событие есть результат возможных причин -Е1 и Е2, т.е.:
Тогда диагностика причин происходит последовательно. Сначала вычисляются апостериорные вероятности причин события А:
Обозначим р - . Далее по формуле Байеса находятся вероятности и . В данном случае однозначной уверенности в возникновении нет, т.е. событие-причина произошло с вероятностью р. Отсюда и вероятность того, что или стали причинами для А, вычисляется с учетом р:
Таким образом, вычисляя все вероятности событий - вершин на графе и доходя до нижнего уровня, рассчитываются вероятности всех возможных причин. [16]
Существенным недостатком способа представления знаний на основе формулы Байеса является то, что необходимо заложить в систему много информации об априорных и условных вероятностях. Это трудоемко тем больше, чем более сложной является задача. В этом случае еще более разнообразен граф связей в БЗ (см. рисунок 1.5), который может расти как за счет уровней, так и за счет числа событий на верхних уровнях.
Значения априорных и условных вероятностей могут вычисляться на основе статистических сведений, или это могут быть экспертные оценки вероятностей. В последнем случае говорят о субъективной вероятности событий.
Помимо метода грубой силы (полного перебора) существует несколько подходов к построению алгоритмов. Наиболее значимые можно условно разделить на три категории:
.Упрощение модели. Эти методы пытаются упростить оригинальную модель. Тогда точные алгоритмы могут применяться эффективно в упрощенной сети для получения приближенного решения исходной задачи. Одни действия включают сокращение ребер первоначальной сети, соответствующие слабой зависимости в модели. Другие упрощения включают снижение мощности узлов или кликов. Также может быть включена установка параметров для простой логистической функции, используя вариационные методы.
2.Основанные на поиске. Пытаются найти наиболее вероятные частичные назначения с большой вероятностью совместного распределения вероятностей. Эти методы могут получить хорошую оценку сети практически при всех крайних условных вероятностях, т. е. когда вероятность в узле очень близка к нулю или единице. Трудно получить обоснованную точность при общей сети, которая не удовлетворяет этому условию.
.Стохастической выборки (Монте-Карло алгоритмы). Они порождают случайно выбранные назначения сети в соответствии с вероятностями в модели, а затем вычисляют частоту назначений для наблюдения, как приближение для задачи вывода. Выделяют следующие алгоритмы: алгоритмы формирования выборок с исключением, метод оценки выборок с учетом правдоподобия, алгоритм МСМС (англ. Markov chain Monte Carlo) и др.
Остальные алгоритмы ориентированы на Байесовские сети доверия специфического вида, что серьёзно ограничивает область их применения.[17]
.7.3 Наивный байесовский метод
Как известно, формула Байеса позволяет поменять местами причину и следствие в формулах с условными вероятностями:
.
Пусть в качестве A будет рассматриваться причина, а в качестве B - набор следствий (вектор предикторов) . В этих обозначениях формула Байеса перепишется следующим образом:
Но задачу можно упростить, если предположить, что все признаки независимы друг от друга. Тогда можно вероятность сложного события записать в виде произведения вероятностей каждого события в отдельности:
Намного проще найти n одномерных функций, чем одну n-мерную функцию. При увеличении размерности задачи (количества признаков) выигрыш ещё более заметен.
Таким образом, наивный байесовский метод - это простой вероятностный метод, основанный на применении Теоремы Байеса с (наивными) предположениями о независимости предикторов:
Несмотря на свою простоту, скорость и интерпретируемость результатов, наивно-байесовский алгоритм имеет недостатки:
-перемножать условные вероятности корректно только тогда, когда все входные переменные действительно статистически независимы; допущение этой независимости и обуславливает уточнение "наивно-" в названии алгоритма, хотя, по приведенным в примерам он показывает неплохие практические результаты даже при несоблюдении условия статистической независимости; корректно данная ситуация обрабатывается только более сложными методами, основанными на обучении байесовских сетей;
-невозможна непосредственная обработка непрерывных переменных - их требуется разбивать на множество интервалов, чтобы атрибуты были дискретными; такое разбиение в ряде случаев приводит к потере значимых закономерностей;
-наивно-байесовский подход учитывает только индивидуальное влияние входных переменных на результат классификации, не принимая во внимание комбинированного влияния пар или троек значений разных атрибутов, что было бы полезно с точки зрения прогностической точности, но значительно увеличило бы количество проверяемых комбинаций.[18]
1.7.4 Простейший пример байесовской сети
Предположим, у больного жалобы на быструю утомляемость (b) и на необходимость прищуриваться (n). Подобные симптомы могут быть вызваны амблиопией (a) или миопией (m).
Граф этой ситуации изображен на рисунке 1.6.
Вычислим вероятность каждого заболевания, условные вероятности представлены на рисунке 2.7.
=
Вероятность того, что у больного миопия 74% и амблиопия 49%.
Позже выясняется, что у его родственников были заболевания астенопией (g). Вычислим, используя новые данные: .
С использованием новых данных гипотеза заболевания изменилась.
Рисунок 1.6 - Схема БС с условными вероятностями
2. Проектная часть
.1 Проектирование модели байесовской сети
Для создания подобной системы необходима трехуровневая байесовская сеть: 1й уровень - факторы влияния, 2й - диагнозы, 3й - симптомы.
У каждой вершины в байесовской сети должна быть таблица условных вероятностей. Но рассматривать те случаи, когда истинны несколько диагнозов не корректно. Потому что существуют симптомы, соответствующие нескольким заболеваниям. Тогда, вместо того, чтобы выбрать одно заболевание, система предположит тот вариант, где эти заболевания вместе. Поэтому рассматриваться будут случаи только с одним заболеванием. Поэтому алгоритм вычисления - наивный байесовский метод.
Существуют два способа обучения байесовских сетей с помощью прецедентов: уточнение параметров сети, если структура сети известна, и выбор из множества моделей, применяя введенную метрику ко всей базе прецедентов.
В моей модели обучение будет происходить на основе уточнения и перерасчёта условных и априорных вероятностей. Для этого необходимо хранить статистику по заболеваниям, симптомам и факторам.
Данные, которые будет хранить статистика: количество больных с определённым заболеванием, количество больных с определённым симптомом, количество больных с определённым симптомом и заболеванием, количество больных с определённым фактором и заболеванием.
Формулы, по которым будут вычисляться вероятности:
где - симптом.
.
где - фактор.
Вычисление вероятности фактора стоит рассмотреть подробнее. Можно было бы вычислить вполне обычным способом , но так сделано для удобства подсчёта p(di) для расчёта по формуле Байеса: .
При добавлении нового случая заболевания будет обновляться статистика только по добавленному заболеванию, следовательно пересчитываться будут только вероятности для данного заболевания, его симптомом и факторов. Другие же вероятности симптомов данного заболевания; диагнозов, на которые влияют обновленные факторы; заболеваний с данными симптомами пересчитываться не будут. На малых наборах добавленных заболеваний погрешность будет велика. Но при увеличении статистической выборки погрешность будет стремиться к минимуму.
Блок-схема процесса работы ЭС представлена на рисунке 2.1.
Байесовскую сеть представляет собой массив диагнозов с ссылками на массивы симптомов и факторов. Для каждого диагноза вычисляется вероятность.
Пока сеть мала, можно решать задачу полным перебором, вычисляя вероятность для каждого диагноза. Но при увеличении размеров сети это станет неэффективным. Было решено сократить количество диагнозов, для которых будет вычисляться апостериорная вероятность. Так как у каждого диагноза есть симптомы (потомки). Если у диагноза не выбран ни один симптом, то очевидно, что вычислять его вероятность нет необходимости. Так же у диагнозов с большим количеством потомков, но выбранные пользователем симптомы соответствуют одному или двумя симптомам диагноза, будет высчитана низкая вероятность по сравнению с другими диагнозами. Поэтому было решено отсеивать те диагнозы, у которых процент отмеченных симптомов составляет 20% от общего числа потомков.
Рисунок 2.1 - Блок-схема работы ЭС
На рисунке 2.2 представлен алгоритм расчёта апостериорной вероятности для диагноза.
Рисунок 2.2 - Блок-схема расчёта апостериорной вероятности
Calc_post_for_diagnosis(d) - возвращает апостериорную вероятность для d, где d - это диагноз.
Для того чтобы высчитать вероятность, нужно учитывать неопределённость, то есть в диагнозе у тех симптомов, что не отмечены высчитать их с двумя значениями: установлен и не установлен. Для этого я модифицировала метод размещение с повторением (выборка с возвращением). Количество размещений должно быть равно 2k, где k - количество симптомов у диагноза. Но у диагноза у отмеченных симптомов уже установлено состояние: установлен, т.е. для i-того симптома уже установлено выбрано. Поэтому количество размещений будет 2k-g, где g - количество отмеченных симптомов у диагноза. Очевидно, что случай может выродиться в одно размещение в том случае, если отмечены все симптомы диагноза.
На рисунке 2.3 изображен алгоритм размещений симптомов.
Функция cppr(d, k, mas, mas_num, mdp) размещает симптомы в состояние выбран/не выбран и служит для расчёта апостериорной вероятности. Параметры: d - диагноз, k - место для размещения в массиве mas, mas - массив состоящий из 1 и 0, где 1 - симптом есть, 0 - симптома нет, mas_num - аналог массива mas, только симптомы выбраны пользователем, mdp - массив из 2х элементов, где mas0 - хранит вероятность при условии что d не случился, а mas1 - при условии, что d произошло.
Рисунок 2.3 - Блок-схема алгоритма размещений симптомов
Функция cp рассчитывает две вероятности для одной выборки и возвращает эти вероятности (при условии, что d - произошло и наоборот). Алгоритм работы функции представлен на рисунке 2.4.
Параметры функции cp(): d - диагноз, mas - выборка симптомов.
После того, как для определённых диагнозов подсчитаны вероятности, массив сортируется и диагнозы выводятся в порядке убывания вероятностей.
.2 Структура разрабатываемой системы
Основные компоненты обычной статической ЭС изображены на рисунке 2.5. В моей модели некоторых компонентов не будет: рабочей памяти и объяснительного компонента.
Рисунок 2.4 - Блок-схема для расчёта по одной выборке
Рисунок 2.5 - Структура ЭС
Структура разрабатываемой экспертной системы предоставлена на рисунке 2.5. В качестве диалогового компонента выступает страница с перечнем симптомов и факторов, решателя - скрипт с алгоритмом, базы знаний - база данных, компонента приобретения знаний - методы для добавления и обновления записей в БД.
При анализе поставленной задачи на разработке программного обеспечения для диагностирования глазных заболеваний наиболее удобной для использования оказалась следующая структура: на компьютере-сервере запущен сайт. Работа с пользователями ведется через сеть Интернет, что позволяет получить доступ к приложению в любой точке мира. База данных расположена на внешнем сервере, поэтому резко уменьшается вероятность потери пользовательской информации.
Архитектура системы представлена на рисунке 2.6.
Пользователь со своего персонального компьютера заходит на сайт приложения, где работает специальный скрипт. После получения запросов, скрипт их обрабатывает и возвращает пользователю результаты. При этом вся вычислительная нагрузка остается на внешнем сервере.
Алгоритм работы приложения.
Приложение работает следующим образом:
.компьютер-клиент заходит по url-адресу в браузере на стартовую страницу на сервере;
.запрос авторизации: нужно ввести логин и пароль для продолжения работы с приложением. Если логин и пароль введены неправильно, доступ к приложению запрещается и предлагается повторить ввод. Можно не проходить авторизацию;
.загружается главная страница; при вводе данных для работы приложения и нажатии на какие-либо кнопки выполняются вычисления и представляются пользователю в виде результатов или выполняются другие действия для обучения системы.
Рисунок 2.6 - Архитектура системы
Представления пользователя.
Суть данной диаграммы состоит в следующем: проектируемая система представляется в виде множества сущностей или актеров, взаимодействующих с системой с помощью, так называемых вариантов использования. При этом актером или действующим лицом называется любая сущность, взаимодействующая с системой извне. Это может быть человек, техническое устройство, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик. В свою очередь, вариант использования служит для описания сервисов, которые система предоставляет актеру.
Основным средством защиты информации в разрабатываемой системе является авторизация.
Авторизация - предоставление субъекту некоторых прав доступа к информационному объекту.
В системе присутствуют несколько ролей, которым выданы права на доступ и использование информации:
-Пользователь - имеет доступ к просмотру и поиску информации, диагностике.
-Эксперт - имеет то же права, что и пользователь. Так же может обучать систему через добавление новых вершин и рёбер в сеть и может вести таблицу предварительных диагнозов.
Далее, на рисунке 2.7. представлены варианты использования ПО.
Рисунок 2.7 - Диаграмма прецедентов.
Как правило, компьютеры и программы, входящие в составе любой системы, не являются равноправными. Некоторые из них владеют ресурсами, другие имеют возможность обращаться к этим ресурсам. Компьютер (или программу), управляющий ресурсом, называют сервером этого ресурса. Клиент и сервер какого-либо ресурса могут находиться как в рамках одной вычислительной системы, так и на различных компьютерах, связанных сетью.
Пользователи отправляют запросы к базе данных через сервер. Обратно из базы данных приходят данные на сервер и передаются пользователям. Архитектура системы изображена на рисунке 2.8. Для передачи данных используются следующие протоколы:
-HTTP (Hyper Text Transfer Protocol);
-SMTP (Simple Mail Transfer Protocol);
-MySQL Client/Server Protocol.
Рисунок 2.8 - Архитектура системы
2.3 Разработка инфологической модели базы данных
База данных состоит из сущностей. Сущность представляет собой совокупность данных, обладающих общими свойствами. При этом каждая сущность должна быть уникальна и не должна описывать несколько объектов реального мира. Это важное свойство всех реляционных баз данных. Сущности должно быть только существительным, так как оно характеризует не действие или процесс, объекты.
База данных требуется для хранения информации, которая будет использоваться в системе. От правильного проектирования базы данных зависит скорость работы и возможность дальнейшей модификации приложения. Нередки случаи, когда хорошо спроектированные программные системы рушились, в момент изменения схемы БД. Поэтому к процессу проектирования БД стоит подойти крайне серьезно, так как для изменения уже работающей базы данных нужны усилия на порядок выше, чем для проектирования «с нуля». Для хранения информации в базе данных необходимо предварительно определить имена и параметры данных, свести эту информацию в реляционные таблицы и установить между ними связи. Кроме того, необходимо задать первичные и вторичные ключи. Первичный ключ необходим для уникальной идентификации сущности, а вторичный - для обеспечения связей между сущностями.
Данная база данных должна содержать следующие сущности:
.Диагнозы
.Симптомы
.Факторы
.Предварительные диагнозы
.Пользователи
Отношение в самом общем виде представляет собой связь между двумя и более сущностями. Отношение должно быть однозначно поименовано. Существует множество видов связей, однако, самые распространенные из них - «один к одному» и «один ко многим». Остальные виды связей могут быть выражены через них.
Диаграммы сущность-связь (ERD) предназначены для разработки моделей данных и обеспечивают стандартный способ определения данных и отношений между ними.
Построим инфологическая модель базы данных: диаграмма «сущность-связь» (рисунок 2.9).
На рисунке 2.9 изображена инфологическая модель БД. Определим атрибуты сущностей. Для выражения связи «многие ко многим» в связи между диагнозы - симптомы, диагнозы - факторы, предварительные диагнозы - симптомы, предварительные диагнозы - факторы используются дополнительные таблицы, которые связаны с обоими таблицами связями «один ко многим». При этом в таблицах для связи диагнозов и симптомов, диагнозов и факторов будет использованы дополнительные поля, поэтому эти две таблицы тоже будут описаны как сущности.
Рисунок 2.9 - Инфологическая модель базы данных: диаграмма «сущность-связь»
Атрибуты сущностей
1.Диагнозы: название, описание, вероятность, количество больных.
2.Симптомы: название, количество больных.
.Диагноз-симптом: диагноз, симптом, количество больных с таким диагнозом и таким симптомом, p(s/d), p(s/-d).
.Факторы: название.
.Диагноз-фактор: диагноз, фактор, p(d/f), количество больных с таким диагнозом и при таком факторе.
.Пользователи: логин, пароль, тип.
.Предварительные диагнозы: диагноз, пользователь, комментарий.
На основе диаграммы «сущность-связь» строится логическая модель базы данных. Логическая модель БД представляет собой описание объектов предметной области, их атрибутов и взаимосвязей между ними в том объеме, в котором они подлежат непосредственному хранению в базе данных системы. А на основе логической модели строится физическая.
База данных данного программного обеспечения состоит из 9 таблиц. Рассмотрим каждую таблицу.
Таблица Diagnosis содержит информацию о диагнозах. Описание полей сущности diagnosis приведены в таблице 2.1.
Таблица 2.1 - Мнемоническое описание атрибутов сущности diagnosis.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключNameVarchar(200)Уникальный, не пустойDescriptionTextНе пустойProbabilityDoubleПо умолчанию 0, не пустойPatiensIntegerПо умолчанию 0, не пустой
Таблица Symptom содержит информацию о симптомах. Описание полей сущности symptom приведены в таблице 2.2.
Таблица 2.2 - Мнемоническое описание атрибутов сущности symptom.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключNameVarchar(200)Уникальный, не пустойPatiensIntegerПо умолчанию 0, не пустой
Таблица Diagnosis_Symptom содержит информацию о связи диагноз-симптом. Описание полей сущности diagnosis_symptom приведены в таб. 2.3.
Таблица Factor содержит информацию о факторах. Описание полей сущности factor приведены в таблице 2.4.
Таблица Diagnosis_Factor содержит информацию о связи диагноз-фактор. Описание полей сущности diagnosis_factor приведены в таблице 2.5.
Таблица 2.3 - Мнемоническое описание атрибутов сущности diagnosis_symptom.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключId_diagnosisIntegerВторичный ключId_symptomIntegerВторичный ключPatiensIntegerПо умолчанию 0, не пустойProbabilityDoubleПо умолчанию 0, не пустойNonprobabilityDoubleПо умолчанию 0, не пустой
Таблица 2.4 - Мнемоническое описание атрибутов сущности factor.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключNameVarchar(200)Уникальный, не пустой
Таблица 2.5 - Мнемоническое описание атрибутов сущности diagnosis_factor.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключId_diagnosisIntegerВторичный ключId_factorIntegerВторичный ключPatiensIntegerПо умолчанию 0, не пустойProbabilityDoubleПо умолчанию 0, не пустой
Таблица Users содержит информацию о пользователях. Описание полей сущности user приведены в таблице 2.6.
Таблица Preliminary_Diagnosis содержит информацию о предварительных диагнозах. Описание полей сущности preliminary_diagnosis приведены в таблице 2.7.
Таблица Preliminary_diagnosis_symptom содержит информацию о связи предварительный диагноз - симптом. Описание полей сущности preliminary_diagnosis_symptom приведены в таблице 2.8.
Таблица Preliminary_diagnosis_factor содержит информацию о связи предварительный диагноз - фактор. Описание полей сущности preliminary_diagnosis_factor приведены в таблице 2.9.
Таблица 2.6 - Мнемоническое описание атрибутов сущности user.
Наименование атрибутаТип атрибутаОграниченияLoginVarchar(100)Первичный ключPasswordVarchar(20)Не пустойTypeBooleanПо умолчанию 0, не пустой
Таблица 2.7 - Мнемоническое описание атрибутов сущности preliminary_diagnosis.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключId_diagnosisIntegerВторичный ключId_userVarchar(100)Вторичный ключCommentText
Таблица 2.8 - Мнемоническое описание атрибутов сущности preliminary_diagnosis_symptom.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключId_symptomIntegerВторичный ключId_diagnosisIntegerВторичный ключ
Таблица 2.9 - Мнемоническое описание атрибутов сущности preliminary_diagnosis_factor.
Наименование атрибутаТип атрибутаОграниченияIdIntegerПервичный ключId_diagnosisIntegerВторичный ключId_factorIntegerВторичный ключ
Ниже на рисунке 2.10 изображена ER-диаграмма базы данных.
Рисунок 2.10 - ER-диаграмма базы данных.
.4 Применение к другим областям медицинской диагностики
Очевидно, что ни база данных, ни структура приложения не привязаны к определённой области медицины, а именно к глазным заболеваниям. Можно сделать вывод, что данная система подойдёт к любой области медицинской диагностики, где можно применить предварительную диагностику по опросу пациента. Например, в психологии. Так же модель должна укладываться в трехуровневую модель сети «факторы -> диагнозы -> симптомы».
Но слишком обобщать медицинскую диагностику не следует. Данная система подойдет для общей диагностики организма, но это будет неэффективно. Потому что, во-первых зависимости во всеобщей диагностике довольно сложны и можно выделить 4й уровень и более, а во-вторых решение сети с большим количеством вершин и рёбер будет рассчитываться очень долго при условии, что метод расчёта не изменится.
2.5 Преимущества веб-приложения
приложение - это прикладное программное обеспечение, логика которого распределена между сервером и клиентом, а обмен информацией происходит по сети. Клиентская часть реализует пользовательский интерфейс, а серверная - получает и обрабатывает запросы от клиента, выполняет вычисления, формирует веб-страницу и отправляет её клиенту согласно протоколу HTTP.
Данный вид приложений имеет целый ряд особенностей, которые накладывают отпечаток на процессы их функционирования, разработки и поддержки:
-выполняются независимо от операционной системы клиента. При этом на него налагается требование кроссбраузерности, вытекающее из различной реализации браузерами стандартов HTML, CSS;
-представляют собой распределенную информационную систему и должны выдерживать максимальное число клиентские обращений;
-в процессе разработки открыты для тестирования с удаленных компьютеров, что оптимально для применения гибкой методологии разработки.
Актуальность исследований в области вопросов построения web-приложений обусловлена тем, что данный вид программного обеспечения:
-перспективен, как инструмент электронной коммерции;
-предоставляет широкие возможности социального взаимодействия;
-в обозримом будущем может составить реальную конкуренцию нативным приложениям мобильных операционных систем (Apple iOS, Google Android, Windows Phone). [23]
Современный компьютер постепенно превращается в веб-устройство и нет смысла в приложениях, которые будут устанавливаться на компьютер.
Преимущества разрабатываемого ПО как веб-приложения:
-портируемость;
-развёртывание;
-централизованное хранение данных и их обновление;
-распространение среди пользователей.
2.6 Обоснование выбора инструментария
Для написания самого приложения будет использован язык PHP 5.3.13, интегрированная среда разработки PHPStorm. Так же будут использоваться HTML5 и CSS3. Будет использован Denwer - набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов на локальном ПК. Denwer включает в себя: веб-сервер Apache, интерпретатор PHP, СУБД MySQL, панель phpMyAdmin для администрирования СУБД, система управления виртуальными хостами.
.6.1 Язык программирования PHP 5.3.13
PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools - «Инструменты для создания персональных веб-страниц») - скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
В области веб-программирования, в частности серверная часть, PHP - один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Язык PHP родился из потребности разрабатывать и поддерживать веб-сайты, обладающие динамической клиент-серверной функциональностью. В 1994 году Расмус Лердорф разработал набор сценариев с открытым исходным кодом на языке Perl, которые впоследствии были переписаны на языке C и превратились в то, чем является современный язык PHP.
Преимущества PHP:
-является свободным программным обеспечением, распространяемым под особой лицензией (PHP license);
-легок в освоении на всех этапах;
-поддерживается большим сообществом пользователей и разработчиков;
-имеет развитую поддержку баз данных;
-имеется огромное количество библиотек и расширений языка;
-может использоваться в изолированной среде;
-предлагает нативные средства организации веб-сессий, программный интерфейс расширений;
-является довольно полной заменой проприетарной среды ASP (Active Server Pages) от Microsoft;
-может быть развёрнут почти на любом сервере;
-портирован под большое количество аппаратных платформ и операционных систем.
Недостатки PHP:
-не подходит для создания десктопных приложений или системных компонентов;
-имеет слабые средства для работы с исключениями;
-глобальные параметры конфигурации влияют на базовый синтаксис языка, что затрудняет настройку сервера и разворачивание приложений;
-объекты передаются по значению, что смущает многих программистов, привыкших к передаче объектов по ссылке, как это делается в большинстве других языков;
-веб-приложения, написанные на PHP, зачастую имеют проблемы с безопасностью.[24]
2.6.2 PhpStorm
PhpStorm - это интегрированная среда разработки на PHP с интеллектуальным редактором, которая глубоко понимает код, поддерживает PHP 5.6, 5.5, 5.4 и 5.3 для современных и классических проектов, обеспечивает лучшее в индустрии автодополнение кода, рефакторинги, предотвращение ошибок налету и поддерживает смешивание языков.
Ключевые возможности:
-интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету;