MediaWiki:Lékařská kalkulačka/Ionty.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_Ionty-content' ).text();
$( '#lekarska_kalkulacka_Ionty' ).html( content.replaceAll('paragraph', 'p' ).replaceAll( 'resValue', 'span' ).replaceAll('breakline', 'br' ).replaceAll('division', 'div').replaceAll('orderedlist', 'ol').replaceAll('super', 'sup').replaceAll('bb', 'b') );
/**************** Propojeni input field: range a number *************/
$( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-range' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-Na-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-Na-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-Na-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-Na-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-Na-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-Na-range' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-K-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-K-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-K-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-K-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-K-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-K-range' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-range' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-rychlost-10NaCl-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-range' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-number' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-range').val( $( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-number' ).val() );
});
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-range' ).change( function() {
$( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-number').val( $( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-range' ).val() );
});
/**************** Vlastní výpočet ****************/
$( 'input' ).change( function() {
var pohlavi = parseInt($('input[name=ionty_pohlavi]:checked').val());
var vek = parseInt($('input[name=ionty_vek]:checked').val());
var hmotnost = parseInt($( '#lekarska_kalkulacka_Ionty-ionty-hmotnost-number').val());
var Na = parseInt($( '#lekarska_kalkulacka_Ionty-ionty-Na-number').val());
var K = parseFloat($( '#lekarska_kalkulacka_Ionty-ionty-K-number').val());
var nacl09 = parseInt($( '#lekarska_kalkulacka_Ionty-ionty-rychlost-09NaCl-number').val());
var nacl10 = parseInt($( '#lekarska_kalkulacka_Ionty-ionty-10NaCl-number').val());
var g5 = parseInt($( '#lekarska_kalkulacka_Ionty-ionty-rychlost-G5-number').val());
var na_konc = (154 + 1.7 * nacl10) * (nacl09)/(nacl09+g5); //koncentrace Na v infuznim roztoku
if (nacl09 == 0) { //podavana pouze glukoza
na_konc = 0;
}
var ctv_coef = 0.6;
if (pohlavi == 1) { //zena
if (vek == 1) { //geriatricka ci malnutricni populace
ctv_coef = 0.45;
} else {
ctv_coef = 0.5;
}
} else { //muz
if (vek == 1) { //geriatricka ci malnutricni populace
ctv_coef = 0.5;
} else {
ctv_coef = 0.6;
}
}
var ctv = ctv_coef * hmotnost;
var na_dif = (na_konc - Na)/(ctv + 1);
var na_dif_rate = (nacl09+g5)*(na_dif / 1000); //prepocet na 1 litr roztoku
var result = 'Odhad celkové tělesné vody je ' + Math.round(ctv) + ' l.<br />';
result += "Vypočítaná celková koncentrace Na v podávaných roztocích je " + Math.round(na_konc) + " mmol/l. Podáním celkového objemu 1 l dojde ke změně natrémie " + Math.round(10*na_dif)/10 + " mmol/l.<br />";
result += "Podáním infuzí uváděnými rychlostmi dojde ke změně natrémie " + Math.round(10000*na_dif_rate)/10000 + " mmol/l/h. (Neuvažujeme činnost ledvin.)<br />";
result += "U chronické hyponaterie nesmíme překročit 0.35 mmol/l/h, u akutní 2 mmol/l/h. <br />";
$( '#lekarska_kalkulacka_Ionty-vysledek' ).html( result );
});