Exemple #1
0
function start_operation()
{
    global $diagnoz_url;
    global $curr_time;
    //	Начать операцию
    foreach ($_SESSION as $key => $value) {
        unset($_SESSION[$key]);
    }
    //	Чистим всю сессию
    $_SESSION['operation_start'] = $curr_time;
    foreach (Autodoc::$tools as $tool => $tooldata) {
        if ($tooldata['is_switchable']) {
            $_SESSION['active_tools'][$tool] = false;
        }
    }
    $data = json_decode(file_get_contents($diagnoz_url), true);
    //	Определяем диагностические показатели
    $_SESSION['diag'] = $data['diag'];
    if (isset($data['diag']['pulse'])) {
        $_SESSION['diag']['pulse'] = $data['diag']['pulse'];
    } else {
        $_SESSION['diag']['pulse'] = Autodoc::getPulse(floatval($data['diag']['AD']), floatval($data['diag']['temp']));
    }
    $_SESSION['diag']['AD_gap'] = 1.5;
    //	Определяем критический цвет болезней
    $crit_col_arr = array();
    if ($data['diseases']) {
        foreach ($data['diseases'] as &$disease) {
            foreach ($disease['systems'] as $system_name => $power) {
                $disease['power'] += $power;
            }
            $crit_col_arr[] = array($disease['color'], $disease['power']);
        }
        $_SESSION['crit_color'] = Vect::mean_color($crit_col_arr);
    } else {
        $_SESSION['crit_color'] = array(0, 0, 0);
    }
    $_SESSION['html_crit_color'] = rgb2html100($_SESSION['crit_color']);
    //	Определяем состояние систем и органов
    foreach (Autodoc::$systems as $system_name => $asystem) {
        $system = $asystem;
        $system['stress'] = intval($data['state'][$system_name]);
        if ($system['stress'] >= 1000) {
            $system['stress'] = 1000;
            $system['color'] = $_SESSION['crit_color'];
        } else {
            // Система не отказала
            //		Определяем цвет системы на момент начала операции. Равен средневзвешенному цвету от дефолтного цвета системы
            //      и всех цветов болезней, которые завязаны на эту систеу
            $cols = array();
            $cols[] = array($asystem['color'], 1000);
            if ($data['diseases']) {
                foreach ($data['diseases'] as &$disease) {
                    if (in_array($system_name, $disease['systems'])) {
                        $cols[] = array($disease['color'], $data['state'][$system_name]);
                    }
                }
            }
            $system['color'] = Vect::mean_color($cols);
        }
        $system['html_color'] = rgb2html100($system['color']);
        $_SESSION['systems'][$system_name] = $system;
    }
    $_SESSION['used_tracks'] = array();
    //	Определяем начальные кровопотери
    $_SESSION['blood'] = array('left' => 5000 - $data['bloodloss'], 'lost' => intval($data['bloodloss']));
    /*
    $maxlen=0;
    foreach ($data['diseases'] as $disease)
    	if ($maxlen < $disease['time_elapsed'])
    		$maxlen = $disease['time_elapsed'];
    $_SESSION['blood']['lost'] = 1800*log($maxlen/600 + 1);
    $_SESSION['blood']['left'] -= $_SESSION['blood']['lost'];
    */
    //	Записываем стартовое состояние
    $_SESSION['start_patient_state'] = $data;
    $_SESSION['operation_in_process'] = 1;
    Autodoc::message(date("H:i:s. Начата операция"), 1, 1);
    //	Для вируса Х
    if ($data['diseases']) {
        foreach ($data['diseases'] as $dis) {
            if (substr($dis['id'], 0, 3) == 'IVX') {
                Autodoc::message("В крови пациента обнаружен характерный Вирус Х. Потенциальная опасность для жизни: крайне высокая. Бакто-препараты модифицированы. ", 1, 1);
            }
            //		if ($dis['id'] == 'MYT')
            //			Autodoc::message("Обнаружены необратимые генетические мутации. Реакция на стандартные медикаменты и инструменты непредсказуема. Проведение операции на свой страх и риск", 1, 1);
        }
    }
}
Exemple #2
0
				echo "
			<tr id='${system}_bg'><td>$system_data[name] <span id='${system}_data'></span>
				<td class=stress_val id='${system}_stress'>&nbsp;</td>";
			?>
		</table>


<? if ($user != 'surgeon')  { ?>
	<div class=clear></div>
	<div id=tracks class=left>
			<?
			foreach (Autodoc::$tracks as $track=>$track_data)    {
				echo "
				<input type=radio name=track id='{$track}_radio' value='$track'>
				<label id='{$track}_label' for='{$track}_radio' style='background-color: ".
					rgb2html100($track_data['color']).
					"; color:".(array_sum($track_data['color'])>100?'black':'white')."'>$track (".join (',', $track_data['color']).")</label><br>\n";
			}
			echo "Область применения: <br><select name=track_target id='track_target' style='width: 200px'>\n";
			foreach (Autodoc::$systems as $system => $system_data)
				echo "<option value=$system>$system_data[name]</option>\n";
			echo "</select> <br>
			<button id='start_track'>Запустить трек</button>
			<button style='display:none' id='stop_track'>Остановить трек</button>";
			?>
	</div>
<? } ?>

	<div class=clear></div>
	<audio id=audio loop></audio>
	<span id=main_message></span>