Параметр определяющий в Android APS необходимое количество введения инсулина
Рассмотрим какой параметр отвечает за расчет необходимого объема введения инсулина.
В предыдущей статье мы определили что таким параметром является 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
в коде:
Расчет
insulinReq
:insulinReq
рассчитывается на основе разницы между прогнозируемым уровнем глюкозы (snoozeBG
илиeventualBG
) и целевым уровнем глюкозы (target_bg
), деленной на чувствительность к инсулину (sens
).
var insulinReq = round( (Math.min(snoozeBG,eventualBG) - target_bg) / sens, 2);
Корректировка
insulinReq
:
Значение
insulinReq
может корректироваться в зависимости от ожидаемого изменения уровня глюкозы (например, используяminDelta
иexpectedDelta
).
var newinsulinReq = round(( insulinReq * (1 - (minDelta / expectedDelta)) ), 2);
insulinReq = newinsulinReq;
Использование
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
, при этом соблюдая максимальные ограничения для болюсов.