Quellcode durchsuchen

Merge branch 'dev' of http://code.pacsonline.cn/zskk_bg/yuanchengpasc into pro

# Conflicts:
#	application/inter/controller/Dcquery.php
lgy vor 6 Jahren
Ursprung
Commit
0f0fe24c3c

+ 7 - 0
application/common/versionsql/Version4

@@ -0,0 +1,7 @@
+ALTER  TABLE `patient_infos` ADD Unique index patient_i_t(institution_id,temp_patient_id);
+alter table studies engine=innodb;
+ALTER  TABLE `studies` ADD Unique index studies_ss(studyuid,patient_id,modality);
+alter table series engine=innodb;
+ALTER  TABLE `series` ADD Unique index studies_ss(study_id,seriesuid);
+alter table images engine=innodb;
+ALTER  TABLE `images` ADD Unique index images_s_i(series_id,image_id);

+ 5 - 2
application/inter/controller/Application.php

@@ -59,8 +59,9 @@ class Application extends Base
             $info['exam_subclass_name'] = $exam_subclass['name'];
             $info['exam_project_name'] = $exam_project['name'];
             $info['device_name'] = $device['name'];
-            $patient_info = DB::table('patient_infos')->where('id',$info['patient_id'])->field(['id','name','sex','age','birthday'])->find();
+            $patient_info = DB::table('patient_infos')->where('id',$info['patient_id'])->field(['temp_patient_id','id','name','sex','age','birthday'])->find();
             $info['pid'] = $patient_info['id'];
+            $info['temp_patient_id'] = $patient_info['temp_patient_id'];
             $info['name'] = $patient_info['name'];
             $info['sex'] = $patient_info['sex'];
             $info['age'] = $patient_info['age'];
@@ -157,7 +158,9 @@ class Application extends Base
                 return json_encode(['status'=>'fail','code'=>'1029','msg'=>'没有操作权限']);
             }
             $param = $_REQUEST['param'];
-            $exam_info =  DB::table('exams')->where('id',$param['id'])->field('exam_status')->find();
+            $exam_info =  DB::table('exams')->where('id',$param['id'])->field('exam_status,patient_id')->find();
+            // 修改病人姓名
+            DB::table('patient_infos')->where('id',$exam_info['patient_id'])->update(['name'=>$param['name']]);
             if($exam_info['exam_status'] != 3 && $exam_info['exam_status'] != 5 && $exam_info['exam_status'] != 8){
                 // 3 检查完毕 5已驳回
                 switch($exam_info['exam_status']){

+ 82 - 9
application/inter/controller/Dcquery.php

@@ -8,6 +8,7 @@
 
 namespace app\inter\controller;
 
+use EasyWeChat\Core\Exception;
 use think\Controller;
 use think\Request;
 use think\Db;
@@ -114,6 +115,7 @@ class Dcquery extends Controller
      *")
      **/
     public function get_studiesinfo(){
+<<<<<<< HEAD
         $study_id = $_REQUEST['study_id'];
         if(isset($_REQUEST['address']) && !empty($_REQUEST['address'])){
             $url = $_REQUEST['address'];
@@ -152,12 +154,64 @@ class Dcquery extends Controller
                     $file = ROOT_PATH . 'public' . DS . 'get_studiesinfo/'.date('Ymd').'-fail.log';
                     $log = 'url错误,传值为--'.$url;
                     file_put_contents($file, $log,FILE_APPEND);
+=======
+        try{
+            $study_id = $_REQUEST['study_id'];
+            if(isset($_REQUEST['address']) && !empty($_REQUEST['address'])){
+                $url = $_REQUEST['address'];
+            }else{
+                $url = '';
+            }
+            $info = array();
+            if(strlen($study_id) == '16'){
+                $study_info = DB::table('studies')->where('id',$study_id)->field('id,studyuid,studyid,patient_id')->find();
+            }else{
+                $study_info = DB::table('studies')->where('studyuid',$study_id)->field('id,studyuid,studyid,patient_id')->find();
+            }
+            $info['studyInstanceUid'] = $study_info['studyuid'];
+            $patient_info = DB::table('patient_infos')->where('id',$study_info['patient_id'])->field('birthday,institution_id,temp_patient_id,name,age,sex')->find();
+            $date = DB::table('exams')->where('patient_id',$study_info['patient_id'])->field('exam_datetime')->find();
+            $institution = DB::table('institution')->where('id',$patient_info['institution_id'])->field('name')->find();
+            $info['patientName'] = $patient_info['name'];
+            // 根据series_num排序
+            $series_list = DB::table('series')->where('study_id',$study_info['id'])->where('modality','not in','PR,SR')->field('id,series_num,seriesuid,description')->order('series_num asc')->select();
+            $series = array();
+            $error = 1;
+            foreach($series_list as $k=>$v){
+                // image_number排序
+                $image = DB::table('images')->where('series_id',$v['id'])->field('remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url')->order('image_number asc')->select();
+                if(empty($image)){
+>>>>>>> dfb61aa0cde67811d87676a8f24f7ceb2f3acf4b
                     continue;
                 }
-                $image[$key]['url'] = $imageUrl;
-                $image[$key]['imageNumber'] = $value['instanceNumber'];
+                $error = 2;
+                foreach($image as $key=>$value){
+                    /*if(empty($url)){
+                        if(substr($value['metadata'], 0, strlen('group')) === 'group'){
+                            $image[$key]['url'] = "dicomweb://dcm.pacsonline.cn/".$value['metadata'];
+                        }else{
+                            $image[$key]['url'] = "dicomweb://static.dcm.pacsonline.cn/".$value['metadata'];
+                        }
+                    }else{
+                        $image[$key]['url'] = $url.$value['metadata'];
+                    }*/
+                    $imageUrl = $this->generateUrl($value['url'],$url,$value['remote_url'],$value['local_url'],$value['status'],$value['metadata']);
+                    if(!$imageUrl){
+                        $file = ROOT_PATH . 'public' . DS . 'get_studiesinfo/'.date('Ymd').'-fail.log';
+                        $log = 'url错误,传值为--'.$url;
+                        file_put_contents($file, $log,FILE_APPEND);
+                        continue;
+                    }
+                    $image[$key]['url'] = $imageUrl;
+                    $image[$key]['imageNumber'] = $value['instanceNumber'];
 
+                }
+                $series[$k]['instances'] = $image;
+                $series[$k]['seriesInstanceUid'] = $v['seriesuid'];
+                $series[$k]['seriesDescription'] = $v['description'];
+                $series[$k]['seriesNumber'] = $v['series_num'];
             }
+<<<<<<< HEAD
             $series[$k]['instances'] = $image;
             $series[$k]['seriesInstanceUid'] = $v['seriesuid'];
             $series[$k]['seriesDescription'] = $v['description'];
@@ -177,14 +231,33 @@ class Dcquery extends Controller
             $info['patientAge'] =  $age;
         }else{
             $info['patientAge'] = '';
+=======
+            if($error == 1){
+                throw new Exception('series列表为空');
+            }
+            $info['seriesList'] = $series;
+            $return  = array();
+            $return['transactionId'] = $study_info['studyuid'];
+            if(!empty($patient_info['age'])){
+                $info['patientAge'] = $patient_info['age'];
+            }elseif(!empty($patient_info['birthday'])){
+                $time = date('Ymd',time());
+                $age = floor(($time - $patient_info['birthday'])/10000);
+                $info['patientAge'] =  $age;
+            }else{
+                $info['patientAge'] = '';
+            }
+            $info['patientSex'] = $patient_info['sex'];
+            $info['studyDate'] = $date['exam_datetime'];
+            $info['studyid'] = $study_info['studyid'];
+            $info['patientId'] = $patient_info['temp_patient_id'];
+            $info['institution'] = $institution['name'];
+            $return['studies'][] = $info;
+            return json_encode($return);
+        }catch(Exception $e){
+            echo $e->getMessage();
+>>>>>>> dfb61aa0cde67811d87676a8f24f7ceb2f3acf4b
         }
-        $info['patientSex'] = $patient_info['sex'];
-        $info['studyDate'] = $date['exam_datetime'];
-        $info['studyid'] = $study_info['studyid'];
-        $info['patientId'] = $patient_info['temp_patient_id'];
-        $info['institution'] = $institution['name'];
-        $return['studies'][] = $info;
-        return json_encode($return);
     }
 
 

+ 11 - 3
application/inter/controller/Inspectregister.php

@@ -140,9 +140,17 @@ class Inspectregister extends Base
      *")
      **/
     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();
+        $sessionid = $_REQUEST['sessionid'];
+        $doctor = Cache::get($sessionid);
+        if($doctor['exam_class'] == '*'){
+            $exam_class = DB::table('constant')->where('parent_id','exam_class')->field(['id','constant_value as name'])->select();
+        }else{
+            $class = explode(',',$doctor['exam_class']);
+            foreach ($class as $k=>$v) {
+                $exam_class[] = DB::table('constant')->where('id',$v)->field(['id','constant_value as name'])->find();
+            }
+        }
+
         return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_class]);
     }
     /**

+ 10 - 3
application/inter/controller/Registerlist.php

@@ -61,7 +61,7 @@ class Registerlist extends Base
             $num =  $_REQUEST['num'];
             $fnum = ($page-1)*$num;
             $limit = " limit ".$fnum.",".$num;
-                if(isset($_REQUEST['param'])){
+            if(isset($_REQUEST['param'])){
                 $param = $_REQUEST['param'];
                 if(!empty($param['exam_status'])){
                     $where = ' and e.exam_status = '.$param['exam_status'];
@@ -106,7 +106,7 @@ class Registerlist extends Base
                     }
                 }*/
             }
-            $sql1 = "SELECT e.id,e.is_remote,e.study_id,e.patient_num,e.institution_id,e.exam_datetime,e.exam_class,e.exam_project,e.exam_status,p.name,p.sex,p.age from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id";
+            $sql1 = "SELECT e.id,e.is_remote,e.study_id,e.patient_num,e.institution_id,e.exam_datetime,e.exam_class,e.exam_project,e.exam_status,p.name,p.sex,p.age from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id and e.status!=0";
             //
             if(isset($param['search']) && !empty($param['search'])){
                 // 姓名  病历号  检查号
@@ -129,7 +129,7 @@ class Registerlist extends Base
                 $institution_name = DB::table('institution')->where('id',$dinfo['institution_id'])->cache(300)->field('name')->find();
                 $list[$k]['institution_name'] = $institution_name['name'];
             }
-            $sql1 = "SELECT count(1) from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id".$where;
+            $sql1 = "SELECT count(1) from exams as e ,patient_infos as p where e.institution_id='".$doctor['institution_id']."' and p.id=e.patient_id and e.status!=0 ".$where;
             $count = DB::query($sql1);
             return json_encode(['status'=>'ok','code'=>'0000','info'=>$list,'count'=>$count[0]['count(1)'],'sessionid'=>$sessionid]);
         }catch(\Exception $e){
@@ -137,4 +137,11 @@ class Registerlist extends Base
         }
     }
 
+
+    public  function delete_list(){
+        $id = $_REQUEST['id'];
+        DB::table('exams')->where('id',$id)->update(['status'=>0]);
+        return json_encode(['status'=>'ok','code'=>'0000','msg'=>'删除成功']);
+    }
+
 }