Проекты
Сервис для учета и самоконтроля уровня глюкозы в крови
Тип участника:
Физическое лицо
Полное наименование организации/физического лица/авторского или творческого коллектива:
Шуклин Артём Витальевич
ФИО всех участников авторского/творческого коллектива:
Шуклин Артём Витальевич
Идея и краткое описание ИТ-проекта:
Сервис позволяет больным нарушениями углеводного обмена (как сахарный диабет) вести дневник самоконтроля с возможностью учета уровня глюкозы в крови, приема углеводов или сахароснижающих препаратов, ввода инсулина, при этом поддерживает пользователей-врачей с удобными методами для удаленного просмотра дневника самоконтроля прикрепленных больных и статистики по нему.
Идея заключается в предоставлении экосистемы для более удобного сетевого взаимодействии больных и их врачей, где врачи могут удаленно просматривать измерения своих больных, чтобы корректировать курс лечения.
Идея заключается в предоставлении экосистемы для более удобного сетевого взаимодействии больных и их врачей, где врачи могут удаленно просматривать измерения своих больных, чтобы корректировать курс лечения.
Перечень решаемых задач:
- Облегчение осуществления самоконтроля за уровнем глюкозы путем предоставления функционала дневника самоконтроля и различных функций автоматизации (например, расчет дозы короткого инсулина).
- Упрощение отслеживания динамики измерений больных со стороны врачей для корректирования курса лечения.
- Предоставление централизованного облачного хранилища измерений и прочих данных дневника для доступа с любого устройства.
Описание функциональных возможностей и элементов проекта:
Сервис предоставляет следующий функционал:
- Администраторская панель. Администраторы могут пользоваться администраторской панелью для добавления, редактирования информации о пользователях, прикрепления пациентов к врачам.
- Регистрация и вход. Пользователи-больные и врачи могут регистрироваться в системе.
- Дневник самоконтроля. Больные могут вести свой дневник самоконтроля и вносить такие данные как измерение уровня глюкозы, принятие препарата с его количеством, типом единиц препарата (таблетки, дозы, капли, впрыски, единицы, миллилитры, чайные и столовые ложки) и названием или ввод инсулина (короткого, среднего или длительного действия) с указанием дозы, принятие углеводов с их количеством. Для каждой записи доступна возможность добавления собственного комментария.
- Прикрепление больных к врачам. Администраторы могут прикреплять больных к врачам, либо больные могут сами дать доступ к данным дневника указанием восьмизначного личного кода врача. Врачи могут просматривать данные дневника и статистику по ним у своих прикрепленных пациентов.
- Настройка профиля. Больные могут настраивать единицы измерения углеводов: хлебные единицы (для 10, 12, 15 грамм) или граммы; единицы измерения глюкозы: ммоль/л или мг/дл; целевые диапазоны глюкозы.
- Визуализация данных. Больные и их врачи могут визуализировать данные дневника c помощью графика динамики измерений за период и диаграммы распределения глюкозы по целевым диапазонам.
- Настройка заготовок для быстрого заполнения. Больные могут добавлять для себя свои блюда и препараты (для быстрого заполнения записей дневника).
- Инсулиновый режим. Больные могут настраивать свой инсулиновый режим, куда входят следующие параметры: углеводный коэффициент для разного времени суток (с возможностью добавления времени суток и значения для него с интервалом в 30 минут, начиная с 0:00), чувствительность к инсулину в разное время суток (то же самое, что и у коэффициента), а также время действия короткого инсулина.
- Расчет дозировки. Больные имеют возможность рассчитать дозировку короткого инсулина для компенсации принятых углеводов и/или достижения целевого диапазона глюкозы в крови на основе инсулинового режима и профиля больного.
- Интеграция с загрузчиками Nightscout. Приложение также может работать по протоколу Nightscout API для интеграции с приложениями-загрузчиками Nightscout, такими как xDrip, AndroidAPS. Пользователи могут включать и настраивать свои данные для синхронизации с загрузчиками Nightscout. Пока доступно только принятие данных от загрузчиков.
- Авторизация и аутентификация (Auth). Проверка наличия пользователей в системе, их прав при запросах, сохранение их сессий. Система содержит различные роли и права, которые необходимо проверять перед обработкой запроса. Для проверки прав будет использоваться эта подсистема.
- Пользователи (Users). Хранение, выборка, модификация информации об аккаунтах пользователей системы, их профилей.
- Дневник самоконтроля (Diary). Основной функционал для больных. Инструменты для ведения дневника, добавления, просмотра, выборки измерений сахара, принятых углеводов, вводов препаратов и т.д.
- Расчеты (Calculations). Настройка режима ввода инсулина, расчеты доз для снижения сахара на основе принятых углеводов и текущего уровня глюкозы.
- Заготовки (Templates). Быстрое заполнение значений углеводов и дозировки препаратов с помощью создания базы блюд и препаратов с уже сохраненными значениями.
- Интеграция (Integration). Подсистема для реализации интеграций с другими системами, то есть с загрузчиками Nightscout. Сюда входят настройки интеграции, а также REST-методы, разработанные по структуре протокола Nightscout API.
- Статистика (Statistics). Сбор статистики и аналитики по данным дневника пользователя (например, вычисление распределений глюкозы по целевым диапазонам).
Дата внедрения (в случае, если предполагается запуск проекта в эксплуатацию):
-
Используемые платформы, средства разработки:
Приложение работает по клиент-серверной архитектуре (с взаимодействием по REST, HTTP).
Текущий клиент представлен только в виде веб-интерфейса (как веб-сайт), созданный с помощью фреймворка Vue.js (HTML/CSS/TypeScript), в рамках дальнейшего развития планируется создание клиентских приложений для мобильных устройств (Android, iOS).
Сервер разрабатывается на Spring (Java) с СУБД PostgreSQL.
Для развертывания как клиента, так и сервера могут использоваться созданные скрипты для Docker.
Текущий клиент представлен только в виде веб-интерфейса (как веб-сайт), созданный с помощью фреймворка Vue.js (HTML/CSS/TypeScript), в рамках дальнейшего развития планируется создание клиентских приложений для мобильных устройств (Android, iOS).
Сервер разрабатывается на Spring (Java) с СУБД PostgreSQL.
Для развертывания как клиента, так и сервера могут использоваться созданные скрипты для Docker.
Стоимость разработки системы:
60000
Средний размер ежегодных затрат на эксплуатацию:
10000
Перспективы развития:
- Возможность интеграции и с другими существующими аналогами (например, FreeStyle Libre 2).
- Добавление системы уведомлений врачам и больным при определенных уровнях глюкозы (например, на почту).
- Добавление возможности учета активного инсулина при расчете дозировки.
- Развитие системы для охвата других направлений, по которым может использоваться дневник самоконтроля (например, для измерений давления).
- Разработка клиентских приложений для отдельных платформ (Android, iOS) с возможностью оффлайн-использования при отсутствии Интернета, а также с непосредственной интеграцией с измерительными устройствами (глюкометрами, датчиками).
Достижение поставленных целей:
Сервис в текущем виде (сервер, браузерный клиент) уже способен исполнять все поставленные задачи и функции, а также имеет возможность быстрого развертывания клиента (с использованием Nginx) и серверной части с помощью готовых Dockerfile, однако на данный момент не является развернутым для производственной эксплуатации.
На данный момент отсутствуют мобильные приложения с возможностью оффлайн-доступа, поэтому может использоваться только браузерный клиент, который при развертывании на удаленном сервере требует обязательного подключения к Интернету, но зато обеспечивает максимальную совместимость с разными устройствами.
Существующая функциональность протестирована в личном пользовании. Браузерный клиентский интерфейс требует доработки удобства пользования.
На данный момент отсутствуют мобильные приложения с возможностью оффлайн-доступа, поэтому может использоваться только браузерный клиент, который при развертывании на удаленном сервере требует обязательного подключения к Интернету, но зато обеспечивает максимальную совместимость с разными устройствами.
Существующая функциональность протестирована в личном пользовании. Браузерный клиентский интерфейс требует доработки удобства пользования.
Актуальность, экономическая или социальная полезность:
Актуальность такого проекта состоит в том, что больным сахарным диабетом приходится проводить постоянные измерения глюкозы в крови несколько раз в день и записывать их, вести учет принятых углеводов, рассчитывать дозировки сахароснижающих веществ (в общем, вести дневник самоконтроля) и посещать врачей для предоставления этих измерений и контроля состояния, а традиционные методы ведения дневника, такие как бумажные записи, обладают низкой удобностью, сложностью анализа данных. Подобный сервис же облегчит осуществление контроля глюкозы как для больных, так и для врачей, обеспечив их взаимодействие.
Масштабируемость, способность к взаимодействию с другими системами, мобильность:
Для оценки масштабируемости при добавлении новых пользователей использовалось средство K6. Сервер выдерживает активную одновременную работу 1000 пользователей с ожиданием, не превышающим 0.5 с. При дальнейшем нарастании до 2500 пользователей время ожидания увеличивается до 3 с., но при этом работа все еще продолжается корректно.
Доступ к браузерному клиенту может осуществляться с любого устройства, на котором поддерживается браузер и есть подключение к сети.
Данные из СУБД PostgreSQL могут быть скопированы и перенесены в другое место в случае необходимости.
На данный момент для интеграции с внешними системами может использоваться созданное API по протоколу Nightscout (по нему загрузчики Nightscout могут выгружать данные измерений в этот сервис).
Доступ к браузерному клиенту может осуществляться с любого устройства, на котором поддерживается браузер и есть подключение к сети.
Данные из СУБД PostgreSQL могут быть скопированы и перенесены в другое место в случае необходимости.
На данный момент для интеграции с внешними системами может использоваться созданное API по протоколу Nightscout (по нему загрузчики Nightscout могут выгружать данные измерений в этот сервис).
Обоснованность применяемых проектных решений:
Клиент-серверная архитектура используется, поскольку система должна обеспечивать сетевое взаимодействие больных и врачей, и здесь необходима серверная часть, с которой уже будут обмениваться данными клиентские приложения. Это также позволит разрабатывать отдельные приложенияклиенты для разных устройств, не переписывая каждый раз логику.
Первоначальным клиентским приложением сделан веб-интерфейс, открывающийся в браузере, что обеспечивает максимальную совместимость, с которой наблюдаются проблемы у аналогов.
Сервер представляет из себя модульный монолит, разделенный на минимально зависимые подсистемы, чтобы в будущем можно было легче перейти на микросервисы для большей отказоустойчивости, а сейчас сконцентрироваться на функциональности.
В качестве архитектурного стиля взаимодействия частей системы используется REST с использованием протокола HTTP, так как хорошо подходит для CRUD-приложений.
Для разработки сервера используется Spring, известный удобством программирования и функциями, автоматизирующими различные компоненты программ, как, например, авторизацию, интеграцию с БД. В качестве языка фреймворк использует Java, который обладает поддержкой многопоточности, является достаточно производительным, безопасным и стабильным при работе с нагрузками.
Для клиента браузеры для отображения страниц используют заранее определенный стек технологий: HTML, CSS, TypeScript. Выбор фреймворка строился на критерии трудности изучения фреймворка, так как опыта в создании клиентов не было. В этом плане лучшим выбором является Vue.js, который как раз отличается простотой изучения.
В качестве СУБД используется PostgreSQL, известная надежностью и способная справляться с одновременной обработкой нескольких задач в массивных БД.
Для более простой настройки окружения, запуска и развертывания используются платформы для создания и выполнения контейнеров. Самым распространенным средством является Docker, который и используется, как универсальное решение с обширной экосистемой.
Первоначальным клиентским приложением сделан веб-интерфейс, открывающийся в браузере, что обеспечивает максимальную совместимость, с которой наблюдаются проблемы у аналогов.
Сервер представляет из себя модульный монолит, разделенный на минимально зависимые подсистемы, чтобы в будущем можно было легче перейти на микросервисы для большей отказоустойчивости, а сейчас сконцентрироваться на функциональности.
В качестве архитектурного стиля взаимодействия частей системы используется REST с использованием протокола HTTP, так как хорошо подходит для CRUD-приложений.
Для разработки сервера используется Spring, известный удобством программирования и функциями, автоматизирующими различные компоненты программ, как, например, авторизацию, интеграцию с БД. В качестве языка фреймворк использует Java, который обладает поддержкой многопоточности, является достаточно производительным, безопасным и стабильным при работе с нагрузками.
Для клиента браузеры для отображения страниц используют заранее определенный стек технологий: HTML, CSS, TypeScript. Выбор фреймворка строился на критерии трудности изучения фреймворка, так как опыта в создании клиентов не было. В этом плане лучшим выбором является Vue.js, который как раз отличается простотой изучения.
В качестве СУБД используется PostgreSQL, известная надежностью и способная справляться с одновременной обработкой нескольких задач в массивных БД.
Для более простой настройки окружения, запуска и развертывания используются платформы для создания и выполнения контейнеров. Самым распространенным средством является Docker, который и используется, как универсальное решение с обширной экосистемой.
Оригинальность, новизна, отличие от аналогов либо отсутствие аналогов:
Существующие популярные системы зачастую обладают неудобным или платным функционалом удаленного просмотра данных измерений со стороны врачей: OneTouch Reveal содержит только методы для экспорта в файлы, FreeStyle Libre 2 имеет панель для мед. учреждения, но для полноценного пользования требует измерительные датчики компании-разработчика, Nightscout требует от врача самостоятельного хранения ссылки каждого больного, Diabetes:M разблокирует этот функционал только по платной подписке, а Freelife полностью платный. У некоторых приложений также выделятся проблемы с совместимостью.
Данный сервис же планируется бесплатным, при этом для удобного взаимодействия врача и больного в панели врача представлен список всех прикрепленных к нему больных, в котором достаточно найти и выбрать нужного, чтобы просмотреть всю необходимую информацию по дневнику, статистику. Таким образом, не нужно запоминать никаких ссылок, иметь отдельные аккаунты для каждого пациента и т.д. Прикрепление при этом происходит через ввод личного кода врача либо через администраторов системы.
Данный сервис же планируется бесплатным, при этом для удобного взаимодействия врача и больного в панели врача представлен список всех прикрепленных к нему больных, в котором достаточно найти и выбрать нужного, чтобы просмотреть всю необходимую информацию по дневнику, статистику. Таким образом, не нужно запоминать никаких ссылок, иметь отдельные аккаунты для каждого пациента и т.д. Прикрепление при этом происходит через ввод личного кода врача либо через администраторов системы.
Гарантирую достоверность предоставленной в заявке информации. Подтверждаю, что организация не находится в состоянии ликвидации, банкротства, реорганизации (Только для организаций):
Да
Презентация проекта pdf:
Загрузить