Обсудить на форуме - Помощь проекту

Поделиться в соц сетях

Разработчик-диабетик собрал искусственную поджелудочную железу


Лиаму Зебеди понадобились инсулиновая помпа, пара контроллеров и несколько программ с открытым исходным кодом.

Здоровая поджелудочная железа вырабатывает инсулин и знает, когда и сколько его нужно — в ответ на изменение уровня глюкозы в организме. У больных диабетом поджелудочная железа работает с нарушениями.

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

Диабетики, контролируя приём инсулина, занимаются математической оптимизацией, считает Зебеди. Его искусственная поджелудочная железа занимается тем же самым, только процесс на 80% автоматизирован.

Оборудование

  • Глюкометр FreeStyle Libre CGM.
  • Трансмиттер Miaomiao — передаёт данные с Libre (работает на NFC) на телефон по Bluetooth.
  • Nightscout — программа с открытым исходным кодом для хранения и визуализации данных для диабетиков первого типа (инсулин практически не вырабатывается организмом). Хостинг — Heroku.
  • Приложение xDrip, которое принимает данные по Bluetooth и отправляет их в Nightscout.
  • Инсулиновая помпа Medtronic — для инъекций инсулина.
  • Intel Edison + Explorer HAT — плата с поддержкой Wi-Fi и радиокоманд частотой 900 МГц.
  • Аккумулятор на 4400 мА.
  • OpenAPS — «операционная система» искусственной поджелудочной. Выгружает данные из Nightscout, прогнозирует и подстраивает доставку инсулина помпой, подгружает данные в Nightscout для непрерывного отслеживания. Исходный код открыт.

Цены

  • Помпа у разработчика уже была, стоит она, как правило, около €3100.
  • FreeStyle Libre CGM — €70 за считыватель (разовая трата) и €140 в месяц на сенсоры.
  • Трансмиттер Miaomiao — €200.
  • Хостинг Heroku для Nightscout — бесплатно.
  • xDrip — Зебеди пришлось купить годовую лицензию разработчика за €93, чтобы установить программу на телефон: Apple запрещает его загрузку в App Store.
  • Intel Edison обошёлся в €57. Мини-компьютер не продаётся уже два года, поэтому пришлось как следует поискать на Amazon и eBay.
  • Explorer HAT — плату изготовила компания Enhanced Radio в США за €68.
  • Аккумулятор Adafruit за €50 ёмкостью в два раза больше нужной — просто на всякий случай.
  • OpenAPS — бесплатно, открытый исходный код.

Итого, исключая помпу: €608.

Ежемесячные траты, исключая инсулин: €140.

Сборка

На сборку Зебеди потратил около девяти часов:

  • Час на чтение документации по OpenAPS, она очень большая.
  • Два часа на загрузку Jubilinux и настройку Edison.
  • Два с половиной часа на загрузку пакетов и библиотек с помощью APT и NPM. Поскольку OpenAPS — обычный набор простейших Bash-скриптов, всё пришлось загружать заново.
  • Час на покупку лицензии разработчика Apple и установку xDrip.
  • Час на настройку хостинга для Nightscout, с аутентификацией и особыми плагинами для OpenAPS.
  • Два часа на устранение багов. Система почему-то не считывала показатели из Nightscout. Не сумев устранить неполадки, Зебеди обратился за помощью в Gitter. Оказалось, проблема была в приложении Tomato, которым он пользовался для отслеживания уровня сахара в крови. Поэтому разработчик переключился на xDrip.
​Все нужные детали
​Трансмиттер Miaomiao
​Инсулиновые помпы (Зебеди использовал нижнюю)
​Модуль Intel Edison
​Подключение к модулю Edison через USB Serial. Зебеди использовал путь /dev/tty.usbserial-xyz 115200
​Установка Jubilinux
​Настройка протоколов SSH
​Лог OpenAPS

OpenAPS предельно проста благодаря большому собранию Bash, Python и JavaScript. В этот момент Зебеди столкнулся со стектрейсом ниже (список строк кода, которые были вызваны до возникновения в приложении сбоя).

myopenaps/monitor/glucose.json: Unexpected end of JSON input

Разработчик установил xDrip на замену Tomato. Первая — с открытым исходным кодом, что, замечает Зебеди, видно по простому дизайну.

​Интерфейс xDrip

Зебеди написал в Gitter, и через час ему помогли решить проблему: не хватало параметра dateString.

​Сообщение Зебеди

После код заработал.

Использование

Ниже — интерфейс Nightgraph. Зебеди пометил цифрами четыре основных элемента:

  1. Статус системы.
  2. Динамика уровня сахара в крови.
  3. Прогноз OpenAPS.
  4. Введение инсулина помпой.

OpenAPS каждые пять минут корректирует базальные профили, или дозировки подачи инсулина («Как OpenAPS принимает решения»). Основные параметры, которые вычисляет система:

  • Разница между текущим уровнем сахара в крови и средним за последние пять минут.
  • Среднее изменение уровня сахара за 15 и 45 минут.
  • Количество инсулина в организме: это важно, поскольку он расходуется неинтуитивно, оставаясь в теле какое-то время, а не исчезая вместе с переработанной глюкозой.
  • Чувствительность к инсулину.
Средний уровень сахара в крови — производная от предыдущих средних показателей, а количество инсулина в организме представляет собой экспоненциальную кривую Документация OpenAPS

Кроме того, OpenAPS замечает, когда Зебеди заболевает. За сутки до первых симптомов уровень сахара в крови у него значительно повышается.

OpenAPS, отмечает разработчик, — не панацея. Ему по-прежнему нужно принимать инсулин перед едой, да и с алкоголем система тоже не поможет. Тем не менее с OpenAPS ему гораздо удобнее и спокойнее.

​Собранное устройство
​Слева — трансмиттер Miaomiao, справа — датчик глюкометра
​Инсулиновая помпа

https://vc.ru/dev/84930-razrabotchik-diabetik-sobral-iskusstvennuyu-podzheludochnuyu-zhelezu-rabotayushchuyu-na-javascript


Главные новости дня читайте в zen.yandex.comkomersweb.ru

Похожие записи:

Оставить комментарий

avatar
  Подписаться  
Уведомление о