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); } } }
echo " <tr id='${system}_bg'><td>$system_data[name] <span id='${system}_data'></span> <td class=stress_val id='${system}_stress'> </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>