Так случилось, что чуть меньше года назад, моя дочь заболела сахарным диабетом 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)


  1. PerlPower
    15.09.2019 22:55
    +2

    С сертификацией систем непрерывного мониторинга глюкозы в СНГ какая-то беда. Ни Freestyle libre, ни dexcom cgm, ни то что вы упомянули. Казалось бы вот он прорыв в качестве контроля диабета и… тишина, и каждый год обещания сертифицировать от региональных представительств. Все системы и расходники конечно можно достать, но через частников, в аптеках не найдешь. Загадка.


    1. Oldster Автор
      15.09.2019 23:08

      К сожалению, так и есть и я не понимаю, в чем там проблема.


      1. alexey-lustin
        15.09.2019 23:25

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

        Вместе с этим системы НМГ уже сейчас делаются производителями в таком стиле чтобы сенсоры также обеспечивали постоянный доход. Тот же dexcom конструктивно выполняет трансмитеры таким образом, что их замена приводила к замене сенсора. Подобным подходом кстати отличался еще HP в их линейке картриджей для принтеров 1010+ — в них снятие правого кожуха приводило к нарушению контакта. А кожух снимать было необходимо для засыпки тонера.

        Опять же заявляется что Freestyle libre прошла сертификацию — но тут вступает в силу факт цены. Сенсоры стоят ровно столько сколько начисляется пенсия по инвалидности.

        Фактически рынок монополизирован. Капитализм в общем.


        1. Oldster Автор
          15.09.2019 23:44

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


        1. bengal___cat
          17.09.2019 11:04

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


    1. Oakum
      16.09.2019 07:24

      Я так полагаю, что сертификация таких систем приведет, к тому, что мы (диабетики) начнем требовать обеспечивать нас расходниками по льготным рецептам. Не далее чем месяц назад, на очередном приеме мне показали копию внутреннего распоряжения: в связи с тем, что OneTouch меняет формат тест-полосок (с увеличением цены) всех больных переводить на полоски российского производства.


      1. Oldster Автор
        16.09.2019 08:00

        Цены на тест полоски и сам глюкометр Contour NEXT LINK 2.4 сопоставимы с Contour Plus One, который продается в России почти в каждой аптеки.

        P.S. Когда искал глюкометр Contour NEXT LINK 2.4, обнаружил, что в некоторых странах его дают в подарок при покупке помпы.


    1. TonyLorencio
      16.09.2019 10:00

      Freestyle libre 1 поколения сертифицирован, по крайней мере, в России. Причем европейские сенсоры несовместимы с российскими сканерами.


      1. PerlPower
        16.09.2019 11:44

        А в чем разница между поколениями?


        1. TonyLorencio
          16.09.2019 12:14

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


      1. JohnBull
        17.09.2019 13:19

        Вы ценник на Либру видели? На официальном сайте 4490 руб. на 2 недели, 9 тр в месяц. С такими ценами, это не более чем дорогая игрушка, которую может себе позволить не более 5% диабетиков.


    1. yulai-b
      16.09.2019 12:46

      Разгадка в том, что у власти ОПГ.


  1. alexey-lustin
    15.09.2019 23:54

    Применительно к статье — я пока изучаю протоколы чтобы на основе них реализовывать MQTT провайдера к облачным IoT хранилищам для построения экспертных систем.
    Zabbix как по мне тяжеловат для этого — я бы взял OpenDistro от Amazon

    github.com/glucometers-tech/glucometer-protocols

    В дополнение к протоколам — вот утилиты github.com/Flameeyes/glucometerutils для проработки протоколов и устройств


    1. Oldster Автор
      16.09.2019 00:00

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


  1. eee
    16.09.2019 06:20

    Вижу Lennart Goedhart запилил стартап www.tidepool.org
    Не можешь победить — возглавь


  1. ValeriVP
    16.09.2019 09:13

    Вы используете отдельно модуль gprs?
    Не было мысли передать данные в телефон по БТ, а потом уже куда надо?
    Мне кажется это более энергоэффективно.
    А если заменить RPi на esp32 2s, с возможностью сна — можно существенно увеличить автономность.


    1. Oldster Автор
      16.09.2019 10:28

      Да, можно было поступить проще. Есть такой проект. Я не стал его использовать по нескольким причинам:
      1) Дочь ходит с кнопочным телефоном. Смартфон у нее есть, но она «не умеет себя контролировать» с ним, по этому купили ей простой «кнопочный». Думаю, что это проблема большинства детей — не контролируемое зависание «в интернете», игры и т.д.
      2) Как мне показалось — не очень удобно в использовании решение. При зарядке телефона пришлось бы откл. глюкометр и терять данные.

      Да, для связи я использую SIM7000C. Про esp32 не думал, не имею опыта работы с ним. Надо почитать, как у него с Python, Node JS и т.д.


      1. ValeriVP
        16.09.2019 10:40

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

        кабель
        image


        1. Oldster Автор
          16.09.2019 10:51

          Спасибо, поэкспериментирую с телефоном.
          С esp — видимо не получится.


          1. Meklon
            16.09.2019 18:21

            А ещё можно использовать детский аккаунт Google. Там огромное количество настроек в родительском модуле контроля. Как минимум можно:


            1. Задать периоды блокировки/сна
            2. Задать ограничения суммарного времени использования
            3. Каждое приложение устанавливается только после одобрения родителем

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


  1. dimatl
    16.09.2019 10:24

    OpenAPS сильно лучше. С либрой давно проблем нет


    1. Oldster Автор
      16.09.2019 10:29

      Это следующий шаг. Текущая помпа не позволяет сделать это.


  1. bengal___cat
    16.09.2019 12:17

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


    1. Oldster Автор
      16.09.2019 12:28

      Чтоб часы (браслет, не важно) научились мониторить сахар — надо много приложить усилий, начиная с технической реализации и закачивание одобрением медицины. Хочется верить, что это будет скоро. Каждый выбирает сам, если долго ждать, то можно не дождаться.


      1. bengal___cat
        17.09.2019 10:58

        На счет «если долго ждать, то можно не дождаться.» согласен, вот 13 лет уже в моем случае длится заболевание и абсолютно ничего принципиально нового не нашел на рынке. Да появились новые шприц-ручки с новым дизайном, десяток глюкометров работающих через тот же айфон и статьи в блогах о том, что вот он, неинвазивный глюкометр уже скоро в продаже, захожу на оф. сайты будущих производителей, а там тишина. Могу ошибаться, но ведь изобрести глюкометр, который не требует постоянных расходников (которые стоят дорого и их нужно покупать постоянно, всю жизнь, миллионам людей) — это тест полоски и тд., просто не выгодно, ведь это миллиардный бизнес. Поэтому складывается ощущение, что все эти технологии быстро скупаются у тех, кто их придумал и консервируются.


    1. Meklon
      16.09.2019 18:22

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


      1. PerlPower
        16.09.2019 18:34

        Насколько сильно лучше? Мне попадались данные, что различие гликированного гемоглобина у тех использует помпу и инъекции небольшое, порядка 0.5%. Если помните источник, можете дать ссылку?


        1. Meklon
          16.09.2019 19:42
          +1

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


          1. dinam
            16.09.2019 19:48

            Это в случае умной помпы, которая уменьшает дозу по датчику. Но цена такого набора космическая выходит и расходников тысяч на 30 в месяц надо.
            Читал про разработку помпы с двумя ампулами — инсулин и глюкогон. В случае гипо она могла вкатить глюкогона, и результаты испытаний были очень интересными.


            1. Oldster Автор
              16.09.2019 20:20

              Тут обсуждают помпы, в шапке есть сравнение разных помп.
              https://t.me/diabetes_pump


            1. Meklon
              16.09.2019 20:41

              Даже помпа без обратной связи настраивается на разные уровни инсулина в разные часы.


              Врач это настраивает на основании личного дневника пациента и серии измерений.


              1. dinam
                16.09.2019 21:26

                это работа по расписанию. съел поменьше, пробежался, перенервничал и расписание уже бессильно, а то и опасно.


                1. Oldster Автор
                  16.09.2019 21:41

                  Шаг на ручке 0,5 на помпе может быть до 0,025.
                  Реальный пример: подкололи на еду 3,5 но через час надо ещё доколоть на жиры 0.1 и не забыть это сделать. На ручке это не реально. На помпе есть режимы: двойной волны, суперболюс, квадратной волны. Это помогает сглаживать пики сахара.


                  1. dinam
                    16.09.2019 22:15

                    В моем случае 1 инсулин убирает 4 сахара. Так что 0.1 подкалывать бессмыслено, превышение сахара на 0.4 погоды не сделает, разве что добиваться идеально ровного графика, но такого даже в здоровом организме не бывает. Да и к точности датчика вопросы остаются. Хотя, не спорю, помпа была бы очень удобна в случае подкалывания, меньше дырок, меньше мороки, точнее дозировка. Но пока думать своей головой все равно приходится каждый раз и вносить корректировки. Очень хочется надеяться на изобретение полностью автоматической помпы за вменяемые деньги. Желательно, вшиваемой под кожу, чтоб никаких трубочек-иголочек снаружи. Пока это какое-то финансовое рабство получается.


  1. AlexSuslov
    16.09.2019 13:41

    Esp32 не стоит отбрасывать. Есть много полезных библиотек. Хороший форум esp8266.ru/forum


  1. zzoond
    16.09.2019 14:59

    Автору темы нужно запилисть сайт с полным описанием проекта и демонстрацией функций. Гляди и в стартап перерастет.


    1. IgorMats
      16.09.2019 23:35

      Нас таких «стартапщиков» знаете сколько!? И каждый что-то придумывает, потому что то, что происходит на рынке просто издевательство.


  1. dinam
    16.09.2019 15:05

    Для Freestyle Libre уже есть считыватели (blucon или miaomiao), которые по bluetooth передают данные на телефон, а телефон уже дальше в облако, чтобы родителям было видно и алармы срабатывали. И даже на AppleWatch умеют передавать без участия телефона. Либру уже полгода продают официально в москве и области с доставкой 2-3 дня. Цена немного напрягает, но комфорт того стоит


    1. PerlPower
      16.09.2019 18:43

      Какое поколение либры и что по цене сравнительно с частниками, которые возили из Европы?


      1. dinam
        16.09.2019 19:43

        В Москве первое поколение. Второе будут сертифигировать год-полтора, как обычно, если не забьют вообще. Из Германии через посредника было чуть дороже, ибо комиссия за платежи в районе 2% и еще 20-25 евро за почту. Сейчас же в Германии либра первого поколения идет в районе 51 евро, поэтому посылка из 8 датчиков обходится чуть дешевле, чем из москвы, но ждать две недели. И с нового года вроде как беспошлинные лимиты урезают до 200 евро, 8 датчиков уже не пройдут, а меньше возить — дополнительные расходы на почту.
        Я очень надеялся, что во второе поколение bluetooth засунут, чтоб без дополнительных ридеров жить, но там ничего критично нового не придумали.


        1. olktet
          17.09.2019 06:04

          Во второй либре есть bluetooth. А самое главное, что умельцы постарались и теперь можно в xdrip получать ГК без постоянных считываний сенсора.


          1. dinam
            17.09.2019 10:12

            Там блютус только в ридере для передачи в телефон, так что сканировать в любом случае придется. Пока удобнее MiaoMiao ничего не придумали.


  1. Elmot
    16.09.2019 17:42

    E simcom были gprs модули(SIM900), в которые можно было писать свои прошивки на С, и там был внутренний API. Там все было очень плохо, мне ни разу не удалось вшить туда что-нибудь, да и модуль устарел жуть как. Однако можно поискать что-то подобное среди их модулей поновее. Это радикальным образом уменьшит и потребление, и общий размер


  1. holomen
    17.09.2019 02:26

    Кроме всего, «передернуть» USB удаленно не получилось — питание на порт USB идет напрямую.

    У нее (распи-0) ведь есть свободные GPIO. А дальше банальный ключ на p-mosfet — PROFIT!


    1. Oldster Автор
      17.09.2019 09:07

      Когда я до этого уже дошел, было слишком много негатива с работой USB в RPI Zero. Глюкометр часто «отваливался». Возможно были проблемы с питанием (хотя я уделил этому достаточно внимание), возможно не хватало скорости работы процессора, может что то не так делал, не знаю. Но терпение лопнуло и перешел на PRI 3, после этого все проблемы ушли сразу.