Рубрика развивается при поддержке

Разработчик-диабетик собрал искусственную поджелудочную железу, работающую на JavaScript​ Материал редакции

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

В закладки

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

  • Диабетики принимают инсулин для усвоения углеводов, по наитию определяя дозировки. В разной пище — разное количество углеводов со своим гликемическим индексом (скоростью усвоения). Законы разрешают производителям закладывать в информацию о пищевой ценности отклонения до 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, справа — датчик глюкометра
​Инсулиновая помпа
{ "author_name": "Кирилл Казаков", "author_type": "editor", "tags": ["\u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435","javascript"], "comments": 51, "likes": 26, "favorites": 17, "is_advertisement": false, "subsite_label": "dev", "id": 84930, "is_wide": true, "is_ugc": false, "date": "Mon, 30 Sep 2019 13:36:03 +0300", "is_special": false }
Облачная платформа
Основа для цифровизации бизнеса
0
{ "id": 84930, "author_id": 127882, "diff_limit": 1000, "urls": {"diff":"\/comments\/84930\/get","add":"\/comments\/84930\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/84930"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 235819, "last_count_and_date": null }
51 комментарий
Популярные
По порядку
Написать комментарий...
25

На языке в котором '5' - '2' = 3, а '5' + '2' = '52' я бы как-то забоялся поджелудочную гонять 😂

Ответить
5

Вы, возможно, не поверите, но подобное поведение довольно логично и предсказуемо, если представлять себе как устроен javascript. Если вам подобная логика не нравится - вы можете писать строго типизированный код на typescript, например, где операция '5' - '2' приведет к ошибке еще на стадии компиляции.

Ответить
–1

Или C, но это не сделает из JavaScript нормальный язык. 

Ответить
0

а что значит нормальный или не нормальный? ts программистам платят больше, чем c# или java - вполне нормально

Ответить
0

И при чем тут typescript? Это всего лишь dsl, который пытается исправить косяки js. Насчёт зарплат не согласен. Можете привести источник?

Ответить
0

https://habr.com/ru/company/moikrug/blog/443810/

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

понятно что это не язык в целом, но важно его уметь правильно применять и работать с ним, что равносильно изучению нового языка. Плюс в вакансиях указывается typescript разработчик, а не js.

Ответить
0

Что? Там по ссылке медианная зарплата Java и c# выше JavaScript. Какие средние зарплаты синьоров? Там даже верхние границы не соответствуют вашему заявлению. 

Ответить
0

Ниже была дана расшифровка. Вы, видимо, забыли надеть очки или имели нетерпение и не сумели дочитать до выводов

Ответить
0

Те вы говорите о том, что зарплаты выше потому, что в статье на хабре одна мертвая площадка заявляет о том, что зарплаты ниже, но нужно не делать из этих данных выводы, а поискать зарплаты сеньоров, где был указан typescript? Прям вспоминаются те самые железные 146% уверенности в своих данных. 

Ответить
0

а откуда данные что площадка мертвая? Из тех же 146%?

Ответить
1

"Сейчас на сайте 979 вакансий и 130760 резюме, в среднем 10 откликов на вакансию"

Прям внизу написано.

Ответить
0

ваша 5-ая точка сейчас, возможно, рванёт на Марс, но JavaScript более ООП язык нежели эти самые Java, C# и их батя С++. Алан Кей и Smalltalk в помощь. поэтому нормальность крайне субъективна, особенно, если просто не разбираешься в предметной области

Ответить
0

ваша 5-ая точка сейчас, возможно, рванёт на Марс, но JavaScript более ООП язык нежели эти самые Java, C# и их батя С++.

Не знал, что степень нормальности определяется оопностью языка. А как быть процедурным языкам? Чем Си хуже JavaScript?

Алан Кей и Smalltalk в помощь.

Вообщем-то Smalltalk class-based, а JavaScript prototype-based, но заход неплохой.

поэтому нормальность крайне субъективна, особенно, если просто не разбираешься в предметной области

Это единственное что вы правильно подметили :)

Ответить
0

этот комментарий никак не камень в ваш огород :) и он именно ценен как цельный, поэтому я не разбивал его на части или абзацы.

Не знал, что степень нормальности определяется оопностью языка. А как быть процедурным языкам? Чем Си хуже JavaScript?

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

Вообщем-то Smalltalk class-based, а JavaScript prototype-based, но заход неплохой.

на работу вы ходите в одной одежде, дома в другой, но всё равно это является одеждой, class-based и prototype-based - частным случаи ОО парадигмы. 

Это единственное что вы правильно подметили :)

я надеюсь, вы меня поняли и заметили, что не единственное :)

когда-то, лет эдак 5 назад, когда я ещё писал на C#, а потом на Java, мне было интересно, чего все так *банулись с этим ООП и решил хорошенько разобраться с этим веером парадигм и методологий, а  сопоставив для себя более лёгкие ассоциации в голове, до сих пор, если кто на собеседованиях втирает мне про крутость ООП в каких-то только определённых языках, то стараюсь включить мозг товарищу напротив подводя его под логические умозаключения. просто, это как-то глупо выглядит, как будто сравнивать 42-ой и 43-ий размеры обуви.

p.s.: 42-ой офигенный размер, всем советую :) 

Ответить
0

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

Да всем пофиг на ООП. И типизация никак не связана с реализацией. Почитайте про статический полиморфизм в C++.

на работу вы ходите в одной одежде, дома в другой, но всё равно это является одеждой, class-based и prototype-based - частным случаи ОО парадигмы.

Если приводить аналогии с одеждой, то как раз class-based могут быть домашней и рабочей одеждой, а в prototype-based одежда может быть только наследницей предка. Вот и получается домашняя пижама с карманами для молотка. Так в принципе и выглядят все проекты на JavaScript. Частный - не частный, из говна(ООП) может только получиться еще большее говно(прототипный ООП).

когда-то, лет эдак 5 назад, когда я ещё писал на C#, а потом на Java, мне было интересно, чего все так *банулись с этим ООП и решил хорошенько разобраться с этим веером парадигм и методологий

Видимо не разобрались. ООП используют только потому, что для большинства задач ничего другого не придумали.

если кто на собеседованиях втирает мне про крутость ООП в каких-то только определённых языках, то стараюсь включить мозг товарищу напротив подводя его под логические умозаключения. просто, это как-то глупо выглядит, как будто сравнивать 42-ой и 43-ий размеры обуви.

У меня для вас плохие новости. В нормальных компаниях уже давно не спрашивают про языки. Язык это инструмент, который можно освоить за день(Python, Golang, JavaScript) или за несколько месяцев(C++). Опять же, т.к. пока не придумали ничего лучше, то решили спрашивать на собеседованиях алгоритмические задачи. И часто эти алгоритмические задачи разрешают писать вообще псевдокодом.

Ответить
0

ОО парадигма подразумевает, что всё есть объект, даже if и else конструкции.

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

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

Ответить
0

ООП этого не подразумевает. То о чем вы говорите относится уже к дизайну самого языка, который может использовать функции/переменные как first class citizen. C не ООП, но позволяет использовать указатель и как функцию. Становится он от этого ООП?

Ответить
0

я не пытаюсь вас переубедить, и так уже наша беседа зашла слишком далеко так как мы всё же общаемся на разных "волнах", просто попробуйте взглянуть с другой стороны хотя бы на определение - https://en.wikipedia.org/wiki/Object-oriented_programming, - возможно, вы меня поймёте :) пусть каждый и останется со своим мнением  

Ответить
–1

Да, я совершенно не понимаю как ООП может сделать из языка, который складывает строковые литералы с цифрами нормальный язык. 

Ответить
0

если вам на самом деле интересно разобраться, то я могу попытаться объяснить.

в JavaScript есть несколько так называемых "примитивных" типов, к ним как раз и относятся строки и числа, примитивные они по тому, что могут хранить только одно значение (если это строка, то только строка, если число, то только число), но они тоже являются объектами только иммутабельными. у строк и даже чисел можно вызывать методы без дополнительных обёрток как в некоторых других языках. это всё делает под "капотом" интерпретатор.

так вот, когда мы складываем строку и число, это, внезапно, не что иное как перегрузка операторов (полиморфизм, все дела). только вот JavaScript интерпретатор поверил в свои силы и предоставляет неявные правила приведения типов. 

плохо это или хорошо, это просто особенность языка, которую нужно знать. у PHP, Lua и даже Groovy есть похожие или такие же особенности, может языков с такой особенностью больше. становятся ли они все из-за этого "ненормальными"? что вообще подразумевается под "нормальностью"? лично мне JS крайне нравится, но с ним надо держать ухо востро, так как слишком много позволяет, но я ему это прощаю за его гибкость.

Ответить
0

в JavaScript есть несколько так называемых "примитивных" типов, к ним как раз и относятся строки и числа, примитивные они по тому, что могут хранить только одно значение (если это строка, то только строка, если число, то только число),

Примитивными называются те типы, которые язык умеет из коробки. Tuple, List, Hash/TreeTable вполне могут быть примитивныеми типами в некоторых реализациях Lisp, Python и том же JS, при этом они хранят больше одного значения.

у строк и даже чисел можно вызывать методы без дополнительных обёрток как в некоторых других языках. это всё делает под "капотом" интерпретатор.

Это называется приведение типов, а не дополнительные методы. Как это реализовано уже зависит от компилятора/интерпретатора и конечно же для некоторых типов оно может быть explicit, для некоторых implicit. Ну и мутабельность это вообще из другой оперы.

так вот, когда мы складываем строку и число, это, внезапно, не что иное как перегрузка операторов (полиморфизм, все дела). только вот JavaScript интерпретатор поверил в свои силы и предоставляет неявные правила приведения типов.

Это как раз проверка типов и наличие адекватного стандарта, где должно быть прописано, что char + int это нормально, т.к. по сути это одно и тоже. А вот char[], т.е. строка + int - уже совсем другой случай в котором невозможно прописать правила, т.к. неизвестно что к чему приводить.

плохо это или хорошо, это просто особенность языка, которую нужно знать. у PHP, Lua и даже Groovy есть похожие или такие же особенности, может языков с такой особенностью больше. становятся ли они все из-за этого "ненормальными"? что вообще подразумевается под "нормальностью"? лично мне JS крайне нравится, но с ним надо держать ухо востро, так как слишком много позволяет, но я ему это прощаю за его гибкость.

Поэтому и facebook отказался от PHP, сделав Hack. Два других используются как DSL.

Ответить
0

я вам о мягком, вы мне о горячем, я вам о круглом, вы мне о красном. вы даже не пытаетесь вчитываться. читаю ваши ответы и просто постоянный фейспалм ловлю от того, что вы меня не слышите абсолютно. я вижу, что вы компетентны, так как понимаете о чём пишете, но, возможно, из-за так называемой сверхкомпетентности, а может из-за недальновидности, я не знаю, вы даже не пытаетесь критически обдумывать мои ответы, а просто агритесь. даже в прошлом комментарии я писал исключительно про JS, даже акцентировал на это внимание. увы, наша с вами полемика так и не перешла в дискуссию, посему, считаю дальнейшее обсуждение (даже хер знает можно ли это вообще обсуждением то назвать) бессмысленным. 

Ответить
–1

https://www.youtube.com/watch?v=xE8tL8NdHaY это дикий баян, но все же. Есть ли какие-то причины иметь столько возможностей отстрелить себе ногу?

Ответить
0

https://glot.io/snippets/fh3nmzqe1h

если я работаю с каким-то языком, то я стараюсь по возможности узнать об особенностях компилятора/интерпретатора, так как в каждом какие-то да найдутся, не существует идеального языка. мне лично в каждом что-то не нравится, но если он решает какую-то предметную задачу, то какая проблема?! если вам это смущает, обходите мимо, зачем ныть?! веб без JS на текущий момент времени невозможен, так что, либо приходится адаптироваться, либо нахер с пляжа. я выбрал 1-ый вариант и неплохо себя чувствую. если у вас полыхает 5-ая точка, не пользуйтесь им, зарабатывайте на хлеб с маслом тем, что вам нравится. всё остальное я уже пояснил выше.

Ответить
0

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

Ответить
0

груви тоже плохо спроектирован? может кложура или даже скала? 

Ответить
1

если вы не знаете язык, то это сугубо ваши личные проблемы

Ответить
0

Это как раз логичное поведение и не представляет особой угрозы.

Где действительно надо быть осторожным в ПО для подобного прибора, это в моментах типа 0.1 + 0.2 !== 0.3

Ответить
1

В медицинском ПО не используют floatы, ровно по той же причине, что и в банках.

Ответить
0

в банках float не используют?

Ответить
0

Для работы с точными данными никогда не используют float, тк результат арифметических операций не предсказуем. 

Ответить
–2

На самом деле решение вполне логичное. Как mvp вполне подойдёт, а получив финансирование можно и научиться платы разводить и писать под микроконтроллеры. Я когда проектировал свой процессор тоже сначала писал на C++ эмулятор(тк это основной язык), а потом уже купил fpga и переписал все на verilog. 

Ответить
7

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

Ответить
2

Абсолютно те же эмоции. Пойду ща сыну бахну инсулинчика. 

Ответить
0

Как биомед инженер, который погружался в эту проблему скажу что то что он делает это ад. В принципе FDA по этой причине и выпустила свое предупреждение https://www.fda.gov/news-events/press-announcements/fda-warns-against-use-unauthorized-devices-diabetes-management

Ответить
5

Интересно, а не яваскрипт ли довел человека до диабета?

Ответить
1

Ваш уровень сахара в крови: NaN ммоль/л

Ответить
1

Велосипед, такие системы есть.

Вот если бы он сделал копию сенсора из подручных средств - весь мир был бы благодарен.

Хотя, пристрелили его тогда бы.

Ответить
0

А кстати в чем проблема этих сенсоров? Почему они так адово стоят и их нужно постоянно менять?

Ответить
0

Потому что это не гвоздь, а медицинский прибор.

Ответить
0

Скальпель это тоже медицинский прибор, и он стоит не 120$
Эндоскоп/рентгеновский аппарат тоже медицинский прибор, но их не нужно менять каждый месяц

Если не знаете, просто не пишите

Ответить
1

Я знаю. Я знаю и общался с разработчиком libre freestyle sensor который используется этим умельцем. Менять сенсор нужно по 3 причинам: адгезивная поверхность теряет свои свойства, филамент который идёт в верхний слой кожи засоряется и перестает поставлять пот, иммобилизованная глюкозоксидаза теряет свои свойства.

Теперь перейдем к скальпелям: скальпели есть разные и ультразвуковые скальпели стоят нормально. Эндоскоп и рентген имеют тоже свои расходники которые нужно менять. Сенсор на либре это такой же расходник.

А теперь цена: выпуску любого мед.прибора на рынок предшествуют годы разработок, множество патентов и потом ещё годы сертификации у той же FDA. Вы же знаете сколько стоил пенициллин как только появился и сколько стоит сейчас? Также и с любым мед.аппаратом. Через какое-то время на рынке появятся модели и цена снизится

Ответить
0

Менять сенсор нужно по 3 причинам:

1) адгезивная поверхность теряет свои свойства,
2) филамент который идёт в верхний слой кожи засоряется и перестает поставлять пот,
3) иммобилизованная глюкозоксидаза теряет свои свойства.

оке, вот это более нормальный ответ, спасибо. Можно дальше говорить:
1) Вы хотите сказать, что сенсор отклеивается от кожи? Ну так и говорите. Думаю, приклеить его труда не составляет
2) Филамент это что? Я только про 3д печать знаю, это не то.
И почему бы не заменить именно его?
3) оке. Так почему бы ее и не заменить? Зачем менять весь сенсор?

Вы же знаете сколько стоил пенициллин как только появился и сколько стоит сейчас?

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

Ответить
0

1. Две недели достаточный срок для адгезивной поверхности по причине износа в первую очередь других компонентов системы
2-3. Филамент там - это микрокапилярная система собирающая внеклеточную жидкость. Ни филамент, ни GOx нет возможности заменить по следующим причинам:
- сборка разработана так чтобы эффективно выполнять свою функцию и если ее сделать разделяющуюся/заменяемую, то результат будет плюс-минус километр;
- если делать заменяемые модули, то размеры и цена устройства существенно вырастет (надо будет решать сопутствующие проблемы). Получится как техника из СССР - вроде как вся ремонтируется но качество оставляет желать лучшего;
- все сенсоры калибруются на заводе после производства, вы предлагаете ещё чтобы пользователи сами калибровали сенсор после замены частей? Ещё один девайс разработать? 
- регистрация в FDA займет ещё больше времени с большой вероятностью недопуска на рынок, что приведет к росту цены изделия т.к. риски

И про зарвавшиеся корпорации: патентное право для того и создано, чтобы через время на рынке появлялись дешёвые аналоги. А если государство будет заставлять корпорации продавать все дёшево то получим СССР опять по уровню мед.приборов. Никто не будет вкладываться в затратные разработки по причине того что это станет не выгодно. Советую просто зайти на сайт FDA и посмотреть хоть один road map по сертификации изделий. 

Ответить
0

Про сборку/разборку дальше дискутировать не могу  - не обладаю знаниями. Но предположу, что круто было бы _попробовать_ сделать модульный модуль, где изнашивающаяся часть (клейкая лента и филамент) была бы съемная и идентичная - калибровка тогда будет не нужна

Интересно есть какой-нибудь самопальный аналог?

то получим СССР опять по уровню мед.приборов.

думаю, для начало надо иметь такой уровень медприборов бесплатно и для всех. А потом уже думать о чем-то лучшем.

Ответить
0

"можно сделать модульный прибор чтобы менять только изнашивающуюся часть" - вы как раз предложили то что и реализовано у libre freestyle - замена сенсора.

Что значит иметь уровень приборов бесплатно? Всегда кто-то платит. Если делать "бесплатно и для всех" то и получается как раз качество и функциональность СССР - говно. А скорее всего ничего даже и не получается так как умные люди не хотят работать бесплатно

Ответить
0

как раз качество и функциональность СССР - говно

Можно конечно сравнить медицинское оборудование СССР и США в каких-нибудь 60-х даже, но зачем, если мы даже сейчас видим, что в США оно для многих недоступно?

Ответить
0

Неинвазивный сенсор постоянного мониторинга? Вы про такие?

Ответить
0

I never asked for this // this undefined

ну вы понели))00

Ответить
0

аугументация hand-made, великолепно

Ответить
0

Надеюсь никакому хакеру не захочется взломать эту систему

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }