Так получилось, что я в своей жизни столкнулся с сахарным диабетом 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/
Добавить комментарий