MediaWiki:Lékařská kalkulačka/Heparin.js: Porovnání verzí

Z WikiSkript
m (oprava)
m (detailnější výpis)
Řádek 90: Řádek 90:
   var zmena_davky = 0;
   var zmena_davky = 0;
   var zmena_rychlosti = 0;
   var zmena_rychlosti = 0;
  var nova_davka = 0;
   var nova_rychlost = 0;
   var nova_rychlost = 0;
   var status = "";
   var status = "";
   if (aptt < 35) {
   if (aptt < 35) {
   bolus = 80;
   bolus = 80;
  bolus_ml = adjustovana_vaha * bolus / koncentrace;
 
   zmena_davky = 4;
   zmena_davky = 4;
   bolus_ml = adjustovana_vaha * bolus / koncentrace;
   nova_davka = davka + zmena_davky;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   status  = "Nedosaženo terapeutického cíle.<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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
   status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, ";
  status += "tedy na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
 
   } else if (aptt >= 35 && aptt <= 45 ) {
   } else if (aptt >= 35 && aptt <= 45 ) {
   bolus = 40;
   bolus = 40;
  bolus_ml = adjustovana_vaha * bolus / koncentrace;
 
   zmena_davky = 2;
   zmena_davky = 2;
   bolus_ml = adjustovana_vaha * bolus / koncentrace;
   nova_davka = davka + zmena_davky;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   status  = "Nedosaženo terapeutického cíle.<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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
   status += "Poté zvýšit rychlost o " + zmena_davky + " IU/kg/h, ";
  status += "tedy na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
 
   } else if (aptt > 45 && aptt <= 70) {
   } else if (aptt > 45 && aptt <= 70) {
   status  = "Dosaženo terapeutického cíle.<br />";
   status  = "Dosaženo terapeutického cíle APTT 45–70 s.<br />";
   status += "Není třeba žádných změn.<br/>";
   status += "Není třeba žádných změn.<br/>";
   } else if (aptt > 70 && aptt <= 90 ) {
   } else if (aptt > 70 && aptt <= 90 ) {
   zmena_davky = -2;
   zmena_davky = -2;
  nova_davka = davka + zmena_davky;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   status  = "Terapeutický cíl 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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
  status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, ";
  status += "tedy na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
 
   } else if (aptt > 90 ) {
   } else if (aptt > 90 ) {
   zmena_davky = -3;
   zmena_davky = -3;
  nova_davka = davka + zmena_davky;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   nova_rychlost = rychlost_infuze + zmena_rychlosti;
   status  = "Terapeutický cíl 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, tedy na " + Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
  status += "Vhodné snížit rychlost o " + Math.abs(zmena_davky) + " IU/kg/h, ";
  status += "tedy na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";
 
   }
   }
    
    

Verze z 17. 2. 2024, 23:15

/**
 * 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_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;
  	zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
  	nova_rychlost = rychlost_infuze + zmena_rychlosti;
  	
  	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 na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  	status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";

  } else if (aptt >= 35 && aptt <= 45 ) {
  	bolus = 40;
  	bolus_ml = adjustovana_vaha * bolus / koncentrace;
  	
  	zmena_davky = 2;
  	nova_davka = davka + zmena_davky;
  	zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
  	nova_rychlost = rychlost_infuze + zmena_rychlosti;
  	
  	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 na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  	status += Math.round(10 * nova_rychlost)/10 + " ml/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;
  	zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
  	nova_rychlost = rychlost_infuze + zmena_rychlosti;
  	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 na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  	status += Math.round(10 * nova_rychlost)/10 + " ml/h.<br/>";

  } else if (aptt > 90 ) {
  	zmena_davky = -3;
  	nova_davka = davka + zmena_davky;
  	zmena_rychlosti = adjustovana_vaha * zmena_davky  / koncentrace;
  	nova_rychlost = rychlost_infuze + zmena_rychlosti;
  	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 na " + Math.round( 1000 *nova_davka )/1000  + " IU/kg/h, t.j. ";
  	status += 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 );
});