applets = $appletsDao; $this->application = $application; } public function application_start($param, $doctor) { $info = array(); $id = UUIDUtils::uuid(); $info['id'] = $id; $odd_number = $this->application->getNum(); $info['name'] = $param['name']; $sex = $this->getSex($param['sex']); $info['sex'] = $sex; $info['age'] = $param['age']; $info['phone'] = $param['phone']; $info['exam_datetime'] = $param['exam_datetime']; $info['exam_class'] = $param['exam_class']; $info['exam_project'] = $param['exam_project']; $info['patient_num'] = $param['patient_num']; $info['accession_num'] = $param['accession_num']; $info['exam_id'] = $param['exam_id']; $info['study_id'] = $param['study_id']; $info['report_status'] = 3; $info['illness_desc'] = isset($param['illness_desc']) ? $param['illness_desc'] : ''; $info['phys_sign'] = isset($param['phys_sign']) ? $param['phys_sign'] : ''; $info['clin_symp'] = isset($param['clin_symp']) ? $param['clin_symp'] : ''; $info['anamnesis'] = isset($param['anamnesis']) ? $param['anamnesis'] : ''; $info['family_ill'] = isset($param['family_ill']) ? $param['family_ill'] : ''; $info['remark'] = isset($param['remark']) ? $param['remark'] : ''; $info['clin_diag'] = isset($param['clin_diag']) ? $param['clin_diag'] : ''; if(empty($param['institution_id'])) { $this->throwError('请选择申请的医院','0011'); } $info['remote_institution_id'] = $param['institution_id']; $remote_doctor_id = $param['doctor_id'] ?? null; $info['remote_institution_name'] = $this->applets->getInstitutionName($param['institution_id']); $info['remote_doctor_id'] = $remote_doctor_id; $info['remote_doctor_name'] = $remote_doctor_id ? $this->applets->getDoctorName($remote_doctor_id) : null; $institution = $this->applets->getInstitutionName($doctor['institution_id']); $info['local_institution_id'] = $doctor['institution_id']; $info['local_institution_name'] = $institution; $info['req_doctor_id'] = $doctor['id']; $info['req_doctor_name'] = $doctor['realname']; $info['req_date_time'] = date('Y-m-d H:i:s', time()); $info['odd_number'] = $odd_number; $return = $this->applets->insertAplication($info); $this->application->saveProgressLog($doctor, 1, $id); $doctorName = $doctor['realname']; $data = [ 'id' => UUIDUtils::uuid(), 'title' => '收到一条远程诊断申请', 'content' => $institution . $doctorName . "向您发起一条远程诊断申请", 'doctor_id' => $remote_doctor_id, 'institution_id' => $param['institution_id'], 'count' => '1', 'type' => '1', 'application_id' => $id, 'ctime' => date('Y-m-d H:i:s', time()), ]; $data['exam_id'] = $param['exam_id']; $this->applets->insertMessage($data); $info = $this->applets->getReport($id); if (empty($info)) { $report_data = [ 'id' => UUIDUtils::uuid(), 'exam_id' => $param['exam_id'], 'createdAt' => date('Y-m-d H:i:s', time()), 'type' => 2, 'remote_application_id' => $id, ]; $this->applets->saveReport($report_data); } $bbs = [ 'id' => UUIDUtils::uuid(), 'initiator' => $doctor['realname'], 'remote_application_id' => $id, 'content' => $doctor['realname'] . '医生发起了申请', 'createdAt' => date('Y-m-d H:i:s', time()), 'type' => 1 ]; $this->applets->saveBbs($bbs); $type = $this->applets->getContactType($doctor['institution_id'], $param['institution_id']); $doctor_money = $this->applets->getDoctorMoney($doctor['institution_id'], $param['institution_id'], $remote_doctor_id, $param['exam_class']); if ($type === Config::get('PAY_TYPE')['HOSPITAL']) { $res = $this->application->makeHospitalOrder($doctor['institution_id'], $param['institution_id'], $doctor, $remote_doctor_id, $param['exam_class'],$id, $doctor_money, $is_urgent = 0); } if ($type === Config::get('PAY_TYPE')['PATIENT']) { $this->application->makePatientsOrder($doctor['institution_id'], $param['institution_id'], $doctor, $remote_doctor_id, $param['exam_class'], $id, $doctor_money, $is_urgent = 0); } return true; } public function getMyApplication($params,$doctor) { $fuzzyField = ['name','patient_num','accession_num']; $fuzzyWhere = $this->getListFuzzyWhere($params,$fuzzyField); $moreField = ['report_status']; $moreWhere = $this->getListSpecificWhere($params, $moreField); $class_where = $this->getRemoteExamClass($doctor); $doctor_where = ['req_doctor_id'=>$doctor['id']]; $data = $this->applets->getRemoteExamList($doctor['institution_id'], $fuzzyWhere, $moreWhere,$class_where, $params,$doctor_where); return $data; } public function getRemoteExamClass($doctor) { $class = $doctor['exam_class'] ?? false; if(!$class){ $this->throwError('登陆信息失效,请重新进行登陆','0099'); } $where = []; if($class == '*') { return $where; }else{ $where[] = ['a.exam_class','in',explode(',',$class)]; return $where; } } public function save_autograph($url,$doctor) { if(!$doctor['id']){ $this->throwError('登陆信息失效,请重新进行登陆','0099'); } $info = $this->applets->updateAutograph($url,$doctor['id']); return $info; } public function autograph_switch($doctor,$switch) { $info = $this->applets->autograph_switch($switch,$doctor['id']); return $info; } public function getAutograph($id) { $info = $this->applets->getAutograph($id); return $info; } }