fuyu 5 سال پیش
والد
کامیت
6122872d94
1فایلهای تغییر یافته به همراه32 افزوده شده و 48 حذف شده
  1. 32 48
      application/inter/controller/Dcquery.php

+ 32 - 48
application/inter/controller/Dcquery.php

@@ -136,7 +136,6 @@ class Dcquery extends Controller
                 Log::record('study_info');
                 Log::record($study_id);
                 $study_info = DB::table('studies')->where('id',$study_id)->field('id,studyuid,studyid,patient_id,studydate')->find();
-                
                 Log::record($study_info);
             } else if($study_uid) {
                 $study_info = DB::table('studies')->where('studyuid', $study_uid)->field('id,studyuid,studyid,patient_id,studydate')->find();
@@ -165,50 +164,18 @@ class Dcquery extends Controller
             foreach($series_list as $k=>$v){
                 $ids[] = $v['id'];
             }
-            $images_list = DB::table('images')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url')->order('image_number asc')->select();
+            $images_list = DB::table('images')->whereNotNull('image_number')->where('series_id','in',$ids)->field('frame,series_id,cineRate,remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url')->order('image_number asc')->select();
             if(empty($images_list)){
                 return json_encode([
                     "error" => "series列表中影像为空"
                 ]);
             }
             $series = $this->testHandleSeires($series_list , $images_list , $url);
-
-//            foreach($series_list as $k=>$v){
-//                // image_number排序
-//                $image = DB::table('images')->where('series_id',$v['id'])->field('cineRate,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)){
-//                    continue;
-//                }
-//                $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'];
-//            }
-//            if($error == 1){
-//                throw new \think\Exception('series列表为空');
-//            }
+            if(empty($series)) {
+                return json_encode([
+                    "error" => "series列表中影像为空"
+                ]);
+            }
             $info['seriesList'] = $series;
             $return  = array();
             $return['transactionId'] = $study_info['studyuid'];
@@ -395,20 +362,37 @@ class Dcquery extends Controller
             return $dicurl;
         }
     }
+    // public function testHandleSeires($series_list , $images_list , $url) {
+    //     $series = array();
+    //     $seriesIndexMap = array();
+    //     foreach($series_list as $k => $v) {
+    //         $series[$k] = $this->generateSerie($v);
+    //         $seriesIndexMap[$v['id']] = $k;
+    //     }
+    //     // foreach($images_list as $k=>$v){
+    //     //     if (strpos($v['url'], "zskk-dcm.oss-cn-beijing.aliyuncs.com")){
+    //     //         $images_list[$k]['url'] = str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com', $url.'/oss', $images_list[$k]['url']);
+    //     //     }
+    //     // }
+    //     foreach($images_list as $image) {
+    //         $series[$seriesIndexMap[$image['series_id']]]['instances'][] = $this->generateImage1($image, $this->generateUrl($image['url'], $url, $image['remote_url'], $image['local_url'], $image['status'], $image['metadata']));
+    //     }
+    //     return $series;
+    // }
+
     public function testHandleSeires($series_list , $images_list , $url) {
         $series = array();
-        $seriesIndexMap = array();
+        $seriesMap = array();
         foreach($series_list as $k => $v) {
-            $series[$k] = $this->generateSerie($v);
-            $seriesIndexMap[$v['id']] = $k;
+            $seriesMap[$v['id']] = $this->generateSerie($v);
         }
-        // foreach($images_list as $k=>$v){
-        //     if (strpos($v['url'], "zskk-dcm.oss-cn-beijing.aliyuncs.com")){
-        //         $images_list[$k]['url'] = str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com', $url.'/oss', $images_list[$k]['url']);
-        //     }
-        // }
         foreach($images_list as $image) {
-             $series[$seriesIndexMap[$image['series_id']]]['instances'][] = $this->generateImage1($image, $this->generateUrl($image['url'], $url, $image['remote_url'], $image['local_url'], $image['status'], $image['metadata']));
+            $seriesMap[$image['series_id']]['instances'][] = $this->generateImage1($image, $this->generateUrl($image['url'], $url, $image['remote_url'], $image['local_url'], $image['status'], $image['metadata']));
+        }
+        foreach($seriesMap as $serie) {
+            if(!empty($serie['instances'])) {
+                $series[] = $serie;
+            }
         }
         return $series;
     }