MediaWiki:Lékařská kalkulačka/NIHSS.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_NIHSS-content' ).text();
$( '#lekarska_kalkulacka_NIHSS' ).html( content.replaceAll('paragraph', 'p' ).replaceAll( 'resValue', 'span' ).replaceAll('breakline', 'br' ).replaceAll('division', 'div').replaceAll('orderedlist', 'ol') );


 
/**************** Vlastní výpočet ****************/
$( 'input' ).change( function() {
  var NIHSS1a = parseInt($('input[name=NIHSS1a]:checked').val());
  var NIHSS1b = parseInt($('input[name=NIHSS1b]:checked').val());
  var NIHSS1c = parseInt($('input[name=NIHSS1c]:checked').val());
  var NIHSS3 = parseInt($('input[name=NIHSS3]:checked').val());

  //promenne, kde vyznam v kodu nese desetinne misto
  var NIHSS2 = parseFloat($('input[name=NIHSS2]:checked').val());
  var NIHSS4 = parseFloat($('input[name=NIHSS4]:checked').val());
  var NIHSS8 = parseFloat($('input[name=NIHSS8]:checked').val());
  var NIHSS9 = parseFloat($('input[name=NIHSS9]:checked').val());
  var NIHSS11 = parseFloat($('input[name=NIHSS11]:checked').val());
  
  //promenne, kde je soucasti moznosti undefined - "UN"
  var NIHSS5dx  = $('input[name=NIHSS5dx]:checked').val();
  var NIHSS5sin = $('input[name=NIHSS5sin]:checked').val();
  var NIHSS6dx  = $('input[name=NIHSS6dx]:checked').val();
  var NIHSS6sin = $('input[name=NIHSS6sin]:checked').val();
  var NIHSS7    = $('input[name=NIHSS7]:checked').val();
  var NIHSS10   = $('input[name=NIHSS10]:checked').val();
  
  var nihss = 0;
  nihss += NIHSS1a + NIHSS1b + NIHSS1c + Math.round(NIHSS2) + NIHSS3 + Math.round(NIHSS4) + Math.round(NIHSS8) + Math.round(NIHSS9) + Math.round(NIHSS11);
  if (NIHSS5dx  != 'UN') { nihss += parseInt(NIHSS5dx) ; }
  if (NIHSS5sin != 'UN') { nihss += parseInt(NIHSS5sin); }
  if (NIHSS6dx  != 'UN') { nihss += parseInt(NIHSS6dx) ; }
  if (NIHSS6sin != 'UN') { nihss += parseInt(NIHSS6sin); }
  if (NIHSS7    != 'UN') { nihss += parseInt(NIHSS7)   ; NIHSS7  = parseInt(  NIHSS7 ); }
  if (NIHSS10   != 'UN') { nihss += parseInt(NIHSS10)  ; NIHSS10 = parseFloat(NIHSS10); }

  var result = "<b>NIHSS:</b> " + nihss + ".\n<p>";
  
  if (NIHSS1a > 0) {
  	switch (NIHSS1a) {
  		case 1: result += "Somnolence &ndash; 1. "; break;
  		case 2: result += "Sopor &ndash; 2. ";      break;
  		case 3: result += "Kóma &ndash; 3. ";       break;
  	}
  }
  if (NIHSS1b > 0) {
  	switch (NIHSS1b) {
  		case 1: result += "Slovní odpovědi &ndash; 1. "; break;
  		case 2: result += "Slovní odpovědi &ndash; 2. "; break;
  	}
  }
 if (NIHSS1c > 0) {
 	 switch (NIHSS1c) {
  		case 1: result += "Vyhovění výzvám &ndash; 1. "; break;
  		case 2: result += "Vyhovění výzvám &ndash; 2. "; break;
  	}
 }
 if (NIHSS2 > 0) {
  	switch (NIHSS2) {
  		case 1.0: result += "Okohybná paréza &ndash; 1. ";                 break;
  		case 1.1: result += "Potlačitelná pohledová paréza &ndash; 1. ";   break;
  		case 2:   result += "Nepotlačitelná pohledová paréza &ndash; 2. "; break;
  	}
  }
  if (NIHSS3 > 0) {
 	 switch (NIHSS3) {
  		case 1: result += "Částečná hemianopsie &ndash; 1. "; break;
  		case 2: result += "Kompletní hemianopsie &ndash; 2. "; break;
  		case 3: result += "Slepota &ndash; 3. "; break;
  	}
 }
 if (NIHSS4 > 0) {
 	 switch (NIHSS4) {
  		case 1: result += "Frustní faciální paréza dolní větve &ndash; 1. "; break;
  		case 2.0: result += "Částečná faciální paréza dolní větve &ndash; 2. "; break;
  		case 2.1: result += "Kompletní faciální paréza dolní větve &ndash; 2. "; break;
  		case 3.0: result += "Faciální paréza horní i dolní větve &ndash; 3. "; break;
  		case 3.1: result += "Bilaterální faciální paréza &ndash; 3. "; break;
  		case 3.2: result += "Kóma &ndash; 3. "; break;
  	}
 }
  if (NIHSS5dx != 'UN' && NIHSS6dx != 'UN' && NIHSS5sin != 'UN' && NIHSS6sin != 'UN' && NIHSS5dx > 0 && NIHSS6dx > 0 && NIHSS5sin > 0 && NIHSS6sin > 0) {
 	result += "Kvadruparéza &ndash; " + parseInt(NIHSS5dx) + "+" + parseInt(NIHSS5sin) + "+" + parseInt(NIHSS6dx) + "+" + parseInt(NIHSS6sin) + ". ";
 } else if (NIHSS5dx != 'UN' && NIHSS6dx != 'UN' && NIHSS5dx > 0 && NIHSS6dx > 0) {
 	result += "Pravostranná hemiparéza &ndash; " + parseInt(NIHSS5dx) + "+" + parseInt(NIHSS6dx) + ". ";
 	if (NIHSS5sin != 'UN' && NIHSS5sin > 0){
 		result += "Paréza levé horní končetiny &ndash; " + parseInt(NIHSS5sin) + ". ";
 	}
 	if (NIHSS6sin != 'UN' && NIHSS6sin > 0){
 		result += "Paréza levé dolní končetiny &ndash; " + parseInt(NIHSS6sin) + ". ";
 	}
 } else if (NIHSS5sin != 'UN' && NIHSS6sin != 'UN' && NIHSS5sin > 0 && NIHSS6sin > 0) {
 	result += "Levostranná hemiparéza &ndash; " + parseInt(NIHSS5sin) + "+" + parseInt(NIHSS6sin) + ". ";
  	if (NIHSS5dx != 'UN' && NIHSS5dx > 0){
 		result += "Paréza pravé horní končetiny &ndash; " + parseInt(NIHSS5dx) + ". ";
 	}
 	if (NIHSS6dx != 'UN' && NIHSS6dx > 0){
 		result += "Paréza pravé dolní končetiny &ndash; " + parseInt(NIHSS6dx) + ". ";
 	}
 } else if (NIHSS6dx != 'UN' && NIHSS6sin != 'UN' && NIHSS6dx > 0 && NIHSS6sin > 0) {
 	result += "Paraparéza &ndash; " + parseInt(NIHSS6dx) + "+" + parseInt(NIHSS6sin) + ". ";
 } else {
 	if (NIHSS5dx != 'UN' && NIHSS5dx > 0){
 		result += "Paréza pravé horní končetiny &ndash; " + parseInt(NIHSS5dx) + ". ";
 	}
 	if (NIHSS5sin != 'UN' && NIHSS5sin > 0){
 		result += "Paréza levé horní končetiny &ndash; " + parseInt(NIHSS5sin) + ". ";
 	}
 	if (NIHSS6dx != 'UN' && NIHSS6dx > 0){
 		result += "Paréza pravé dolní končetiny &ndash; " + parseInt(NIHSS6dx) + ". ";
 	}
 	if (NIHSS6sin != 'UN' && NIHSS6sin > 0){
 		result += "Paréza levé dolní končetiny &ndash; " + parseInt(NIHSS6sin) + ". ";
 	}
 }
 
 if (NIHSS7 != 'UN' && NIHSS7 > 0) {
 	 switch (NIHSS7) {
  		case 1: result += "Ataxie &ndash; 1. "; break;
  		case 2: result += "Ataxie &ndash; 2. "; break;
  	}
 }
 
 if (NIHSS8 > 0) {
 	 switch (NIHSS8) {
  		case 1: result += "Lehká porucha čití &ndash; 1. "; break;
  		case 2.0: result += "Těžká porucha čití unilaterální &ndash; 2. "; break;
  		case 2.1: result += "Těžká porucha čití bilaterální &ndash; 2. "; break;
  		case 2.2: result += "Kóma &ndash; 2. "; break;
  	}
 }
 if (NIHSS9 > 0) {
 	 switch (NIHSS9) {
  		case 1.0: result += "Lehká expresivní fatická porucha &ndash; 1. "; break;
  		case 1.1: result += "Lehká senzorická fatická porucha &ndash; 1. "; break;
  		case 2.0: result += "Těžká expresivní fatická porucha &ndash; 2. "; break;
  		case 2.1: result += "Těžká senzorická fatická porucha &ndash; 2. "; break;
  		case 3.0: result += "Globální afázie &ndash; 3. "; break;
  		case 3.1: result += "Kóma &ndash; 3. "; break;
  	}
 }
 if (NIHSS10 != 'UN' && NIHSS10 > 0) {
 	 switch (NIHSS10) {
  		case 1: result += "Lehká dysartrie &ndash; 1. "; break;
  		case 2.0: result += "Těžká dysartrie &ndash; 2. "; break;
  		case 2.1: result += "Mutismus &ndash; 2. "; break;
  		case 2.2: result += "Kóma &ndash; 2. "; break;
  	}
 }
 if (NIHSS11 > 0) {
 	 switch (NIHSS11) {
  		case 1: result += "Neglect &ndash; 1. "; break;
  		case 2.0: result += "Neglect &ndash; 2. "; break;
  		case 2.1: result += "Kóma &ndash; 2. "; break;
  	}
 }

 
 result += "</p>";
 $( '#lekarska_kalkulacka_NIHSS-vysledek' ).html( result );
});