MediaWiki:Lékařská kalkulačka/Heparin.js
Z WikiSkript
Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
- Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
- Opera: Stiskněte Ctrl-F5.
/**
* 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 adjustovana_vaha = vaha; //TODO vypočet
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 zmena_rychlosti = 0;
var nova_rychlost = 0;
var status = "";
if (aptt < 35) {
bolus = 80;
zmena_davky = 4;
bolus_ml = adjustovana_vaha * bolus / koncentrace;
zmena_rychlosti = adjustovana_vaha * zmena_davky / koncentrace;
nova_rychlost = rychlost_infuze + zmena_rychlosti;
status = "Nedosaženo terapeutického cíle.<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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
} else if (aptt >= 35 && aptt <= 45 ) {
bolus = 40;
zmena_davky = 2;
bolus_ml = adjustovana_vaha * bolus / koncentrace;
zmena_rychlosti = adjustovana_vaha * zmena_davky / koncentrace;
nova_rychlost = rychlost_infuze + zmena_rychlosti;
status = "Nedosaženo terapeutického cíle.<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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
} else if (aptt > 45 && aptt <= 70) {
status = "Dosaženo terapeutického cíle.<br />";
status += "Není třeba žádných změn.<br/>";
} else if (aptt > 70 && aptt <= 90 ) {
zmena_davky = -2;
zmena_rychlosti = adjustovana_vaha * zmena_davky / koncentrace;
nova_rychlost = rychlost_infuze + zmena_rychlosti;
status = "Terapeutický cíl se překročil.<br />";
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
} else if (aptt > 90 ) {
zmena_davky = -3;
zmena_rychlosti = adjustovana_vaha * zmena_davky / koncentrace;
nova_rychlost = rychlost_infuze + zmena_rychlosti;
status = "Terapeutický cíl se překročil.<br />";
status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
}
var result = "";
result += "Koncentrace heparinu v roztoku je " + Math.round( 1000*koncentrace )/1000 + " IU/ml.<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 );
});