file('file');
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'dcm');
if($info){
// 成功上传后 获取上传信息
$path = 'public' . DS . 'dcm'.DS.$info->getSaveName();
$info = DicomPaser::paser(ROOT_PATH . $path);
var_dump($info);
foreach($info as $k=>$v){
$info[$k] = trim($v);
}
$patient = $this->insertPatient($info);
$exam = $this->insertExam($info,$patient);
$series = $this->insertSeries($info,$exam);
$image = $this->insertImages($info,$series,$path,$path);
return json_encode(['status'=>'success','code'=>'0000']);
}else{
return json_encode(['status'=>'fail','code'=>'2000','msg'=>$file->getError()]);
}
}else{
return json_encode(['status'=>'fail','code'=>'2000','msg'=>'不存在上传的文件']);
}
// }catch(Exception $e){
// return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
// }
}
public function insertPatient($info)
{
$data = [
'id'=>UUIDs::uuid16(),
'name'=>$info['patientName'],
'sex'=>$info['patientSex'],
'age'=>$info['patientAge'],
'birthday'=>$info['birthDate'],
'createdAt'=>date('Y-m-d H:i:s'),
'temp_patient_id'=>$info['patientId'],
'institution_id'=>$info['institutionCode'],
];
DB::table('patient_infos')->insert($data);
return $data;
}
public function insertExam($info,$patient)
{
$data = [
'id'=>UUIDs::uuid16(),
'patient_id'=>$patient['id'],
'institution_id'=>$info['institutionCode'],
'patient_num'=>$info['patientId'],
'accession_num'=>$info['accessionNumber'],
'exam_datetime'=>$info['studyDate'],
'exam_class'=>$info['modality'],
'study_id'=>$info['studyId'],
'study_uid'=>$info['studyUid'],
'illness_desc'=>$info['studyDescription'],
'createdAt'=>date('Y-m-d H:i:s'),
];
DB::table('exams')->insert($data);
return $data;
}
public function insertSeries($info,$exam)
{
$data = [
'id'=>UUIDs::uuid16(),
'study_id'=>$info['studyId'],
'seriesuid'=>$info['seriesUid'],
'series_num'=>$info['seriesNumber'],
'modality'=>$info['modality'],
'description'=>$info['seriesDescription'],
'createdAt'=>date('Y-m-d H:i:s'),
];
echo "序列--";
echo "
";
var_dump($data);
DB::table('series')->insert($data);
return $data;
}
public function insertImages($info,$series,$path,$patient)
{
$data = [
'id'=>UUIDs::uuid16(),
'series_id'=>$series['id'],
'image_id'=>$info['imageId'],
'sop_uid'=>$info['SOPInstanceUID'],
'image_number'=>$info['imageNumber'],
'owner'=>$patient['id'],
'window_width'=>$info['windowWidth'],
'windo_center'=>$info['windowCenter'],
'rows'=>$info['rows'],
'columns'=>$info['columns'],
'pixe_spacing'=>$info['pixelSpacing'],
'image_position'=>$info['imagePosition'],
'image_orientation'=>$info['imageOrientation'],
'createdAt'=>date('Y-m-d H:i:s'),
'institution_id'=>$info['institutionCode'],
'local_url'=>ROOT_PATH . $path,
'remote_url'=>DS.$path,
'frame'=>$info['numberOfFrames'],
];
echo "图片--";
echo "
";
var_dump($data);
DB::table('images')->insert($data);
return $data;
}
}