- Omnibus rebus | Борис Бикбов -
https://omnibusrebus.brelata.ru/
-
Калькулятор риска прогрессирования заболевания почек при хронической почечной недостаточности
Posted By
Борис Бикбов
On
In Нефрология, Программное обеспечение |
No Comments
<!-- ;
// Программирование: Бикбов Б.Т. http://omnibusrebus.brelata.ru/
// Данный код может свободно распространяться и модифицироваться при использовании в некоммерческих целях
// Обязательным условием использования и распространения данного кода являются:
// 1. Сохранение комментариев с указанием авторства Бикбова Б.Т. в программном коде JavaScript
// 2. Указание авторства Бикбова Б.Т. на странице с использованием данного програмного кода
// 3. Указание активной ссылки на сайт http://omnibusrebus.brelata.ru/ на странице с использованием данного програмного кода
// версия 1.0.20161211
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function myisValid(n) {
if(!isNumeric(n) || n == ''){
return false;
}else{
return true;
}
}
function calculate_progression(){
var sex = GetSelectedRadioItem('sex');
var age = document.getElementById('age').value.replace(",",".");
var gfr = document.getElementById('gfr').value.replace(",",".");
var acr = document.getElementById('acr').value.replace(",",".");
var acrunits = GetSelectedRadioItem('acrunits');
var domicile = GetSelectedRadioItem('domicile');
var albumin = document.getElementById('albumin').value.replace(",",".");
var albuminunits = GetSelectedRadioItem('albuminunits');
var phosphorus = document.getElementById('phosphorus').value.replace(",",".");
var phosphorusunits = GetSelectedRadioItem('phosphorusunits');
var bicarbonate = document.getElementById('bicarbonate').value.replace(",",".");
var bicarbonateunits = GetSelectedRadioItem('bicarbonateunits')
var calcium = document.getElementById('calcium').value.replace(",",".");
var calciumunits = GetSelectedRadioItem('calciumunits');
var proceedwithcalculation = 1; // по умолчанию разрешу
var rawvalue = '';
var tangririsk2yrs4vars = '';
var tangririsk5yrs4vars = '';
var tangririsk2yrs8vars = '';
var tangririsk5yrs8vars = '';
var finaloutput_alerts = '';
var finaloutput_results = '';
var finaloutput_conclusion = '';
if( gfr =='' || !isNumeric(gfr) ){
finaloutput_alerts += '
Не указана СКФ
';
proceedwithcalculation = 0;
}else if ( ( gfr = 60 ) ){
finaloutput_alerts += '
Калькулятор валидирован только для значений СКФ менее 60 мл/мин/1,73м2, поэтому для указанной Вами СКФ расчет не может быть произведен.
';
proceedwithcalculation = 0;
}
if(parseInt(sex)>=0){
// все ок
}else{
finaloutput_alerts += '
Вы указали для альбуминурии значение "' + acr + '", что превышает допустимую границу для использования в калькуляторе. Поэтому в рассчете было использовано значение 3000 для альбуминурии.
Вы указали для альбуминурии значение "' + acr + '", что выходит за допустимую границу для использования в калькуляторе. Поэтому в рассчете было использовано значение 1 для альбуминурии.
';
}
// конвертирую лабораторные единицы измерения
// отношение альбумин к креатинину
switch(parseInt(acrunits)){
case 1: // мг/г
// ничего делать не надо
break;
case 2: // мг/ммоль
acr = acr / 0.113;
break;
case 3: // мг/сут
// ничего делать не надо
finaloutput_alerts += '
В оригинальном исследовании (см. ссылки [1] и [2]) альбуминурия в виде суточной экскреции не анализировалась. Однако с учетом того, что определение суточной экскреции альбуминурии производится в России намного шире чем анализ отношения альбумин/креатинин в случайной порции мочи, суточная альбуминурия была введена в данную реализацию калькулятора из расчета 1 мг/сут = 1 мг/г.
В оригинальном исследовании (см. ссылки [1] и [2]) альбуминурия в виде суточной экскреции не анализировалась. Однако с учетом того, что определение суточной экскреции альбуминурии производится в России намного шире чем анализ отношения альбумин/креатинин в случайной порции мочи, суточная альбуминурия была введена в данную реализацию калькулятора из расчета 1 мг/сут = 1 мг/г.
';
break;
}
// альбумин крови
switch(parseInt(albuminunits)){
case 1: // г/л
albumin = albumin / 10;
break;
case 2: // г/дл
// ничего делать не надо
break;
case 3: // ммоль/л
albumin = albumin / 1.45 ;
break;
}
//
switch(parseInt(phosphorusunits)){
case 1: // ммоль/л
phosphorus = phosphorus / 0.323;
break;
case 2: // г/дл
// ничего делать не надо
break;
}
//
switch(parseInt(bicarbonateunits)){
case 1: // мг/г
// ничего делать не надо
break;
case 2: // мг/ммоль
// ничего делать не надо
break;
}
//
switch(parseInt(calciumunits)){
case 1: // ммоль/л
calcium = calcium / 0.25;
break;
case 2: // г/дл
// ничего делать не надо
break;
}
if( !myisValid(calcium) ) {
// ну и ладно
}else if( (calcium 10.5 ) {
calcium = 10.5;
}
if( !myisValid(phosphorus) ) {
// ну и ладно
}else if( phosphorus 6.5) {
phosphorus = 6.5;
}
if( !myisValid(bicarbonate) ) {
// ну и ладно
}else if( bicarbonate 28) {
bicarbonate = 28;
}
if( !myisValid(albumin) ) {
// ну и ладно
}else if( albumin 4) {
albumin = 4;
}
// если все необходимые переменные есть
if(proceedwithcalculation == 1){
rawvalue = Math.exp( - 0.2201*((age/10)-7.036) + 0.2467*(sex-0.5642) - 0.5567*((gfr/5)-7.222) + 0.4510*(Math.log(acr)-5.137) );
if( domicile == 1 ){
tangririsk2yrs4vars = (1 - Math.pow(0.9832, rawvalue))*100.0;
tangririsk5yrs4vars = (1 - Math.pow(0.9365, rawvalue))*100.0;
}else{
tangririsk2yrs4vars = (1 - Math.pow(0.9750, rawvalue))*100.0;
tangririsk5yrs4vars = (1 - Math.pow(0.9240, rawvalue))*100.0;
}
// приходится устраивать танец с бубном чтобы получить округление до дробной части
tangririsk2yrs4vars = Math.round(tangririsk2yrs4vars * 10.0)/10.0;
tangririsk5yrs4vars = Math.round(tangririsk5yrs4vars * 10.0)/10.0;
finaloutput_results += '
Риск прогрессирования заболевания почек до терминальной стадии (с необходимостью начать лечение диализом или выполнить трансплантацию почки) с учетом возраста, пола, альбуминурии и СКФ: В течение 2 лет: ' + tangririsk2yrs4vars +'% В течение 5 лет: ' + tangririsk5yrs4vars +'%
Риск прогрессирования заболевания почек до терминальной стадии (с необходимостью начать лечение диализом или выполнить трансплантацию почки) с учетом всех параметров (включая содержание в крови альбумина, фосфатов, бикарбоната и кальция): В течение 2 лет: ' + tangririsk2yrs8vars +'% В течение 5 лет: ' + tangririsk5yrs8vars +'%
';
}
// выведу сообщение об оценке риска
if(gfr >= 15 && gfr < 30) {
finaloutput_results += '
Для пациентов с СКФ 15-29 мл/мин/1,73м2 можно рассматривать 2-летний риск прогрессирования до терминальной почечной недостаточности от 0 до 10% как низкий, от 10 до 20% - как средний, и > 20% - как высокий.
Для пациентов с СКФ 30-59 мл/мин/1,73м2 можно рассматривать 5-летний риск прогрессирования до терминальной почечной недостаточности от 0 до 5% как низкий, от 5 до 15% - как средний, и > 15% - как высокий.
';
}
finaloutput_results += '
В случае высокого или среднего риска прогрессирования пациенту необходимо наблюдение нефролога.
';
}// закрывающая общего условия
document.getElementById('myhtmloutput').innerHTML = finaloutput_conclusion + finaloutput_results + ' ' + finaloutput_alerts;
return true;
}
function GetSelectedRadioItem(name) {
var obj = document.getElementsByName(name);
chosen = '';
for(i=0; i
Пожалуйста, включите поддержку JavaScript в браузере и разрешите выполнение сценариев на данной странице. Это абсолютно необходимо для работы калькулятора. Как это сделать можно посмотреть на Яндексе[1]
Обязательные значения для расчета
Возраст, лет
Пол
Скорость клубочковой фильтрации, мл/мин/1,73м2
(рассчитанная по формуле CKD-EPI, с обязательной стандартизацией реактивов для определения креатинина)
Необязательные значения для расчета
(Расчет риска возможен без этих лабораторных значений, однако если они известны - то это повышает точность расчета)
Содержание альбумина в крови
Содержание фосфатов в крови
Содержание бикарбоната в крови
Содержание общего кальция в крови
Результат:
Калькулятор составлен Бикбовым Б.Т. (omnibusrebus.brelata.ru[2]).
При составлении калькулятора использовались следующие источники:
[1] Tangri N, Stevens LA, Griffith J et al., A predictive model for progression of chronic kidney disease to kidney failure. JAMA. 2011; 305(15): 1553-9.
[2] Tangri N, Grams ME, Levey AS et al., Multinational Assessment of Accuracy of Equations for Predicting Risk of Kidney Failure: A Meta-analysis. JAMA. 2016; 315(2): 1-11.
Для чего нужен этот калькулятор?
Этот калькулятор позволяет прогнозировать риск развития у пациента терминальной хронической почечной недостаточности (ТХПН). При этом надо помнить, что полученное значение вероятности прогрессирования до ТХПН в течение последующих 2 или 5 лет - это вероятность, предсказанная на основании анализа других пациентов с заболеваниями почек. В любой вероятности всегда есть возможность ошибки. Поэтому данный калькулятор прежде всего нацелен на решение вопроса - какой врач должен наблюдать пациента? Если риск прогрессирования высокий или средний - то наблюдаться пациенту надо у нефролога. Если риск прогрессирования низкий - то наблюдать пациента может и врач-терапевт.
Почему выбран этот калькулятор?
Существует множество формул для оценки риска прогрессирования, которые были получены разными авторами на разных популяциях. Однако лишь некоторые формулы были верифицированы на внешних независимых выборках пациентов, и только ряд формул имеет хорошую предсказательную способность. Формулы, которые разработаны Tangri и соавторами были верифицированы более чем на миллионе пациентов в разных странах (Россия, к сожалению, в их число не входит), и имеет высокую предсказательную способность (с-коэффициент порядка 0,9). Именно поэтому я сделал калькулятор на основании данной формулы.
Можно ли уменьшить вероятность прогрессирования?
Да, можно. Именно на уменьшение риска прогрессирования нацелено наше лечение. Вы сами можете посмотреть, за счет каких показателей можно уменьшить вероятность прогрессирования - просто изменив в калькуляторе исходные значения СКФ или альбуминурии. При этом можно увидеть, что чем ниже альбуминурия - тем меньше вероятность прогрессирования. Если за счет лечения удастся уменьшить альбуминурию - то уменьшиться и вероятность прогрессирования до ТХПН.
Следует отметить, что в данный калькулятор не вошел ряд важных факторов, которые тоже определяют риск прогрессирования - в частности, это относится к уровню артериального давления и гликемии. Только врач может определить все факторы у конкретного пациента, и назначить ему наилучшее лечение.
Почему нельзя рассчитать риск для пациентов с начальной стадией ХБП?
Для получения формул, которые лежат в основе данного калькулятора, были проанализированы исходы лечения более чем одного миллиона пациентов в разных регионах мира. Но среди проанализированных пациентов были только люди с 3-5 градациями скорости клубочковой фильтрации (т.е. значениями СКФ менее 60 мл/мин/1,73м2). Поэтому полученные в данном калькуляторе значения не могут быть обобщены на пациентов с более высокими скоростями клубочковой фильтрации.
Можно ли рассчитать риск если нет ни суточного анализа мочи на альбумин, ни анализа альбумин/креатинин?
В оригинальном калькуляторе альбуминурия учитывается в виде соотношения альбумин/креатинин в моче. Поскольку это соотношение определяется далеко не во всех больницах и поликлиниках, я добавил в калькулятор также возможность указания суточной альбуминурии из расчета 1 мг/сут суточной альбуминурии = 1 мг/г отношения альбумин/креатинин в моче.
В оригинальном исследовании для получения формулы данного калькулятора учитывалась относительно небольшая группа пациентов, у которых альбуминурия определялась при помощи текст-полосок. При этом значения тест-полосок были конвертированы авторами в значение отношения альбумин/креатинин (ОАК) из расчета: отрицательный по тест-полоске - 9 ОАК, следы по тест-полоске - 43 ОАК, “+” - 81 ОАК, “++” - 315 ОАК, “>++” - 1073 ОАК. Такая конверсия является довольно неточной, во-первых, потому что тест-полоски могут в принципе давать как ложно-положительные, так и ложно-отрицательные результаты, во-вторых, потому что разброс между отдельными значениями на тест-полоске очень велик. Поэтому ориентироваться на значения альубминурии по тест-полоске очень сложно, и намного более точным является использование либо отношения альбумин/креатинин, либо суточной альбуминурии.