刘桂岩 5 năm trước cách đây
mục cha
commit
63565f3fb5
1 tập tin đã thay đổi với 116 bổ sung54 xóa
  1. 116 54
      application/inter/controller/Dcom.php

+ 116 - 54
application/inter/controller/Dcom.php

@@ -43,77 +43,139 @@ class Dcom extends Controller  //Base
 
     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'],
+        $where = [
             'institution_id'=>$info['institutionCode'],
+            'temp_patient_id'=>$info['patientId']
         ];
-        DB::table('patient_infos')->insert($data);
-        return $data;
+        $patient = Db::table('patient_infps')->where($where)->find();
+        if($patient){
+            return $patient;
+        }else{
+            $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'],
+        $where = [
             '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'),
+            'study_id'=>$info['studyId']
         ];
-        DB::table('exams')->insert($data);
-        return $data;
+        $exam = DB::table('exams')->where($where)->find();
+        if($exam){
+            return $exam;
+        }else{
+            $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 insertStudy($info,$patient)
+    {
+        $where = [
+            'patient_id'=>$patient['id'],
+            'studyuid'=>$info['studyUid']
+        ];
+        $study = DB::table('studies')->where($where)->find();
+        if($study){
+            return $study;
+        }else{
+            $data = [
+                'id'=>UUIDs::uuid16(),
+                'studyuid'=>$info['studyUid'],
+                'patient_id'=>$patient['id'],
+                'studyid'=>$info['studyId'],
+                'accession_num'=>$info['accessionNumber'],
+                'studydate'=>$info['studyDate'],
+                'ctime'=>date('Y-m-d H:i:s'),
+                'modality'=>$info['modality'],
+                'patient_age'=>$info['patientAge'],
+                'institution_name'=>$info['institutionName'],
+                'institution_id'=>$info['institutionCode'],
+                'createdAt'=>date('Y-m-d H:i:s'),
+            ];
+            DB::table('studies')->insert($data);
+            return $data;
+        }
     }
 
     public function insertSeries($info,$exam)
     {
-        $data = [
-            'id'=>UUIDs::uuid16(),
+        $where = [
             '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'),
+            'seriesuid'=>$info['seriesUid']
         ];
-        DB::table('series')->insert($data);
-        return $data;
+        $series  = DB::table('series')->where($where)->find();
+        if($series){
+            return $series;
+        }else{
+            $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'),
+            ];
+            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'],
-        ];
-        DB::table('images')->insert($data);
-        return $data;
+        $where = ['image_id'=>$info['imageId']];
+        $image = DB::table('images')->where($where)->find();
+        if($image){
+            return $image;
+        }else{
+            $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'],
+            ];
+            DB::table('images')->insert($data);
+            return $data;
+        }
     }
 }