join(['register'=>'re'],'re.exam_id=e.id','LEFT') ->join(['report' => 'r'],'e.id = r.exam_id and r.type=1','LEFT') // ->join(['report' => 'r'],'e.id = r.exam_id and (r.remote_application_id is null or r.remote_application_id="")','LEFT') ->join(['doctors'=>'dp'],'dp.id=r.report_doctor_id','left') ->join(['doctors'=>'dv'],'dv.id=r.review_doctor_id','left') ->join(['doctors'=>'dc'],'dc.id=r.confirm_doctor_id','left') ->where('e.id', $examId) ->field($field) ->find(); return $detail; } public function getRemoteReportInfo($ra_id) { // 获取数据 $field = [ 'e.patient_num','e.exam_class', 'e.exam_datetime','e.body_part','e.study_id','e.hopitalized_no', 'e.name', 'e.sex', 'e.age', 'e.phone','e.report_status','e.local_institution_name','e.req_doctor_name','e.remote_department', 'r.id AS report_id, r.impression', 'r.description', 'r.report_result', 'r.report_doctor_id','r.report_doctor_name', 'r.report_datetime', 'r.review_doctor_id','r.review_doctor_name', 'r.review_datetime', 'r.confirm_doctor_id','r.confirm_doctor_name', 'r.confirm_datetime', 'r.report_result','r.remote_application_id','r.qr_code', 'e.exam_project','e.accession_num', 'dp.is_use_autograph AS report_use_autograph','dp.autograph AS report_autograph','dp.autograph_type AS report_autograph_type', 'dv.is_use_autograph AS review_use_autograph','dv.autograph AS review_autograph','dv.autograph_type AS review_autograph_type', 'dc.is_use_autograph AS confirm_use_autograph','dc.autograph AS confirm_autograph','dc.autograph_type AS confirm_autograph_type','e.local_institution_id AS institution_id' ]; $detail = RemoteModel::alias('e') ->join(['report' => 'r'],"r.remote_application_id =e.id",'LEFT') ->join(['doctors'=>'dp'],'dp.id=r.report_doctor_id','left') ->join(['doctors'=>'dv'],'dv.id=r.review_doctor_id','left') ->join(['doctors'=>'dc'],'dc.id=r.confirm_doctor_id','left') ->where('e.id', $ra_id) ->field($field) ->find(); return $detail; } public function getInstitutionData($where, $field) { return InstitutionModel::where($where)->find(); } public function getStatus($id) { $status = ApplicationModel::where('id',$id)->field('remote_doctor_id,report_status')->find(); return $status; } public function getDoctorName($id) { $info = DoctorModel::whereIn('id', $id)->value('realname'); return $info; } public function getInstitutionInfo($doctorId) { $institutionId = DoctorModel::where('id',$doctorId)->field('INSTITUTION_ID AS institution_id,INTRODUCE AS introduce')->find(); if(empty($institutionId)) { $info = ['introduce'=>'','name'=>'']; }else{ $institutionName = InstitutionModel::where('id',$institutionId['institution_id'])->value('name'); $info = ['introduce'=>$institutionId['introduce'],'name'=>$institutionName]; } return $info; } public function saveBbs($info) { $data = BbsModel::insert($info); return $data; } public function getTrace($reportId) { $data = RecordModel::alias('r') ->join(['doctors'=>'d'], 'r.doctor_id = d.id') ->where('r.report_id', $reportId) ->field('r.impression, r.description, r.report_result, r.createdAt AS handle_time, d.realname, r.type') ->order('r.createdat') ->select(); return $data; } public function getOrderMoney($id) { $money = OrderModel::where('application_id',$id)->value('order_money'); return $money; } public function updateInstititonMoney($id,$money) { $info = InstitutionModel::where('id',$id)->update(['current_money'=>$money]); return $info; } public function getCurrentMoney($id) { $money = InstitutionModel::where('id',$id)->value('current_money'); return $money; } public function getExam($id) { $info = ExamModel::where('id',$id)->find(); return $info; } public function getOrderId($id) { $oid = OrderModel::where('application_id',$id)->value('id'); return $oid; } public function insertReport($data) { if(isset($data['remote_application_id']) && $data['remote_application_id'] != ''){ //远程数据库 $info = PublicReportModel::insert($data); return $info; }else{ $info = $this->insert($data); return $info; } } public function getMiddle($where) { $info = RmiddleModel::where($where)->find(); return $info; } public function saveRmiddle($middle,$middleWhere) { if(empty($middleWhere)) { RmiddleModel::insert($middle); }else{ RmiddleModel::where($middleWhere)->update($middle); } } public function updateOrder($id,$status) { $data = OrderModel::where('id',$id)->update(['status'=>$status]); return $data; } public function insertShare($data) { $info = ShareModel::insert($data); return $info; } public function updateExam($examId, $patientId, $examUp) { try{ // 修改exam表数据 $exam = New ExamModel(); $exam_res = $exam->allowField(true) ->save($examUp,['id'=>$examId]); if($exam_res === false){ return false; } PublicPhone::savePublicSearch($examUp['phone'] ?? '',$examId); // 修改patient_infos表数据 $patient = new PatientModel(); $info_res = $patient->allowField(true) ->save($examUp,['id'=>$patientId]); if($info_res === false) { return false; } // 成功 return true; } catch (Exception $exception){ $this->throwError($exception->getMessage(),0001); } } public function updateRemote($id,$update) { try{ // 修改remote表数据 $info = RemoteModel::where('id',$id)->update($update); if($info === false){ return false; } // 成功 return true; } catch (Exception $exception){ $this->throwError($exception->getMessage(),0001); } } public function getReportId($examId,$reportType) { // 获取报告id $report_id = $this ->where('exam_id', $examId) ->where('type', $reportType) ->value('id'); return $report_id; } public function getRemoteReportId($id) { $report_id = PublicReportModel::where('remote_application_id',$id) ->value('id'); return $report_id; } public function getInstitutionSms($id) { $sms = InstitutionModel::where('id',$id)->value('patient_sms'); return $sms; } public function getInstitutionName($id) { $name = InstitutionModel::where('id',$id)->value('name'); return $name; } public function getApplicationId($examId) { $id = ApplicationModel::where('exam_id',$examId)->value('id'); return $id; } public function getPrintInfo($reportId,$is_remote) { if($is_remote == 1){ //远程 $field = [ 'e.accession_num', 'e.exam_project', 'e.exam_class', 'e.patient_num', 'e.exam_datetime','e.hopitalized_no', 'e.name', 'e.sex', 'e.age', 'e.phone','e.exam_sub_class',"'' AS patient_area","'' AS out_patient", 'e.remote_institution_name AS institution_name', 'r.impression', 'r.description', 'r.report_doctor_id','r.report_doctor_name', 'r.report_datetime', 'r.review_doctor_id','r.review_doctor_name', 'r.review_datetime','r.qr_code','r.confirm_doctor_name' ]; $detail = PublicApplicationModel::alias('e') ->join(['report'=>'r'],'r.remote_application_id=e.id','left') ->where('r.id',$reportId) ->field($field) ->find(); }else{ //本地 $field = [ 're.clin_doctors_name','re.register_name','re.technician_name','e.application_department', 'e.accession_num', 'e.exam_project', 'e.exam_class', 'e.patient_num', 'e.hopitalized_no', 'e.bed_no', 'e.exam_datetime','e.institution_id', 'e.name', 'e.sex', 'e.age', 'e.phone','e.exam_sub_class','e.patient_area',"e.out_patient", 'i.name AS institution_name','e.body_part', 'r.impression', 'r.description', 'r.report_doctor_id','r.report_doctor_name', 'r.report_datetime', 'r.review_doctor_id','r.review_doctor_name', 'r.review_datetime','r.qr_code','r.confirm_doctor_name' ]; $detail =$this->alias('r') ->join(['exams' => 'e'], 'e.id = r.exam_id') ->join(['register' => 're'],'re.exam_id=e.id','LEFT') ->join(['institution' => 'i'], 'e.institution_id = i.id','LEFT') ->where('r.id', $reportId) ->field($field) ->find(); } // 获取数据 return $detail; } public function getDoctorInfo($id,$field) { $info = DoctorModel::where('id',$id)->field($field)->find(); return $info; } public function updateReport($examId,$type,$update) { $info = $this->where('exam_id',$examId)->where('type',$type)->update($update); return $info; } public function readMessage($id) { return MessageModel::where('application_id',$id)->update(['is_read'=>1]); } public function updateRemoteReport($id,$update) { $info = PublicReportModel::where('remote_application_id',$id)->update($update); return $info; } public function updateExamStauts($examId,$status) { $info = ExamModel::where('id',$examId)->update(['exam_status'=>$status]); return $info; } public function insertMessage($data) { $info = MessageModel::insert($data); return $info; } public function updateRemoteStauts($id,$status) { $info = PublicApplicationModel::where('id',$id)->update(['report_status'=>$status]); return $info; } public function updateremoteExamStatus($examId,$status) { $info = ExamModel::where('id',$examId)->update(['report_status'=>$status]); return $info; } public function insertRecord($info) { $data = RecordModel::insert($info); return $data; } public function getDoctorClass($userId) { $class = DoctorClassModel::where('doctor_id',$userId)->value('doctor_class'); return $class; } public function getReportById($id,$field) { $report = ReportModel::where('id',$id)->field($field)->find(); return $report; } public function getReport($examId,$type,$ra_id) { if($ra_id){ // 存在 则为远程 $info = PublicReportModel::where('exam_id',$examId)->where('remote_application_id',$ra_id)->where('type',$type)->find(); return $info; }else{ $info = $this->where('exam_id',$examId)->where('type',$type)->find(); return $info; } } public function deleteAiReport($examId, $type) { $info =ReportModel::where('exam_id',$examId)->where('type',$type)->delete(); ExamModel::where('id',$examId)->update(['exam_status'=>3]); return $info; } public function getXzData($id) { $info = XzModel::where('exam_id',$id) ->find(); return $info; } public function getDoctorRealName($id) { $name = DoctorModel::where('id',$id)->value('realname'); return $name; } public function getUid($id) { $uid = StudiesModel::where('exam_id',$id)->value('studyuid'); return $uid; } public function getAccession($id) { $info = ExamModel::where('id',$id)->value('accession_num'); return $info; } public function getExams($institutionId,$num,$where,$timeWhere,$status) { $info = ExamModel::where('institution_id',$institutionId)->where($timeWhere)->where($where)->where('exam_status','in',$status)->order('createdAt desc')->page(1,$num)->select(); return $info; } public function getReports($institutionId,$page,$num,$timeWhere) { if(empty($page)) { $page = 1; } $info = ExamModel::alias('e') ->join(['report'=>'r'],'r.exam_id=e.id') ->where('institution_id',$institutionId) ->where($timeWhere) ->where('exam_status',9) ->field('e.*,r.id AS report_id,r.impression,r.description,r.report_datetime,r.report_doctor_name,r.review_doctor_name,r.review_datetime,r.confirm_doctor_name,r.confirm_datetime,r.report_result,r.createdAt AS report_create,r.updatedAt AS report_update') ->order('e.createdAt desc') ->page($page,$num) ->select(); return $info; } public function getConfirmExams($institutionId,$num) { $info = ExamModel::where('institution_id',$institutionId)->where('exam_status',9)->order('createdAt desc')->page(1,$num)->select(); return $info; } public function getExamById($id) { $info = ExamModel::where('id',$id)->find(); return $info; } public function getDoctorId($sql) { $id = $this->query($sql); return $id; } public function getDoctorByNull($institution) { $data = DoctorModel::where('institution_id',$institution)->where('realname','')->field('id')->find(); return $data; } public function makeDoctor($doctor) { $info = DoctorModel::insert($doctor); return $info; } public function checkReport($id) { $report = ReportModel::where('exam_id',$id)->where('type',1)->value('id'); return $report; } public function saveReport($report,$id) { try{ if($id == null){ $info = $this->insert($report); }else{ $info = $this->where('id',$id)->update($report); } return $info; } catch (DbException $exception){ $this->throwError($exception->getMessage(),0001); } } public function getBodyByProject($project) { return DictprojectModel::where('project',$project)->value('body_part'); } public function getStudyByExamId($examId) { return StudiesModel::where('exam_id',$examId)->find(); } public function saveAiReport($data) { return AireportModel::insert($data); } public function updateExamInfo($exam,$id) { try{ $info = ExamModel::where('id',$id)->update($exam); return $info; } catch (DbException $exception){ $this->throwError($exception->getMessage(),0001); } } public function getPatientId($examId) { try{ $id = ExamModel::where('id',$examId)->value('patient_id'); return $id; } catch (DbException $exception){ $this->throwError($exception->getMessage(),0001); } } public function updatePatient($patient,$id) { try{ $info = PatientModel::where('id',$id)->update($patient); return $info; } catch (DbException $exception){ $this->throwError($exception->getMessage(),0001); } } public function getIns($id) { $info = InstitutionModel::where('id',$id)->find(); return $info; } public function getHistorySend($exam,$study) { $info = ShareModel::where('examId',$exam)->where('study_id',$study)->where('send_message',1)->find(); return $info; } public function savePregressLog($log) { PayprogresslogModel::insert($log); } public function getUserWechat() { $where = "createdAt < DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')"; //截止到今日0点 $all = UserModel::where($where)->count(); $nowInfo = UserModel::where($where)->where('subscribe_status',2)->count(); $info = ['all'=>$all,'now'=>$nowInfo]; return $info; } public function getExamData() { $yest_start = date('Y-m-d 00:00:00',time()-86400); //昨日0点 $yest_finish = date('Y-m-d 23:59:59',time()-86400); //昨日23点 $yestWhere = "createdAt BETWEEN '$yest_start' AND '$yest_finish'"; $yWhere = "createdAt < '$yest_start'"; $yestCount = ExamModel::where($yestWhere)->count(); //昨天0点到昨日23点的数量 $yestAllCount = ExamModel::where($yWhere)->count(); //昨天0点之前的总数量 $nowWhere = "createdAt < DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')"; $nowAllCount = ExamModel::where($nowWhere)->count(); //截至到今日0点的数量 if($yestAllCount == 0){ $percentage = 0; }else{ $percentage = round((($yestCount/$yestAllCount)*100),2); } $info = ['all'=>$nowAllCount,'yest'=>$yestCount,'percentage'=>$percentage]; return $info; } public function getPicNumber() { $yest_start = date('Y-m-d 00:00:00',time()-86400); //昨日0点 $yest_finish = date('Y-m-d 23:59:59',time()-86400); //昨日23点 $yestWhere = "createdAt BETWEEN '$yest_start' AND '$yest_finish'"; $yestAll = PatientsearchModel::where($yestWhere)->count(); $y = PatientsearchModel::where($yestWhere)->distinct(true)->column('patient_uid'); $yest = count($y); $info = ['yestAll'=>$yestAll,'yest'=>$yest]; return $info; } public function insertDing($data) { DingModel::insert($data); } public function getInsInfo() { $where = "createdAt < DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')"; $all = InstitutionModel::where($where)->count(); $yest_start = date('Y-m-d 00:00:00',time()-86400); //昨日0点 $yest_finish = date('Y-m-d 23:59:59',time()-86400); //昨日23点 $yestWhere = "createdAt BETWEEN '$yest_start' AND '$yest_finish'"; $name = InstitutionModel::where($yestWhere)->field('name')->select(); $yest = count($name); $info = ['all'=>$all,'yest'=>$yest,'name'=>$name]; return $info; } public function getAllInsInfo() { $yest_start = date('Y-m-d 00:00:00',time()-86400); //昨日0点 $yest_finish = date('Y-m-d 23:59:59',time()-86400); //昨日23点 $yestWhere = "createdAt BETWEEN '$yest_start' AND '$yest_finish'"; $a = PatientsearchModel::distinct('patient_uid')->where($yestWhere)->column('search_criteria'); $b = ExamModel::alias('e') ->join(['institution'=>'i'],'e.institution_id=i.id') ->distinct(true) //accession_num patient_num ->where('e.patient_num','in',$a) ->field('i.name,e.institution_id,e.patient_num') ->select(); $d = ExamModel::alias('e') ->join(['institution'=>'i'],'e.institution_id=i.id') ->distinct(true) //accession_num patient_num ->where('e.accession_num','in',$a) ->field('i.name,e.institution_id,e.accession_num') ->select(); $e = ExamModel::alias('e') ->join(['institution'=>'i'],'e.institution_id=i.id') ->distinct(true) //accession_num patient_num ->where('e.phone','in',$a) ->field('i.name,e.institution_id,e.phone') ->select(); $f = ExamModel::alias('e') ->join(['institution'=>'i'],'e.institution_id=i.id') ->distinct(true) //accession_num patient_num ->where('e.card_num','in',$a) ->field('i.name,e.institution_id,e.card_num') ->select(); $g = ExamModel::alias('e') ->join(['institution'=>'i'],'e.institution_id=i.id') ->distinct(true) //accession_num patient_num ->where('e.hopitalized_no','in',$a) ->field('i.name,e.institution_id,e.hopitalized_no') ->select(); $data = ['patient_num'=>$b,'accession_num'=>$d,'phone'=>$e,'card_num'=>$f,'hopitalized_no'=>$g]; return $data; } public function getYestNumber() { $yest_start = date('Y-m-d 00:00:00',time()-86400); //昨日0点 $yest_finish = date('Y-m-d 23:59:59',time()-86400); //昨日23点 $yestWhere = "createdAt BETWEEN '$yest_start' AND '$yest_finish'"; $info = DingModel::where($yestWhere)->value('wechat_yestday_focus'); return $info; } public function get2Ins() { $con = mysqli_connect("47.104.6.21","pacs","ZSKK@2017~!@#"); mysqli_select_db($con,'pacsonline'); mysqli_set_charset($con,'utf8'); $sql = mysqli_query($con,"SELECT id FROM institution"); $data = array(); #判断是否有数据 if($sql->num_rows){ #循环把数据插入返回的数组中 while($row = $sql->fetch_assoc()){ $data[] = $row; } } mysqli_close($con); return $data; } public function get3Ins() { $ins = InstitutionModel::column('id'); return $ins; } public function getInstitutionId($study_id) { $id = ExamModel::where('study_id',$study_id)->value('institution_id'); return $id; } public function getPatientByStudyId($study_id) { $id = ExamModel::where('study_id',$study_id)->value('patient_id'); return $id; } public function getPatientNameByStudyId($study_id) { $name = ExamModel::where('study_id',$study_id)->value('name'); return $name; } public function getExamBySearch($where,$institution) { $info = ExamModel::where($where) ->where('institution_id',$institution) // ->field('patient_num,name,birthday,sex,exam_class,exam_datetime,clin_diag,accession_num,his_patient_id,study_id,age,body_part') ->select(); return $info; } public function getExamByPatient($where) { $info = ExamModel::where($where)->order('exam_datetime desc')->select(); return $info; } public function saveVideo($data,$where) { $info = VideoModel::where($where)->update($data); return $info; } public function save_video_url($data) { $info = VideoModel::insert($data); return $info; } public function cancel_video($id) { $info = VideoModel::where('id',$id)->update(['status'=>0]); return $info; } public function getVideo($id) { $list = VideoModel::where('exam_id',$id)->select(); return $list; } public function getWorkList() { $field = [ 'accession_num AS AccessionNumber', "e.birthday AS DateOfBirth", //生日 "e.patient_num AS PatientID", //患者ID "e.name AS Surname", //姓 "'' AS Forename", //名 "'' AS Title", //Title "e.sex AS Sex", //患者性别 "e.exam_class AS Modality", //检查类型 "'' AS ExamDescription", //检查描述 "'' AS ExamRoom", //检查科室 "i.name AS HospitalName", //医院名称 "'' AS PerformingPhysician", //执行医生 "'' AS ProcedureID", //过程ID "'' AS ProcedureStepID", //过程ID2 "e.studyuid AS StudyUID", //StudyUid "'' AS ScheduledAET", // AETiTLE "'' AS ReferringPhysician", //指派医生 'e.exam_datetime AS ExamDateAndTime', ]; $info = ExamModel::alias('e') ->join(['institution'=>'i'],'i.id=e.institution_id') ->where('i.id','13000003') ->field($field) ->limit(102,2) ->select(); return $info; } public function getNotInsReport($where_status,$where_institution,$time,$field) { $doctorIds = DoctorModel::where($where_institution)->column('id'); $reportIds = RecordModel::where('doctor_id','in',$doctorIds)->where("report_id != '' and report_id is not null")->distinct(true)->column('report_id'); $data = ReportModel::alias('r') ->join(['exams'=>'e'],'e.id=r.exam_id and r.type=1') ->where($where_institution) ->where($where_status) ->where('r.id','not in',$reportIds) ->whereTime('report_datetime','between',$time) ->field($field) ->select(); return $data; } public function insertDcmPath($data) { $info = DcmpathModel::insert($data); return $info; } public function updateDcmPath($where,$update) { $info = DcmpathModel::where($where)->update($update); return $info; } public function getDcmPath($where,$study) { $data = DcmpathModel::where($where)->where('study_id',$study)->value('dcm_path'); return $data; } public function getDcmPathData($where,$study) { $data = DcmpathModel::where($where)->where('study_id',$study)->find(); return $data; } public function getInsIds() { $ids = InstitutionModel::where('status',1)->column('id,name'); return $ids; } public function getExamMaxTime($id) { $time = ExamModel::where('institution_id',$id)->column('max(createdAt)'); return $time; } public function get7OutExam($id) { $date = date('Ymd',strtotime("-1 day")); $count = ExamModel::where('institution_id',$id) ->where("DATEDIFF(DATE_FORMAT(createdAt,'%Y%m%d'),DATE_FORMAT(exam_datetime,'%Y%m%d')) > 7") ->where("DATE_FORMAT(createdAt,'%Y%m%d') = '$date'") ->count(); return $count; } public function getRisVersion() { $info = VersionModel::field("MAX(versionTime) AS time,project")->group('project')->select()->toArray(); return $info; } public function getProjectName($id) { $name = VersionprojectModel::where('project_id',$id)->value('project_name'); return $name; } public function getVersionInfo($project) { $info = VersionModel::where('project',$project)->field('version,versionTime,description')->order('versionTime desc')->select()->toArray(); return $info; } public function getBindInfo($ins,$start,$finish) { $visit = VisitModel::whereTime('createdAt',[$start,$finish]) ->where($ins) ->select() ->toArray(); return $visit; } public function getExamByIds($ids) { $list = ExamModel::where('id','in',$ids)->field('id,institution_id,name,patient_num,accession_num,studyuid')->select() ->toArray(); return $list; } public function getInsById($id) { $data = InstitutionModel::where('id',$id)->find(); return $data; } public function getExamReport($where,$field,$whereTime) { $info = ExamModel::alias('e') ->join(['report'=>'r'],'e.id=r.exam_id and r.type=1','left') ->where($whereTime) ->where($where) ->field($field) ->select() ->toArray(); return $info; } public function checkAnnes($where) { $info = AnnexModel::where($where)->value('id'); return $info; } public function saveAnnex($data) { $info = AnnexModel::insert($data); return $info; } public function updateAnnex($data,$where) { $info = AnnexModel::where($where)->update($data); return $info; } public function getRegisterExam($where) { $examId = ExamModel::where($where)->value('id'); return $examId; } public function getField($ins) { $type = AnnexModel::where('institution_id',$ins)->where('annex_class_code',4)->where("type is not null or type !=''")->value('type'); return $type; } public function getExamInfo($where,$field) { $info = ExamModel::where($where)->field($field)->order('createdAt desc')->find(); return $info; } public function getPrint($where) { $data = PrintsyncModel::where($where)->find(); return $data; } public function updatePrintSync($data,$where) { $info = PrintsyncModel::where($where)->update($data); return $info; } public function savePrintSync($data) { $info = PrintsyncModel::insert($data); return $info; } public function checkPrint($where,$time) { $info = PrintsyncModel::where($where)->where($time)->find(); return $info; } public function printZz($where) { $info = PrintsyncModel::where($where)->where("to_days(createdAt) = to_days(now())")->setInc('times'); } public function getExamFromReport($id) { $exam = ReportModel::where('id',$id)->value('exam_id'); return $exam; } public function insertExam($data) { $exam = ExamModel::insert($data); return $exam; } public function saveFileData($data) { $info = FileModel::insertAll($data); return $info; } public function insertPatient($data) { $patient = PatientModel::insert($data); return $patient; } public function getPayExam($where,$time) { $info = MoneywaterModel::alias('m') ->join(['exams'=>'e'],'e.id=m.exam_id') ->where($where) ->where($time) ->field('m.exam_id,e.patient_num,e.accession_num,e.studyuid,m.id,m.createdAt') ->select(); return $info; } public function getPayExams($where,$field) { $info = ExamModel::where($where)->field($field)->select(); return $info; } public function changeSyncStatus($id) { $info = MoneywaterModel::where('id',$id)->update(['is_sync'=>1]); return $info; } public function changePayStatus($patientNum,$ins) { $info = ExamModel::where('patient_num',$patientNum)->where('institution_id',$ins)->update(['pay_status'=>0]); return $info; } public function getMiddleInfo($where) { $info = RmiddleModel::alias('m') ->join(['exams'=>'e'],'e.id=m.exam_id') ->join(['report'=>'r'],'r.exam_id=m.exam_id and r.type=1','left') ->where($where) ->where('is_sync',0) ->field('m.*, r.report_doctor_id,r.report_doctor_name,r.report_datetime,r.description,r.impression,r.report_result,r.diagnose,r.review_doctor_id,r.review_doctor_name, e.exam_status,e.studyuid,e.name,e.age,e.sex,patient_num,e.out_patient,e.hopitalized_no,e.bed_no,e.patient_area,e.accession_num,e.application_department,e.exam_project,e.exam_class') ->select(); return $info; } public function changeMiddleStatus($where,$update) { $info = RmiddleModel::where($where)->update($update); return $info; } public function saveMiddle($data) { $info = RmiddleModel::insert($data); return $info; } public function insertReject($data) { $info = RrejectModel::insert($data); return $info; } public function checkLock($id) { $info = RmiddleModel::where('exam_id',$id)->where('status',0)->field('doctor_id,doctor_name')->find(); return $info; } public function updateEmailStatus($study, $email) { $info = EmailModel::where('study_id',$study)->where('email',$email)->update(['is_send'=>1]); return $info; } public function getPatientName($study) { $exam = ExamModel::where('study_id',$study)->field('name,exam_class')->find(); return $exam['name'].$exam['exam_class']; } public function getNoteUrl($id) { $url = NoteModel::where('id',$id)->value('long_url'); return $url; } public function insertNote($data) { $id = NoteModel::insertGetId($data); return $id; } public function saveDcmReportData($data,$exam,$type,$tsTime) { $info = DcmreportModel::insert(['data'=>$data,'exam_id'=>$exam,'type'=>$type,'ts_time'=>$tsTime]); return $info; } public function getExamByStudy($study) { $info = ExamModel::where('study_id',$study)->find(); return $info; } public function getDmReport($date1, $date2) { $field = [ 'e.ID','r.id AS REPORT_ID','patient_source AS PAT_FROM_TYPE','patient_num AS PAT_NUM','exam_project AS TESTLIST', 'e.NAME','SEX','BIRTHDAY',"'' AS ADDRESS",'phone AS TEL','institution_id AS ORG_CODE', 'e.application_department AS DEP_NAME',"'' AS DEP_CODE",'application_doctor AS DUTY_DOCTOR_NAME',"'' AS DUTY_DOCTOR_ID", "'' AS CHIEF_COMPLAINT",'clin_diag AS DIAGNOSIS',"'' AS STUDY_BODYPART",'exam_class AS IMAGE_TYPE_NAME', 'description AS FINDING','impression AS CONCLUSION','confirm_datetime AS HAPPEN_TIME','r.createdAt AS SYSTEMTIME', 'e.institution_id AS HOSPITAL_CODE','r.updatedAt AS UPDATE_TIME' ]; $data = ExamModel::alias('e') ->join(['report'=>'r'],'r.exam_id=e.id and r.type=1') ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->where('e.institution_id','27400005') ->field($field) ->select(); return $data; } public function getInsReport($date1,$date2,$institution,$remote,$page=1,$num=10) { if($remote == 1) { $info = ExamModel::alias('e') ->join(['report'=>'r'],'r.exam_id=e.id') ->where('institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->where('exam_status',9) ->field('e.*,r.id AS report_id,r.impression,r.description,r.report_datetime,r.report_doctor_name,r.review_doctor_name,r.review_datetime,r.confirm_doctor_name,r.confirm_datetime,r.report_result,r.createdAt AS report_create,r.updatedAt AS report_update') ->order('e.createdAt desc') ->page($page,$num) ->select(); $total = ExamModel::alias('e') ->join(['report'=>'r'],'r.exam_id=e.id') ->where('institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->where('exam_status',9) ->count(); }elseif($remote == 2){ $info = RemoteModel::alias('re') ->join(['report'=>'r'],'r.remote_application_id=re.id') ->join(['exams'=>'e'],'e.id=re.exam_id') ->where('re.local_institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->where('re.report_status',9) ->field('e.*,r.id AS report_id,r.impression,r.description,r.report_datetime,r.report_doctor_name,r.review_doctor_name,r.review_datetime,r.confirm_doctor_name,r.confirm_datetime,r.report_result,r.createdAt AS report_create,r.updatedAt AS report_update,re.local_institution_id,re.local_institution_name,re.req_doctor_id,re.req_doctor_name,re.req_date_time,re.remote_institution_id,re.remote_institution_name,re.remote_doctor_id,re.remote_doctor_name') ->order('re.req_date_time desc') ->page($page,$num) ->select(); $total = RemoteModel::alias('e') ->join(['report'=>'r'],'r.remote_application_id=e.id') ->where('e.local_institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->where('report_status',9) ->count(); }else{ $info = ReportModel::alias('r') ->join(['exams'=>'e'],'r.exam_id=e.id') ->where('e.institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->field('e.*,r.id AS report_id,r.impression,r.description,r.report_datetime,r.report_doctor_name,r.review_doctor_name,r.review_datetime,r.confirm_doctor_name,r.confirm_datetime,r.report_result,r.createdAt AS report_create,r.updatedAt AS report_update,r.type') ->order('r.confirm_datetime desc') ->page($page,$num) ->select(); $total = ReportModel::alias('r') ->join(['exams'=>'e'],'r.exam_id=e.id') ->where('e.institution_id',$institution) ->whereBetween('r.confirm_datetime',[$date1,$date2]) ->count(); } foreach ($info as $k=>$v) { $info[$k]['impression'] = strip_tags($v['impression']); $info[$k]['description'] = strip_tags($v['description']); } return ['count'=>$total,'info'=>$info]; } public function insertDcmCompress($data) { CompressModel::insert($data); } public function updateDcmCompress($where,$data) { CompressModel::where($where)->update($data); } public function insertSpecialLog($url, $diff) { SpeciallogModel::insert(['url'=>$url,'timeDiff'=>$diff]); } public function getWechatData($openid) { $wx_id = UserModel::where('wx_openid',$openid)->value('id'); if(empty($wx_id)) { return []; } $data = PatientbindModel::where('user_id',$wx_id)->order('createdAt desc')->field(['user_id AS id','patientName','idCard','phone'])->find(); if(empty($data)) { return ['patient'=>[],'exams'=>[],'wx_id'=>$wx_id]; } $searchData = PatientsearchModel::where('patient_uid',$data['id'])->where('search_result',1)->order('createdAt desc')->find(); if(!empty($searchData)) { $exams = ExamModel::where('id',$searchData['exam_id'])->field(['name','phone','card_num','birthday','sex','id'])->find(); } return ['patient'=>$data,'exams'=>$exams ?? [],'wx_id'=>$wx_id]; } public function getAllIns() { return InstitutionModel::column('id,name'); } public function getYestExams() { return ExamModel::where("DATE(createdAt) = CURDATE() - INTERVAL 1 DAY") ->field("count(*) c,institution_id") ->group('institution_id') ->select(); } public function getYestCompleteExams() { return ExamModel::where("DATE(createdAt) = CURDATE() - INTERVAL 1 DAY") ->where('exam_status',9) ->group('institution_id') ->column("institution_id,count(*) c"); } }