MediaWiki:Lékařská kalkulačka/Heparin.js: Porovnání verzí
Z WikiSkript
m (detailnější výpis) |
m (+ideální a adjustovaná váha) |
||
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.) | |||
Řádek 80: | Řádek 80: | ||
var vaha = parseInt( $( '#lekarska_kalkulacka_Heparin-vaha-number').val() ); | var vaha = parseInt( $( '#lekarska_kalkulacka_Heparin-vaha-number').val() ); | ||
var aptt = parseFloat( $( '#lekarska_kalkulacka_Heparin-aptt-number').val() ); | var aptt = parseFloat( $( '#lekarska_kalkulacka_Heparin-aptt-number').val() ); | ||
var pohlavi = parseInt($('input[name=heparin-pohlavi]:checked').val()); | |||
var adjustovana_vaha = vaha; | var vyska_inch = vyska / 2.54; //prevod na palce | ||
var idealni_vaha = 0; | |||
//Devine formula | |||
if (pohlavi == 0) { //zena | |||
if (vyska_inch < 60 ) { | |||
idealni_vaha = 45.5 - 1.58 * (60 - vyska_inch); | |||
} else { | |||
idealni_vaha = 45.5 + 2.3 * (vyska_inch - 60); | |||
} | |||
} else if (pohlavi == 1) { //muz | |||
if (vyska_inch < 60) { | |||
idealni_vaha = 50 - 1.58 * (60 - vyska_inch); | |||
} else { | |||
idealni_vaha = 50 + 2.3 * (vyska_inch - 60 ); | |||
} | |||
} | |||
var adjustovana_vaha = idealni_vaha + 0.4 * (vaha - idealni_vaha); | |||
var koncentrace = heparin / objem; | var koncentrace = heparin / objem; | ||
var davka = rychlost_infuze * koncentrace / adjustovana_vaha; | var davka = rychlost_infuze * koncentrace / adjustovana_vaha; | ||
Řádek 89: | Řádek 107: | ||
var bolus_ml = 0; | var bolus_ml = 0; | ||
var zmena_davky = 0; | var zmena_davky = 0; | ||
var nova_davka = 0; | var nova_davka = 0; | ||
var nova_rychlost = 0; | var nova_rychlost = 0; | ||
Řádek 99: | Řádek 116: | ||
zmena_davky = 4; | zmena_davky = 4; | ||
nova_davka = davka + zmena_davky; | nova_davka = davka + zmena_davky; | ||
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace; | |||
nova_rychlost = | nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni | ||
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni | |||
status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />"; | status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />"; | ||
status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>"; | status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>"; | ||
status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, "; | status += "Poté zvýšit rychlost podávání o " + zmena_davky + " IU/kg/h, "; | ||
status += "tedy na " + | status += "tedy zvýšit rychlost infuze na " + nova_rychlost + " ml/h "; | ||
status += Math.round( | status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>"; | ||
} else if (aptt >= 35 && aptt <= 45 ) { | } else if (aptt >= 35 && aptt <= 45 ) { | ||
Řádek 114: | Řádek 132: | ||
zmena_davky = 2; | zmena_davky = 2; | ||
nova_davka = davka + zmena_davky; | nova_davka = davka + zmena_davky; | ||
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace; | |||
nova_rychlost = | nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni | ||
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni | |||
status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />"; | status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />"; | ||
status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>"; | status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>"; | ||
status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, "; | status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, "; | ||
status += "tedy na " + | status += "tedy zvýšit rychlost infuze na " + nova_rychlost + " ml/h "; | ||
status += Math.round( | status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>"; | ||
} else if (aptt > 45 && aptt <= 70) { | } else if (aptt > 45 && aptt <= 70) { | ||
Řádek 130: | Řádek 149: | ||
zmena_davky = -2; | zmena_davky = -2; | ||
nova_davka = davka + zmena_davky; | nova_davka = davka + zmena_davky; | ||
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace; | |||
nova_rychlost = | nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni | ||
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni | |||
status = "Terapeutický cíl APTT 45–70 s se překročil.<br />"; | status = "Terapeutický cíl APTT 45–70 s se překročil.<br />"; | ||
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, "; | status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, "; | ||
status += "tedy na " + | status += "tedy snížit rychlost infuze na " + nova_rychlost + " ml/h "; | ||
status += Math.round( | status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>"; | ||
} else if (aptt > 90 ) { | } else if (aptt > 90 ) { | ||
zmena_davky = -3; | zmena_davky = -3; | ||
nova_davka = davka + zmena_davky; | nova_davka = davka + zmena_davky; | ||
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace; | |||
nova_rychlost = | nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni | ||
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni | |||
status = "Terapeutický cíl APTT 45–70 s se překročil.<br />"; | status = "Terapeutický cíl APTT 45–70 s se překročil.<br />"; | ||
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, "; | status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, "; | ||
status += "tedy na " + | status += "tedy snížit rychlost infuze na " + nova_rychlost + " ml/h "; | ||
status += Math.round( | status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>"; | ||
} | } | ||
Řádek 151: | Řádek 174: | ||
var result = ""; | var result = ""; | ||
result += "Koncentrace heparinu v roztoku je " + Math.round( 1000*koncentrace )/1000 + " IU/ml.<br />"; | result += "Koncentrace heparinu v roztoku je " + Math.round( 1000*koncentrace )/1000 + " IU/ml.<br />"; | ||
result += "Ideální tělěsná váha je " + Math.round( 10 * idealni_vaha)/10 + " kg.<br />"; | |||
result += "Adjustovaná tělesná váha je " + Math.round( 10*adjustovana_vaha)/10 + " kg.<br />"; | result += "Adjustovaná tělesná váha je " + Math.round( 10*adjustovana_vaha)/10 + " kg.<br />"; | ||
result += "Rychlost podávání heparinu na adjustovanou tělesnou váhu je " + Math.round(1000*davka)/1000 + " IU/kg/h.<br />"; | result += "Rychlost podávání heparinu na adjustovanou tělesnou váhu je " + Math.round(1000*davka)/1000 + " IU/kg/h.<br />"; |
Aktuální verze z 24. 2. 2024, 21:54
/**
* ReplaceAll by Fagner Brack (MIT Licensed)
* Replaces all occurrences of a substring in a string
*/
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_Heparin-content' ).text();
$( '#lekarska_kalkulacka_Heparin' ).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_Heparin-heparin-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-heparin-number').val( $( '#lekarska_kalkulacka_Heparin-heparin-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-heparin-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-heparin-range').val( $( '#lekarska_kalkulacka_Heparin-heparin-number' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-objem-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-objem-number').val( $( '#lekarska_kalkulacka_Heparin-objem-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-objem-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-objem-range').val( $( '#lekarska_kalkulacka_Heparin-objem-number' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-rychlost-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-rychlost-number').val( $( '#lekarska_kalkulacka_Heparin-rychlost-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-rychlost-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-rychlost-range').val( $( '#lekarska_kalkulacka_Heparin-rychlost-number' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-vyska-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-vyska-number').val( $( '#lekarska_kalkulacka_Heparin-vyska-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-vyska-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-vyska-range').val( $( '#lekarska_kalkulacka_Heparin-vyska-number' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-vaha-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-vaha-number').val( $( '#lekarska_kalkulacka_Heparin-vaha-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-vaha-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-vaha-range').val( $( '#lekarska_kalkulacka_Heparin-vaha-number' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-aptt-range' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-aptt-number').val( $( '#lekarska_kalkulacka_Heparin-aptt-range' ).val() );
});
$( '#lekarska_kalkulacka_Heparin-aptt-number' ).change( function() {
$( '#lekarska_kalkulacka_Heparin-aptt-range').val( $( '#lekarska_kalkulacka_Heparin-aptt-number' ).val() );
});
/**************** Výpočet ****************/
$( 'input' ).change( function() {
var heparin = parseInt( $( '#lekarska_kalkulacka_Heparin-heparin-number').val() );
var objem = parseInt( $( '#lekarska_kalkulacka_Heparin-objem-number').val() );
var rychlost_infuze = parseFloat( $( '#lekarska_kalkulacka_Heparin-rychlost-number').val() );
var vyska = parseInt( $( '#lekarska_kalkulacka_Heparin-vyska-number').val() );
var vaha = parseInt( $( '#lekarska_kalkulacka_Heparin-vaha-number').val() );
var aptt = parseFloat( $( '#lekarska_kalkulacka_Heparin-aptt-number').val() );
var pohlavi = parseInt($('input[name=heparin-pohlavi]:checked').val());
var vyska_inch = vyska / 2.54; //prevod na palce
var idealni_vaha = 0;
//Devine formula
if (pohlavi == 0) { //zena
if (vyska_inch < 60 ) {
idealni_vaha = 45.5 - 1.58 * (60 - vyska_inch);
} else {
idealni_vaha = 45.5 + 2.3 * (vyska_inch - 60);
}
} else if (pohlavi == 1) { //muz
if (vyska_inch < 60) {
idealni_vaha = 50 - 1.58 * (60 - vyska_inch);
} else {
idealni_vaha = 50 + 2.3 * (vyska_inch - 60 );
}
}
var adjustovana_vaha = idealni_vaha + 0.4 * (vaha - idealni_vaha);
var koncentrace = heparin / objem;
var davka = rychlost_infuze * koncentrace / adjustovana_vaha;
var korigovana_davka = davka;
var bolus = 0;
var bolus_ml = 0;
var zmena_davky = 0;
var nova_davka = 0;
var nova_rychlost = 0;
var status = "";
if (aptt < 35) {
bolus = 80;
bolus_ml = adjustovana_vaha * bolus / koncentrace;
zmena_davky = 4;
nova_davka = davka + zmena_davky;
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace;
nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni
status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />";
status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>";
status += "Poté zvýšit rychlost podávání o " + zmena_davky + " IU/kg/h, ";
status += "tedy zvýšit rychlost infuze na " + nova_rychlost + " ml/h ";
status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>";
} else if (aptt >= 35 && aptt <= 45 ) {
bolus = 40;
bolus_ml = adjustovana_vaha * bolus / koncentrace;
zmena_davky = 2;
nova_davka = davka + zmena_davky;
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace;
nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni
status = "Nedosaženo terapeutického cíle APTT 45–70 s.<br />";
status += "Vhodný bolus je " + bolus + " IU/kg adjustované váhy, t.j." + Math.round(10 * bolus_ml)/10 + " ml.<br/>";
status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, ";
status += "tedy zvýšit rychlost infuze na " + nova_rychlost + " ml/h ";
status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>";
} else if (aptt > 45 && aptt <= 70) {
status = "Dosaženo terapeutického cíle APTT 45–70 s.<br />";
status += "Není třeba žádných změn.<br/>";
} else if (aptt > 70 && aptt <= 90 ) {
zmena_davky = -2;
nova_davka = davka + zmena_davky;
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace;
nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni
status = "Terapeutický cíl APTT 45–70 s se překročil.<br />";
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, ";
status += "tedy snížit rychlost infuze na " + nova_rychlost + " ml/h ";
status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>";
} else if (aptt > 90 ) {
zmena_davky = -3;
nova_davka = davka + zmena_davky;
nova_rychlost = nova_davka * adjustovana_vaha / koncentrace;
nova_rychlost = Math.round(10 * nova_rychlost)/10; //zaokrouhleni
nova_davka = nova_rychlost * koncentrace / adjustovana_vaha; //znovu prepocitej davku po zaokrouhleni
status = "Terapeutický cíl APTT 45–70 s se překročil.<br />";
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, ";
status += "tedy snížit rychlost infuze na " + nova_rychlost + " ml/h ";
status += "(odpovídá " + Math.round( 1000 *nova_davka )/1000 + " IU/kg/h).<br/>";
}
var result = "";
result += "Koncentrace heparinu v roztoku je " + Math.round( 1000*koncentrace )/1000 + " IU/ml.<br />";
result += "Ideální tělěsná váha je " + Math.round( 10 * idealni_vaha)/10 + " kg.<br />";
result += "Adjustovaná tělesná váha je " + Math.round( 10*adjustovana_vaha)/10 + " kg.<br />";
result += "Rychlost podávání heparinu na adjustovanou tělesnou váhu je " + Math.round(1000*davka)/1000 + " IU/kg/h.<br />";
result += status;
$( '#lekarska_kalkulacka_Heparin-vysledek' ).html( result );
});