Ver código fonte

处理yyk影像数据

刘桂岩 4 anos atrás
pai
commit
3e9b68fb3e
1 arquivos alterados com 43 adições e 27 exclusões
  1. 43 27
      application/inter/controller/Dcquery.php

+ 43 - 27
application/inter/controller/Dcquery.php

@@ -173,23 +173,6 @@ class Dcquery extends Controller
             $exams = DB::table('exams')->where('patient_id',$study_info['patient_id'])->field('exam_datetime, exam_class')->find();
             $institution = DB::table('institution')->where('id',$study_info['institution_id'])->field('name,is_yyk,createdAt')->find();
             $return  = array();
-            if($institution['is_yyk'] == 1 && $flag == 'pc')
-            {
-                if(strtotime("-0 year -3 month -0 day") > strtotime($institution['createdAt']))
-                {
-//                     创建时间大于三个月前的时间戳  已过三个月
-                     $return['alert'] = [
-                         // 消息弹窗内容
-                         "msg" => "您所在机构的免费试用期限已到,请尽快联系您的平台运营方,以免影响您的后续使用",
-                         // 消息弹窗标题
-                         "title" => "",
-                         // 消息弹窗按钮
-                         "button" => "我知道了",
-                         // 消息弹窗是否阻塞
-                         "return" => false
-                     ];
-                }
-            }
             $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,modality')->order('series_num asc')->select();
@@ -199,9 +182,9 @@ class Dcquery extends Controller
                 $ids[] = $v['id'];
             }
             if($patient_info['institution_id'] == '15000004') {
-                $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();
+                $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,createdAt')->order('image_number asc')->select();
             } else {
-                $images_list = DB::table('images')->where('series_id','in',$ids)->where('image_number is not null')->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')->where('series_id','in',$ids)->where('image_number is not null')->field('frame,series_id,cineRate,remote_url,local_url,status,columns,image_number as instanceNumber,rows,image_id as sopInstanceUid,metadata,url,createdAt')->order('image_number asc')->select();
             }
             if(empty($images_list)){
                 return json_encode([
@@ -408,20 +391,47 @@ class Dcquery extends Controller
     }*/
 
 
-    public function generateUrl($url, $address, $remote_url, $local_url, $status, $metadata) {
+    // 影像过期时间   小时
+    private $hour = 24;
+
+    public function getTime($imageTime)
+    {
+        $time = strtotime($imageTime);
+        // 影像过期时间=影像创建时间+过期时间
+        $outTime = $time + $this->hour*60*60;
+        if(time() > $outTime)
+        {
+            // 当前时间大于影像创建时间+过期小时
+            return 1;
+        }else{
+            return 2;
+        }
+    }
+    
+    public function generateUrl($url, $address, $remote_url, $local_url, $status, $metadata, $imageTime) {
         if(empty($address)) {
-            return self::generateNormalUrl($url);
+            return self::generateNormalUrl($url,$imageTime);
         }
         if(preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/",$address)) {
 
-            return self::generateIpUrl($url,$address,$remote_url, $local_url, $status,$metadata);
+            return self::generateIpUrl($url,$address,$remote_url, $local_url, $status,$metadata,$imageTime);
         }
-        return  self::generateNormalUrl($url,$address);
+        return  self::generateNormalUrl($url,$imageTime,$address);
     }
-    public function generateIpUrl($url, $address, $remote_url, $local_url, $status,$metadata) {
+    public function generateIpUrl($url, $address, $remote_url, $local_url, $status,$metadata,$imageTime) {
 
         if (strpos($url, "zskk-dcm.oss-cn-beijing.aliyuncs.com")){
-            return str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com', $address.'/oss', $url);
+            //24小时内使用的oss   超过24小时使用/yyk的
+            $t = $this->getTime($imageTime);
+            if($t == 1)
+            {
+                //超过了24小时
+                $replace = $address.'/yyk';
+            }else{
+                $replace = $address.'/oss';
+            }
+            
+            return str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com',$replace , $url);
         }
 
 
@@ -456,7 +466,13 @@ class Dcquery extends Controller
         $ip = explode(':',$url);
         return $ip[0];
     }
-    public function generateNormalUrl($url , $domain = 'dcm.pacsonline.cn') {
+    public function generateNormalUrl($url , $imageTime,$domain = 'dcm.pacsonline.cn') {
+        $t = $this->getTime($imageTime);
+        if($t == 1)
+        {
+            // 超过24小时 zskk-dcm.oss-cn-beijing.aliyuncs.com 替换 yykbj001.oss-cn-beijing.aliyuncs.com
+            $url = str_replace('zskk-dcm.oss-cn-beijing.aliyuncs.com','yykbj001.oss-cn-beijing.aliyuncs.com',$url);
+        }
         if(substr($url, 0, strlen('dicomweb://')) === 'dicomweb://'){
             return $url;
         }elseif(substr($url, 0, strlen('http://')) === 'http://'){
@@ -503,7 +519,7 @@ class Dcquery extends Controller
             $seriesMap[$v['id']] = $this->generateSerie($v);
         }
         foreach($images_list as $image) {
-            $seriesMap[$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'],$image['createdAt']));
         }
         foreach($seriesMap as $serie) {
             if(!empty($serie['instances'])) {