- PVSM.RU - https://www.pvsm.ru -

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 1
Так случилось, что чуть меньше года назад, моя дочь заболела сахарным диабетом 1 типа [1] (инсулинозависимый). После месяца использования «ручек», мы перешли на помпу Medtronic 640g с поддержкой НМГ. Под катом расскажу, как я делал мониторинг глюкозы, используя данные с помпы. Осторожно, траффик.

Вводная часть

Я не буду описывать все возможности и «плюсы» и «минусы» данной помпы, это выходит за рамки статьи. Эту информацию легко можно найти в интернете. Остановлюсь только на тех моментах, которые необходимы для понимания.

Одна из основных задач при диабете 1 типа является поддержание оптимального уровня глюкозы в крови. Дело в том, что уровень глюкозы меняется достаточно быстро при разных факторах — еда, физические нагрузки, гормоны, изменение погоды, сон, даже простая прогулка в парке может сильно повлиять на уровень глюкозы. По этому, важно измерять уровень глюкозы как можно чаще, идеально каждые 5 минут 247. Обычным глюкометром этого достичь крайне сложно, по этому используют НМГ. Они бывают разные. Более подробно можно почитать и посмотреть видео тут [2]. Наличие помпы с мониторингом это очень хорошо и помогает решать многие вопросы. На помпе можно посмотреть текущее значения глюкозы, а так же посмотреть график его изменения за последние время.

Помпа, со всеми показаниями всегда с дочерью, а значит посмотреть показания удаленно не представляется возможным. Дочь не всегда находится рядом, она ходит в школу, посещает доп. занятия, гуляет, в общем, ведет полноценную жизнь. Я и жена — работаем. Постоянные звонки на мобильный, вставание с кровати по несколько (иногда десятков!!!) раз за ночь не делают сон и нервы крепче.

Вводные данные

Реализация и принцип работы НМГ описан тут [3]. Единственное, на что хочу обратить внимание это то, что данная помпа связана с трансмиттером по протоколу ZigBee [4]. Всего я нашел 3 устройства, которые могут работать с этой помпой:

  • сам трансмиттер [5] Guardian 2 Link
  • CareLink USB MMT-7306, т.н. «черная флешка»
  • Contour NEXT LINK 2.4, глюкометр

На данный момент, из этих 3-х устройств в России продают только трансмиттер. Собственно именно он передает данные в помпу о уровне глюкозы. «Флешку» я видел только у нашего лечащего врача и с ее помощью мы пару раз скачивали данные с помпы в ее программу и распечатывали графики. Потом эта «флешка» стала недоступной для нас, т.к. ее отдали в другой город и когда она вернется никто не знает. Говорят, что эта «флешка» одна единственная на всю Россию, не знаю, на сколько эта информация верна. Глюкометр и «флешку» купить в России не реально. На мой вопрос официальные представители говорят, что «они пока не прошли сертификацию в России, когда будет, не известно, ждем». После долгих поисков, я все же смог купить глюкометр в Англии. За что отдельное спасибо всем, кто мне в этом помог.

Итак, глюкометр можно подключить к помпе и он имеет USB, значит его можно подключить к компьютеру. После не продолжительных поисков, я нашел проект на GitHub, который позволял прочитать данные с помпы через этот глюкометр. Пользуясь случаем, выражаю большую благодарность автору этих проектов — Lennart Goedhart [6]. Он проделал действительно большую работу по изучению протокола и результат выложил в свободный доступ. Осталось только реализовать задуманное.

Постановка задачи

Иметь возможность мониторить показания помпы на компьютере, мобильном телефоне в режиме онлайн «без регистрации и смс».

Решение

Железо

В первом варианте был выбран Raspberry Pi Zero W, который не нуждается в представлении. Он маленький, не прожорлив и имеет на борту все самое необходимое. К нему было куплено доп. оборудование: Waveshare SIM7000C [7] — 2.5G модем + GPS, Waveshare 4 Port USB HUB [8], Raspberry Pi Zero UPS [9]. Все это можно без труда купить на Aliexpress. Выбор всех этих компонент был основан на том, что все это имеет маленькие габариты и собирается как «пирог». Питание осуществляется через Power Bank. На тесте, емкость 6000 мА хватает на «световой» день, т.е. с 8.00 утра до 20.00 вечера, что для меня вполне приемлемо. Вес Power Bank порядка 130 гр. и не будет сильно «тянуть карман».

Еще про питание, точнее про Raspberry Pi Zero UPS. При планировании я думал, что он вполне сможет быть основным источником питания, но я ошибся. На практике его хватает на 1 час работы. По этому, я не вижу смысла его использовать.

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 2
Первая версия.

В процессе эксплуатации выяснилось, что работа с USB у Pi Zero оставляет желать лучшего. Периодически отваливался Wi-Fi — не так критично есть GPRS, но зависание глюкометра это уже существенно. Кроме всего, «передернуть» USB удаленно не получилось — питание на порт USB идет напрямую.

В конце концов я приобрел Raspberry Pi 3. Выбор был обусловлен наличием Wi-Fi на борту и наличием полноценных портов USB.

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 3
Вторая версия, без глюкометра и Waveshare SIM7000C.

Для уменьшения размеров, пришлось пожертвовать Ethernet разъемом, и припаять свой USB провод для подключения глюкометра. В будущем планируется избавиться от корпуса глюкометра и припаять напрямую его к малинке.
Разработка и печатание корпуса — в планах.

Софт

Основное требование — доступ к данным с любого устройства, включая смартфоны. Поднимать какой либо сервер на малинке не имело смысла — при связи через модем, имеем «серый» ip, что рушило все планы. К тому же, держать постоянное соединение по GPRS не входило в мои планы из-за экономии энергии. К счастью, у меня уже был настроен Zabbix и было принято решение передавать данные на него. В качестве «красивых» графиков была прикручена Grafana.

В основу софта на малинке был взят этот проект [10]. Как оказалось позже [11], это был только концепт. В целом, он вполне работоспособный и на текущий момент, он выполняет мои задачи.

Логика работы такова: каждые 5 минут я собираю данные с помпы и малинки и передаю их на Zabbix через zabbix_sender. Кроме этого, если «удаленное управление по SMS».

Вот как это выглядит в браузере (на телефоне — так же):
Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 4
Текущее показание глюкозы, активного инсулина и тренда (резкое падение или подъем уровня)

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 5
график глюкозы и активного инсулина

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 6
Объем инсулина в помпе, заряд батарейки, временная базальная скорость и базальная скорость

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 7
температура CPU малинки, уровень Wi-Fi, модема

Непрерывный мониторинг глюкозы (НМГ) с помпой Medtronic 640g - 8
данные GPS

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

В планах на ближайшее будущие — изменить логику работы, добавить оповещение по SMS на критические значения и т.д. В дальнейшем перейти на node js, основываясь на этот [12] проект.

Код выкладываю на GitHub [13].

Автор: Oldster

Источник [14]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/330114

Ссылки в тексте:

[1] сахарным диабетом 1 типа: https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D1%85%D0%B0%D1%80%D0%BD%D1%8B%D0%B9_%D0%B4%D0%B8%D0%B0%D0%B1%D0%B5%D1%82_1-%D0%B3%D0%BE_%D1%82%D0%B8%D0%BF%D0%B0

[2] тут: https://www.medtronic-diabetes.ru/varianty-lecenia/uroven-glukozy-v-krovi/nepreryvnyj-monitoring-glukozy

[3] тут: https://www.medtronic-diabetes.ru/varianty-lecenia/uroven-glukozy-v-krovi/sensor-glukozy

[4] ZigBee: https://ru.wikipedia.org/wiki/ZigBee

[5] трансмиттер: https://www.medtronic-diabetes.ru/transmitter-guardian-2-link

[6] Lennart Goedhart: https://github.com/pazaan

[7] Waveshare SIM7000C: https://www.waveshare.com/wiki/SIM7000C_NB-IoT_HAT

[8] Waveshare 4 Port USB HUB: https://www.waveshare.com/wiki/USB_HUB_HAT

[9] Raspberry Pi Zero UPS: https://ru.aliexpress.com/item/32961105269.html?spm=a2g0s.9042311.0.0.66e133eddJADYg

[10] проект: https://github.com/pazaan/decoding-contour-next-link

[11] позже: https://github.com/pazaan/decoding-contour-next-link/issues/38#issuecomment-436426763

[12] этот: https://github.com/tidepool-org/chrome-uploader

[13] GitHub: https://github.com/oldsterIL/Medtronic600-cgm-remote-monitor

[14] Источник: https://habr.com/ru/post/465281/?utm_source=habrahabr&utm_medium=rss&utm_campaign=465281