ВВЕДЕНИЕ 3
ГЛАВА I. ЦЕЛЬ РАБОТЫ И ОПИСАНИЕ СИСТЕМЫ 5
1.1. Описание системы 5
1.2. Требования к системе 6
ГЛАВА II. ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ. АРХИТЕКТУРА СИСТЕМЫ 7
2.1. Аппаратные средства 7
2.2. Программные средства 11
2.2.1. Среды разработки, языки программирования, базы данных и
системы контроля версий 11
2.2.2. Библиотеки и фреймворки 12
2.3. Архитектура системы 14
ГЛАВА III. РЕАЛИЗАЦИЯ КЛИЕНТСКОЙ ЧАСТИ 15
3.1. Соединение с датчиками 15
3.2. Распознавание метки, обнаружение лица 18
3.3. Отправка данных на сервер 21
3.4. Визуализация 23
3.5. Реализация отправки сигнала об ошибке классификатора 24
ГЛАВА IV. РЕАЛИЗАЦИЯ СЕРВЕРНОЙ ЧАСТИ 27
4.1. Структура web-приложения 27
4.2. Развертывание проекта на сервере 29
4.3. Архитектура БД 30
4.4. Прием и обработка данных 32
ГЛАВА V. АНАЛИЗ ДАННЫХ 36
5.1. Общая идея 36
5.2. Первый этап. Кластеризация 38
5.2.1. Алгоритм DBSCAN 39
5.2.2. Подготовка данных 39
5.2.3. Основные этапы алгоритма 40
5.2.4. Определение кластера для нового пациента 41
5.2.5. Итог 42
5.3. Второй этап. Классификация 42
5.3.1. Описание алгоритма Decision Tree 44
5.3.2. Обучение классификатора 46
5.3.3. Итог 47
5.4. Критерии для перекластеризации и переобучения классификатора .. 48
5.5. Первичные эксперименты на тестовых данных 49
ЗАКЛЮЧЕНИЕ 59
СПИСОК ЛИТЕРАТУРЫ 62
ПРИЛОЖЕНИЕ 64
Начало XXI века безусловно является расцветом информационных технологий (ИТ). Они востребованы практически во всех областях жизни, так как внедрение информатизации позволяет автоматизировать сбор, обработку и анализ информации, облегчить человеческий труд и минимизировать ошибки при принятии решений.
В медицине использование компьютерных технологий началось в начале 1950-х годов с появлением компьютеров. До начала второго десятилетия в российском здравоохранении весь учет пациентов и отчетность врачей производились на бумаге, но уже на сегодняшний день развитие ИТ в медицине вывело сферу здравоохранения на новый уровень. В медицинских организациях устанавливаются информационные системы, в которых ведется учет пациентов, проводятся дистанционные консультации между различными учреждениями и удаленный контроль за операциями[1]. Искусственный интеллект в медицине уже умеет анализировать рентгеновские снимки, сегментировать отделы головного мозга на основе МРТ и вычислять некоторые опухолевые образования. Развивается также диагностика заболеваний на основе алгоритмов машинного обучения. Нельзя не отметить и развитие аппаратных средств в медицине, а особенно IoT (Internet of Things) устройств. К ним относятся умные браслеты, контролирующие пульс и давление человека, и нательные датчики, имеющие доступ в интернет и отправляющие показания пациента на сервер информационной системы больницы [2].
Медучреждения со временем накапливают большие базы данных медицинских показаний пациентов. Этот огромный объем информации может быть использован с целью повышения качества медицинских услуг. В данной работе мы разработаем распределенную информационную систему, которая с помощью современных программно-аппаратных средств будет помогать медработнику определять состояние пациента.
Целью выпускной квалификационной работы является разработка программно-аппаратного комплекса анализа данных пациентов для мониторинга здоровья в сфере здравоохранения. Комплекс должен включать в себя клиентское приложение на ОС Android, web-клиент, удаленную базу данных и систему анализа данных. Базу данных и систему анализа необходимо разместить на удаленном сервере для обеспечения доступа к ним в любое время. Мобильное приложение следует оптимизировать для запуска на очках дополненной реальности. Для выполнения поставленной цели, мы сформировали следующие задачи:
1. Изучение предметной области;
2. Выбор и настройка сервера;
3. Проектирование базы данных;
4. Реализация коммуникации клиентского приложения с медицинским датчиком;
5. Реализация обнаружения камерой в клиентском приложении
специальной метки и декодирование информации на ней ;
6. Реализация отправки медицинских данных с клиента на сервер и получения результата;
7. Реализация добавления нового пациента через web-клиент;
8. Реализация системы анализа данных пациента, которая включает в себя алгоритмы машинного обучения и взаимодействие с базой данных;
9. Отладка и тестирование системы.
В ходе написания выпускной квалификационной работы выполнены все основные задачи. В частности, разработан программно-аппаратный комплекс, который использует анализ данных для контроля за состоянием пациента.
Для эффективного решения поставленной проблемы были выбраны передовые области информационных технологий:
- датчики, считывающие медицинские показания человека;
- средства дополненной реальности;
- клиент-серверное взаимодействие;
- разработка мобильных приложений;
- анализ данных с помощью алгоритмов машинного обучения.
Проведя обзор каждой из областей, мы постарались обоснованно подобрать, используемые при разработке, программные и аппаратные средства.
В противовес смартфонам и планшетам, которые довольно часто применяются в медицинской сфере, мы рассмотрели использование очков дополненной реальности и привели их преимущества перед другими устройствами. При выборе датчиков, необходимых для считывания показаний с человека, мы отдали предпочтение отечественному программно¬аппаратному обеспечению.
Для реализации механизма распознавания маркеров по видеопотоку была внедрена в клиентское приложение библиотека дополненной реальности Vuforia.
Изучая методы анализа данных были найдены оптимальные способы анализа для решения нашей задачи, а именно кластерный анализ и классификация пациентов. Проанализировав требования, поставленные к программно-аппаратному комплексу, и особенности существующих алгоритмов кластеризации и классификации мы выбрали наиболее подходящие - DBSCAN и Decision Tree Classifier.
Алгоритм DBSCAN подходит для использования в нашем комплексе, так как:
1. Нет необходимости указывать число кластеров заранее;
2. Способен обрабатывать большие выборки данных;
3. Каждый объект из выборки соответствует только одному кластеру;
4. При пересчете кластеров количество операций минимизировано.
Из-за того, что выборки пациентов и их показаний будут всё время увеличиваться, нужно было предусмотреть переобучение классификатора и перекластеризацию для получения наилучших результатов. С учетом специфики предметной области мы выбрали несколько сценариев, служащих сигналом для обновления модуля анализа данных:
1. Установка порогового значения для количества ошибок классификатора;
2. Учет количества новых пациентов после крайнего обновления;
3. Проверка даты последнего обновления модуля.
Необходимо отметить возможности для дальнейшего совершенствования программно-аппаратного комплекса и определить вектор будущих исследований. Мы будем следить за развитием области дополненной реальности, так как на данный момент у очков, представленных на рынке, имеется несколько недостатков. Важным этапом дальнейшей разработки будет являться реализация возможности внедрения программно-аппаратного комплекса в существующие информационные системы в сфере здравоохранения.
В заключении необходимо отметить результаты проведенных экспериментов с алгоритмами машинного обучения. Испытания алгоритмов анализа данных показали неплохие итоги и у нас есть уверенность, что в экспериментах с реальными показаниями пациентов мы получим результаты лучше, чем представленные в данной работе.