<?php // этот модуль необходимо делать тольео для крупных проектов, для небольшых описание пунктов меню и файлов меню лучше делать в init.php
$__functions['init'][]      ='_pp_admin_vars' ;
$__functions['boot_admin'][] ='_pp_admin_boot' ;
//$__functions['alert'][]   ='_pp_admin_alert' ;
$__functions['install'][]	='_pp_install_modul' ;



function _pp_admin_vars() //
{   //-----------------------------------------------------------------------------------------------------------------------------
	// описание переменных модуля
	//-----------------------------------------------------------------------------------------------------------------------------
	//-----------------------------------------------------------------------------------------------------------------------------
	// описание классов модуля
	//-----------------------------------------------------------------------------------------------------------------------------
    //-----------------------------------------------------------------------------------------------------
    $_SESSION['descr_clss'][211]['fields']['cnt_pp']=array('type'=>'int(1)','default'=>0) ;
    $_SESSION['descr_clss'][211]['index']['cnt_pp']='cnt_pp' ;

    $_SESSION['descr_clss'][211]['fields']['cnt_pp']			    =array('type'=>'int(11)') ;

    $_SESSION['descr_clss'][300]['name']='Результаты измерений ЦНС' ;
      $_SESSION['descr_clss'][300]['parent']=0 ;
      $_SESSION['descr_clss'][300]['fields']['id_mo']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['terminal_id']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['personal_id']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['leftEye']=array('type'=>'text') ;
      $_SESSION['descr_clss'][300]['fields']['rightEye']=array('type'=>'text') ;
      $_SESSION['descr_clss'][300]['fields']['leftEyeID']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['rightEyeID']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['comment']=array('type'=>'text') ;
      $_SESSION['descr_clss'][300]['fields']['result']=array('type'=>'varchar(255)') ;
      $_SESSION['descr_clss'][300]['fields']['result_code']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['lux']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['proc1']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['proc2']=array('type'=>'int(11)') ;
      $_SESSION['descr_clss'][300]['fields']['mo_time']=array('type'=>'int(4)') ;
      $_SESSION['descr_clss'][300]['index']['id_mo']='id_mo' ;
      $_SESSION['descr_clss'][300]['index']['indx']='indx' ;
      $_SESSION['descr_clss'][300]['index']['personal_id']='personal_id';
      $_SESSION['descr_clss'][300]['index']['result_code']='result_code';
      $_SESSION['descr_clss'][300]['index']['c_data']='c_data';
      $_SESSION['descr_clss'][300]['index']['mo_time']='mo_time';


      $_SESSION['descr_clss'][300]['list']['field']['pkey']=array('title'=>'Код.') ;
      $_SESSION['descr_clss'][300]['list']['field']['id_mo']=array('title'=>'id МО') ;
      $_SESSION['descr_clss'][300]['list']['field']['leftEye']=array('title'=>'Левый глаз') ;
      $_SESSION['descr_clss'][300]['list']['field']['rightEye']=array('title'=>'Правый глаз') ;
      $_SESSION['descr_clss'][300]['list']['field']['leftEyeID']=array('title'=>'FK результат анализа левого глаза') ;
      $_SESSION['descr_clss'][300]['list']['field']['comment']=array('title'=>'comment') ;
      $_SESSION['descr_clss'][300]['list']['field']['result']=array('title'=>'result') ;
      $_SESSION['descr_clss'][300]['list']['field']['lux']=array('title'=>'lux') ;


      /*
       $_SESSION['descr_clss'][301]['name']='Результаты анализа ЦНС' ;
       $_SESSION['descr_clss'][301]['parent']=0 ;
       $_SESSION['descr_clss'][301]['fields']['Tlat1']=array('type'=>'DECIMAL(5,5)') ;
       $_SESSION['descr_clss'][301]['fields']['Tlat2']=array('type'=>'DECIMAL(5,5)') ;
       $_SESSION['descr_clss'][301]['fields']['Angle1']=array('type'=>'DECIMAL(5,5)') ;
       $_SESSION['descr_clss'][301]['fields']['Angle2']=array('type'=>'DECIMAL(5,5)') ;

       $_SESSION['descr_clss'][301]['list']['field']['pkey']=array('title'=>'Код.') ;
       $_SESSION['descr_clss'][301]['list']['field']['Tlat1']=array('title'=>'Время до начала реакции на включение') ;
       $_SESSION['descr_clss'][301]['list']['field']['Tlat2']=array('title'=>'Время до начала реакции на выключение') ;
       $_SESSION['descr_clss'][301]['list']['field']['Angle1']=array('title'=>'Скорость реакции на включение');
       $_SESSION['descr_clss'][301]['list']['field']['Angle2']=array('title'=>'Скорость реакции на выключение');
        */

       $_SESSION['descr_clss'][303]['name']='Нормы для человека' ;
       $_SESSION['descr_clss'][303]['parent']=0 ;
       $_SESSION['descr_clss'][303]['fields']['user_id']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['pp_id']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['Tlat1Min']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Tlat1Max']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Tlat2Min']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Tlat2Max']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Angle1Min']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Angle1Max']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Angle2Min']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['Angle2Max']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['AmplitudeMin']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['AmplitudeMax']=array('type'=>'DECIMAL(11,5)') ;
       $_SESSION['descr_clss'][303]['fields']['AverageMin']=array('type'=>'int(8)') ;
       $_SESSION['descr_clss'][303]['fields']['AverageMax']=array('type'=>'int(8)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_m']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_p']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_AmplitudeMin']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_AmplitudeMax']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_AverageMin']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['koof_AverageMax']=array('type'=>'int(11)') ;
       $_SESSION['descr_clss'][303]['fields']['auto']=array('type'=>'int(1)') ;

       $_SESSION['descr_clss'][303]['list']['field']['pkey']=array('title'=>'Код.') ;
       $_SESSION['descr_clss'][303]['list']['field']['user_id']=array('title'=>'id сотрудника') ;
       $_SESSION['descr_clss'][303]['list']['field']['Tlat1Min']=array('title'=>'Время до начала реакции на включение min') ;
       $_SESSION['descr_clss'][303]['list']['field']['Tlat1Max']=array('title'=>'Время до начала реакции на включение max') ;
       $_SESSION['descr_clss'][303]['list']['field']['Tlat2Min']=array('title'=>'Время до начала реакции на выключение min') ;
       $_SESSION['descr_clss'][303]['list']['field']['Tlat2Max']=array('title'=>'Время до начала реакции на выключение max') ;
       $_SESSION['descr_clss'][303]['list']['field']['Angle1Min']=array('title'=>'Скорость реакции на включение min');
       $_SESSION['descr_clss'][303]['list']['field']['Angle1Max']=array('title'=>'Скорость реакции на включение max');
       $_SESSION['descr_clss'][303]['list']['field']['Angle2Min']=array('title'=>'Скорость реакции на выключение min');
       $_SESSION['descr_clss'][303]['list']['field']['Angle2Max']=array('title'=>'Скорость реакции на включение max');
       $_SESSION['descr_clss'][303]['list']['field']['AmplitudeMin']=array('title'=>'Амплитуда реакции на включение min') ;
       $_SESSION['descr_clss'][303]['list']['field']['AmplitudeMax']=array('title'=>'Амплитуда реакции на включение max') ;
       $_SESSION['descr_clss'][303]['list']['field']['AverageMin']=array('title'=>'Среднее значение min') ;
       $_SESSION['descr_clss'][303]['list']['field']['AverageMax']=array('title'=>'Среднее значение max') ;
       $_SESSION['descr_clss'][303]['list']['field']['auto']=array('title'=>'Норма посчитана автоматически') ;
}

function _pp_admin_boot($options)
{
    create_system_modul_obj('pp',$options) ;
}


function _pp_install_modul($DOT_root)
{ // временно перенесено в модуль aspmo так как таблица требуется для вьювера по МО
  // в далнейшем хранить поля pp_id и _pp_result в таблице МО, чтобы не обращаться дополнительно к таблице данных по ЦНС

    SETUP()->reg_report('Пупиллометрия','aspmo_pp/report_pp_itog2.php') ;         // группы риска по ПП
    SETUP()->reg_report('Пупиллометрия','aspmo_pp/report_pp_itog3.php') ;         // группы риска по ПП
    SETUP()->reg_report('Пупиллометрия','aspmo_pp/report_pp_itog4.php') ;         // группы риска по ПП
	SETUP()->reg_report('Пупиллометрия','aspmo_pp/report_pp_results.php') ;

    SETUP()->reg_event_lister('examination_result_data_read','PP','on_event_examination_result_data_read') ;         //


    $pattern=array() ;
    $pattern['table_title']		        = 	'Данные по ЦНС' ;
    $pattern['use_clss']		        = 	'300' ;
    //$pattern['def_recs'][]		        =	array ('parent'=>0,	'clss'=>1,	'enabled'=>1,	'indx'=>0,	'obj_name'=>'Документы') ;
    $pattern['table_name']				= 	'obj_site_narko_data' ;
    $pattern['table_clss']				= 	101 ;
    $pattern['table_parent']			= 	_DOT('obj_site_mo_session')->pkey;
    $id_DOT_pp=create_table_by_pattern($pattern) ;

    $pattern=array() ;
    $pattern['table_title']		        = 	'Нормы для человека' ;
    $pattern['use_clss']		        = 	'303' ;
    //$pattern['def_recs'][]		        =	array ('parent'=>0,	'clss'=>1,	'enabled'=>1,	'indx'=>0,	'obj_name'=>'Документы') ;
    $pattern['table_name']				= 	'obj_site_narko_data_out_303' ;
    $pattern['table_clss']				= 	101 ;
    $pattern['table_parent']			= 	$id_DOT_pp;
    create_table_by_pattern($pattern) ;

    check_exists_dir('/public/mo_pp') ;

    $id_sect=SETUP_add_section_to_site_setting('Пупиллометрия') ;
    SETUP_add_rec_to_site_setting($id_sect,"Учитывать результаты ПП при оценке МО",0,'LS_pp_use_pp_rules',array('el'=>'checkbox')) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум латентное время на включение светодиода минимальное",0.1,'LS_pp_Tlat1Min',['descr'=>'Tlat1Min']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум латентное время на включение светодиода максимальное",0.45,'LS_pp_Tlat1Max',['descr'=>'Tlat1Max']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум латентное время выключения светодиода минимальное",0.1,'LS_pp_Tlat2Min',['descr'=>'Tlat2Min']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум латентное время выключения светодиода ",1,'LS_pp_Tlat2Max',['descr'=>'Tlat2Max']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум угол наклона реакции на включение минимальное",1300,'LS_pp_Angle1Min',['descr'=>'Angle1Min']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум угол наклона реакции на включение ",5500,'LS_pp_Angle1Max',['descr'=>'Angle1Max']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум угол наклона при выключении светодиода минимальное",300,'LS_pp_Angle2Min',['descr'=>'Angle2Min']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум угол наклона при выключении светодиода ",1500,'LS_pp_Angle2Max',['descr'=>'Angle2Max']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум отношение максимального значения к минимальному ",1.5,'LS_pp_AmplitudeMin',['descr'=>'AmplitudeMin']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум отношение максимального значения к минимальному ",2.6,'LS_pp_AmplitudeMax',['descr'=>'AmplitudeMax']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Минимум среднее значение на участке адаптации",1000,'LS_pp_AverageMin',['descr'=>'AverageMin']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Значения нормы по умолчанию: Максимум среднее значение на участке адаптации ",6000,'LS_pp_AverageMax',['descr'=>'AverageMax']) ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы -",20,'LS_pp_norma_koof_m',array('update_current_value'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы +",60,'LS_pp_norma_koof_p',array('update_current_value'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы отношение максимального значения к минимальному -",30,'LS_pp_norma_Amplitude_m') ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы отношение максимального значения к минимальному +",30,'LS_pp_norma_Amplitude_p') ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы среднее значение на участке адаптации -",80,'LS_pp_norma_Average_m') ;
    SETUP_add_rec_to_site_setting($id_sect,"Разброс нормы среднее значение на участке адаптации +",80,'LS_pp_norma_Average_p') ;
    SETUP_add_rec_to_site_setting($id_sect,"Коэффициент калибровки люксометра",10,'LS_pp_lux_koof') ;
    SETUP_add_rec_to_site_setting($id_sect,"MinMOToAutoSetNorma",5,'LS_pp_MinMOToAutoSetNorma') ;
    SETUP_add_rec_to_site_setting($id_sect,"MinRecognitionPercent",70,'LS_pp_MinRecognitionPercent') ;
    SETUP_add_rec_to_site_setting($id_sect,"MinTlatFirstPercent",10,'LS_pp_MinTlatFirstPercent') ;
    SETUP_add_rec_to_site_setting($id_sect,"Не учитывать результаты ПП до",0,'LS_pp_disregartResultBefore',array('hidden'=>1)) ;
    SETUP_add_rec_to_site_setting($id_sect,"Минимальный процент распознования для учета результата в расчете нормы ",92,'LS_pp_minPercentForNormCalculate') ;

    // создавем вьюверы
        $sql='create view view_mo_session_pp as
                    select  t1.*,
                            t7.pkey as _pp_id,
                            t7.result as _pp_result
                    from view_mo_session t1
                    inner join obj_site_narko_data t7 on t7.id_mo=t1.pkey' ;
        create_viewer('view_mo_session_pp',$sql) ;

    if (!_sizeof($GLOBALS['install_options']) or $GLOBALS['install_options']['db_updates'] and ESMO_STATUS!='SETUP_FIRST')
    {
        execSQL_update('update obj_site_narko_data_out_303 set koof_m=20 where koof_m=10',array('debug'=>0)) ;
        execSQL_update('update obj_site_narko_data_out_303 set koof_p=60 where koof_p=10',array('debug'=>0)) ;
    }


}




?>
