Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Дипломная работа на тему «Информационная система диагностики отклонений в развитии у детей раннего возраста»

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

Написание диплома за 10 дней

Содержание

Введение

. Анализ существующих систем и подходов

.1 Программный комплекс Лонгитюд

.2 Программа KID RCDI для точной оценки развития ребенка

.3 Обследование по шкалам KID / RCDI

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

. Структура информационной системы

. Разработка базы данных

. Разработка алгоритмов

. Реализация программных модулей

.1 Программа администратора

.2 Веб приложение

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

. Отладка и экспериментальное тестирование

. Разработка технической документации

.1 Системные требования

.2 Инструкция по использованию программы администратора

.3 Инструкция по использованию Веб- приложения

Заключение

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

Введение

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

Мероприятия по внедрению компьютерных программ поддерживаются Распоряжением Правительства Российской Федерации от 1 ноября 2013 г. N 2036-р, «Об утверждении Стратегии развития отрасли информационных технологий в Российской Федерации на 2014-2020 годы и на перспективу до 2025 года». Впервые поставлены задачи информатизации в документе «Концепция развития системы здравоохранения в Российской Федерации до 2020 г.» (разделы проекта Концепции 2.7. и 4.2.8)

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

Одной из первых задач в любой программе раннего вмешательства является своевременная диагностика отклонений в развитии и определения группы риска. Согласно Приказу Министерства здравоохранения РФ от 21 декабря 2012г. № 1346н О Порядке прохождения несовершеннолетними медицинских осмотров, в том числе при поступлении в образовательные учреждения и в период обучения в них спланировано динамическое медицинское наблюдение с периода новорожденности с целью своевременной диагностики соматической патологии и отклонений в развитии.

Существует необходимость организовать электронный компьютерный скрининг психического развития детей раннего возраста с использованием «Интернет» — ресурсов. Рабочее место каждого врача оснащено компьютером, подключенным к Единой медицинской информационно-аналитической системе (ЕМИАС), что позволяет включить в медицинскую практику скрининговые методы выявления и ранней дифференциальной диагностики отклонений развития у детей. Одним из направлений программы по созданию в медучреждениях Единой медицинской информационно — аналитической системы (ЕМИАС) является ведение электронной карты. Возможности ЕМИАС позволяют разрабатывать и внедрять свои собственные стратегии на базах медицинских учреждений различного уровня в области электронного здравоохранения.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

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

алгоритм программа лонгитюд

1. Анализ существующих решений

.1 Программный комплекс Лонгитюд

Программный комплекс Лонгитюд предназначен для решения широкого спектра учебных, исследовательских и прикладных задач в области психологии, педагогики, социальной работы и смежных дисциплин [2].

Программный комплекс имеет несколько основных версий-комплектаций методик, а также дополнительные к ним блоки методик: Лонгитюд Б, Лонгитюд+, СпортКомплекс.

Лонгитюд Б. Базовая версия экспертной системы Лонгитюд, включающая в себя основной набор методик для работы с детьми дошкольного возраста (Шкала развития и др.).

Лонгитюд+. Расширенная версия системы Лонгитюд, включающая в себя все методики (в том числе для подростков и взрослых), кроме отдельно распространяемых блоков.

СпортКомплекс. Специальная версия, включающая в себя блок методик для работы спортивного психолога, разработанных совместно с В.К. Сафоновым. Данная версия может работать как самостоятельно, так и в составе других версий программного комплекса Лонгитюд [2].

Другие авторские методики, распространяемые в дополнительных блоках по соглашению с авторами: средства текстовой интерпретации для тестов Люшера, попарные сравнения, и некоторые другие, что отмечается в описании методики в методических материалах. В стандартном дистрибутиве Лонгитюд+ могут находиться только демонстрационные версии методик дополнительных блоков. Методический состав разных версий-комплектаций и дополнительных блоков программы также представлен в таблице сравнения версий <#»justify»>Таблица 1.1 — Стоимость программы Лонгитюд Б

Период действия лицензии Лонгитюд Б1 год *, только лицензия36502 года *, только лицензия7290Бессрочно, только лицензия14580Бессрочно, стандартный комплект16360

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

Внешний вид программы для регистрации групп пользователей представлен на рисунке 1.1.

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

1)клавиша вызова меню сервисных функций (общая информация о работе с программой, справочные материалы и функции);

Рисунок 1.1 — Лонгитюд Б, программа регистрации

2)клавиша вызова меню работы с данными групп;

3)клавиша вызова меню работы с данными отдельных обследуемых;

)список групп обследуемых;

)список состава группы, выделенной в списке групп;

)клавиша добавление обследования;

)список обследований, проведенных с тем, кто выделен в списке обследуемых;

)клавиша вызова меню работы с данными отдельных методик;

)список методов, включенных в обследование, выделенное в списке выше;

)редактор ввода подстроки для поиска обследуемого (это может быть часть ФИО или даты рождения — часть искомой строки в списке обследуемых);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

)переключатель списка — алфавитный / по порядку поступления;

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

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

Форма для регистрации пациента представлена на рисунке 1.2.

Рисунок 1.2 — Форма для регистрации пациентов

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

После регистрации пользователя для пациента нужно выбрать метод обследования, представлено на рисунке 1.3.

Рисунок 1.3 — Выбор метода обследования

После выбора метода, нужно запустить тест, щелкнув по строке два раза, либо нажав на кнопку «Метод». Форма для прохождения теста представлена на рисунке 1.4.

Рисунок 1.4 — Форма для прохождения теста

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

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

В программе используются локальные базы данных в виде электронных таблиц, что порождает дополнительные проблемы при работе по сети. Далее следует цитата одной из рекомендаций авторов программы «ВНИМАНИЕ! Одновременная работа со списками или анкетными данными одной и той же базы с разных компьютеров может вызвать повреждение или замещение данных…» [2]. Эта фраза говорит о невозможности многопоточного использования программы без риска потери данных.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

Стоимость программы при бессрочном ее использовании составляет 16360 рублей, если учесть, что в поликлинике работает примерно 15 педиатров, которым необходимо программное обеспечение для диагностики отклонений в развитии у детей раннего возраста, то стоимость становится равна:

∙15=245400 руб.

Такая сумма для одной поликлиники, по- моему мнению, слишком высока, так как это государственное предприятие и вряд ли ее запланируют в бюджет.

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

.2 Программа KID RCDI для точной оценки развития ребенка

Программа KIDRCDIразработана в Санкт- Петербургском институте раннего вмешательства [3]. В предлагаемый программный пакет входит:

1)руководства по оценке развития детей на основе шкал KID и RCDI: Чистович И., Рейтер Ж., Шапиро Я. Руководство по оценке развития младенцев до 16 месяцев на основе русифицированной шкалы KID. 2-е издание Санкт-Петербург.: Институт раннего вмешательства, 2000.Шапиро Я., Чистович И. Руководство по оценке уровня развития детей от 1 года 2 месяцев до 3 лет 6 месяцев по русифицированной шкале RCDI. СПб.: Институт раннего вмешательства, 2000;

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

Программу можно приобрести для некоммерческого использования. Стоимость программного пакета составляет 25 500 рублей. В эту стоимость входит также стоимость доставки программы [3].

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

.3 Обследование по шкалам KID / RCDI

Данный продукт не является приложением. Шкалы KID/RCDI-2000 представляют собой вопросники, описывающие разнообразные типичные формы поведения детей первых лет жизни. Вопросники заполняют родители ребенка или другие постоянно общающиеся с ребенком люди [4].

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

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

2. Разработка технических требований и постановка задач выпускной квалификационной работы

Целью работы является создание информационной системы, позволяющей проводить диагностику отклонений в развитии детей раннего возраста.

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

1)слух;

2)зрение;

)крупная моторика;

)мелкая моторика;

)игра;

)импрессивная речь;

)экспрессивная речь;

)интеллект;

)коммуникация;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

)конструирование;

)самообслуживание.

Тест необходимо проходить регулярно, с определенной периодичностью. До одного года она составляет один месяц, от года до двух лет — три месяца, от двух до трех лет — шесть месяцев.

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

Для создания такой системы нужно учесть следующие требования:

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

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

)Результаты тестирования необходимо сохранять в базу данных учреждения, где будет использоваться данная программа;

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

Также необходимо разработать приложение, для регистрации пациента на прохождение теста. Оно так же должно быть платформенно- независимым и работать на популярных операционных системах (Windows, Unix-подобные, Mac). Для этого предлагается использовать язык программирования Java, так как программы, написанные на нем, полностью соответствуют данным требованиям.

В приложении предусмотреть функции:

1)авторизации администратора программы для работы с базой данных учреждения;

2)по добавлению клиента в существующую базу данных;

)по наделению его определенными правами, позволяющими использовать Web-интерфейс с использованием логина и пароля;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

)по изменению информации о клиенте в случае некорректного заполнения анкеты;

)поиска пациента в базе данных для просмотра деталей регистрации;

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

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

3. Структура информационной системы

Структуру разрабатываемой информационной системы можно представить в виде схемы, реализующей трехуровневую модель клиент-сервер, представлено на рисунке 3.1.

Рисунок 3.1 — Структура ИС

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

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

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

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

Каждый из этих элементов системы стоит рассмотреть подробнее.

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

Программа администратора состоит из следующих частей, представлено на рисунке 3.2.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Рисунок 3.2 — Структура программы администратора

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

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

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

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

Концепция MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента: модель, вид, контроллер.

Модель (англ. <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.

Представление, вид (англ. <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) <https://ru.wikipedia.org/wiki/%D0%9E%D0%BA%D0%BD%D0%BE_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)> с графическими элементами.

Контроллер (англ. <https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA> Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.

Необходимо отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели [5].

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

Данная структура так же, как и приложение администратора, реализует концепцию MVC. В ней за отображение информации отвечает jsp страница. Контроллером и моделью выступают java классы.

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

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

4. Разработка базы данных

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

База данных — это именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

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

1)системный анализ и словесное описание информационных объектов предметной области;

2)проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах ER-модели;

)даталогичеcкое или логическое проектирование БД, то есть описание БД в терминах принятой даталогической модели данных;

)физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

Под предметной областью понимают некоторую область человеческой деятельности или область реального мира, подлежащих изучению для организации управления и автоматизации [6].

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

Каждый пользователь данной системы характеризуется следующими параметрами:

1)номер страхового полиса

2)фамилия

)имя

)отчество

)дата рождения.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Вопросы, для прохождения теста будут иметь такие характеристики:

1)номер вопроса;

2)область исследования (слуховое восприятие, мелкая моторика…);

)категория вопроса (связана с возрастом пациента, например, поворачивает голову и находит источник звука глазами в возрасте 3 месяца);

)формулировка вопроса;

)стоимость вопроса в баллах за правильный ответ;

)подсказка, если вопрос сложный, либо описание техники выполнения задания.

Результаты ответов будут сохраняться в следующей форме:

7)номер записи;

8)номер пациента;

)номер вопроса;

)возраст, в котором пациент проходил тест;

)баллы, полученные за данный ответ.

Необходимо предусмотреть следующие ограничения на информацию в системе:

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

1)не может быть двух пользователей с одинаковым номером страхового полиса;

)у пользователя обязательно должны быть заданы номер полиса и дата рождения;

3)не может быть двух вопросов с одинаковым номером;

4)каждая область исследования может содержать один или несколько вопросов, но каждый вопрос может относиться только к одной области;

5)пользователь не может повторно ответить на вопрос, если в этом возрасте от него уже был получен ответ, вне зависимости от набранных баллов.

Кроме того, к самой базе данных выдвигаются следующие требования:

6)база данных должна быть надежной и способной обслуживать до нескольких десятков пользователей одновременно, без риска потери или замещения данных;

7)доступ к базе данных для пользователей и администраторов должен быть настраиваемым в зависимости от политики безопасности;

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

)база данных должна быть устойчивой к сбоям и иметь возможность резервирования и восстановления информации средствами СУБД или иными средствами.

С данной информационной системой должны работать следующие группы пользователей:

1)администраторы БД;

2)специалисты (неврологи, терапевты);

)пользователи.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

При работе с БД специалисты должны иметь возможности:

1)добавлять пользователей в БД;

2)наделять их правами для чтения вопросов и добавления ответов;

)изменять информацию о пользователях;

)получать результаты тестов пользователей.

При работе с БД пользователи могут:

1)считывать вопросы;

2)вносить результаты ответов.

Администраторы имеют полный доступ к базе данных для настройки таблиц и добавления в систему специалистов.

В качестве системы управления базой данных я выбираю MySQL сервер [7]. — свободная реляционная система управления базами данных, разрабатываемая компанией Oracle.

Основные достоинства этой СУБД:

1)MySQL — это программное обеспечение с открытым кодом. Его можно получить по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями.

2)MySQL поддерживает большое количество типов таблиц, например, InnoDB, поддерживающие транзакции на уровне отдельных записей.

)Совместимость со всеми популярными операционными системами, такими как Windows, Linux, Unix, Mac OS и многими другими.

)MySQL поддерживается популярными интерфейсами для подключения к базам данных, такими как ODBC и JDBC.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

)Возможность перехода с MySQL на альтернативную СУБД при необходимости.

)Наличие встроенного клиента для подключения к серверу и настройки базы данных.

)Наличие большого количества документации на русском языке.

На основании перечисленных требований к базе данных можно составить ее модель в виде диаграммы, отражающей отношения сущность-связь между объектами. Такая модель получила название ER или ERM- модели (entity-relationship model) [8].

На рисунке 4.1 изображена диаграмма с применением нотации под названием «Inverted Arrow» («перевернутая стрелка»), ныне известная под названием «Crows Foot» («воронья лапка»), предложенная Гордоном Эверестом [8].

Рисунок 4.1 — ER-диаграмма БД

Согласно данной нотации, сущность изображается в виде прямоугольника, содержащего её имя, выражаемое существительным. Имя сущности должно быть уникальным в рамках одной модели. При этом имя сущности — это имя типа, а не конкретного экземпляра данного типа. Экземпляром сущности называется конкретный представитель данной сущности.

Связь изображается линией, которая связывает две сущности, участвующие в отношении. Степень конца связи указывается графически, множественность связи изображается в виде «вилки» на конце связи. Модальность связи так же изображается графически — необязательность связи помечается кружком на конце связи. Именование обычно выражается одним глаголом <https://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B3%D0%BE%D0%BB> в изъявительном наклонении настоящего времени: «Имеет», «Принадлежит» и т. д.; или глаголом с поясняющими словами: «Включает в себя», и т.п. Наименование может быть одно для всей связи или два для каждого из концов связи. Во втором случае, название левого конца связи указывается над линией связи, а правого — под линией. Каждое из названий располагаются рядом с сущностью, к которой оно относится.

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

Рассмотрим каждый объект диаграммы подробнее.

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

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

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

В данной модели отношения между информационными объектами соответствуют связям один ко многим и многие ко многим.

Связь один ко многим — это такое отношение, в котором каждому экземпляру одного ИО может соответствовать несколько экземпляров другого.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Связь многие ко многим — это такое отношение, в котором каждому информационному объекту А может соответствовать несколько объектов B, а каждому объекту B может соответствовать несколько объектов A. Как правило, такую связь разбивают на несколько информационных объектов, чтобы в результате получить две или более связи один ко многим.

Как видно из диаграммы, сущность Users связана с сущностью Result посредством отношения один ко многим по ключу Id, причем белый кружок у вилки обозначает, что отношение необязательно. То есть, если таблица пользователей содержит запись о пользователе, это не значит, что в таблице результатов обязательно должна присутствовать запись с идентификационным номером этого пользователя, ведь он мог еще не начать тест. Аналогичная ситуация обстоит со связью Questions-Results. Данные отношения говорят о том, что сущность Users имеет связь многие ко многим с сущностью Questions через сущность Results.

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

Существует несколько нормальных форм, однако я приведу список наиболее популярных:

1)первая нормальная форма 1NF;

2)вторая нормальная форма 2NF;

)третья нормальная форма 3NF;

)нормальная форма Бойса-Кода BCNF;

)четвертая нормальная форма 4NF;

)пятая нормальная форма 5NF.

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

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

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

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

5. Разработка алгоритмов

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

1)получение допустимого результата;

2)безрезультатное завершение алгоритма;

)«зацикливание» (незавершение) алгоритма за конечное время.

Алгоритм содержит указания о том, какие операции над исходными данными и в какой последовательности необходимо выполнить, чтобы получить определенный результат за конечное количество действий [9].

К алгоритмам предъявляются следующие требования:

1)определенность;

2)результативность;

)массовость;

)дискретность.

Определенность подразумевает однозначное толкование вычислительных процессов.

Результативность заключается в возможности получить определенный результат вычислений для допустимых исходных данных за ограниченное количество шагов.

Массовость означает то, что по одному алгоритму можно вычислять множество однотипных задач.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Дискретность означает возможность расщепления определенного вычислительного процесса на отдельные этапы, элементарные операции.

Алгоритм всегда ориентирован на конкретного пользователя. Если пользователем является ЭВМ, то алгоритм описывают на каком-либо языке программирования. Если алгоритм ориентирован на человека, то его можно описать несколькими способами. Существует несколько способов изображения алгоритмов: словесное описание, графическое описание и псевдокод. При словесном описании алгоритмы записываются в виде текста с формулами по пунктам, при этом используется человеческий язык. Псевдокод — это язык описания алгоритмов, использующий ключевые слова языков программирования, но опускающий подробности и специфический синтаксис. Графическое описание представляет собой совокупность геометрических фигур, соединенных линиями. Такое изображение получило название «блок-схема». Фигуры могут быть различных форм, каждая из которых обозначает определенный тип выполняемой операции. Для описания объемных по содержанию алгоритмов удобнее всего использовать блок-схемы, так как они более наглядны.

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

В программе администратора стоит рассмотреть следующие алгоритмы:

1.алгоритм регистрации пользователя;

2.алгоритм генерации пароля;

.алгоритм тестирования;

Алгоритм регистрации пользователя представлен на рисунке 5.1. Он позволяет создавать нового пользователя, а также обновлять данные у уже существующего.

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

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

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

После создания пароля запускается алгоритм его шифрования. После шифрования программа отправляет запрос в базу данных на поиск пользователя с параметрами, введенными в поля администратором.

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

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

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

6. Реализация программных модулей

Для реализации программных модулей я выбрал язык Java и среду для разработки NetBeans.

Java — это объектно-ориентированный язык программирования, поддерживающийся в настоящее время компанией Oracle. Его преимущества в том, что продукты, написанные на этом языке, работают на виртуальной Java-машине, которые, в свою очередь, разработаны для большинства современных операционных систем компьютеров, поэтому разрабатываемая информационная система будет независимой от использующейся операционной системы. Объектно-ориентированный подход к разработке позволяет писать приложения, которые легче разрабатывать и поддерживать сразу несколькими программистами, так как части программы могут быть написаны независимо друг от друга, остается только соединить их в единое целое. Кроме этого, так как язык Java очень популярен, для него написано огромное количество библиотек, импортировав которые, можно сразу использовать необходимый компонент, даже не вникая, в его внутреннюю логику, поэтому процесс разработки значительно упрощается. Возможно, скорость работы приложения, написанного на данном языке, будет чуть ниже, нежели на C++, но это связано с тем, что его компилятор выполняет дополнительные проверки и не позволяет совершать ошибки во время написания кода, такие как выход за пределы массива, или использование неинициализированных переменных, при обращении к которым можно бы было перезаписать важную информацию в оперативной памяти, и, как следствие, повредить программу, или даже саму операционную систему, на которой программа запущена. Таким образом, выбранный язык еще и более безопасен [10].

Среда разработки NetBeans так же поддерживается компанией Oracle. Она бесплатна и позволяет писать программы на самых популярных языках, таких как Java, Python, C, C++, PHP, JavaScript и других. Данная среда имеет удобный русскоязычный интерфейс, подсветку синтаксиса, в зависимости от используемого языка, графический редактор для написания интерфейса разрабатываемой программы, позволяет работать с различными базами данных, серверами приложений, облачными технологиями. Программа позволяет легко подключать сторонние библиотеки и регулярно получает обновления. Среда разработки имеет встроенный отладчик, позволяющий построчно отслеживать работу алгоритма, отлавливать ошибки и, благодаря этому, создавать качественный продукт. На рисунке 6.1 представлен снимок экрана с запущенным окном среды разработки версии 8.1.

Рисунок 6.1 — Среда разработки NetBeans 8.1

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

6.1 Программа администратора

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

При запуске программы на экран выводится окно для ввода пароля, представлено на рисунке 6.2.

Рисунок 6.2 — Окно для ввода пароля

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Вывод окна реализован следующим кодом:

private static String InputPass(){field = new JPasswordField();.showConfirmDialog(null, field,»Введитепароль», JOptionPane.OK_CANCEL_OPTION);=new String(field.getPassword());;

}

Для подключения к базе данных используется следующий алгоритм:

.forName(«com.mysql.jdbc.Driver»);connection = DriverManager.getConnection(url,user,password);statement=connection.createStatement();result=.executeQuery(«Select * from bolnica.questions»);

Здесь я подключаю драйвер JDBC, затем создаю соединение, а в объект ResultSet получаю данные из БД в соответствии с отправленным запросом. Этот алгоритм часто используется в программе, меняются только запросы на внесение, изменение или получения данных из базы.

Если программа запущена впервые, то будет выведено сообщение о том, что программа не настроена. Необходимо будет нажать на «Настройки» в меню «Файл», там прописать ip-адрес сервера, порт для подключения и постоянный логин, представлено на рисунке 6.3. Эти настройки сохранятся в файл конфигурации и будут доступны программе при следующем запуске.

Рисунок 6.3 — Настройки формы администратора

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

При успешном соединении будет показано главное окно программы. В правой части панели красный индикатор станет зеленым и над ним появится надпись: «Соединено!». В окне программы следует заполнить поля «Номер полиса», «Фамилия», «Имя», «Отчество» и «Дата рождения», представлено на рисунке 6.4.

Проверка корректности ввода информации производится при нажатии кнопки «Добавить». Здесь обрабатываются поля «номер полиса» и «дата рождения».

Проверка корректности ввода номера полиса производится попыткой перевести введенную строку в число, если возникнет ошибка, значит, присутствуют буквы и на экране появится сообщение об ошибке ввода, поле с ошибкой подсветится розовым цветом, представлено на рисунке 6.5. Код проверки:

{number=Long.parseLong(tf1.getText());}(NumberFormatException exc){ if(!tf1.getText().equals(«»)){InputError();tf1.setBackground(Color.PINK);} if(tf1.getText().equals(«»)){tf1.setText(tf1.getName());tf1.setBackground(Color.PINK);}}

Рисунок 6.5 — Проверка корректности ввода

Также по следующему алгоритму проверится выбор даты рождения:

int day=Integer.parseInt(String.valueOf(cb1.getSelectedItem()));month=cb2.getSelectedIndex();years=currentYear-cb3.getSelectedIndex();inputDate=Calendar.getInstance();.set(years, month, day); if(inputDate.getTimeInMillis()>Calendar.getInstance().getTimeInMillis()||

(((Calendar.getInstance().getTimeInMillis()-inputDate.getTimeInMillis())/(1000*60*60*24))>(365*3+1)))

{JOptionPane.showMessageDialog(null, «Невернаядата», «Ошибка», .ERROR_MESSAGE); return; }

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

static String generatePassword(){sb=new StringBuilder();symb1, symb2, symb3;(int i=0;i<6;i++){=(char) (65+(Math.random()*26));=(char) (97+(Math.random()*26));=(char) (48+(Math.random()*10));r=new Random();vybor=r.nextInt(3)+1;(vybor){1: sb.append(symb1);;2: sb.append(symb2);;3: sb.append(symb3);;

}

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

returnsb.toString();

}

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

java.security.*;class Sha {

public static String hash256(String data) throws NoSuchAlgorithmException {

MessageDigest md = MessageDigest.getInstance(«SHA-256»);

md.update(data.getBytes());

return bytesToHex(md.digest());

}

public static String bytesToHex(byte[] bytes) {

StringBuffer result = new StringBuffer();

for (byte byt: bytes) result.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1));

returnresult.toString();

}

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

String hashPass=hash256(hash256(pass+pass.substring(pass.length()-2)));

Далее выполняется операция поиска пользователя в базе данных, алгоритм реализован следующим образом:

private static boolean isUserExist(long id){

boolean result=false;

try {

String query=String.format(«Select * from Mysql.user where

user=%d»,id);

MyConnection.openConnection(false);

ResultSet r=MyConnection.statement.executeQuery(query);

while(r.next()){

if(r.getString(«User»).equals(String.valueOf(id))){

result=true;

} }

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

} catch (SQLException ex){.getLogger(MyQuery.class.getName()).log(Level.SEVERE, null, ex);}

return result;

}

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

Если пользователь не найден, выполнится добавление пользователя в базу данных следующим кодом:

(isUserExist(id)==false){.statement.executeUpdate(createUser(id,hash256(hash256(pass+pass.substring(pass.length()-2)))));

MyConnection.statement.executeUpdate(grantPrivileges(id, «Select»));

MyConnection.statement.executeUpdate(grantPrivileges(id, «SelectOnUsers»));

MyConnection.statement.executeUpdate(grantPrivileges(id, «Insert»));

}

private static String createUser(long id,String pass){

String persent=»%»;

String priv=String.format(«Create user ‘%d’@’%s’ identified by ‘%s’ ; n», (int)id,persent,pass);

return priv;

private static String grantPrivileges(long id,String typeOfPrivileges){

String priv=»»;

String persent=»%»;

if(typeOfPrivileges.equals(«Select»)){priv=String.format(«GRANT on bolnica.questions to ‘%d’@’%s’;»,(int)id,persent);}

else if(typeOfPrivileges.equals(«SelectOnUsers»))

{priv=String.format(«GRANT SELECT (id, name, birthday) on .users to ‘%d’@’%s’;»,(int)id,persent);}

else if(typeOfPrivileges.equals(«Insert»)){priv=String.format(«GRANT , SELECT on bolnica.results to ‘%d’@’%s’;»,(int)id,persent);}

returnpriv;

}

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

if(isUserExist(id)==true){.statement.executeUpdate («Drop USER ‘» + id + «‘@’%’;»); …}

На этом алгоритм добавления пользователя завершается, программа выводит на экран сообщение с паролем для пользователя и возвращается в исходное состояние.

Если перейти на вкладку «поиск» в главном окне, то на ней будет показана строка для ввода номера полиса, заполнив которую и нажав «поиск», можно будет найти в БД пациента и сформировать по нему график результатов, представлено на рисунке 6.6.

Алгоритм поиска выглядит точно так же, как и при добавлении пользователя в базу данных. Если пользователь найден, то станут активны кнопка «сформировать» и меню выбора стиля графика. На данный момент доступны графики в виде точек, соединенных линиями и в виде плоских и объемных столбиков. В перспективе планируется добавить график в виде паутинки и сделать возможным взаимодействие с графиком через нажатия на диаграмму, чтобы просмотреть историю ответов на конкретные вопросы, а также, нажав на интересующую область из списка, сформировать график только по ней.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Рисунок 6.6 — Панель поиска пользователя

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

Рисунок 6.7 — График

Программа для прохождения теста написана так же на языке программирования Java. Пользователь, перейдя по адресу, на котором расположен тест, увидит страницу, на которой необходимо будет авторизоваться, заполнив поля «Номер полиса» и «Пароль», представлено на рисунке 6.8. Эти данные пользователь получит у своего специалиста (невролога, педиатра).

Алгоритм авторизации такой же, как и в программе администратора, поэтому дублировать код не имеет смысла.

Рисунок 6.8 — Авторизация пользователя

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

Реализация поиска вопроса в БД выглядит так:

static synchronized void createQuery(HttpSession session)

throws ClassNotFoundException, SQLException{

//————СоздаюподключениекБД—————

Class.forName(«com.mysql.jdbc.Driver»);

Connection conn=null;

conn=DriverManager.getConnection(url,

(String)session.getAttribute(«user»),

(String)session.getAttribute(«password»));

Statement statement=conn.createStatement();

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

String user=(String)session.getAttribute(«user»);

int vozrast=takeAge(session);

int period=0;

//—Установка периодов прохождения теста—-

if(vozrast<12){period=1;}

else if(vozrast>=12&&vozrast<24){period=3;}

else if(vozrast>=24&&vozrast<36){period=6;}

session.setAttribute(«period», period);

String ExecuteCommand;

//—Создание запроса для поиска соответствующего вопроса—

ExecuteCommand=»Select bolnica.questions.idQuestions,»

+ » bolnica.questions.Question, bolnica.questions.Power,»

+ » bolnica.questions.Tips, bolnica.questions.Category from »

+ «questions left join (Select idQuestions, result »

+ » from results where id=»

+ user

+ «) as tab1 on questions.idQuestions=tab1.idQuestions»

+ » where category =»

+ vozrast

+ » and result is null;»;

ArrayList test=new ArrayList();

System.out.println(ExecuteCommand);

ResultSet res =statement.executeQuery(ExecuteCommand); (res.next()){

test.add(res.getString(1));

test.add(res.getString(2));

test.add(res.getString(3));

test.add(res.getString(4));

test.add(res.getString(5));

}

if(conn!=null)conn.close();

//—-Проверка доступности вопросов в списке——-

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

if(test.size()>0){session.setAttribute(«testIsStarted»,true);

session.setAttribute(«avalQuest»,true);

session.setAttribute(«i», 0);}

else{session.setAttribute(«avalQuest»,false);}

session.setAttribute(«text»,test);

}

Если вопросы получены, то они последовательно выводятся на страницу. Когда список будет пустым, выполнится проверка результатов и, если необходимо, поиск вопросов, представлено на рисунках 6.9-6.12.

Рисунок 6.9 — Исходный код проверки ответов

Рисунок 6.10 — Продолжение исходного кода проверки ответов

Рисунок 6.11 — Продолжение исходного кода проверки ответов

Рисунок 6.12 — Продолжение исходного кода проверки ответов

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

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

Рисунок 6.13 — Страница вопросов

Таким образом, программа администратора и Web-приложение полностью написаны на языке программирования Java. Такая реализация является удобной, так как для написания программы достаточно уверенно владеть только этим языком и знать основы SQL, HTML, CSS. Такие требования позволяют следить за работой системы одному специалисту.

7. Отладка и экспериментальное тестирование

Существует несколько классификаций по виду тестирования:

1)модульное тестирование — проверка отдельных функций;

2)интеграционное тестирование- проверка совместной работы нескольких модулей;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

)системное тестирование — проверка работы системы в целом.

Кроме этого, есть классификация по области тестирования:

)функциональное тестирование;

2)тестирование производительности;

)тестирование удобства использования;

)тестирование безопасности.

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

Для проверки некоторых модулей программы я написал тесты, используя библиотеку JUnit, которая специально для разработана для языка Java, представлено на рисунке 7.1.

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

Рисунок 7.1 — Модульное тестирование

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

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

Для оценки производительности работы программы я использовал статистику среды разработки, показывающую время выполнения метода, а также статистику обработки запросов в СУБД. Например, для того чтобы отследить насколько верно написан SQL-запрос необходимо перед соответствующей командой ввести слово «explain», и результатом такого запроса уже будет количество итераций по таблице и время обработки запроса, представлено на рисунке 7.2. Благодаря этому можно подобрать наиболее оптимальные команды для обращения к базе данных. Так я смог обнаружить, что при заполненной таблице результатов в пятьсот тысяч строк, обработка запроса с соединением таблиц выполнялась за 7,4 секунды, а это критически много. Проиндексировав соответствующие таблицы, эта же команда стала выполняться за 0,04 секунды [11].

Рисунок 7.2 — Проверка производительности

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

При тестировании безопасности необходимо уделить внимание трем аспектам:

1)конфиденциальность;

2)целостность;

)доступность.

Конфиденциальность обеспечивает сокрытие определенных ресурсов. В разрабатываемой информационной системе такими ресурсами являются пользовательские данные. Защита этих данных обеспечивается ограниченным доступом в настройках СУБД, а также ограниченным функционалом самого клиента, с помощью которого пользователь обращается к базе данных. Получить доступ к ней напрямую нельзя, так как пароль пользователя является фиктивным. Узнать алгоритм, по которому пароль преобразуется, невозможно, не получив при этом исходные данные программы [12].

За целостность базы данных отвечает СУБД и настроенная архитектура базы данных. Она не позволяет вносить некорректные значения, или удалять части связанных данных. Клиентское приложение так же вносит данные по заданным шаблонам, обеспечивая дополнительный контроль.

Доступ к данным разрешен только авторизованным пользователям, наделенным правами, соответствующими их статусу по отношению к базе данных. Так в системе предусмотрены три вида пользователей:

1)администратор БД;

2)специалист (невролог, терапевт), регистрирующий пациентов и анализирующий результаты;

)пользователь (тестируемый пациент).

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

8. Разработка технической документации

.1 Системные требования

Основным требованием к системе для работы программы администратора является наличие виртуальной Java-машины. Загрузить ее можно с официального сайта по ссылке <#»justify»>Для работы клиентской части Web- приложения (прохождения онлайн теста) необходим браузер и выход в интернет.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

.2 Инструкция по использованию программы администратора

При запуске программы необходимо пройти авторизацию, представлено на рисунке 6.2. Если программа не настроена, будет выведено соответствующее сообщение, послу чего нужно в меню «Файл» выбрать пункт «Настройки», представлено на рисунке 6.3. Здесь нужно заполнить поля «Адрес сервера» в виде «127.0.0.1», «Порт» для доступа к БД в моем случае «3306» и «Имя пользователя», затем нажать кнопку «Сохранить».

В главном окне программы, представлено на рисунке 6.4, для добавления пользователя следует заполнить все поля и дату рождения, затем нажать кнопку «Добавить». Если пользователь уже существует в БД, то будет задан вопрос о внесении изменений. На экран будет выведен шестизначный пароль для пользователя, который необходимо записать. Логином для пользователя будет номер его полиса.

Для получения результатов тестирования нужно перейти на вкладку «Поиск», заполнить поле «Номер полиса» и нажать кнопку «Найти», представлено на рисунке 6.6. Если пользователь найден, то краткая информация о нем будет выведена в данное окно и станет активной кнопка «Сформировать». Рядом с ней расположен выпадающий список для выбора вида графика. Сформированный график будет выведен в отдельном окне, представлено на рисунке 6.7. В меню «Файл» доступны кнопки «Сохранить» и «Печать» для вывода графика в файл.jpg или на бумагу соответственно.

.3 Инструкция по использованию Web-приложения

Для авторизации пользователю необходимо ввести в соответствующие поля номер полиса и пароль, выданный специалистом (неврологом, педиатром).

Если в вопросе доступна подсказка, то она будет отмечена знаком «?», нажав на который она будет выведена. С помощью кнопок «Предыдущий», «Следующий» можно перемещаться по списку вопросов. Для подтверждения ответа необходимо выбрать кнопку «Да» или «Нет» и нажать «Подтвердить». Внесенные ответы исправлять нельзя. Вопросы на тест выводятся в соответствии с возрастом тестируемого. Тест необходимо проходить в определенные промежутки времени: до 1 года — один раз в месяц, от года до двух лет — каждые три месяца, от двух до трех лет — каждые полгода.

Заключение

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

1)система не должна зависеть от используемой операционной системы. Для этого я создал приложение, работающее на виртуальной Java-машине, поддерживаемой всеми современными операционными системами;

2)пользователи должны иметь доступ к системе без привязки к месту. Для выполнения данного требования было принято решение создать Web-клиент для прохождения теста в режиме реального времени, тем самым обеспечив работу системы на любых устройствах, поддерживающих HTML;

)система должна работать на современной, надежной базе данных. Выбранная мной СУБД MySQL, соответствует этим требованиям, а также является бесплатной;

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Разработанная мной система перед внедрением будет тестироваться специалистами в области медицины, и, в соответствии с их рекомендациями, будут вноситься изменения в существующий код или разрабатываться дополнительные функции. Также уже запланировано добавление определенных функций таких как, построение графика по определенной области, добавление возможности просмотра ответов на конкретные вопросы, нажав по столбику или точке диаграммы. Возможность поиска человека по фамилии и имени в базе данных. В перспективе возможно подключение данной системы к уже существующей медицинской системе ЕМИАС.

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

1.Ларина, О. В. Информационно-коммуникационные медицинские диагностические технологии как первый этап в системе помощи детям раннего возраста [Электронный ресурс] / О. В. Ларина // Научно-методический электронный журнал «Концепт». — 2016. — Т. 11. — С. 2546-2550.

2.Программное обеспечение для психолога [Электронный ресурс]: Лонгитиюд: сайт. — Режим доступа: http://testpsy.net/ru/.

.Руководства по оценке развития детей на основе шкал KID и RCDI: Чистович И., Рейтер Ж., Шапиро Я. Руководство по оценке развития младенцев до 16 месяцев на основе русифицированной шкалы KID. 2-е издание Санкт- Петербург: Институт раннего вмешательства, 2000.

.Обследование по шкалам KID / RCDI. [Электронный ресурс]: Красноярский центр лечебной педагогики: сайт.

.Свободная энциклопедия Википедия

.Проектирование реляционных баз данных на основе принципов нормализации [Электронный ресурс]: Введение с системы управления базами данных

7.MySQL [Электронный ресурс]: [официальный сайт]. — Режим доступа: http://www.mysql.com.

.Нотация «Crows foot» [Электронный ресурс]: Студопедия: сайт. — Режим доступа: http://studopedia.su/1_38350_notatsiyapiterachena.html.

.Швецов, А. Н. Агентная архитектура как основа построения корпоративных систем/ А. Н. Швецов, В. И. Летовальцев// Автоматизация и энергосбережение машиностроительного производства, технология и надежность машин, приборов и оборудования: матер. четвертой научно-технической конференции 24-26 ноября 2008 г. — Вологда, 2008. — Т. 2. — С. 178-181.

.Белоцерковская И. Е. Алгоритмизация. Введение в язык программирования С++/ И.Е. Белоцерковская; Н.В. Галина; Л.Ю. Катаева. — 2-е издание, испр. — Москва: Национальный Открытый Университет «ИНТУИТ», 2016. — С. 197- 201.

.Андрианов, И. А. Эффективные методы поиска в последовательностях для больших баз данных / И. А. Андрианов, П. А. Горбунов// Информатизация процессов формирования открытых систем на основе СУБД, САПР, АСНИ и систем искусственного интеллекта (ИНФОС-2013): 7-я международная научно-техническая конференция, 28 июня 2013 г. / отв. ред.: В. А. Горбунов. — Вологда, 2013. — С. 10-14. — Библиография: с. 14.

.Нечаев, В. И. Элементы криптографии: основы теории защиты информации: [учебное пособие для университетов и педагогических. вузов]/ В. И. Нечаев; [под ред. В. А. Садовничего]. — Москва: Высшая школа, 1999. — 108, [1] с.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

310

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке