where('institution_id',$doctor['institution_id'])->cache(300)->field('id','department_name')->select(); $info['department'] = $department; // 机构 $doctor_department = DB::table('department')->where('id',$doctor['department_id'])->cache(300)->field('id,department_name')->find(); $info['execute_department'] = $doctor_department; log::record('--------返回信息-----------------'); log::record($info); log::record('-----------返回信息--------------'); // Cache::set('inspectregister_index',$info); return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid]); }catch(\Exception $e ){ return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]); } } public function exam_info(){ try{ $sessionid = $_REQUEST['sessionid']; $examid = $_REQUEST['param']['id']; $examinfo = DB::table('exams')->where('id',$examid)->field(['id','accession_num','exam_class','exam_sub_class','body_part','device','exam_datetime','anamnesis','family_ill','dept_id','charge','exam_project','illness_desc','phys_sign','clin_symp','remark','clin_diag','hopitalized_no','bed_no','patient_id'])->find(); $exam_class = DB::table('constant')->where('id',$examinfo['exam_class'])->field('constant_value as name')->cache(300)->find(); $department = DB::table('department')->where('id',$examinfo['dept_id'])->field('department_name')->find(); $examinfo['dept_name'] = $department['department_name']; $examinfo['exam_class_name'] = $exam_class['name']; $exam_sub_class = DB::table('exam_subclass')->where('id',$examinfo['exam_sub_class'])->field('name')->cache(300)->find(); $examinfo['exam_subclass_name'] = $exam_sub_class['name']; $body_part = DB::table('bodypart')->where('id',$examinfo['body_part'])->field('name')->cache(300)->find(); $examinfo['bodypart_name'] = $body_part['name']; $device = DB::table('device')->where('id',$examinfo['device'])->field('name')->cache(300)->find(); $examinfo['device_name'] = $device['name']; $exam_project = DB::table('exam_project')->where('id',$examinfo['exam_project'])->field('name')->find(); $examinfo['exam_project_name'] = $exam_project['name']; $patientinfo = DB::table('patient_infos')->where('id',$examinfo['patient_id'])->field(['name','sex','age','phone','birthday',' temp_patient_id'])->find(); $info = array_merge($examinfo,$patientinfo); return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid]); }catch(\Exception $e ){ return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]); } } //检查类别 public function exam_class(){ // $sessionid = $_REQUEST['sessionid']; // $doctor = Cache::get($sessionid); $exam_class = DB::table('constant')->where('parent_id','exam_class')->field(['id','constant_value as name'])->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_class]); } //检查子类 public function exam_sub_class(){ $exam_subclass = DB::table('exam_subclass')->cache(300)->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_subclass]); } //检查部位 public function bodypart(){ $bodypart = DB::table('bodypart')->cache(300)->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$bodypart]); } //检查设备 public function device(){ $device = DB::table('device')->where('status',1)->cache(300)->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$device]); } //检查项目 public function exam_project(){ $exam_project = DB::table('exam_project')->cache(300)->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_project]); } //执行科室 public function department(){ $sessionid = $_REQUEST['sessionid']; $doctor = Cache::get($sessionid); $department = DB::table('department')->where('is_report',1)->where('institution_id',$doctor['institution_id'])->cache(300)->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$department]); } public function save(){ try{ log::record('--------数据保存-----------------'); log::record($_REQUEST); log::record('-------------------------'); // 登记医生 5 $sessionid = Request::instance()->param('sessionid'); $return = Verify::check_role($sessionid,5); if($return != 1){ return json_encode(['status'=>'fail','code'=>'1029','msg'=>'没有操作权限']); } $doctor = Cache::get($sessionid); $param = $_REQUEST['param']; Verify::registerCheck($param); //基本信息 $patient_info = array(); $patient_info['temp_patient_id'] = isset($param['pnum']) ? $param['pnum'] : ''; $patient_info['name'] = isset($param['name']) ? $param['name'] : ''; $patient_info['phone'] = isset($param['phone']) ? $param['phone'] : ''; $patient_info['sex'] = isset($param['sex']) ? $param['sex'] : ''; $patient_info['age'] = isset($param['age']) ? $param['age'] : ''; if(isset($param['anamnesis']) && !empty($param['anamnesis'])){ $ana = implode(',',$param['anamnesis']); $patient_info['anamnesis'] = $ana; } if(isset($patient_info['family_ill']) && !empty($patient_info['family_ill'])){ $fam = implode(',',$patient_info['family_ill']); $patient_info['family_ill'] = $fam; } if(isset($param['birthday']) && !empty($param['birthday'])){ $patient_info['birthday'] = $param['birthday']; } $exam_info = array(); if(isset($param['exam_id']) && !empty($param['exam_id'])){ $pid = DB::table('exams')->where('id',$param['exam_id'])->field('patient_id')->find(); //存在并且有值 则修改 $patient = DB::table('patient_infos')->where('temp_patient_id',$pid['patient_id'])->update($patient_info); }else{ $p = DB::table('patient_infos')->where('temp_patient_id',$param['pnum'])->find(); if($p){ return json_encode(['status'=>'fail','code'=>'1030','msg'=>'病历号已存在,请更改']); } $patient_info['id'] = UUids::uuid16(); //不存在或者没有值则添加 $patient = DB::table('patient_infos')->insert($patient_info); $exam_info['patient_id'] = $patient_info['id']; } //检查信息和申请信息 $exam_info['id'] = UUIDs::uuid16(); $exam_info['institution_id'] = $doctor['institution_id']; $exam_info['exam_status'] = 1; // 登记完成 $exam_info['register_datetime'] = date('Y-m-d : H:i:s'); $exam_info['phone'] = $doctor['phone']; $exam_info['patient_num'] = isset($param['pnum']) ? $param['pnum'] : ''; $exam_info['hopitalized_no'] = isset($param['hopitalized_no']) ? $param['hopitalized_no'] : ''; $exam_info['bed_no'] = isset($param['bed_no']) ? $param['bed_no'] : ''; $exam_info['accession_num'] = isset($param['checknum']) ? $param['checknum'] : ''; $exam_info['exam_class'] = isset($param['checkclass']) ? $param['checkclass'] : ''; $exam_info['exam_sub_class'] = isset($param['checkchild']) ? $param['checkchild'] : ''; $exam_info['body_part'] = isset($param['body']) ? $param['body'] : ''; $exam_info['device'] = isset($param['device']) ? $param['device'] : ''; if(isset($param['checktime']) && !empty($param['checktime'])){ $exam_info['exam_datetime'] = $param['checktime']; } $exam_info['dept_id'] = isset($param['department']) ? $param['department'] : ''; $exam_info['charge'] = isset($param['cost']) ? $param['cost'] : ''; $exam_info['exam_project'] = isset($param['project']) ? $param['project'] : ''; $exam_info['illness_desc'] = isset($param['illness']) ? $param['illness'] : ''; $exam_info['phys_sign'] = isset($param['phys_sign']) ? $param['phys_sign'] : ''; $exam_info['clin_symp'] = isset($param['clin_symp']) ? $param['clin_symp'] : ''; $exam_info['remark'] = isset($param['remark']) ? $param['remark'] : ''; $exam_info['clin_diag'] = isset($param['clin_diag']) ? $param['clin_diag'] : ''; $exam_info['register'] = $doctor['id']; $exam_info['ctime'] = date('Y-m-d H:i:s',time()); if(isset($param['exam_id']) && !empty($param['exam_id'])){ $exam = DB::table('exams')->where('id',$param['exam_id'])->update($exam_info); }else{ $exam_info['ctime'] = date('Y-m-d H:i:s',time()); $exam = DB::table('exams')->insert($exam_info); } return json_encode(['status'=>'ok','code'=>'0000','msg'=>'保存成功','sessionid'=>$sessionid]); }catch(\Exception $e ){ return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]); } } public function build_patient_num(){ $sessionid = $_REQUEST['sessionid']; if(Cache::get('P_'.$sessionid)){ return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get('P_'.$sessionid)]); } $num = $this->getNum('P'); Cache::set('P_'.$sessionid,$num,5); return json_encode(['status'=>'ok','code'=>'0000','info'=>$num]); } public function build_check_num(){ $sessionid = $_REQUEST['sessionid']; $front = $_REQUEST['check_class']; $pnum = $_REQUEST['pnum']; if(Cache::get($front.'_'.$pnum)){ return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get($front.'_'.$pnum)]); } if(Cache::get($front.'_'.$sessionid)){ return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get($front.'_'.$sessionid)]); } $cname = DB::table('constant')->where('id',$front)->cache(300)->field('constant_value as name')->find(); $num = $this->getNum($cname['name']); Cache::set($front.'_'.$sessionid,$num,5); Cache::set($front.'_'.$pnum,$num,600); return json_encode(['status'=>'ok','code'=>'0000','info'=>$num]); } public function getNum($head){ if(!Cache::get('lock')){ //没有锁 Cache::set('lock','11'); $date = $head.date('ymd',time()); if(!Cache::get($date)){ Cache::set($date,1,86400); $datenum = 1; }else{ //自增 Cache::inc($date); $datenum = Cache::get($date); } $dnum = ''; switch(strlen($datenum)){ case 1: $dnum = $date.'000'.$datenum; break; case 2: $dnum = $date.'00'.$datenum; break; case 3: $dnum = $date.'0'.$datenum; break; default: $dnum =$date.$datenum; break; } Cache::rm('lock'); return $dnum; }else{ //当接口被其他人占用时 调用自身重新获取字符串 sleep(1); self::getNum(); } } public function family_ill(){ $family_ill = DB::table('constant')->where('parent_id','family_ill')->cache(300)->field('constant_key,constant_value')->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$family_ill]); } public function illness(){ $illness = DB::table('constant')->where('parent_id','illness')->cache(300)->field('constant_key,constant_value')->select(); return json_encode(['status'=>'ok','code'=>'0000','info'=>$illness]); } }