|
@@ -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();
|
|
$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();
|
|
$institution = DB::table('institution')->where('id',$study_info['institution_id'])->field('name,is_yyk,createdAt')->find();
|
|
$return = array();
|
|
$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'];
|
|
$info['patientName'] = $patient_info['name'];
|
|
// 根据series_num排序
|
|
// 根据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();
|
|
$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'];
|
|
$ids[] = $v['id'];
|
|
}
|
|
}
|
|
if($patient_info['institution_id'] == '15000004') {
|
|
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 {
|
|
} 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)){
|
|
if(empty($images_list)){
|
|
return json_encode([
|
|
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)) {
|
|
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)) {
|
|
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")){
|
|
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);
|
|
$ip = explode(':',$url);
|
|
return $ip[0];
|
|
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://'){
|
|
if(substr($url, 0, strlen('dicomweb://')) === 'dicomweb://'){
|
|
return $url;
|
|
return $url;
|
|
}elseif(substr($url, 0, strlen('http://')) === 'http://'){
|
|
}elseif(substr($url, 0, strlen('http://')) === 'http://'){
|
|
@@ -503,7 +519,7 @@ class Dcquery extends Controller
|
|
$seriesMap[$v['id']] = $this->generateSerie($v);
|
|
$seriesMap[$v['id']] = $this->generateSerie($v);
|
|
}
|
|
}
|
|
foreach($images_list as $image) {
|
|
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) {
|
|
foreach($seriesMap as $serie) {
|
|
if(!empty($serie['instances'])) {
|
|
if(!empty($serie['instances'])) {
|