MediaWiki:Lékařská kalkulačka/Nutrice.js: Porovnání verzí
Z WikiSkript
m (+jednotky) |
(+adjustovaná hmotnost) |
||
Řádek 64: | Řádek 64: | ||
/**************** Vlastní výpočet ****************/ | /**************** Vlastní výpočet ****************/ | ||
$( 'input' ).change( function() { | $( 'input' ).change( function() { | ||
var hmotnost = $( ' | var hmotnost = parseInt( $( 'lekarska_kalkulacka_Nutrice-hmotnost-number' ).val() ); | ||
var vyska = $( ' | var vyska = parseInt( $( 'lekarska_kalkulacka_Nutrice-vyska-number').val() ); | ||
var vek = $( ' | var vek = parseInt( $( 'lekarska_kalkulacka_Nutrice-vek-number').val() ); | ||
var pohlavi = parseInt($('input[name=pohlavi]:checked').val()); | var pohlavi = parseInt($('input[name=pohlavi]:checked').val()); | ||
var aktivita = parseInt($('input[name=aktivita]:checked').val()); | var aktivita = parseInt($('input[name=aktivita]:checked').val()); | ||
Řádek 96: | Řádek 96: | ||
} | } | ||
var harrisBenedict = 0; | var harrisBenedict = 0; | ||
var idealni_hmotnost = 0; | |||
if (pohlavi == 0) { //muz | |||
idealni_hmotnost = (0.655 * vyska) - 44.1; | |||
} else { | |||
idealni_hmotnost = (0.593* vyska) - 38.6; | |||
} | |||
var adjustovana_hmotnost = idealni_hmotnost + 0.4 (hmotnost - idealni_hmotnost); | |||
if (pohlavi == 0) { //muz | if (pohlavi == 0) { //muz | ||
harrisBenedict = 66.5 + (13.75 * | harrisBenedict = 66.5 + (13.75 * adjustovana_hmotnost) + (5.003 * vyska) - (6.755 * vek); | ||
} else if (pohlavi == 1) { //zena | } else if (pohlavi == 1) { //zena | ||
harrisBenedict = 655 + (9.563 * | harrisBenedict = 655 + (9.563 * adjustovana_hmotnost) + (1.850 * vyska) - (4.676 * vek); | ||
} | } | ||
var harrisBenedictKJ = harrisBenedict * 4.184; | var harrisBenedictKJ = harrisBenedict * 4.184; | ||
Řádek 107: | Řádek 116: | ||
//pravidlo 100-50-20 | //pravidlo 100-50-20 | ||
var fluids = 0; | var fluids = 0; | ||
if ( | if (adjustovana_hmotnost > 20) { | ||
fluids = 1100 + 20 * | fluids = 1100 + 20 * adjustovana_hmotnost; | ||
} else if ( | } else if (adjustovana_hmotnost > 10) { | ||
fluids = 500 + 50 * | fluids = 500 + 50 * adjustovana_hmotnost; | ||
} else { | } else { | ||
fluids = 100 * | fluids = 100 * adjustovana_hmotnost; | ||
} | } | ||
var fluidRate = fluids/24; | var fluidRate = fluids/24; | ||
var nenutricniZdroje = 1.1 * propofol + 3 * citrat; | var nenutricniZdroje = 1.1 * propofol + 3 * citrat; | ||
var espenMin = 20 * | var espenMin = 20 * adjustovana_hmotnost; | ||
var espenMax = 25 * | var espenMax = 25 * adjustovana_hmotnost; | ||
var espenProtein = 1.3 * | var espenProtein = 1.3 * adjustovana_hmotnost; | ||
var espenLipid = 1.5 * | var espenLipid = 1.5 * adjustovana_hmotnost; | ||
result = "<p>Výpočet bazální energetické potřeby podle Harris-Benedictovy rovnice je: " + Math.round(harrisBenedict) + " kcal/den (" + Math.round(harrisBenedictKJ) + " kJ/den).</p>"; | result = "<p>Ideální hmotnost je " + Math.round(idealni_hmotnost) + " kg. Adjustovaná hmotnost je " + Math.round(adjustovana_hmotnost) + " kg.</p>"; | ||
result += "<p>Výpočet bazální energetické potřeby podle Harris-Benedictovy rovnice s adjustovanou hmotností je: " + Math.round(harrisBenedict) + " kcal/den (" + Math.round(harrisBenedictKJ) + " kJ/den).</p>"; | |||
result += "<p>Celková energetická potřeba vzhledem ke stavu je: " + Math.round(tee) + " kcal/den (" + Math.round(teeKJ) + " kJ/den). Pro bolusové podání je u koncentrace 1,0 kcal/ml dávka 5×" + Math.round(tee/5) + " ml (např. 14-18-22-06-10 hod.) či 6×" + Math.round(tee/6) + " ml (např. 12-15-18-21-06-09 hod.), pro kontinuální podání po 16 hodin (např. 06-22 hod.) je to rychlost " + Math.round(tee/16) + " ml/h. Pro koncentraci 1,5 kcal/ml je to 5×" + Math.round((tee/5)/1.5) + " ml, resp. 6×" + Math.round((tee/6)/1.5) + " ml, resp. " + Math.round((tee/16)/1.5) + " ml/h.</p>"; | result += "<p>Celková energetická potřeba vzhledem ke stavu je: " + Math.round(tee) + " kcal/den (" + Math.round(teeKJ) + " kJ/den). Pro bolusové podání je u koncentrace 1,0 kcal/ml dávka 5×" + Math.round(tee/5) + " ml (např. 14-18-22-06-10 hod.) či 6×" + Math.round(tee/6) + " ml (např. 12-15-18-21-06-09 hod.), pro kontinuální podání po 16 hodin (např. 06-22 hod.) je to rychlost " + Math.round(tee/16) + " ml/h. Pro koncentraci 1,5 kcal/ml je to 5×" + Math.round((tee/5)/1.5) + " ml, resp. 6×" + Math.round((tee/6)/1.5) + " ml, resp. " + Math.round((tee/16)/1.5) + " ml/h.</p>"; | ||
result += "<p>Odhad potřeby tekutin podle pravidla 100-50-20 je: " + Math.round(fluids) + " ml/den. Pro plné hrazení tekutin intravenózně je tedy rychlost infuze " + Math.round(fluidRate) + " ml/h.</p>"; | result += "<p>Odhad potřeby tekutin podle pravidla 100-50-20 s adjustovanou hmotností je: " + Math.round(fluids) + " ml/den. Pro plné hrazení tekutin intravenózně je tedy rychlost infuze " + Math.round(fluidRate) + " ml/h.</p>"; | ||
result += "<p>Z nenutričních zdrojů (propofol a citrát) je hrazeno " + Math.round(nenutricniZdroje) + " kcal.</p>"; | result += "<p>Z nenutričních zdrojů (propofol a citrát) je hrazeno " + Math.round(nenutricniZdroje) + " kcal.</p>"; | ||
result += "<p>Dle doporučení <a href='https://www.espen.org/files/ESPEN-Guidelines/ESPEN_guideline-on-clinical-nutrition-in-the-intensive-care-unit.pdf'>ESPEN 2019</a> u ventilovaných pacientů má být použita nepřímá kalorimetrie. Není-li dostupná, tak je vhodné použít měření vydechovaného oxidu uhličitého dle ventilátoru. "; | result += "<p>Dle doporučení <a href='https://www.espen.org/files/ESPEN-Guidelines/ESPEN_guideline-on-clinical-nutrition-in-the-intensive-care-unit.pdf'>ESPEN 2019</a> u ventilovaných pacientů má být použita nepřímá kalorimetrie. Není-li dostupná, tak je vhodné použít měření vydechovaného oxidu uhličitého dle ventilátoru. "; | ||
result += "Není-li ani to dostupné, tak je odhad dle ESPEN " + Math.round(espenMin) + "–" + Math.round(espenMax) + " kcal/den, první týden však jen 70 %, t.j. " + Math.round(0.7*espenMin) + "–" + Math.round(0.7*espenMax) + " kcal/den. "; | result += "Není-li ani to dostupné, tak je odhad dle ESPEN s využitím adjustované hmotnosti " + Math.round(espenMin) + "–" + Math.round(espenMax) + " kcal/den, první týden však jen 70 %, t.j. " + Math.round(0.7*espenMin) + "–" + Math.round(0.7*espenMax) + " kcal/den. "; | ||
result += "Progresivně se má dosáhnout dávky proteinu " + Math.round(espenProtein) + " g/den a dávky intravenózních lipidů dle tolerance, avšak ne vyšší než " + Math.round(espenLipid) + " g/den.</p>"; | result += "Progresivně se má dosáhnout dávky proteinu " + Math.round(espenProtein) + " g/den a dávky intravenózních lipidů dle tolerance, avšak ne vyšší než " + Math.round(espenLipid) + " g/den.</p>"; | ||
$( '#lekarska_kalkulacka_Nutrice-vysledek' ).html( result ); | $( '#lekarska_kalkulacka_Nutrice-vysledek' ).html( result ); | ||
}); | }); |
Verze z 7. 3. 2023, 11:29
String.prototype.replaceAll = function(token, newToken, ignoreCase) {
var str, i = -1, _token;
if((str = this.toString()) && typeof token === "string") {
_token = ignoreCase === true? token.toLowerCase() : undefined;
while((i = (
_token !== undefined?
str.toLowerCase().indexOf(
_token,
i >= 0? i + newToken.length : 0
) : str.indexOf(
token,
i >= 0? i + newToken.length : 0
)
)) !== -1 ) {
str = str.substring(0, i)
.concat(newToken)
.concat(str.substring(i + token.length));
}
}
return str;
};
/**************** Převod do html podoby ****************/
var content = $( '#lekarska_kalkulacka_Nutrice-content' ).text();
$( '#lekarska_kalkulacka_Nutrice' ).html( content.replaceAll('paragraph', 'p' ).replaceAll( 'resValue', 'span' ).replaceAll('breakline', 'br' ).replaceAll('division', 'div').replaceAll('orderedlist', 'ol') );
/**************** Propojeni input field: range a number *************/
$( '#lekarska_kalkulacka_Nutrice-hmotnost-number' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-hmotnost-range').val( $( '#lekarska_kalkulacka_Nutrice-hmotnost-number' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-hmotnost-range' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-hmotnost-number').val( $( '#lekarska_kalkulacka_Nutrice-hmotnost-range' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-vyska-number' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-vyska-range').val( $( '#lekarska_kalkulacka_Nutrice-vyska-number' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-vyska-range' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-vyska-number').val( $( '#lekarska_kalkulacka_Nutrice-vyska-range' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-vek-number' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-vek-range').val( $( '#lekarska_kalkulacka_Nutrice-vek-number' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-vek-range' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-vek-number').val( $( '#lekarska_kalkulacka_Nutrice-vek-range' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-propofol-number' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-propofol-range').val( $( '#lekarska_kalkulacka_Nutrice-propofol-number' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-propofol-range' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-propofol-number').val( $( '#lekarska_kalkulacka_Nutrice-propofol-range' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-citrat-number' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-citrat-range').val( $( '#lekarska_kalkulacka_Nutrice-citrat-number' ).val() );
});
$( '#lekarska_kalkulacka_Nutrice-citrat-range' ).change( function() {
$( '#lekarska_kalkulacka_Nutrice-citrat-number').val( $( '#lekarska_kalkulacka_Nutrice-citrat-range' ).val() );
});
/**************** Vlastní výpočet ****************/
$( 'input' ).change( function() {
var hmotnost = parseInt( $( 'lekarska_kalkulacka_Nutrice-hmotnost-number' ).val() );
var vyska = parseInt( $( 'lekarska_kalkulacka_Nutrice-vyska-number').val() );
var vek = parseInt( $( 'lekarska_kalkulacka_Nutrice-vek-number').val() );
var pohlavi = parseInt($('input[name=pohlavi]:checked').val());
var aktivita = parseInt($('input[name=aktivita]:checked').val());
var teplota = parseInt($('input[name=teplota]:checked').val());
var stav = parseInt($('input[name=stav]:checked').val());
var propofol = parseInt( $( '#lekarska_kalkulacka_Nutrice-propofol-number').val() );
var citrat = parseInt( $( '#lekarska_kalkulacka_Nutrice-citrat-number').val() );
var result = 'result';
switch (aktivita) {
case 0: aktivita = 1.0; break;
case 1: aktivita = 1.1; break;
case 2: aktivita = 1.2; break;
case 3: aktivita = 1.3; break;
default: aktivita =1.0; break;
}
switch (teplota) {
case 0: teplota = 1.0; break;
case 1: teplota = 1.1; break;
case 2: teplota = 1.2; break;
case 3: teplota = 1.3; break;
default: teplota =1.0; break;
}
switch (stav) {
case 0: stav = 1.0; break;
case 1: stav = 1.1; break;
case 2: stav = 1.3; break;
case 3: stav = 1.4; break;
}
var harrisBenedict = 0;
var idealni_hmotnost = 0;
if (pohlavi == 0) { //muz
idealni_hmotnost = (0.655 * vyska) - 44.1;
} else {
idealni_hmotnost = (0.593* vyska) - 38.6;
}
var adjustovana_hmotnost = idealni_hmotnost + 0.4 (hmotnost - idealni_hmotnost);
if (pohlavi == 0) { //muz
harrisBenedict = 66.5 + (13.75 * adjustovana_hmotnost) + (5.003 * vyska) - (6.755 * vek);
} else if (pohlavi == 1) { //zena
harrisBenedict = 655 + (9.563 * adjustovana_hmotnost) + (1.850 * vyska) - (4.676 * vek);
}
var harrisBenedictKJ = harrisBenedict * 4.184;
var tee = harrisBenedict * aktivita * teplota * stav;
var teeKJ = tee * 4.184;
//pravidlo 100-50-20
var fluids = 0;
if (adjustovana_hmotnost > 20) {
fluids = 1100 + 20 * adjustovana_hmotnost;
} else if (adjustovana_hmotnost > 10) {
fluids = 500 + 50 * adjustovana_hmotnost;
} else {
fluids = 100 * adjustovana_hmotnost;
}
var fluidRate = fluids/24;
var nenutricniZdroje = 1.1 * propofol + 3 * citrat;
var espenMin = 20 * adjustovana_hmotnost;
var espenMax = 25 * adjustovana_hmotnost;
var espenProtein = 1.3 * adjustovana_hmotnost;
var espenLipid = 1.5 * adjustovana_hmotnost;
result = "<p>Ideální hmotnost je " + Math.round(idealni_hmotnost) + " kg. Adjustovaná hmotnost je " + Math.round(adjustovana_hmotnost) + " kg.</p>";
result += "<p>Výpočet bazální energetické potřeby podle Harris-Benedictovy rovnice s adjustovanou hmotností je: " + Math.round(harrisBenedict) + " kcal/den (" + Math.round(harrisBenedictKJ) + " kJ/den).</p>";
result += "<p>Celková energetická potřeba vzhledem ke stavu je: " + Math.round(tee) + " kcal/den (" + Math.round(teeKJ) + " kJ/den). Pro bolusové podání je u koncentrace 1,0 kcal/ml dávka 5×" + Math.round(tee/5) + " ml (např. 14-18-22-06-10 hod.) či 6×" + Math.round(tee/6) + " ml (např. 12-15-18-21-06-09 hod.), pro kontinuální podání po 16 hodin (např. 06-22 hod.) je to rychlost " + Math.round(tee/16) + " ml/h. Pro koncentraci 1,5 kcal/ml je to 5×" + Math.round((tee/5)/1.5) + " ml, resp. 6×" + Math.round((tee/6)/1.5) + " ml, resp. " + Math.round((tee/16)/1.5) + " ml/h.</p>";
result += "<p>Odhad potřeby tekutin podle pravidla 100-50-20 s adjustovanou hmotností je: " + Math.round(fluids) + " ml/den. Pro plné hrazení tekutin intravenózně je tedy rychlost infuze " + Math.round(fluidRate) + " ml/h.</p>";
result += "<p>Z nenutričních zdrojů (propofol a citrát) je hrazeno " + Math.round(nenutricniZdroje) + " kcal.</p>";
result += "<p>Dle doporučení <a href='https://www.espen.org/files/ESPEN-Guidelines/ESPEN_guideline-on-clinical-nutrition-in-the-intensive-care-unit.pdf'>ESPEN 2019</a> u ventilovaných pacientů má být použita nepřímá kalorimetrie. Není-li dostupná, tak je vhodné použít měření vydechovaného oxidu uhličitého dle ventilátoru. ";
result += "Není-li ani to dostupné, tak je odhad dle ESPEN s využitím adjustované hmotnosti " + Math.round(espenMin) + "–" + Math.round(espenMax) + " kcal/den, první týden však jen 70 %, t.j. " + Math.round(0.7*espenMin) + "–" + Math.round(0.7*espenMax) + " kcal/den. ";
result += "Progresivně se má dosáhnout dávky proteinu " + Math.round(espenProtein) + " g/den a dávky intravenózních lipidů dle tolerance, avšak ne vyšší než " + Math.round(espenLipid) + " g/den.</p>";
$( '#lekarska_kalkulacka_Nutrice-vysledek' ).html( result );
});