Так случилось, что чуть меньше года назад, моя дочь заболела сахарным диабетом 1 типа (инсулинозависимый). После месяца использования «ручек», мы перешли на помпу Medtronic 640g с поддержкой НМГ. Под катом расскажу, как я делал мониторинг глюкозы, используя данные с помпы. Осторожно, траффик.
Вводная часть
Я не буду описывать все возможности и «плюсы» и «минусы» данной помпы, это выходит за рамки статьи. Эту информацию легко можно найти в интернете. Остановлюсь только на тех моментах, которые необходимы для понимания.
Одна из основных задач при диабете 1 типа является поддержание оптимального уровня глюкозы в крови. Дело в том, что уровень глюкозы меняется достаточно быстро при разных факторах — еда, физические нагрузки, гормоны, изменение погоды, сон, даже простая прогулка в парке может сильно повлиять на уровень глюкозы. По этому, важно измерять уровень глюкозы как можно чаще, идеально каждые 5 минут 24\7. Обычным глюкометром этого достичь крайне сложно, по этому используют НМГ. Они бывают разные. Более подробно можно почитать и посмотреть видео тут. Наличие помпы с мониторингом это очень хорошо и помогает решать многие вопросы. На помпе можно посмотреть текущее значения глюкозы, а так же посмотреть график его изменения за последние время.
Помпа, со всеми показаниями всегда с дочерью, а значит посмотреть показания удаленно не представляется возможным. Дочь не всегда находится рядом, она ходит в школу, посещает доп. занятия, гуляет, в общем, ведет полноценную жизнь. Я и жена — работаем. Постоянные звонки на мобильный, вставание с кровати по несколько (иногда десятков!!!) раз за ночь не делают сон и нервы крепче.
Вводные данные
Реализация и принцип работы НМГ описан тут. Единственное, на что хочу обратить внимание это то, что данная помпа связана с трансмиттером по протоколу ZigBee. Всего я нашел 3 устройства, которые могут работать с этой помпой:
- сам трансмиттер Guardian 2 Link
- CareLink USB MMT-7306, т.н. «черная флешка»
- Contour NEXT LINK 2.4, глюкометр
На данный момент, из этих 3-х устройств в России продают только трансмиттер. Собственно именно он передает данные в помпу о уровне глюкозы. «Флешку» я видел только у нашего лечащего врача и с ее помощью мы пару раз скачивали данные с помпы в ее программу и распечатывали графики. Потом эта «флешка» стала недоступной для нас, т.к. ее отдали в другой город и когда она вернется никто не знает. Говорят, что эта «флешка» одна единственная на всю Россию, не знаю, на сколько эта информация верна. Глюкометр и «флешку» купить в России не реально. На мой вопрос официальные представители говорят, что «они пока не прошли сертификацию в России, когда будет, не известно, ждем». После долгих поисков, я все же смог купить глюкометр в Англии. За что отдельное спасибо всем, кто мне в этом помог.
Итак, глюкометр можно подключить к помпе и он имеет USB, значит его можно подключить к компьютеру. После не продолжительных поисков, я нашел проект на GitHub, который позволял прочитать данные с помпы через этот глюкометр. Пользуясь случаем, выражаю большую благодарность автору этих проектов — Lennart Goedhart. Он проделал действительно большую работу по изучению протокола и результат выложил в свободный доступ. Осталось только реализовать задуманное.
Постановка задачи
Иметь возможность мониторить показания помпы на компьютере, мобильном телефоне в режиме онлайн «без регистрации и смс».
Решение
Железо
В первом варианте был выбран Raspberry Pi Zero W, который не нуждается в представлении. Он маленький, не прожорлив и имеет на борту все самое необходимое. К нему было куплено доп. оборудование: Waveshare SIM7000C — 2.5G модем + GPS, Waveshare 4 Port USB HUB, Raspberry Pi Zero UPS. Все это можно без труда купить на Aliexpress. Выбор всех этих компонент был основан на том, что все это имеет маленькие габариты и собирается как «пирог». Питание осуществляется через Power Bank. На тесте, емкость 6000 мА хватает на «световой» день, т.е. с 8.00 утра до 20.00 вечера, что для меня вполне приемлемо. Вес Power Bank порядка 130 гр. и не будет сильно «тянуть карман».
Еще про питание, точнее про Raspberry Pi Zero UPS. При планировании я думал, что он вполне сможет быть основным источником питания, но я ошибся. На практике его хватает на 1 час работы. По этому, я не вижу смысла его использовать.
Первая версия.
В процессе эксплуатации выяснилось, что работа с USB у Pi Zero оставляет желать лучшего. Периодически отваливался Wi-Fi — не так критично есть GPRS, но зависание глюкометра это уже существенно. Кроме всего, «передернуть» USB удаленно не получилось — питание на порт USB идет напрямую.
В конце концов я приобрел Raspberry Pi 3. Выбор был обусловлен наличием Wi-Fi на борту и наличием полноценных портов USB.
Вторая версия, без глюкометра и Waveshare SIM7000C.
Для уменьшения размеров, пришлось пожертвовать Ethernet разъемом, и припаять свой USB провод для подключения глюкометра. В будущем планируется избавиться от корпуса глюкометра и припаять напрямую его к малинке.
Разработка и печатание корпуса — в планах.
Софт
Основное требование — доступ к данным с любого устройства, включая смартфоны. Поднимать какой либо сервер на малинке не имело смысла — при связи через модем, имеем «серый» ip, что рушило все планы. К тому же, держать постоянное соединение по GPRS не входило в мои планы из-за экономии энергии. К счастью, у меня уже был настроен Zabbix и было принято решение передавать данные на него. В качестве «красивых» графиков была прикручена Grafana.
В основу софта на малинке был взят этот проект. Как оказалось позже, это был только концепт. В целом, он вполне работоспособный и на текущий момент, он выполняет мои задачи.
Логика работы такова: каждые 5 минут я собираю данные с помпы и малинки и передаю их на Zabbix через zabbix_sender. Кроме этого, есть «удаленное управление по SMS».
Вот как это выглядит в браузере (на телефоне — так же):
Текущее показание глюкозы, активного инсулина и тренда (резкое падение или подъем уровня)
график глюкозы и активного инсулина
Объем инсулина в помпе, заряд батарейки, временная базальная скорость и базальная скорость
температура CPU малинки, уровень Wi-Fi, модема
данные GPS
На данный момент устройство выполняет минимальный функционал, который планировался. Можно контролировать текущий уровень глюкозы, а так же другие параметры. Как результат, меньшее кол-во звонков, вставания ночью, достаточно посмотреть графики на телефоне.
В планах на ближайшее будущие — изменить логику работы, добавить оповещение по SMS на критические значения и т.д. В дальнейшем перейти на node js, основываясь на этот проект.
Код выкладываю на GitHub.
Комментарии (45)
alexey-lustin
15.09.2019 23:54Применительно к статье — я пока изучаю протоколы чтобы на основе них реализовывать MQTT провайдера к облачным IoT хранилищам для построения экспертных систем.
Zabbix как по мне тяжеловат для этого — я бы взял OpenDistro от Amazon
github.com/glucometers-tech/glucometer-protocols
В дополнение к протоколам — вот утилиты github.com/Flameeyes/glucometerutils для проработки протоколов и устройств
Oldster Автор
16.09.2019 00:00Можно было обойтись графаной и любой базой, но как я говорил, у меня уже был установлен заббикс. Скрипт выдаёт json на выходе, его можно прикрутить куда угодно.
eee
16.09.2019 06:20Вижу Lennart Goedhart запилил стартап www.tidepool.org
Не можешь победить — возглавь
ValeriVP
16.09.2019 09:13Вы используете отдельно модуль gprs?
Не было мысли передать данные в телефон по БТ, а потом уже куда надо?
Мне кажется это более энергоэффективно.
А если заменить RPi на esp32 2s, с возможностью сна — можно существенно увеличить автономность.Oldster Автор
16.09.2019 10:28Да, можно было поступить проще. Есть такой проект. Я не стал его использовать по нескольким причинам:
1) Дочь ходит с кнопочным телефоном. Смартфон у нее есть, но она «не умеет себя контролировать» с ним, по этому купили ей простой «кнопочный». Думаю, что это проблема большинства детей — не контролируемое зависание «в интернете», игры и т.д.
2) Как мне показалось — не очень удобно в использовании решение. При зарядке телефона пришлось бы откл. глюкометр и терять данные.
Да, для связи я использую SIM7000C. Про esp32 не думал, не имею опыта работы с ним. Надо почитать, как у него с Python, Node JS и т.д.ValeriVP
16.09.2019 10:401) можно использовать отдельный маленький смарт, который всегда заблокирован. Он будет весить меньше пауербанка, а работать будет существенно дольше.
2) можно использовать кабель который имеет доп.вход для зарядкикабельOldster Автор
16.09.2019 10:51Спасибо, поэкспериментирую с телефоном.
С esp — видимо не получится.Meklon
16.09.2019 18:21А ещё можно использовать детский аккаунт Google. Там огромное количество настроек в родительском модуле контроля. Как минимум можно:
- Задать периоды блокировки/сна
- Задать ограничения суммарного времени использования
- Каждое приложение устанавливается только после одобрения родителем
Если телефон заблокирован, то все равно доступна функция звонка. То есть связаться с родителями сможет. Геолокация и прочие данные продолжают идти, фоновый софт работает.
bengal___cat
16.09.2019 12:17Система непрерывного контроля глюкозы — по сути мечта, пока ничего подходящего для себя не нашел. Помпу устанавливать нет желания, по моему мнению — это ограничивает, сильно. Часто посещают мысли о том, что может быть «яблочные» часы в скоре научатся не только давление и пульс измерять, но и мониторить глюкозу «онлайн», пусть даже это будет отдельно оплачиваемая опция. В общем, мечтаем.
Oldster Автор
16.09.2019 12:28Чтоб часы (браслет, не важно) научились мониторить сахар — надо много приложить усилий, начиная с технической реализации и закачивание одобрением медицины. Хочется верить, что это будет скоро. Каждый выбирает сам, если долго ждать, то можно не дождаться.
bengal___cat
17.09.2019 10:58На счет «если долго ждать, то можно не дождаться.» согласен, вот 13 лет уже в моем случае длится заболевание и абсолютно ничего принципиально нового не нашел на рынке. Да появились новые шприц-ручки с новым дизайном, десяток глюкометров работающих через тот же айфон и статьи в блогах о том, что вот он, неинвазивный глюкометр уже скоро в продаже, захожу на оф. сайты будущих производителей, а там тишина. Могу ошибаться, но ведь изобрести глюкометр, который не требует постоянных расходников (которые стоят дорого и их нужно покупать постоянно, всю жизнь, миллионам людей) — это тест полоски и тд., просто не выгодно, ведь это миллиардный бизнес. Поэтому складывается ощущение, что все эти технологии быстро скупаются у тех, кто их придумал и консервируются.
Meklon
16.09.2019 18:22С помпой прогнозы на жизнь сильно лучше все же. Она реально позволяет имитировать правильные уровни инсулина в разное время суток, что почти недостижимо с ручными инъекциями.
PerlPower
16.09.2019 18:34Насколько сильно лучше? Мне попадались данные, что различие гликированного гемоглобина у тех использует помпу и инъекции небольшое, порядка 0.5%. Если помните источник, можете дать ссылку?
Meklon
16.09.2019 19:42+1Источник сходу не дам, читал что-то из материалов с конференций жены. Она эндокринолог. Ключевая фишка — значимое снижение рисков гипогликемии, насколько я помню. Плюс разные уровни базального инсулина в разные часы, что физиологичнее, чем монотонный продлённый.
dinam
16.09.2019 19:48Это в случае умной помпы, которая уменьшает дозу по датчику. Но цена такого набора космическая выходит и расходников тысяч на 30 в месяц надо.
Читал про разработку помпы с двумя ампулами — инсулин и глюкогон. В случае гипо она могла вкатить глюкогона, и результаты испытаний были очень интересными.Oldster Автор
16.09.2019 20:20Тут обсуждают помпы, в шапке есть сравнение разных помп.
https://t.me/diabetes_pump
Meklon
16.09.2019 20:41Даже помпа без обратной связи настраивается на разные уровни инсулина в разные часы.
Врач это настраивает на основании личного дневника пациента и серии измерений.
dinam
16.09.2019 21:26это работа по расписанию. съел поменьше, пробежался, перенервничал и расписание уже бессильно, а то и опасно.
Oldster Автор
16.09.2019 21:41Шаг на ручке 0,5 на помпе может быть до 0,025.
Реальный пример: подкололи на еду 3,5 но через час надо ещё доколоть на жиры 0.1 и не забыть это сделать. На ручке это не реально. На помпе есть режимы: двойной волны, суперболюс, квадратной волны. Это помогает сглаживать пики сахара.dinam
16.09.2019 22:15В моем случае 1 инсулин убирает 4 сахара. Так что 0.1 подкалывать бессмыслено, превышение сахара на 0.4 погоды не сделает, разве что добиваться идеально ровного графика, но такого даже в здоровом организме не бывает. Да и к точности датчика вопросы остаются. Хотя, не спорю, помпа была бы очень удобна в случае подкалывания, меньше дырок, меньше мороки, точнее дозировка. Но пока думать своей головой все равно приходится каждый раз и вносить корректировки. Очень хочется надеяться на изобретение полностью автоматической помпы за вменяемые деньги. Желательно, вшиваемой под кожу, чтоб никаких трубочек-иголочек снаружи. Пока это какое-то финансовое рабство получается.
AlexSuslov
16.09.2019 13:41Esp32 не стоит отбрасывать. Есть много полезных библиотек. Хороший форум esp8266.ru/forum
dinam
16.09.2019 15:05Для Freestyle Libre уже есть считыватели (blucon или miaomiao), которые по bluetooth передают данные на телефон, а телефон уже дальше в облако, чтобы родителям было видно и алармы срабатывали. И даже на AppleWatch умеют передавать без участия телефона. Либру уже полгода продают официально в москве и области с доставкой 2-3 дня. Цена немного напрягает, но комфорт того стоит
PerlPower
16.09.2019 18:43Какое поколение либры и что по цене сравнительно с частниками, которые возили из Европы?
dinam
16.09.2019 19:43В Москве первое поколение. Второе будут сертифигировать год-полтора, как обычно, если не забьют вообще. Из Германии через посредника было чуть дороже, ибо комиссия за платежи в районе 2% и еще 20-25 евро за почту. Сейчас же в Германии либра первого поколения идет в районе 51 евро, поэтому посылка из 8 датчиков обходится чуть дешевле, чем из москвы, но ждать две недели. И с нового года вроде как беспошлинные лимиты урезают до 200 евро, 8 датчиков уже не пройдут, а меньше возить — дополнительные расходы на почту.
Я очень надеялся, что во второе поколение bluetooth засунут, чтоб без дополнительных ридеров жить, но там ничего критично нового не придумали.olktet
17.09.2019 06:04Во второй либре есть bluetooth. А самое главное, что умельцы постарались и теперь можно в xdrip получать ГК без постоянных считываний сенсора.
dinam
17.09.2019 10:12Там блютус только в ридере для передачи в телефон, так что сканировать в любом случае придется. Пока удобнее MiaoMiao ничего не придумали.
Elmot
16.09.2019 17:42E simcom были gprs модули(SIM900), в которые можно было писать свои прошивки на С, и там был внутренний API. Там все было очень плохо, мне ни разу не удалось вшить туда что-нибудь, да и модуль устарел жуть как. Однако можно поискать что-то подобное среди их модулей поновее. Это радикальным образом уменьшит и потребление, и общий размер
holomen
17.09.2019 02:26Кроме всего, «передернуть» USB удаленно не получилось — питание на порт USB идет напрямую.
У нее (распи-0) ведь есть свободные GPIO. А дальше банальный ключ на p-mosfet — PROFIT!Oldster Автор
17.09.2019 09:07Когда я до этого уже дошел, было слишком много негатива с работой USB в RPI Zero. Глюкометр часто «отваливался». Возможно были проблемы с питанием (хотя я уделил этому достаточно внимание), возможно не хватало скорости работы процессора, может что то не так делал, не знаю. Но терпение лопнуло и перешел на PRI 3, после этого все проблемы ушли сразу.
PerlPower
С сертификацией систем непрерывного мониторинга глюкозы в СНГ какая-то беда. Ни Freestyle libre, ни dexcom cgm, ни то что вы упомянули. Казалось бы вот он прорыв в качестве контроля диабета и… тишина, и каждый год обещания сертифицировать от региональных представительств. Все системы и расходники конечно можно достать, но через частников, в аптеках не найдешь. Загадка.
Oldster Автор
К сожалению, так и есть и я не понимаю, в чем там проблема.
alexey-lustin
Проблема большинством эндокринологов описывается просто — СНГ на данный момент является отлаженным рынком для продажи глюкометров, но что самое важно — для тест полосок и ланцетов. Системы непрерывного мониторинга глюкозы — поломают уже отлаженный рынок. Поэтому данные системы активно блокируют.
Вместе с этим системы НМГ уже сейчас делаются производителями в таком стиле чтобы сенсоры также обеспечивали постоянный доход. Тот же dexcom конструктивно выполняет трансмитеры таким образом, что их замена приводила к замене сенсора. Подобным подходом кстати отличался еще HP в их линейке картриджей для принтеров 1010+ — в них снятие правого кожуха приводило к нарушению контакта. А кожух снимать было необходимо для засыпки тонера.
Опять же заявляется что Freestyle libre прошла сертификацию — но тут вступает в силу факт цены. Сенсоры стоят ровно столько сколько начисляется пенсия по инвалидности.
Фактически рынок монополизирован. Капитализм в общем.
Oldster Автор
Наличие НМГ не отменяет использование глюкометров, они по прежнему нужны для калибровки.
bengal___cat
Плюсую, давно об этом размышляю, все технологии консервируют. Миллиардный бизнес никто просто так не отдаст. Остается только инициативным диабетикам собраться и самим что-то произвести, иначе ждать долго придется. История показывает, что сами больные диабетом и сделали очень многое для того, чтобы продвинуться в лечении этого заболевания.
Oakum
Я так полагаю, что сертификация таких систем приведет, к тому, что мы (диабетики) начнем требовать обеспечивать нас расходниками по льготным рецептам. Не далее чем месяц назад, на очередном приеме мне показали копию внутреннего распоряжения: в связи с тем, что OneTouch меняет формат тест-полосок (с увеличением цены) всех больных переводить на полоски российского производства.
Oldster Автор
Цены на тест полоски и сам глюкометр Contour NEXT LINK 2.4 сопоставимы с Contour Plus One, который продается в России почти в каждой аптеки.
P.S. Когда искал глюкометр Contour NEXT LINK 2.4, обнаружил, что в некоторых странах его дают в подарок при покупке помпы.
TonyLorencio
Freestyle libre 1 поколения сертифицирован, по крайней мере, в России. Причем европейские сенсоры несовместимы с российскими сканерами.
PerlPower
А в чем разница между поколениями?
TonyLorencio
Во втором поколении появилась сигнализация о высоком/низком уровне глюкозы, ну и также сигнализация о потере связи между датчиком и сканером.
JohnBull
Вы ценник на Либру видели? На официальном сайте 4490 руб. на 2 недели, 9 тр в месяц. С такими ценами, это не более чем дорогая игрушка, которую может себе позволить не более 5% диабетиков.
yulai-b
Разгадка в том, что у власти ОПГ.