Параметр определяющий в Android APS необходимое количество введения инсулина

5b55d14700f409d4866e697313025aa6

Рассмотрим какой параметр отвечает за расчет необходимого объема введения инсулина.
В предыдущей статье мы определили что таким параметром является insulinReq, здесь же рассмотрим его в контексте разных режимов введения инсулина, а именно basal и SMB.

Чтобы точно ответить на вопрос поисследуем основной файл — determine-basal.js

Расшифровка некоторых терминов из данной статьи

**snoozeBG** — это альтернативный прогнозируемый уровень глюкозы, который учитывает активные болюсы инсулина. Этот параметр вводится в расчет для ситуаций, когда был недавно введен болюс (например, через функцию Super Micro Bolus (SMB)). В таких случаях эффект инсулина может быть более выраженным, чем обычный прогноз eventualBG, и поэтому требуется учитывать этот фактор, чтобы избежать гипогликемии.

**minDelta** — это минимальное изменение уровня глюкозы за последние несколько минут. Программа использует это значение для определения текущей тенденции изменения глюкозы (растет она или падает и с какой скоростью).

**expectedDelta** — это ожидаемое изменение уровня глюкозы, рассчитанное на основе активности инсулина (BGI) и разницы между текущим и целевым уровнем глюкозы. Программа использует этот параметр, чтобы сравнить фактическое изменение уровня глюкозы с ожидаемым, что помогает корректировать дозы инсулина.

Super Micro Bolus (SMB) — это механизм подачи небольших доз инсулина в ответ на высокий уровень глюкозы или когда прогнозируемый уровень глюкозы выше целевого значения. SMB позволяет более гибко и точно регулировать уровень глюкозы, особенно после приема пищи.

Значение insulinReq

В файле determine-basal.js, который является основным для расчета базального инсулина, переменная insulinReq действительно играет ключевую роль в определении количества инсулина, которое нужно подать. В этом файле insulinReq используется для вычисления требуемой дозы инсулина на основе текущих прогнозов уровня глюкозы.

Вот несколько важных моментов относительно использования insulinReq в коде:

  1. Расчет insulinReq:

    • insulinReq рассчитывается на основе разницы между прогнозируемым уровнем глюкозы (snoozeBG или eventualBG) и целевым уровнем глюкозы (target_bg), деленной на чувствительность к инсулину (sens).

var insulinReq = round( (Math.min(snoozeBG,eventualBG) - target_bg) / sens, 2);
  1. Корректировка insulinReq:

  • Значение insulinReq может корректироваться в зависимости от ожидаемого изменения уровня глюкозы (например, используя minDelta и expectedDelta).

var newinsulinReq = round(( insulinReq * (1 - (minDelta / expectedDelta)) ), 2);
insulinReq = newinsulinReq;
  1. Использование insulinReq для установки темпа базального инсулина:

  • insulinReq используется для расчета темпа базального инсулина, который программа затем применяет, чтобы скорректировать уровень глюкозы.

  • Код примера

var rate = basal + (2 * insulinReq);

SMB

Так как у нас есть два режима подачи инсулина — через базальный инсулин (работаете как подача одинакогово количества инсулина с переодичностью например в 3 минуты для дозирования определенного часового объема инсулина)

И SMB необходимого для более агрессивной корректировки (может доставлять большее количества инсулина чем как правило консервативный и значительно ограниченный базальный инсулин.

Где рассчитывается SMB?

В файле determine-basal.js SMB рассчитывается в зависимости от прогнозируемого уровня глюкозы и чувствительности к инсулину. SMB вводится через микроболюсы в тех случаях, когда прогнозируемый уровень глюкозы выше целевого и программа определяет, что небольшая дополнительная доза инсулина может помочь удержать уровень глюкозы в целевом диапазоне.

Какой параметр определяет объем SMB?

Объем SMB определяется параметром **microBolus**, который рассчитывается на основе **insulinReq**, текущего уровня глюкозы, целевого уровня глюкозы, и времени с момента последнего болюса. Вот ключевые моменты:

  • **insulinReq** используется для определения общей требуемой дозы инсулина.

  • SMB затем рассчитывается как доля от insulinReq (обычно половина или меньше) с учетом других ограничений, таких как максимальный допустимый болюс (например, maxBolus).

Код, связанный с расчетом SMB, может выглядеть следующим образом:

var microBolus = Math.floor(Math.min(insulinReq/2,maxBolus)*roundSMBTo)/roundSMBTo;

Этот код определяет объем SMB, который будет подан пользователю на основе расчета insulinReq, при этом соблюдая максимальные ограничения для болюсов.

© Habrahabr.ru