Проекты
Конкурсные проекты

Сервис для учета и самоконтроля уровня глюкозы в крови


Тип участника:  Физическое лицо
Полное наименование организации/физического лица/авторского или творческого коллектива:  Шуклин Артём Витальевич
ФИО всех участников авторского/творческого коллектива:  Шуклин Артём Витальевич
Идея и краткое описание ИТ-проекта:  Сервис позволяет больным нарушениями углеводного обмена (как сахарный диабет) вести дневник самоконтроля с возможностью учета уровня глюкозы в крови, приема углеводов или сахароснижающих препаратов, ввода инсулина, при этом поддерживает пользователей-врачей с удобными методами для удаленного просмотра дневника самоконтроля прикрепленных больных и статистики по нему.

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

Описание функциональных возможностей и элементов проекта:  Сервис предоставляет следующий функционал:
  1. Администраторская панель. Администраторы могут пользоваться администраторской панелью для добавления, редактирования информации о пользователях, прикрепления пациентов к врачам.
  2. Регистрация и вход. Пользователи-больные и врачи могут регистрироваться в системе.
  3. Дневник самоконтроля. Больные могут вести свой дневник самоконтроля и вносить такие данные как измерение уровня глюкозы, принятие препарата с его количеством, типом единиц препарата (таблетки, дозы, капли, впрыски, единицы, миллилитры, чайные и столовые ложки) и названием или ввод инсулина (короткого, среднего или длительного действия) с указанием дозы, принятие углеводов с их количеством. Для каждой записи доступна возможность добавления собственного комментария.
  4. Прикрепление больных к врачам. Администраторы могут прикреплять больных к врачам, либо больные могут сами дать доступ к данным дневника указанием восьмизначного личного кода врача. Врачи могут просматривать данные дневника и статистику по ним у своих прикрепленных пациентов.
  5. Настройка профиля. Больные могут настраивать единицы измерения углеводов: хлебные единицы (для 10, 12, 15 грамм) или граммы; единицы измерения глюкозы: ммоль/л или мг/дл; целевые диапазоны глюкозы.
  6. Визуализация данных. Больные и их врачи могут визуализировать данные дневника c помощью графика динамики измерений за период и диаграммы распределения глюкозы по целевым диапазонам.
  7. Настройка заготовок для быстрого заполнения. Больные могут добавлять для себя свои блюда и препараты (для быстрого заполнения записей дневника).
  8. Инсулиновый режим. Больные могут настраивать свой инсулиновый режим, куда входят следующие параметры: углеводный коэффициент для разного времени суток (с возможностью добавления времени суток и значения для него с интервалом в 30 минут, начиная с 0:00), чувствительность к инсулину в разное время суток (то же самое, что и у коэффициента), а также время действия короткого инсулина.
  9. Расчет дозировки. Больные имеют возможность рассчитать дозировку короткого инсулина для компенсации принятых углеводов и/или достижения целевого диапазона глюкозы в крови на основе инсулинового режима и профиля больного.
  10. Интеграция с загрузчиками Nightscout. Приложение также может работать по протоколу Nightscout API для интеграции с приложениями-загрузчиками Nightscout, такими как xDrip, AndroidAPS. Пользователи могут включать и настраивать свои данные для синхронизации с загрузчиками Nightscout. Пока доступно только принятие данных от загрузчиков.
Внутренне эти функции поделены на следующие подсистемы:
  1. Авторизация и аутентификация (Auth). Проверка наличия пользователей в системе, их прав при запросах, сохранение их сессий. Система содержит различные роли и права, которые необходимо проверять перед обработкой запроса. Для проверки прав будет использоваться эта подсистема. 
  2. Пользователи (Users). Хранение, выборка, модификация информации об аккаунтах пользователей системы, их профилей.
  3. Дневник самоконтроля (Diary). Основной функционал для больных. Инструменты для ведения дневника, добавления, просмотра, выборки измерений сахара, принятых углеводов, вводов препаратов и т.д.
  4. Расчеты (Calculations). Настройка режима ввода инсулина, расчеты доз для снижения сахара на основе принятых углеводов и текущего уровня глюкозы.
  5. Заготовки (Templates). Быстрое заполнение значений углеводов и дозировки препаратов с помощью создания базы блюд и препаратов с уже сохраненными значениями. 
  6. Интеграция (Integration). Подсистема для реализации интеграций с другими системами, то есть с загрузчиками Nightscout. Сюда входят настройки интеграции, а также REST-методы, разработанные по структуре протокола Nightscout API.
  7. Статистика (Statistics). Сбор статистики и аналитики по данным дневника пользователя (например, вычисление распределений глюкозы по целевым диапазонам).

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

Текущий клиент представлен только в виде веб-интерфейса (как веб-сайт), созданный с помощью фреймворка Vue.js (HTML/CSS/TypeScript), в рамках дальнейшего развития планируется создание клиентских приложений для мобильных устройств (Android, iOS).

Сервер разрабатывается на Spring (Java) с СУБД PostgreSQL. 

Для развертывания как клиента, так и сервера могут использоваться созданные скрипты для Docker.
Стоимость разработки системы:  60000
Средний размер ежегодных затрат на эксплуатацию:  10000
Перспективы развития: 
  1. Возможность интеграции и с другими существующими аналогами (например, FreeStyle Libre 2).
  2. Добавление системы уведомлений врачам и больным при определенных уровнях глюкозы (например, на почту).
  3. Добавление возможности учета активного инсулина при расчете дозировки.
  4. Развитие системы для охвата других направлений, по которым может использоваться дневник самоконтроля (например, для измерений давления).
  5. Разработка клиентских приложений для отдельных платформ (Android, iOS) с возможностью оффлайн-использования при отсутствии Интернета, а также с непосредственной интеграцией с измерительными устройствами (глюкометрами, датчиками).

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

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

Существующая функциональность протестирована в личном пользовании. Браузерный клиентский интерфейс требует доработки удобства пользования.
Актуальность, экономическая или социальная полезность:  Актуальность такого проекта состоит в том, что больным сахарным диабетом приходится проводить постоянные измерения глюкозы в крови несколько раз в день и записывать их, вести учет принятых углеводов, рассчитывать дозировки сахароснижающих веществ (в общем, вести дневник самоконтроля) и посещать врачей для предоставления этих измерений и контроля состояния, а традиционные методы ведения дневника, такие как бумажные записи, обладают низкой удобностью, сложностью анализа данных. Подобный сервис же облегчит осуществление контроля глюкозы как для больных, так и для врачей, обеспечив их взаимодействие.
Масштабируемость, способность к взаимодействию с другими системами, мобильность:  Для оценки масштабируемости при добавлении новых пользователей использовалось средство K6. Сервер выдерживает активную одновременную работу 1000 пользователей с ожиданием, не превышающим 0.5 с. При дальнейшем нарастании до 2500 пользователей время ожидания увеличивается до 3 с., но при этом работа все еще продолжается корректно.

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

Данные из СУБД PostgreSQL могут быть скопированы и перенесены в другое место в случае необходимости.

На данный момент для интеграции с внешними системами может использоваться созданное API по протоколу Nightscout (по нему загрузчики Nightscout могут выгружать данные измерений в этот сервис).
Обоснованность применяемых проектных решений:  Клиент-серверная архитектура используется, поскольку система должна обеспечивать сетевое взаимодействие больных и врачей, и здесь необходима серверная часть, с которой уже будут обмениваться данными клиентские приложения. Это также позволит разрабатывать отдельные приложенияклиенты для разных устройств, не переписывая каждый раз логику.

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

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

В качестве архитектурного стиля взаимодействия частей системы используется REST с использованием протокола HTTP, так как хорошо подходит для CRUD-приложений.

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

Для клиента браузеры для отображения страниц используют заранее определенный стек технологий: HTML, CSS, TypeScript. Выбор фреймворка строился на критерии трудности изучения фреймворка, так как опыта в создании клиентов не было. В этом плане лучшим выбором является Vue.js, который как раз отличается простотой изучения.

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

Для более простой настройки окружения, запуска и развертывания используются платформы для создания и выполнения контейнеров. Самым распространенным средством является Docker, который и используется, как универсальное решение с обширной экосистемой.
Оригинальность, новизна, отличие от аналогов либо отсутствие аналогов:  Существующие популярные системы зачастую обладают неудобным или платным функционалом удаленного просмотра данных измерений со стороны врачей: OneTouch Reveal содержит только методы для экспорта в файлы, FreeStyle Libre 2 имеет панель для мед. учреждения, но для полноценного пользования требует измерительные датчики компании-разработчика, Nightscout требует от врача самостоятельного хранения ссылки каждого больного, Diabetes:M разблокирует этот функционал только по платной подписке, а Freelife полностью платный. У некоторых приложений также выделятся проблемы с совместимостью.

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