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';
}
}