Browse Source

banben shangji

lgy 6 years ago
parent
commit
f1c7836d91

+ 123 - 52
application/inter/controller/Application.php

@@ -82,7 +82,13 @@ class Application extends Base
             }
             $info['parent_hospital'] = $parent_name;
             //申请信息
-            $application = DB::table('remote_application')->where('exam_id',$id)->field(['remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','clin_symp','anamnesis','family_ill','remark','clin_diag'])->find();
+            if(isset($param['rid']) && !empty($param['rid'])){
+                $rid = $param['rid'];
+                $application = DB::table('remote_application')->where('id',$rid)->field(['report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','clin_symp','anamnesis','family_ill','remark','clin_diag'])->find();
+            }else{
+                $rid = '';
+                $application = DB::table('remote_application')->where('exam_id',$id)->field(['report_status,id,remote_doctor_id','application_desc','attachment','req_doctor_id','illness_desc','phys_sign','clin_symp','anamnesis','family_ill','remark','clin_diag'])->find();
+            }
             if($is_remote == 1){
                 //远程申请点击进入
                 $dinfo = DB::table('doctors')->where('id',$application['req_doctor_id'])->field('department_id')->find();
@@ -104,7 +110,7 @@ class Application extends Base
                 $application['family_ill'] = explode(',',$application['family_ill']);
                 $info['application'] = $application;
             }
-            return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid,'is_remote'=>$is_remote]);
+            return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid,'is_remote'=>$is_remote,'rid'=>$rid]);
         }catch(\Exception $e){
             return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
         }
@@ -193,6 +199,20 @@ class Application extends Base
                  return json_encode(['status'=>'fail','code'=>'1029','msg'=>$msg]);
             }
             Verify::applicationCheck($param);
+            $where = array();
+            // 申请医生
+            $where['req_doctor_id'] = $doctor['id'];
+            $where['remote_institution_id'] = $param['remote_institution'];
+            //  只允许有一个申请     ----------------------------- 暂时添加
+            $r = DB::table('remote_application')->where('exam_id',$param['id'])->find();
+            if($r){
+                return json_encode(['status'=>'fail','code'=>'1120','msg'=>'每个医院同一个检查只能申请一次']);
+            }
+            //不等于9  代表
+            $a_info = DB::table('remote_application')->where($where)->where('exam_id',$param['id'])->where('report_status','<>','9')->find();
+            if($a_info){
+                return json_encode(['status'=>'fail','code'=>'1120','msg'=>'该申请目标医院存在未完成报告,只有报告完成后才能再次发起申请']);
+            }
             $application_info['exam_id'] = isset($param['id']) ? $param['id'] : '';
             $application_info['illness_desc'] = isset($param['illness']) ? $param['illness'] : '';
             $application_info['phys_sign'] = isset($param['phys_sign']) ? $param['phys_sign'] : '';
@@ -218,45 +238,47 @@ class Application extends Base
             }
             $application_info['application_desc'] = isset($param['description']) ? $param['description'] : '';
             $application_info['req_doctor_id'] = $doctor['id'];
+            $application_info['remote_doctor_id'] = isset($param['remote_doctor_id']) ? $param['remote_doctor_id'] : '';
             $application_info['attachment'] = isset($param['attachment']) ? $param['attachment'] : '';
-            $remote_application = DB::table('remote_application')->where('exam_id',$param['id'])->select();
+//            $remote_application = DB::table('remote_application')->where('exam_id',$param['id'])->select();
             // 申请远程
-            if(empty($remote_application)){
-                log::record('新增远程申请');
-                $application_info['id'] = UUIDs::uuid16();
-                $application_info['createdAt'] = date('Y-m-d H:i:s',time());
-                DB::table('remote_application')->insert($application_info);
-                $aid = $application_info['id'];
-                $r_info = DB::table('report')->where('exam_id',$param['id'])->find();
-                if(empty($r_info)){
-                    $report = array();
-                    $report['id'] = UUIDs::uuid16();
-                    $report['exam_id'] = $param['id'];
-                    DB::table('report')->insert($report);
-                }
-            }else{
-                log::record('修改远程申请');
-                DB::table('remote_application')->where('exam_id',$param['id'])->update($application_info);
-                $r = DB::table('remote_application')->where('exam_id',$param['id'])->field('id')->find();
-                $aid = $r['id'];
+//            if(empty($remote_application)){
+            log::record('新增远程申请');
+            $application_info['id'] = UUIDs::uuid16();
+            $application_info['createdAt'] = date('Y-m-d H:i:s',time());
+            $application_info['report_status'] = 4;
+            DB::table('remote_application')->insert($application_info);
+            $aid = $application_info['id'];
+            $r_info = DB::table('report')->where('exam_id',$param['id'])->find();
+            if(empty($r_info)){
+                $report = array();
+                $report['id'] = UUIDs::uuid16();
+                $report['exam_id'] = $param['id'];
+                $report['remote_application_id'] = $aid;
+                DB::table('report')->insert($report);
             }
+//            }else{
+//                log::record('修改远程申请');
+//                DB::table('remote_application')->where('exam_id',$param['id'])->update($application_info);
+//                $r = DB::table('remote_application')->where('exam_id',$param['id'])->field('id')->find();
+//                $aid = $r['id'];
+//            }
             if(isset($param['apply']) && !empty($param['apply'])){
                 //保存  申请
-                DB::table('exams')->where('id',$param['id'])->update(['exam_status'=>4,'updatedAt'=>date('Y-m-d H:i:s',time())]);
 //                if(isset($param['remote_doctor_id']) && $param['remote_doctor_id'] == 'c44663d6d3c0b535'){
-                    $dinfo = DB::table('doctors')->where('id',$application_info['remote_doctor_id'])->find();
-                    $d_phone = $dinfo['phone'];
-                    $d_name = '';
+                $dinfo = DB::table('doctors')->where('id',$application_info['remote_doctor_id'])->find();
+                $d_phone = $dinfo['phone'];
+                $d_name = '';
                 if($dinfo['institution_id'] == '22100003'){ //魏庙
                     $repsone = send_message::sendSms2Apply($d_phone,$d_time,$d_name);
                 }
-                    // 申请医院院名
-                    $x_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
-                    $s_institution = DB::table('institution')->where('id',$application_info['remote_institution_id'])->field('name')->find();
-                    $tel = '18910184804';
-                    $type = '发起申请';
-                    $content  = $aid;
-                    $response = send_message::sendSms2Self($tel,$type,$content);
+                // 申请医院院名
+                $x_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
+                $s_institution = DB::table('institution')->where('id',$application_info['remote_institution_id'])->field('name')->find();
+                $tel = '18910184804';
+                $type = '发起申请';
+                $content  = $aid;
+                $response = send_message::sendSms2Self($tel,$type,$content);
 //                }
             }
             return json_encode(['status'=>'ok','code'=>'0000','sessionid'=>$sessionid]);
@@ -342,7 +364,7 @@ class Application extends Base
         $doctor = Cache::get($sessionid);
         $param = $_REQUEST['param'];
         $id = $param['id'];
-        $report = DB::table('report')->where('exam_id',$id)->field('id,report_doctor_id')->find();
+        $report = DB::table('report')->where('remote_application_id',$id)->field('id')->find();
         $info = array();
         $info['id'] = UUIDs::uuid16();
         $info['report_id'] = $report['id'];
@@ -351,32 +373,32 @@ class Application extends Base
         $info['type'] = 4;
         $info['doctor_id'] = $doctor['id'];
         DB::table('report_record')->insert($info);
-        $message = array();
-        $message['id'] = UUIDs::uuid16();
-        $message['title'] = '申请单驳回';
-        $message['content'] = $param['description'];
-        $message['createdAt'] = date('Y-m-d H:i:s',time());
+//        $message = array();
+//        $message['id'] = UUIDs::uuid16();
+//        $message['title'] = '申请单驳回';
+//        $message['content'] = $param['description'];
+//        $message['createdAt'] = date('Y-m-d H:i:s',time());
         $application = DB::table('remote_application')->where('exam_id',$id)->find();
-        $message['doctor_id'] = $application['req_doctor_id'];
-        $message['institution_id'] = $application['local_institution_id'];
+//        $message['doctor_id'] = $application['req_doctor_id'];
+//        $message['institution_id'] = $application['local_institution_id'];
         DB::table('exams')->where('id',$id)->update(['exam_status'=>5]);
         // 驳回发短信
 //        if($application['req_doctor_id'] == 'c44663d6d3c0b535'){
-            $dinfo = DB::table('doctors')->where('id',$application['req_doctor_id'])->find();
-            $d_phone = $dinfo['phone'];
+        $dinfo = DB::table('doctors')->where('id',$application['req_doctor_id'])->find();
+        $d_phone = $dinfo['phone'];
         if($dinfo['institution_id'] == '22100002'){ //魏庙下级
             $des = mb_substr($param['description'],0,20,'utf-8');
             $repsone = send_message::sendSms2RejectApply($d_phone,$des);
         }
-            // 上级医院
-            $s_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
-            //下级医院
-            $x_institution = DB::table('institution')->where('id',$application['local_institution_id'])->field('name')->find();
-            $x_name = DB::table('doctors')->where('id',$application['req_doctor_id'])->field('realname')->find();
-            $tel = '18910184804';
-            $type = '驳回申请';
-            $content  = $application['id'];
-            send_message::sendSms2Self($tel,$type,$content);
+        // 上级医院
+        $s_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
+        //下级医院
+        $x_institution = DB::table('institution')->where('id',$application['local_institution_id'])->field('name')->find();
+        $x_name = DB::table('doctors')->where('id',$application['req_doctor_id'])->field('realname')->find();
+        $tel = '18910184804';
+        $type = '驳回申请';
+        $content  = $application['id'];
+        send_message::sendSms2Self($tel,$type,$content);
         $tel = '18366391911';
         send_message::sendSms2Self($tel,$type,$content);
 //        }
@@ -412,7 +434,7 @@ class Application extends Base
         $sessionid = $_REQUEST['sessionid'];
         $doctor = Cache::get($sessionid);
         $id = $_REQUEST['id'];
-        DB::table('exams')->where('id',$id)->update(['exam_status'=>6]);
+        DB::table('remote_application')->where('id',$id)->update(['report_status'=>6]);
         $application = DB::table('remote_application')->where('exam_id',$id)->find();
         if($application['req_doctor_id'] == 'c44663d6d3c0b535'){
             // 上级医院
@@ -427,4 +449,53 @@ class Application extends Base
         }
         return json_encode(['status'=>'ok','code'=>'0000','sessionid'=>$sessionid]);
     }
+
+    public function bbs_save(){
+        $sessionid = $_REQUEST['sessionid'];
+        $doctor = Cache::get($sessionid);
+        $param = $_REQUEST['param'];
+        if(empty($param['content'])){
+            return json_encode(['status'=>'fail','msg'=>'内容为空,请填写要发送的内容','sessionid'=>$sessionid]);
+        }
+        $info = array();
+        $info['id'] = UUIDs::uuid16();
+        $info['initiator'] = $doctor['id'];
+//        $info['reply'] = $param['reply']; // 回复人
+        $info['remote_application_id'] = $param['appid']; //申请单id
+        $info['content'] = $param['content'];
+        $info['attachment'] = $param['attachment'];
+        $info['createdAt'] = date('Y-m-d H:i:s',time());
+        DB::table('bbs')->insert($info);
+        return json_encode(['status'=>'ok','code'=>'0000','sessionid'=>$sessionid]);
+    }
+    public  function  getbbs(){
+        $sessionid = $_REQUEST['sessionid'];
+        $doctor = Cache::get($sessionid);
+        $remote_id = $_REQUEST['application_id'];
+        $info = DB::table('bbs')->where('remote_application_id',$remote_id)->order('createdAt desc')->select();
+        foreach ($info as $k => $v) {
+            $initiator = DB::table('doctors')->where('id',$v['initiator'])->field('realname')->find();
+            $info[$k]['faqiren'] = $initiator['realname'];
+//            $reply = DB::table('doctors')->where('id',$v['reply'])->field('realname')->find();
+//            $info[$k]['huifuren'] = $reply['realname'];
+        }
+        return json_encode(['status'=>'ok','code'=>'0000','sessionid'=>$sessionid,'info'=>$info]);
+    }
+    public function bbs_upload(){
+        // 获取表单上传文件 例如上传了001.jpg
+        $file = request()->file('file');
+        log::record('----------上传的文件-----------');
+        log::record($file);
+        // 移动到框架应用根目录/public/uploads/ 目录下
+        if($file){
+            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
+            log::record($info);
+            if($info){
+                return json_encode(['status'=>'ok','code'=>'0000','info'=>'/'.$_SERVER["SERVER_NAME"]. '/' . 'uploads'. '/' .$info->getSaveName()]);
+            }else{
+                // 上传失败获取错误信息
+                echo $file->getError();
+            }
+        }
+    }
 }

+ 5 - 3
application/inter/controller/Reciveremote.php

@@ -58,11 +58,13 @@ class Reciveremote extends Base
             $app_info = DB::table('remote_application')->where('remote_institution_id', $doctor['institution_id'])->select();
             foreach ($app_info as $k => $v) {
                 $exam_id = $v['exam_id'];
-                $report = DB::table('report')->where('exam_id', $exam_id)->find();
+                $report = DB::table('report')->where('exam_id', $exam_id)->where('remote_application_id',$v['id'])->find();
                 if (!$report) {
                     $data = array();
                     $data['id'] = UUIDs::uuid16();
                     $data['exam_id'] = $exam_id;
+                    $data['remote_application_id'] = $v['id'];
+                    $data['type'] = 2;
                     $data['createdAt'] = date('Y-m-d H:i:s',time());
                     DB::table('report')->insert($data);
                 }
@@ -130,11 +132,11 @@ class Reciveremote extends Base
                 $sql3 = "SELECT e.exam_status,e.exam_class,e.body_part,e.device,e.exam_sub_class,e.exam_datetime,p.name,p.sex,p.temp_patient_id,p.age,ra.*,r.report_doctor_id,r.report_datetime,r.report_result,e.id from exams as e,remote_application as ra,patient_infos as p,report as r where ra.exam_id=e.id and e.patient_id=p.id and r.exam_id=e.id and ra.remote_institution_id='" . $doctor['institution_id'] . "'and e.exam_status not in (".$dclass['doctor_class'].")";
                 $sql = '('.$sql1.') union ('.$sql2.') union ('.$sql3.')'.$limit;
             }else{*/
-                $sql = "SELECT e.id,e.exam_status,e.exam_class,e.exam_sub_class,e.body_part,e.device,e.exam_datetime,p.name,p.sex,p.temp_patient_id,p.age,ra.*,r.report_doctor_id,r.report_datetime,r.report_result,e.id from exams as e,remote_application as ra,patient_infos as p,report as r where (ra.remote_doctor_id='".$doctor['id']."' or ra.remote_doctor_id='') and ra.exam_id=e.id and e.patient_id=p.id and r.exam_id=e.id and ra.remote_institution_id='" . $doctor['institution_id']."'".$where." order by field(e.exam_status,6,7,8,4,9,5),ra.is_urgent desc,ra.req_date_time desc";
+                $sql = "SELECT e.id,e.exam_status,e.exam_class,e.exam_sub_class,e.body_part,e.device,e.exam_datetime,p.name,p.sex,p.temp_patient_id,p.age,ra.*,r.report_doctor_id,r.report_datetime,r.report_result,e.id from exams as e,remote_application as ra,patient_infos as p,report as r where (ra.remote_doctor_id='".$doctor['id']."' or ra.remote_doctor_id='') and ra.exam_id=e.id and e.patient_id=p.id and r.exam_id=e.id and r.remote_application_id=ra.id and ra.remote_institution_id='" . $doctor['institution_id']."'".$where." order by field(e.exam_status,6,7,8,4,9,5),ra.is_urgent desc,ra.req_date_time desc";
 //            }
             log::record($sql);
             $list = DB::query($sql);
-            $csql = "SELECT count(1) from exams as e,remote_application as ra,patient_infos as p,report as r where (ra.remote_doctor_id='".$doctor['id']."' or ra.remote_doctor_id='') and ra.exam_id=e.id and e.patient_id=p.id and r.exam_id=e.id and ra.remote_institution_id='" . $doctor['institution_id']."'".$where;
+            $csql = "SELECT count(1) from exams as e,remote_application as ra,patient_infos as p,report as r where (ra.remote_doctor_id='".$doctor['id']."' or ra.remote_doctor_id='') and r.remote_application_id=ra.id and ra.exam_id=e.id and e.patient_id=p.id and r.exam_id=e.id and ra.remote_institution_id='" . $doctor['institution_id']."'".$where;
             $count = DB::query($csql);
             foreach ($list as $k => $v) {
                 $cache_key = $doctor['id'].'_'.$v['id'];

+ 151 - 50
application/inter/controller/Writereport.php

@@ -73,7 +73,16 @@ class Writereport extends Base
             $info['hospital_name'] = $institution['name'];
             $info['hospital_title'] = $institution['report_subtitle'];
             $info['images'] = isset($param['images']) ? $param['images'] : '';
-            $report = DB::table('report')->where('exam_id',$id)->field('report_result,report_datetime,report_doctor_id,review_datetime,review_doctor_id,impression,description')->find();
+            if(isset($param['rid']) && !empty($param['rid'])){
+                $remote_id = $param['rid'];
+                $report = DB::table('report')->where('exam_id',$id)->where('remote_application_id',$remote_id)->field('id,report_result,report_datetime,report_doctor_id,review_datetime,review_doctor_id,impression,description')->find();
+                $sta = DB::table('remote_application')->where('id',$remote_id)->field('report_status')->find();
+                $info['report_status'] = $sta['report_status'];
+            }else{
+                // 不存在 本地点击进入  获取本地报告
+                $report = DB::table('report')->where('exam_id',$id)->where('type',1)->field('id,report_result,report_datetime,report_doctor_id,review_datetime,review_doctor_id,impression,description')->find();
+                $info['report_status'] = '';
+            }
             $report_doctor = DB::table('doctors')->where('id',$report['report_doctor_id'])->field('realname')->find();
             $info['report_doctor'] = $report_doctor['realname'];
             $info['report_datetime'] = $report['report_datetime'];
@@ -83,7 +92,8 @@ class Writereport extends Base
             $info['description'] = $report['description'];
             $info['impression'] = $report['impression'];
             $info['report_result'] = $report['report_result'];
-            $cache_key = $doctor['id'].'_'.$id;
+            $info['report_id'] = $report['id'];
+            $cache_key = $doctor['id'].'_'.$report['id'];
             if(Cache::get($cache_key)){
                 $cache = Cache::get($cache_key);
                 $info['description'] = isset($cache['description']) ? $cache['description'] : '';
@@ -191,9 +201,18 @@ class Writereport extends Base
                 return json_encode(['status'=>'fail','code'=>'1029','msg'=>'没有操作权限']);
             }
             $param = $_REQUEST['param'];
-            $status = DB::table('exams')->where('id',$param['id'])->field('exam_status')->find();
-            if($status['exam_status'] > 6){
-                return json_encode(['status'=>'fail','code'=>'1034','msg'=>'报告已被保存,无法再次被修改']);
+            if(isset($_REQUEST['is_remote']) && $_REQUEST['is_remote'] == 1){
+                //远程
+                $status = DB::table('remote_application')->where('id',$param['rid'])->field('report_status')->find();
+                if($status['report_status'] > 6){
+                    return json_encode(['status'=>'fail','code'=>'1034','msg'=>'报告已被保存,无法再次被修改']);
+                }
+            }else{
+                //本地
+                $status = DB::table('exams')->where('id',$param['id'])->where('type',1)->field('exam_status')->find();
+                if($status['exam_status'] > 6){
+                    return json_encode(['status'=>'fail','code'=>'1034','msg'=>'报告已被保存,无法再次被修改']);
+                }
             }
 //            Verify::wreportCheck($param);
             $doctor = Cache::get($sessionid);
@@ -223,20 +242,33 @@ class Writereport extends Base
             }else{
                 $info['report_result'] = 1;
             }
-            DB::table('exams')->where('id',$param['id'])->update(['exam_status'=>'7','film_type'=>$film_type,'exam_report'=>$info['report_result']]);
+            DB::table('exams')->where('id',$param['id'])->update(['film_type'=>$film_type,'exam_report'=>$info['report_result']]);
+            // 报告的id
+            $report_id = $param['report_id'];
+            if(isset($_REQUEST['is_remote']) && !empty($_REQUEST['is_remote'])){
+                // 远程保存
+                DB::table('remote_application')->where('id',$param['rid'])->update(['report_status'=>'7']);
+                $info['type'] = 2;
+            }else{
+                //本地保存
+                DB::table('exams')->where('id',$param['id'])->update(['exam_status'=>'7']);
+                $info['type'] = 1;
+            }
             $info['report_datetime']  = date('Y-m-d H:i:s',time());
             $info['report_doctor_id'] = $doctor['id'];
-            $report_info = DB::table('report')->where('exam_id',$param['id'])->find();
-            if($report_info){
-                $report = DB::table('report')->where('exam_id',$param['id'])->update($info);
+            $info['remote_application_id'] = $param['rid'];
+            if($report_id){
+                $report_info = DB::table('report')->where('id',$report_id)->find();
+                $report = DB::table('report')->where('id',$report_id)->update($info);
                 $id = $report_info['id'];
+                $cache_key = $doctor['id'].'_'.$report_id;
             }else{
                 $id = $this->uuids->uuid16();
                 $info['id'] = $id;
                 $info['createdAt'] = date('Y-m-d H:i:s',time());
                 $report = DB::table('report')->insert($info);
+                $cache_key = $doctor['id'].'_'.$id;
             }
-            $cache_key = $doctor['id'].'_'.$param['id'];
             if(Cache::get($cache_key)){
                 Cache::rm($cache_key);
             }
@@ -411,11 +443,24 @@ class Writereport extends Base
             $doctor = Cache::get($sessionid);
             $param = $_REQUEST['param'];
             $id = $param['id'];
-            $status = DB::table('exams')->where('id',$id)->field('exam_status')->find();
-            if($status['exam_status'] < 8 ){
-                return json_encode(['status'=>'fail','code'=>'1033','msg'=>'只能确认通过审核的报告']);
-            }elseif($status['exam_status'] == 9){
-                return json_encode(['status'=>'fail','code'=>'1034','msg'=>'已经确认过该报告,不可再次确认']);
+            $report_id = $param['report_id'];
+            $report_info = DB::table('report')->where('id',$report_id)->find();
+            if($report_info['type'] == 1){
+                //本地报告
+                $status = DB::table('exams')->where('id',$id)->field('exam_status')->find();
+                if($status['exam_status'] < 8 ){
+                    return json_encode(['status'=>'fail','code'=>'1033','msg'=>'只能确认通过审核的报告']);
+                }elseif($status['exam_status'] == 9){
+                    return json_encode(['status'=>'fail','code'=>'1034','msg'=>'已经确认过该报告,不可再次确认']);
+                }
+            }else{
+                //远程
+                $status = DB::table('remote_application')->where('id',$report_info['remote_application_id'])->field('report_status')->find();
+                if($status['report_status'] < 8 ){
+                    return json_encode(['status'=>'fail','code'=>'1033','msg'=>'只能确认通过审核的报告']);
+                }elseif($status['report_status'] == 9){
+                    return json_encode(['status'=>'fail','code'=>'1034','msg'=>'已经确认过该报告,不可再次确认']);
+                }
             }
             $rinfo = array();
             $rinfo['impression']       = isset($param['impression']) ? $param['impression'] : '';
@@ -427,10 +472,16 @@ class Writereport extends Base
             }
             $rinfo['confirm_datetime']  = date('Y-m-d H:i:s',time());
             $rinfo['confirm_doctor_id'] = $doctor['id'];
-            // $exam_status = $this->get_exam_status($doctor['id'],9);
-            DB::table('exams')->where('id',$id)->update(['exam_status'=>'9','film_type'=>$_REQUEST['param']['film_type']]);
+            if($report_info['type'] == 1){
+                //本地报告确认
+                DB::table('exams')->where('id',$id)->update(['exam_status'=>'9']);
+            }else{
+                //远程确认
+                DB::table('remote_application')->where('id',$report_info['remote_application_id'])->update(['report_status'=>'9']);
+            }
+            DB::table('exams')->where('id',$id)->update(['film_type'=>$_REQUEST['param']['film_type']]);
             DB::table('report')->where('exam_id',$id)->update($rinfo);
-            $cache_key = $doctor['id'].'_'.$id;
+            $cache_key = $doctor['id'].'_'.$report_info['id'];
             if(Cache::get($cache_key)){
                 Cache::rm($cache_key);
             }
@@ -481,22 +532,31 @@ class Writereport extends Base
     public function examine(){
         try{
             $id = $_REQUEST['id'];
-            $status = DB::table('exams')->where('id',$id)->field('exam_status')->find();
-            if($status['exam_status'] < 7){
-                return json_encode(['status'=>'fail','code'=>'1032','msg'=>'只能审核已提交的报告']);
-            }elseif($status['exam_status']>7){
-                return json_encode(['status'=>'fail','code'=>'1035','msg'=>'报告已通过审核步骤,请勿重复操作']);
-            }
-            $report = DB::table('report')->where('exam_id',$id)->field('id')->find();
             $param = $_REQUEST['param'];
+            $report_id = $param['report_id'];
+            $report = DB::table('report')->where('id',$report_id)->find();
             $sessionid = $_REQUEST['sessionid'];
             $doctor = Cache::get($sessionid);
             if(isset($_REQUEST['is_remote']) && $_REQUEST['is_remote'] == 1){
                 //  是远程审核报告  8
                 $return  = Verify::check_role($sessionid,8);
+                $status = DB::table('remote_application')->where('id',$report['remote_application_id'])->field('report_status')->find();
+                if($status['report_status'] < 7){
+                    return json_encode(['status'=>'fail','code'=>'1032','msg'=>'只能审核已提交的报告']);
+                }elseif($status['report_status']>7){
+                    return json_encode(['status'=>'fail','code'=>'1035','msg'=>'报告已通过审核步骤,请勿重复操作']);
+                }
+                DB::table('remote_application')->where('id',$report['remote_application_id'])->update(['report_status'=>'8']);
             }else{
                 //  本地审核权限 3
                 $return  = Verify::check_role($sessionid,3);
+                $status = DB::table('exams')->where('id',$id)->field('exam_status')->find();
+                if($status['exam_status'] < 7){
+                    return json_encode(['status'=>'fail','code'=>'1032','msg'=>'只能审核已提交的报告']);
+                }elseif($status['exam_status']>7){
+                    return json_encode(['status'=>'fail','code'=>'1035','msg'=>'报告已通过审核步骤,请勿重复操作']);
+                }
+                DB::table('exams')->where('id',$id)->update(['exam_status'=>'8']);
             }
             $report_info = array();
             $report_info['impression']       = isset($param['impression']) ? $param['impression'] : '';
@@ -509,7 +569,7 @@ class Writereport extends Base
             $report_info['review_datetime']  =  date('Y-m-d H:i:s',time());
             $report_info['review_doctor_id'] = $doctor['id'];
             DB::table('report')->where('id',$report['id'])->update($report_info);
-            $cache_key = $doctor['id'].'_'.$id;
+            $cache_key = $doctor['id'].'_'.$report['id'];
             if(Cache::get($cache_key)){
                 Cache::rm($cache_key);
             }
@@ -522,28 +582,28 @@ class Writereport extends Base
             $info['description']      = isset($param['description']) ? $param['description'] : '';
             $info['report_id'] = $report['id'];
             DB::table('report_record')->insert($info);
-            // $exam_status = $this->get_exam_status($doctor['id'],8);
-            DB::table('exams')->where('id',$id)->update(['exam_status'=>'8','film_type'=>$param['film_type']]);
+            DB::table('exams')->where('id',$id)->update(['film_type'=>$param['film_type']]);
             //  已审核 发送短信
             $application = DB::table('remote_application')->where('exam_id',$id)->find();
 //            if($application['req_doctor_id'] == 'c44663d6d3c0b535'){
-                $dinfo = DB::table('doctors')->where('id',$application['req_doctor_id'])->find();
-                $d_phone = $dinfo['phone'];
-                log::record('发短信的手机号为'.$d_phone);
+            $dinfo = DB::table('doctors')->where('id',$application['req_doctor_id'])->find();
+            $d_phone = $dinfo['phone'];
+            log::record('发短信的手机号为'.$d_phone);
             $d_name = '';
             if($dinfo['institution_id'] == '22100002'){ //魏庙下级
                 $repsone = send_message::sendSms2CompleteReport($d_phone,$d_name);
             }
-                // 上级医院
-                $s_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
-                //下级医院
-                $x_institution = DB::table('institution')->where('id',$application['local_institution_id'])->field('name')->find();
-                $x_name = DB::table('doctors')->where('id',$application['req_doctor_id'])->field('realname')->find();
-                $tel = '18910184804';
-                $type = '完成并审核报告';
-                $content  =$application['id'];
-                send_message::sendSms2Self($tel,$type,$content);
+            // 上级医院
+            $s_institution = DB::table('institution')->where('id',$doctor['institution_id'])->field('name')->find();
+            //下级医院
+            $x_institution = DB::table('institution')->where('id',$application['local_institution_id'])->field('name')->find();
+            $x_name = DB::table('doctors')->where('id',$application['req_doctor_id'])->field('realname')->find();
+            $tel = '18910184804';
+            $type = '完成并审核报告';
+            $content  =$application['id'];
+            send_message::sendSms2Self($tel,$type,$content);
 //            }
+            DB::table('exams')->where('id',$id)->update(['film_type'=>$param['film_type']]);
             return json_encode(['status'=>'ok','code'=>'0000','msg'=>'已审核']);
         }catch(\Exception $e){
             return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
@@ -655,13 +715,19 @@ class Writereport extends Base
         try{
             $sessionid = $_REQUEST['sessionid'];
             $doctor = Cache::get($sessionid);
-            $exam_id = $_REQUEST['id'];
-            $report = DB::table('report')->where('exam_id',$exam_id)->field('id')->find();
+            $id = $_REQUEST['id'];
+            $exam_id = $_REQUEST['exam_id'];
+            if(isset($_REQUEST['is_remote']) && !empty($_REQUEST['is_remote'])){
+                // 远程
+                $report = DB::table('report')->where('id',$id)->find();
+            }else{
+                // 本地
+                $report = DB::table('report')->where('exam_id',$exam_id)->where('type',1)->find();
+            }
             if(empty($report)){
                 return json_encode(['status'=>'ok','code'=>'0000','info'=>'','msg'=>'无数据']);
             }
-            $log_id = $report['id'];
-            $log = DB::table('report_record')->where('doctor_id',$doctor['id'])->where('report_id',$log_id)->order('createdAt asc,type asc')->select();
+            $log = DB::table('report_record')->where('doctor_id',$doctor['id'])->where('report_id',$report['id'])->order('createdAt asc,type asc')->select();
             foreach ($log as $k => $v) {
                 $doc = DB::table('doctors')->where('id',$v['doctor_id'])->field('realname')->find();
                 $log[$k]['doctor_name'] = $doc['realname'];
@@ -704,6 +770,8 @@ class Writereport extends Base
             $sessionid = $_REQUEST['sessionid'];
             $doctor = Cache::get($sessionid);
             $id = $_REQUEST['id'];
+            $report_id = $_REQUEST['report_id'];
+            $report = DB::table('report')->where('id',$report_id)->field('remote_application_id,report_datetime,impression,description,report_doctor_id,review_doctor_id')->find();
             $info = array();
             // 检查日期 住院号 床号
             $exam_info = DB::table('exams')->where('id',$id)->field('id,ext,accession_num,exam_datetime,exam_class,hopitalized_no,bed_no,exam_project,patient_id')->find();
@@ -726,7 +794,7 @@ class Writereport extends Base
             $info['exam_class'] = $exam_class['constant_value'];
             // 病历号 姓名 年龄 性别
             $patient_info = DB::table('patient_infos')->where('id',$exam_info['patient_id'])->field('temp_patient_id,name,sex,age')->find();
-            $remote = DB::table('remote_application')->where('exam_id',$id)->field('req_doctor_id')->find();
+            $remote = DB::table('remote_application')->where('id',$report['remote_application_id'])->field('req_doctor_id')->find();
             $info['pnumber'] = $patient_info['temp_patient_id'];
             $info['name'] = $patient_info['name'];
             $info['sex'] = $patient_info['sex'];
@@ -738,7 +806,6 @@ class Writereport extends Base
             $department  = DB::table('department')->where('id',$application_name['department_id'])->field('department_name')->find();
             $info['department_name'] = $department['department_name'];
             // 报告时间 影像所见 意见建议
-            $report = DB::table('report')->where('exam_id',$id)->field('report_datetime,impression,description,report_doctor_id,review_doctor_id')->find();
             if(!empty($report['report_datetime'])){
                 $datetime1 = explode(' ',$report['report_datetime']);
                 $info['report_datetime'] = $datetime1[0];
@@ -798,8 +865,8 @@ class Writereport extends Base
         $sessionid = $_REQUEST['sessionid'];
         $doctor = Cache::get($sessionid);
         $param = $_REQUEST['param'];
-        $exam_id = $param['id'];
-        $key = $doctor['id'].'_'.$exam_id;
+        $report_id = $param['report_id'];
+        $key = $doctor['id'].'_'.$report_id;
         Cache::set($key,$param);
         return json_encode(['status'=>'ok','msg'=>'保存成功','code'=>'0000']);
     }
@@ -809,13 +876,14 @@ class Writereport extends Base
         $sessionid = $_REQUEST['sessionid'];
         $doctor = Cache::get($sessionid);
         $id = $_REQUEST['id'];
-        $key = $doctor['id'].'_'.$id;
+        $report_id = $_REQUEST['report_id'];
+        $key = $doctor['id'].'_'.$report_id;
         if(Cache::get($key)){
             $patient = Cache::get($key);
         }else{
             $exam = DB::table('exams')->where('id',$id)->field('accession_num,exam_class,patient_id,ext,hopitalized_no,bed_no')->find();
             $patient = DB::table('patient_infos')->where('id',$exam['patient_id'])->field(['id','temp_patient_id','name','phone','sex','age'])->find();
-            $report_info = DB::table('report')->where('exam_id',$id)->field('description')->find();
+            $report_info = DB::table('report')->where('id',$report_id)->field('description')->find();
             $patient['ext'] = $exam['ext'];
             $patient['exam_id'] = $id;
             $patient['bed_no'] = $exam['bed_no'];
@@ -823,6 +891,7 @@ class Writereport extends Base
             $patient['exam_class'] = $exam['exam_class'];
             $patient['hopitalized_no'] = $exam['hopitalized_no'];
             $patient['description'] = $report_info['description'];
+            $patient['report_id'] = $report_id;
         }
         return json_encode(['status'=>'ok','info'=>$patient,'code'=>'0000']);
     }
@@ -880,4 +949,36 @@ class Writereport extends Base
         }
         return json_encode(['status'=>'ok','msg'=>'成功','code'=>'0000']);
     }
+    // 获取远程报告列表
+    public function get_report_list(){
+        $sessionid = $_REQUEST['sessionid'];
+        // $doctor = Cache::get($sessionid);
+        $param = $_REQUEST['param'];
+        $rinfo = DB::table('report')->where('exam_id',$param['id'])->where('type','<>',1)->select();
+        $pinfo = DB::table('patient_infos')->where('temp_patient_id',$param['pid'])->field('name,temp_patient_id,sex,age,phone')->find();
+        $einfo = DB::table('exams')->where('id',$param['id'])->field('exam_class,exam_sub_class,exam_datetime')->find();
+        $info = array();
+        $arr = array();
+        foreach ($rinfo as $k => $v) {
+            $remote_info = DB::table('remote_application')->where('id',$v['remote_application_id'])->find();
+            if($remote_info['report_status'] == 8 || $remote_info['report_status'] == 9){
+                $arr = $v;
+                $remote_did = DB::table('doctors')->where('id',$v['report_doctor_id'])->field('realname')->find();
+                $arr['report_doctor'] = $remote_did['realname'];
+                $review_did = DB::table('doctors')->where('id',$v['review_doctor_id'])->field('realname')->find();
+                $arr['review_doctor'] = $review_did['realname'];
+                $arr['name'] = $pinfo['name'];
+                $arr['pid'] = $pinfo['temp_patient_id'];
+                $arr['sex'] = $pinfo['sex'];
+                $arr['age'] = $pinfo['age'];
+                $arr['phone'] = $pinfo['phone'];
+                $arr['exam_class'] = $einfo['exam_class'];
+                $arr['exam_sub_class'] = $einfo['exam_sub_class'];
+                $arr['exam_datetime'] = $einfo['exam_datetime'];
+                $arr['report_status'] = $remote_info['report_status'];
+                $info[] = $arr;
+            }
+        }
+        return json_encode(['status'=>'ok','info'=>$info,'code'=>'0000']);
+    }
 }

+ 3 - 1
application/manage/controller/Doctors.php

@@ -112,7 +112,9 @@ class Doctors extends Base {
         }
         $doctorcla = $params["doctorcla"];
         unset($params["doctorcla"]);
-        $params['doctor_role'] = implode(',', $params['doctor_role']);
+        if(isset($params['doctor_role']) && !empty($params['doctor_role'])){
+            $params['doctor_role'] = implode(',', $params['doctor_role']);
+        }
         $password = $params['password'];
         if(isset($params['examcla'])){
             $params['exam_class'] = implode(',',$params['examcla']);

+ 4 - 1
application/manage/controller/Insdoctors.php

@@ -124,7 +124,10 @@ class Insdoctors extends Base {
 
         $info = $_GET;
         unset($info['doctorcla']);
-        $info['doctor_role'] = implode(',', $_GET['doctor_role']);
+        if(isset($_GET['doctor_role']) && !empty($_GET['doctor_role'])){
+            $info['doctor_role'] = implode(',', $_GET['doctor_role']);
+        }
+//        $info['doctor_role'] = implode(',', $_GET['doctor_role']);
         $info['password'] = md5($_GET['password']);
         $info["institution_id"] = $insId;
         if(isset($info['examcla'])){