Симулятор инсулинотерапии

от автора

Так получилось, что я в своей жизни столкнулся с сахарным диабетом 1 типа у детей. Данное заболевание требует постоянного контроля и поддержания в пределах нормы уровня сахара в крови для обеспечения высокого качества жизни. Можно жить по старинке – проводить измерения глюкометром и колоть инсулин с помощью шприцов. А можно использовать современное технологичное устройство – инсулиновая помпа. Современная инсулиновая помпа позволяет контролировать уровень сахара в крови и вводить инсулин на прием пищи и для поддержания фоновой суточной потребности. С технической точки зрения инсулиновая помпа – это высокоточный насос для подачи инсулина, схема управления с беспроводным интерфейсом для приема данных о сахаре с беспроводного сенсора.

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

За 9 лет инсулинотерапии был пройден путь от инсулиновой помпы Medtronic 722 до Medtronic 740. На всем этом долгом пути я встретил очень большую проблему – недостаточный уровень обучения помповой инсулинотерапии как врачей, так и родителей детей-диабетиков.

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

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

В качестве прототипа была выбрана помпа Medtronic 640, активно устанавливаемая в больницах до начала СВО. Но просто повторить меню, без симуляции пациента, это неправильно и никому не нужно. В результате помогла технология «виртуального пациента». Теперь все манипуляции помпы проецировались на виртуального пациента и следовала реакция в виде значения уровня сахара в крови. В скором времени проект разросся до полноценного программного продукта, структурная схема которого представлена на рисунке.

А модули симулятора Medtronic 640 и 722 стали полностью повторять основные меню помп.

В качестве обвеса добавилась возможность создавать разных виртуальных пациентов для тренировки и управлять сложностью заданий. Кроме этого в симулятор добавились функции полезные врачам и пациентам в повседневной жизни – калькулятор болюса и калькулятор перехода.

Главным циклом симулятора является тело таймера с задержкой 5 минут. В теле которого осуществляется расчет текущего уровня глюкозы.

 ind:=(chas div 4)+1;  N_ed:=((baz_prof_et[ind]/12)-(baz_prof[ind]/12));   index:=chas*12+(minut div 5)+1;   //Расчет активного инсулина  buf:=0;  for i:=1 to 288 do buf:=buf+Activ[i];  Act:=buf;   for i:=0 to 47 do    if (index+i<289) then Glu[index+i]:=Glu[index+i]+Insul(i+1,N_ed)*PH_CH_Ins_et[((index+i)div 24)+1]     else Glu[index+i-288]:=Glu[index+i-288]+Insul(i+1,N_ed)*PH_CH_Ins_et[((index+i)div 48)+1];   Gluc:=Gluc_old+Glu[index]-Activ1[index];

В строке 3 осуществляется расчет разницы текущей скорости базальных профилей. Где baz_prof_et — базальный профиль виртуального пациента, а baz_prof задан в настройках помпы. Данная разница соответствует неправильно настроенной скорости базального инсулина в ед., что приведет к повышению или снижению уровня глюкозы.

В строках 12-13 производится расчет глюкозы в зависимости от текущего значения массива глюкозы Glu, значения разницы базальных профилей N_ed, и фактора чувствительности к инсулину виртуального пациента. Этот же массив Glu хранит данные о приеме пищи. При этом пересчет хлебных единиц пищи в глюкозу осуществляется с учетом углеводного коэффициента.

В строке 15 осуществляется учет активного инсулина в текущий момент времени. Массив Activ1 представляет собой значение активного инсулина (поставленного на еду или на коррекцию), пересчитанного с учетом фактора чувствительности к инсулину.

Очень важным моментом является учет распределения функции инсулина во времени. Для этого функция инсулина Лизпро (Хумалог) аппроксимирована полиномиальной функцией.

// функция Хумалога function TPomp.Insul(j:integer;N:real):real; var   tmp:real; begin   tmp:=N*(-472.8*exp(-0.9079*j/12)+472.8*exp(-0.905923*j/12))/12;   Result:=tmp; end;

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

 // для высокого ГИ        if Tabl.Cells[3,ij]='Высокий ГИ' then         for i:=0 to 17 do          if (index+i<289) then Glu[index+i]:=Glu[index+i]+Fast(i+1,N_ins*PH_CH_Ins_et[ind])           else Glu[index+i-288]:=Glu[index+i-288]+Fast(i+1,N_ins*PH_CH_Ins_et[ind]);         // для среднего ГИ        if Tabl.Cells[3,ij]='Средний ГИ' then         for i:=0 to 25 do          if (index+i<289) then Glu[index+i]:=Glu[index+i]+Medium(i+1,N_ins*PH_CH_Ins_et[ind])           else Glu[index+i-288]:=Glu[index+i-288]+Medium(i+1,N_ins*PH_CH_Ins_et[ind]);         // для медленных ГИ        if Tabl.Cells[3,ij]='Низкий ГИ ' then         for i:=0 to 37 do          if (index+i<289) then Glu[index+i]:=Glu[index+i]+Slow(i+1,N_ins*PH_CH_Ins_et[ind])           else Glu[index+i-288]:=Glu[index+i-288]+Slow(i+1,N_ins*PH_CH_Ins_et[ind]);

Экспертиза программного продукта проведена с помощью врачей-эндокринологов в рамках курса «Современные технологии в лечении сахарного диабета» на базе кафедры эндокринологии ФГБОУ ВО Башгосмедуниверситет Минздрава России в городе Уфе с 11 по 23 марта 2024 года. Применение SugarNorm позволило повысить качество обучения за счет вариативности выполняемых задач по инсулинотерапии с одновременным автоматическим контролем корректности действий по настройке помпы. Кроме этого обучаемые отмечают большую наглядность предложенного подхода, что обеспечивает вовлеченность обучаемых в процесс.


ссылка на оригинал статьи https://habr.com/ru/articles/833838/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *