testAnalysis(); } public function get() { $images_data = array( array("name" => "Tom", "IMAGENUMBER" => "80"), array("name" => "Mary", "IMAGENUMBER" => "90"), array("name" => "Jack", "IMAGENUMBER" => "85"), ); // 按成绩升序排序 $sort = array(); foreach ($images_data as $k_i=>$v_i) { $sort[$k_i] = $v_i['IMAGENUMBER']; } array_multisort($sort, SORT_ASC, $images_data); // 输出结果 var_dump($images_data);die; foreach ($students as $row) { echo $row["name"] . $row["score"]; } } public function testOne(TestService $test) { try{ $a = (InstitutionModel::where('ids',1)->find()); }catch (Exception $e){ var_dump($e->getMessage());die; } var_dump($a); die; $a = 'mGcripTrD+kUDwhjHsB8TfDeo4obPs4vDFVeTR/iHGFMfYqiBktDQ7BXrxMjQJUz/wUHnfZcKH2JjfffOVzfzAatupwpiGFqsnTyhxJ7kJYxMu8Wv5v6twocWPx6Eqb7'; $key = '1234567890000'; $method = 'aes-128-ecb'; // $encrypted = openssl_encrypt($a,'AES-128-ECB',$key,OPENSSL_RAW_DATA); $decrypted = openssl_decrypt(base64_decode($a),'AES-128-ECB',$key,OPENSSL_RAW_DATA); var_dump($decrypted);die; // $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method)); $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-128-ecb')); $encrypted = openssl_encrypt($a, 'AES-128-CBC', $key,0,$iv); var_dump($encrypted); $decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key,0,$iv); var_dump($decrypted);die; var_dump(mail('912540678@qq.com','test','test','company@pacsonline.cn')); die; phpinfo();die; $phone = '13763459789'; $institution = '介休市人民医院'; $a = send_message::sendReportShortMessage($phone,$institution); var_dump(date('Y-m-d H:i:s')); var_dump($a);die; var_dump(ApiModel::column('id,action'));die; set_time_limit(0); $data = Db::table('exams')->where('institution_id','43600001')->where("name like '%T'")->field('id,name')->select(); foreach ($data as $k=>$v) { Db::table('exams')->where('id',$v['id'])->update(['name'=>trim(trim($v['name'],'t'))]); } echo 'over'; // var_dump($data); die; $this->get(); die; $info = '141.71'; var_dump(base64_encode(iconv('UTF-8','GBK',$info))); $noteId = '312265'; var_dump( base64_encode(str_pad(base_convert($noteId,10,36),6,'0',STR_PAD_LEFT)));die; echo 'over';die; echo strtotime('20240422010101'); echo '
'; echo strtotime('2024-04-22 01:01:01');die; phpinfo();die; print_r(UUIDUtils::uuid()); die; $this->get(); die; } public function getAllExam($id) { set_time_limit(0); $exam = ExamModel::where('institution_id',$id)->where('status',1)->order('createdAt asc')->limit(1,10)->select(); foreach ($exam as $k=>$v) { // $url = "https://query.pacsonline.cn/query/key?study_id=".$v['study_id']; $url = "https://query.pacsonline.cn/query/key?study_id=56d52d2d09ee920942ee198adb0f6712"; $data = $this->curl_get($url); $data = json_decode($data,true); foreach ($data as $value) { $key = $value; var_dump($key); $this->langchao($key,$v['institution_id']); } } } public function excel() { $data = DB::table('institution')->field('id,name,province,createdAt')->order('province')->select(); $array = []; foreach ($data as $k=>$v) { if(!empty($v['province'])) { $time = explode(' ',$v['createdat']); $num = ''; $num = DB::table('exams')->where('institution_id',$v['id'])->where("createdAt>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)")->count(); $ins = ['name'=>$v['name'],'province'=>$v['province'],'num'=>$num,'createdat'=>$time[0]]; $array[] = $ins; } } $this->expExcel($array); } public function down() { $a = []; $data = []; foreach ($a as $k=>$v) { if($k == 0) { continue; } $b = explode('hls/',$v); $c = explode('.',$b[1]); $data[$c[0]] = $k; } var_dump($data);die; $this->rename(); } public function insertMessage() { // $institution = Db::table('institution')->where(" id not like '%730900%'")->where('id','not in',$ids)->select(); $institution = Db::table('institution')->select(); $insert = []; foreach ($institution as $v) { // $time = Db::table('exams')->where('institution_id',$v['id'])->min('createdAt'); // $s = strtotime($time); // if($s > strtotime('2021-10-01')) // { // echo '`'.$v['id']; echo " "; // echo $v['name']; // echo "
"; // } $html = "
为了给您提供更好、更稳定的服务,冠医云平台将在2022年8月15日到8月20日每天20:00-24:00、00:00-06:00进行升级。期间系统会偶尔出现分钟级的访问不可达或波动,如遇到异常请您稍后重试,感谢您的理解与支持!
"; $info = [ 'id'=>UUIDUtils::uuid(), 'title'=>'紧急通知', 'is_read'=>0, 'content'=>$html, 'type'=>10, 'institution_id'=>$v['id'] ]; Db::table('messages')->insert($info); } die; } public function rename() { $path = './dcm/'; $path1 = './video/'; $d = scandir($path); unset($d[0]); unset($d[1]); $file = array_values($d); foreach ($file as $k=>$v) { $arr = explode('.',$v); $num = str_replace('index','',$arr[0]); if($num < 10) { $name = '1000'.$num; }elseif(10 <= $num && $num < 100) { $name = '100'.$num; }elseif(100 <= $num && $num < 1000) { $name = '10'.$num; }elseif(1000 <= $num && $num < 10000) { $name = '1'.$num; }else{ $name = $num; } $name = $name.'.'.$arr[1]; copy($path.$v,$path1.$name); } } public function getDcmUrl() { $ids = [ '050cf8b8bab853f2b7114ec2832eb1aa', '9bc1e5c969868eefb6601e22cfa71ff5', '8ae04e9bfe285b99a4d21d222e334bc8', '329caacb9ce20483e811c397a9cbb94f', 'd8ce01ac97786a77e961bebb5e343344', '79165ca479770ed5224d478bd6238f59', '9383ce5b645a095a2a6dbdc820d32c26', 'f4a253e66d47f0b1602f37839ad9e8da', '1aa32590c9989ba753f20741e0a62c20', 'd1fd00f02a494b6ec9c6545e84d9d978', 'f1cca331ce2da21cfef02645165e6cb7', 'c37e60d68b282f3795d0ba6cda50a77b', '6c353110bb4a35551b49164a98609dd3', '76e72996c320e22371094f8b298e197d', 'b9beaf63c3170f32d6c188c8a265f36f', '8fb237cf11a64a13e0b8b79257b135f0', '14a6904c2f6dc4fd3664fa1549c5cbb9' ]; ini_set('max_execution_time', 6000); $ids = DB::table('exams') ->where('study_id','in',$ids) // ->alias('e') // ->join(['report'=>'r'],'r.exam_id=e.id and r.type=1') // ->where("e.body_part='chest'") // ->where('e.exam_status',9) // ->where("r.description not like '%结节%'") // ->where("r.impression not like '%结节%'") // ->where("e.exam_class='CT'") // ->page(3,10) // ->order('e.createdAt desc') // ->field('e.study_id,e.name,r.description,r.impression,e.createdAt') ->select(); $array = []; foreach ($ids as $k=>$v) { $i = 1; $info = []; $list = []; $study = $v['study_id']; $name = $v['name']; $url = "https://parsecallback.pacsonline.cn/study/query?address=&study_id=$study"; $info = $this->curl_get($url); $a = json_decode($info,true); $list= $a['studies'][0]['seriesList']; if(!empty($list)) { foreach ($list as $k1=>$v1) { $ins = []; $ins = $v1['instances']; foreach ($ins as $v2) { $file = ''; $url = str_replace('dicomweb','https',$v2['url']); $file=$this->curl_get($url); if($file){ $uploads_dir = './dcm/'.$study.'/'.$v2['series_id'].'/'; if (!file_exists($uploads_dir)) { mkdir($uploads_dir,0777,true); } $path=file_put_contents($uploads_dir.$i.'.dcm',$file); if(!$path){ var_dump($i); } } // $data = ['url'=>$url]; $data = ['url'=>$url,'name'=>$name]; $array[] = $data; $i++; } } } } echo 'over'; // return $array; // var_dump($array);die; // $this->expExcel($array);die; } public function expExcel($con) { // 1.选取表中要输出数据 // $con = array( // [ // 'id' => 1, // 'name' => '名字', // 'image' => '头像' // ], // [ // 'id' => 2, // 'name' => '名字2', // 'image' => '头像2' // ], // // ); //没有第二部 require_once(CORE_PATH . '/../../../vendor/phpoffice/phpexcel/Classes/PHPExcel.php'); //3.实例化PHPExcel类 $objPHPExcel = new \PHPExcel(); //4.激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //5.设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '医院名称') ->setCellValue('B1', '检查数量') ->setCellValue('C1', '患者数量') ->setCellValue('D1', '已绑定的检察数') ->setCellValue('E1', '远程诊断发起数量') ->setCellValue('F1', '远程诊断接受数量') ->setCellValue('G1', '安装日期') ->setCellValue('H1', '最后上传时间'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment() // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment() // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment() // ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(30); //6.循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($con); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $con[$i]['ins']);// $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $con[$i]['exams']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $con[$i]['patient']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $con[$i]['bind']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $con[$i]['send']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $con[$i]['get']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $con[$i]['time']);//姓名 $objPHPExcel->getActiveSheet()->setCellValue('H' . ($i + 2), $con[$i]['max']);//姓名 } //7.设置保存的Excel表格名称 $filename = 'user' . date('ymd', time()) . '.xls'; //8.设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('user'); //9.设置浏览器窗口下载表格 header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 $objWriter->save('php://output'); exit; } function http_get_data($url) { $ch = curl_init (); curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt ( $ch, CURLOPT_URL, $url ); ob_start (); curl_exec ( $ch ); $return_content = ob_get_contents (); ob_end_clean (); $return_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE ); return $return_content; // $return_content = http_get_data($url); // $filename = 'test3.jpg'; // $fp= @fopen($filename,"a"); //将文件绑定到流 // fwrite($fp,$return_content); //写入文件 } function curl_get($url){ $header = array( 'Accept: application/json', ); $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); // 超时设置,以秒为单位 // curl_setopt($curl, CURLOPT_TIMEOUT, 10); // 超时设置,以毫秒为单位 // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500); // 设置请求头 curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //执行命令 $data = curl_exec($curl); if (curl_error($curl)) { print "Error: " . curl_error($curl); } else { // 打印返回的内容 // var_dump($data); curl_close($curl); } // return $data; } public function getCurl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_POST,1); $output = curl_exec($ch); curl_close($ch); echo $output; } function curlPost($url, $data) { //初使化init方法 $ch = curl_init(); //指定URL curl_setopt($ch, CURLOPT_URL, $url); //设定请求后返回结果 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //声明使用POST方式来进行发送 curl_setopt($ch, CURLOPT_POST, 1); //发送什么数据呢 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //忽略证书 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //忽略header头信息 curl_setopt($ch, CURLOPT_HEADER, 0); //设置超时时间 // curl_setopt($ch, CURLOPT_TIMEOUT, 10); //发送请求 $output = curl_exec($ch); //关闭curl curl_close($ch); //返回数据 return $output; } function t() { // echo 2; $email = '951002432@qq.com'; $name = '测试'; $dcmPath = ''; $mail = new PHPMailer(true); $mail->CharSet ="UTF-8"; //设定邮件编码 $mail->SMTPDebug = 0; // 调试模式输出 $mail->isSMTP(); // 使用SMTP $mail->Host = 'smtp.exmail.qq.com'; // SMTP服务器 $mail->SMTPAuth = true; // 允许 SMTP 认证 $mail->Username = 'company@pacsonline.cn'; // SMTP 用户名 即邮箱的用户名 $mail->Password = 'Zskk1234'; // SMTP 密码 部分邮箱是授权码(例如163邮箱) $mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议 $mail->Port = 465; // $mail->SMTPOptions = [ // 'ssl' => [ // 'verify_peer' => false, // 'verify_peer_name' => false, // 'allow_self_signed' => true // ] // ]; $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); // 服务器端口 25 或者465 具体要看邮箱服务器支持 $mail->setFrom('company@pacsonline.cn', '冠医云'); //发件人 $mail->addAddress($email, ''); // 收件人 //$mail->addAddress('ellen@example.com'); // 可添加多个收件人 $mail->addReplyTo('company@pacsonline.cn', '冠医云'); //回复的时候回复给哪个邮箱 建议和发件人一致 //$mail->addCC('cc@example.com'); //抄送 //$mail->addBCC('bcc@example.com'); //密送 $zipPath = ROOT_PATH . 'public'; // $maxsize = 45 * 1024 * 1024; $mail->Subject = $name.'影像'; // if(filesize($zipPath.'/'.$dcmPath) < $maxsize) // { // //发送附件 //// $mail->addAttachment($zipPath.'a.zip'); // 添加附件 // $mail->addAttachment($zipPath.'/'.$dcmPath, $name.'.zip'); // 发送附件并且重命名 // $mail->Body = "链接将于".date('Y-m-d',time()+10*24*3600)."失效,请即时下载"; // $mail->AltBody = "链接将于".date('Y-m-d',time()+10*24*3600)."失效,请即时下载"; // }else{ //发送链接地址 //Content $mail->isHTML(true); $mail->Body = "下载".$name."影像"."
链接将于".date('Y-m-d',time()+3*24*3600)."失效,请及时下载"; $mail->send(); return '1'; } }