MediaWiki:Lékařská kalkulačka/script.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.
$( document ).on( "pageinit", "#mainPage", function() {
	//ABCD2
	$( '#ABCD2 input:radio' ).change( function() {
		var points = 0;
		$( '#ABCD2 input:radio' ).each( function() {
			if ( this.checked ) {
				points += parseInt( this.value );
			}
		});
		$( '#ABCD2-result' ).html( points );
	});

	//Apgar
	$( '#Apgar input:radio' ).change( function() {
		var apgarPoints = 0;
		var apgarInterpretation = "normální novorozenec";
		$( '#Apgar input:radio' ).each( function() {
			if ( this.checked ) {
				apgarPoints += parseInt( this.value );
			}
		});
		$( '#Apgar-result' ).html( apgarPoints );
		if ( apgarPoints >= 8 ) {
			apgarInterpretation = "normální novorozenec";
		} else if ( apgarPoints >= 4 ) {
			apgarInterpretation = "lehká porodní asfyxie";
		} else {
			apgarInterpretation = "těžká porodní asfyxie";
		}
		$( '#Apgar-interpretation' ).html( apgarInterpretation );

	});

	//BMI
	$( '#BMI-form' ).on( 'change', '#BMI-vyska', function() {
		var vyska = parseInt( $( '#BMI-vyska' ).slider().val() );
		var vaha = parseInt( $( '#BMI-vaha' ).slider().val() );
		vyska /= 100;
		var bmi = vaha / (vyska * vyska);
		bmi *= 100;
		bmi = Math.round(bmi);
		bmi /= 100;
		$( '#BMI-value' ).html( bmi );
	});
	$( '#BMI-form' ).on( 'change', '#BMI-vaha', function() {
		var vyska = parseInt( $( '#BMI-vyska' ).slider().val() );
		var vaha = parseInt( $( '#BMI-vaha' ).slider().val() );
		vyska /= 100;
		var bmi = vaha / (vyska * vyska);
		bmi *= 100;
		bmi = Math.round(bmi);
		bmi /= 100;
		$( '#BMI-value' ).html( bmi );
	});

	$( '#Child input:radio' ).change( function() {
		var childPoints = 0;
		var childClass = "";
		var oneYearSurvival = "";
		var twoYearSurvival = "";
		$( '#Child input:radio' ).each( function() {
			if ( this.checked ) {
				childPoints += parseInt( this.value );
			}
		});
		if ( childPoints <= 6 ) {
			childClass = "A";
			oneYearSurvival = "100&nbsp;%";
			twoYearSurvival = "85&nbsp;%";
		} else if ( childPoints <= 9 ) {
			childClass = "B";
			oneYearSurvival = "81&nbsp;%";
			twoYearSurvival = "57&nbsp;%";
		} else {
			childClass = "C";
			oneYearSurvival = "45&nbsp;%";
			twoYearSurvival = "35&nbsp;%";
		}
		$( '#child-points' ).html( childPoints );
		$( '#child-class' ).html( childClass );
		$( '#child-oneYearSurvival' ).html( oneYearSurvival );
		$( '#child-twoYearSurvival' ).html( twoYearSurvival );
	});
	//Clearance
	$( '#Clearance input' ).change( function() {
		var vek, kreatinin, vaha, urea, albumin, cg, mdrd, idealni, idealniHorni, idealniSpodni;
		vek = parseInt( $( '#Clearance-vek' ).val().replace( ',', '.') );
		kreatinin = parseInt( $( '#Clearance-kreatinin' ).val().replace( ',', '.') );
		vaha = parseInt( $( '#Clearance-vaha' ).val().replace( ',', '.') );
		urea = parseInt( $( '#Clearance-urea' ).val().replace( ',', '.') );
		albumin = parseInt( $( '#Clearance-albumin' ).val().replace( ',', '.') );

		if ( vek && vaha && kreatinin ) {
			cg = ( (140 - vek ) * vaha ) / (44.5 * kreatinin );
		}
		if ( vek && kreatinin && urea && albumin ) {
			mdrd = 2.83 * Math.pow( ( 0.0113 * kreatinin ), -0.999 ) * Math.pow( vek, -0.176 ) * Math.pow( ( 2.8 * urea ), -0.17 ) * Math.pow( ( 0.1 * albumin ), 0.318 );
		}
		if ( $( '#Clearance-pohlavi-female' ).is( ':checked' ) ) {
			if ( cg ) {
				cg *= 0.85;
			}
			if ( mdrd ) {
				mdrd *= 0.762;
			}
		}
		if ( cg ) {
			cg = Math.round( 10000 * cg )/10000;
			$( '#Clearance-result-CG' ).html( cg );
		}
		if ( mdrd ) {
			mdrd = Math.round( 10000 * mdrd )/10000;
			$( '#Clearance-result-MDRD' ).html( mdrd );
		}
		if ( vek ) {
			idealni = -0.00946 * vek + 2.118;
			idealniSpodni = idealni - 0.3 * idealni;
			idealniSpodni = Math.round( 100 * idealniSpodni )/100;
			idealniHorni = idealni + 0.3 * idealni;
			idealniHorni = Math.round( 100 * idealniHorni )/100;
			$( '#Clearance-idealni' ).html( idealniSpodni + '&ndash;' + idealniHorni + ' ml/s' );
		}
	});


	//Povrch
	$( '#Povrch-form' ).on( 'change', '#povrch-vyska', function() {
		var vyska = parseInt( $( '#povrch-vyska' ).slider().val() );
		var vaha = parseInt( $( '#povrch-vaha' ).slider().val() );
		var bsa = 0.007184 * Math.pow( vaha, 0.425 ) * Math.pow( vyska, 0.725 );
		bsa = Math.round( 1000 * bsa ) / 1000;
		$( '#povrch-value' ).html( bsa );
	});
	$( '#Povrch-form' ).on( 'change', '#povrch-vaha', function() {
		var vyska = parseInt( $( '#povrch-vyska' ).slider().val() );
		var vaha = parseInt( $( '#povrch-vaha' ).slider().val() );
		var bsa = 0.007184 * Math.pow( vaha, 0.425 ) * Math.pow( vyska, 0.725 );
		bsa = Math.round( 1000 * bsa ) / 1000;
		$( '#povrch-value' ).html( bsa );
	});
	//Ranson
	$( '#Ranson-typ' ).change( function() {
		if ( document.getElementById('Ranson-obstrukcni').checked ) {
			$( '#Ranson-label-vek' ).html('Věk &gt; 70 let');
			$( '#Ranson-label-WBC').html('Leukocyty &gt; 18 gpt/l');
			$( '#Ranson-label-glykemie' ).html('Glykémie &gt; 12,2 mmol/l');
			$( '#Ranson-label-AST' ).html('Sérová AST &gt; 250 IU/l');
			$( '#Ranson-label-LDH' ).html('Sérová LDH &gt; 400 IU/l');
			$( '#Ranson-label-kalcemie' ).html('Kalcémie &lt; 2,0 mmol/l');
			$( '#Ranson-label-hematokrit' ).html('Snížení hematokritu o &gt; 10 %');
			$( '#Ranson-label-kyslik' ).html('hypoxémie P<sub>O<sub>2</sub></sub> &lt; 60 mmHg');
			$( '#Ranson-label-BUN' ).html('BUN (Blood urea nitrogen) stoupl o více než 1,8 mmol/l po i.v. rehydrataci');
			$( '#Ranson-label-BE' ).html('Base excess &lt; 5 mEq/l');
			$( '#Ranson-label-tekutiny' ).html('Sekvestrace tekutin &gt; 4 l');
		} else {
			$( '#Ranson-label-vek' ).html('Věk &gt; 55 let');
			$( '#Ranson-label-WBC').html('Leukocyty &gt; 16 gpt/l');
			$( '#Ranson-label-glykemie' ).html('Glykémie &gt; 10 mmol/l');
			$( '#Ranson-label-AST' ).html('Sérová AST &gt; 250 IU/l');
			$( '#Ranson-label-LDH' ).html('Sérová LDH &gt; 350 IU/l');
			$( '#Ranson-label-kalcemie' ).html('Kalcémie &lt; 2,0 mmol/l');
			$( '#Ranson-label-hematokrit' ).html('Snížení hematokritu o &gt; 10 %');
			$( '#Ranson-label-kyslik' ).html('hypoxémie P<sub>O<sub>2</sub></sub> &lt; 60 mmHg');
			$( '#Ranson-label-BUN' ).html('BUN (Blood urea nitrogen) stoupl o více než 1,8 mmol/l po i.v. rehydrataci');
			$( '#Ranson-label-BE' ).html('Base excess &lt; 4 mEq/l');
			$( '#Ranson-label-tekutiny' ).html('Sekvestrace tekutin &gt; 6 l');
		}
	});
	$( '#Ranson input:checkbox' ).change( function() {
		var ransonPoints = 0;
		var ransonResult;
		var ransonMortality;

		$( '#Ranson input:checkbox' ).each( function() {
			if ( this.checked ) {
				ransonPoints++;
			}
		});
		if ( ransonPoints < 3 ) {
			ransonResult = "nepravděpodobná";
			ransonMortality = 2;
		} else if ( ransonPoints < 5 ) {
			ransonResult = "pravděpodobná";
			ransonMortality = 15;
		} else if ( ransonPoints < 7 ) {
			ransonResult = "pravděpodobná";
			ransonMortality = 40; 
		} else {
			ransonResult = "pravděpodobná";
			ransonMortality = 100;
		}
		$( '#Ranson-points' ).html( ransonPoints );
		$( '#Ranson-result' ).html( ransonResult );
		$( '#Ranson-mortality' ).html( ransonMortality );
	});

	//QTc
	//TODO spustit funkci, pokud clovek cisla napise
	//$( '#QTc-form' ).on( 'change', '#QTC-QT', function() {
	$( '#QTc-form' ).on( 'slidestop', '#QTC-QT', function() {
		var QT = $( '#QTC-QT' ).slider().val();
		var RR = $( '#QTC-RR' ).slider().val();
		var BPS = $( '#QTC-BPS' ).slider().val();
		$( '#QTc-Bazett' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.sqrt( RR / 1000 ) ) ) );
		$( '#QTc-Fridericia' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.pow( RR / 1000, 1/3 ) ) ) );
		$( '#QTc-Sagie' ).html( Math.round( 1000 * ( ( QT / 1000) + 0.154 * ( 1 - ( RR / 1000 ) ) ) ) );
						
	});
	//$( '#QTc-form' ).on( 'change', '#QTC-RR', function() {
	$( '#QTc-form' ).on( 'slidestop', '#QTC-RR', function() {
		var QT = $( '#QTC-QT' ).slider().val();
		var RR = $( '#QTC-RR' ).slider().val();
		var BPS = Math.round( 60000/RR );
		$( '#QTC-BPS' ).slider().val(BPS);
		$( '#QTC-BPS' ).slider( 'refresh' );
		$( '#QTc-Bazett' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.sqrt( RR / 1000 ) ) ) );
		$( '#QTc-Fridericia' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.pow( RR / 1000, 1/3 ) ) ) );
		$( '#QTc-Sagie' ).html( Math.round( 1000 * ( ( QT / 1000) + 0.154 * ( 1 - ( RR / 1000 ) ) ) ) );
	});
	//$( '#QTc-form' ).on( 'change', '#QTC-BPS', function() {
	$( '#QTc-form' ).on( 'slidestop', '#QTC-BPS', function() {
		var QT = $( '#QTC-QT' ).slider().val();
		var BPS = $( '#QTC-BPS' ).slider().val();
		var RR = Math.round( 60000/BPS );
		$( '#QTC-RR' ).slider().val(RR);
		$( '#QTC-RR' ).slider( 'refresh' );
		$( '#QTc-Bazett' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.sqrt( RR / 1000 ) ) ) );
		$( '#QTc-Fridericia' ).html( Math.round( 1000 * ( ( QT / 1000 ) / Math.pow( RR / 1000, 1/3 ) ) ) );
		$( '#QTc-Sagie' ).html( Math.round( 1000 * ( ( QT / 1000) + 0.154 * ( 1 - ( RR / 1000 ) ) ) ) );
	});

	//Total Energy Expenditure (TEE)
	function calculateTEE() {
		var muz = ( $('#TEE-sex-m').is(':checked') )? true : false;
		var vyska = $( '#TEE-vyska' ).slider().val();
		var vaha = $( '#TEE-vaha' ).slider().val();
		var vek = $( '#TEE-vek' ).slider().val();

		var REE = 0;
		if (muz) {
			REE = 66.4730 + (13.7516 * vaha) + (5.0033 * vyska) - (6.7550 * vek);
		} else {
			REE = 655.0955 + (9.5634 * vaha) + (1.8496 * vyska) - (4.6756 * vek);
		}
		$( '#TEE-REE-HB-result' ).html( Math.round(REE) );

		var AF = parseFloat( $('input[name=TEE-AF]:checked', '#TEE-form').val() );
		var IF = parseFloat( $('input[name=TEE-IF]:checked', '#TEE-form').val() );
		var TF = parseFloat( $('input[name=TEE-TF]:checked', '#TEE-form').val() );

		var TEE = AF * IF * TF * REE;
		$( '#TEE-result' ).html( Math.round(TEE) );
	}
	$( '#TEE input' ).change( function() {
		calculateTEE();
	});
	$( '#TEE-form' ).on( 'change', '#TEE-vyska', function() {
		calculateTEE();
	});
	$( '#TEE-form' ).on( 'change', '#TEE-vaha', function() {
		calculateTEE();
	});
	$( '#TEE-form' ).on( 'change', '#TEE-vek', function() {
		calculateTEE();
	});

});