刘桂岩 3 months ago
parent
commit
e60b3c0052

+ 1 - 1
data/code/w7/server_ris/server/application/api/controller/xz/XzController.php

@@ -138,7 +138,7 @@ class XzController extends ZskkDefaultApiController
 
         try{
             $params = $this->getParams();
-            $data     = $service->getDcmResult($params['study_id']);
+            $data     = $service->getDcmResult($params['applicationFormNo'] ?? '',$params['clinicId'] ?? '');
             return $this->success($data);
         } catch (Exception $exception){
             $this->throwError($exception->getMessage(),0001);

+ 2 - 1
data/code/w7/server_ris/server/application/api/dao/xz/XzDao.php

@@ -171,8 +171,9 @@ class XzDao extends ZskkDefaultDao {
     {
         return $this->exam->where($where)->find();
     }
-    public function deleteExam($where)
+    public function deleteExam($where,$xzIdWhere)
     {
+        $this->xz->where($xzIdWhere)->delete();
         return $this->exam->where($where)->delete();
     }
 

+ 52 - 10
data/code/w7/server_ris/server/application/api/servies/xz/XzService.php

@@ -95,10 +95,11 @@ class XzService extends ZskkDefaultService {
             $xml_json = json_encode($xml_object);//转换为json数据
             $xml_array = json_decode($xml_json,true);//转换成数组
             $serverIp = $xml_array['demomode'];
-            if($serverIp)
+            if($serverIp == 'true')
             {
                 // 调试模式
                 $studiesData['ID'] = '4d6325ec7f5c7c668e4ff92f6fd220fb';
+                $studiesData = $this->xz->getStudies(['ID'=>'4d6325ec7f5c7c668e4ff92f6fd220fb']);
             }else{
                 // 存储studies
                 $studiesData = [
@@ -115,8 +116,8 @@ class XzService extends ZskkDefaultService {
                     'INSTITUTION_ID'=>$params['clinicId'],
                     'CREATEDAT' => date('Y-m-d H:i:s',time()),
                     'WEIGHT'=>$params['patientWeight'] ?? '',
-                    'is_bind'=>0,
-                    'is_w7'=>1
+                    'IS_BIND'=>0,
+                    'IS_W7'=>1
                 ];
                 $studies = $this->xz->insertStudies($studiesData);
             }
@@ -140,11 +141,15 @@ class XzService extends ZskkDefaultService {
                 'STUDY_ID'=>$studiesData['ID'],
                 'NAME'=>$params['patientName'],
                 'ILLNESS_DESC'=>$params['illness_desc'] ?? '',
-                'PHYS_SIGN'=>$params['phys_sign'] ?? '',
-                'ANAMNESIS'=>$params['anamnesis'] ?? '',
+//                'PHYS_SIGN'=>$params['phys_sign'] ?? '',
+//                'ANAMNESIS'=>$params['anamnesis'] ?? '',
                 'EXT'=>$params['objective'] ?? '',
                 'CLIN_DIAG'=>$params['clin_diag'] ?? ''
             ];
+            if($serverIp == 'true')
+            {
+                $examData['EXAM_STATUS'] = 3;
+            }
             if($params['clinicalDoctor'] ?? ''){
                 $doctorId = $this->xz->checkDoctor($params['clinicalDoctor']);
                 if(!empty($doctorId)){
@@ -302,9 +307,9 @@ class XzService extends ZskkDefaultService {
             }
             $studyWhere = ['id'=>$params['study_id']];
             $studies = $this->xz->getStudies($studyWhere);
-            if($studies['is_w7'] == 1)
+            if($studies['IS_W7'] == 1)
             {
-                $studyUpdate = ['is_bind'=>1];
+                $studyUpdate = ['IS_BIND'=>1];
                 $this->xz->updateStudy($studyWhere,$studyUpdate);
             }
         }else{
@@ -325,6 +330,34 @@ class XzService extends ZskkDefaultService {
             ];
             $this->xz->insertExam($data);
             $id = $data['ID'];
+            $exam = $data;
+        }
+
+
+        $xml_url = ROOT_PATH.'/public/data.xml';
+        $xml_object = simplexml_load_file($xml_url);
+        $xml_json = json_encode($xml_object);//转换为json数据
+        $xml_array = json_decode($xml_json,true);//转换成数组
+        $ip = $xml_array['remote_ip'] ?? '';
+        $serverIp = $xml_array['server_ip'];
+        $clientIp = $xml_array['client_ip'];
+        if(!empty($ip))
+        {
+            // ris调用  需通知远程端
+            $url = $ip.'/w7/pushresult';
+            $data = [
+                'applicationFormNo'=>$exam['ACCESSION_NUM'],
+                'status'=>'complete',
+                'url'=>$clientIp."/#/pc?studyurl=".$serverIp."/dicom/dicom/getData?address=".$clientIp."&study_id=".$exam['STUDY_ID']
+            ];
+            $ch = curl_init();
+            curl_setopt($ch,CURLOPT_URL,$url);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+            curl_setopt($ch,CURLOPT_POST,1);
+            curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type:multipart/form-data;charset=utf-8'));
+            curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
+            $res = curl_exec($ch);
+            curl_close($ch);
         }
 //        $xzData = $this->xz->getXzData($id);
 //        if($xzData){
@@ -395,7 +428,8 @@ class XzService extends ZskkDefaultService {
         {
             $this->throwError('未查询到检查','7077');
         }
-        $this->xz->deleteExam($where);
+        $xzIdWhere = ['EXAM_ID'=>$id];
+        $this->xz->deleteExam($where,$xzIdWhere);
         if($remote == '0')
         {
             $xml_url = ROOT_PATH.'/public/data.xml';
@@ -423,9 +457,17 @@ class XzService extends ZskkDefaultService {
         return 'success';
     }
 
-    public function getDcmResult($studyId)
+    public function getDcmResult($applicationFormNo, $clinicId)
     {
-        $where = ['ID'=>$studyId];
+        $xzWhere = [
+            'APPLICATIONFORMNO'=>$applicationFormNo,
+            'CLINICID'=>$clinicId
+        ];
+        $xzData = $this->xz->getXz($xzWhere);
+        $id = $xzData['EXAM_ID'] ?? '';
+        $where = ['ID'=>$id];
+        $exam = $this->xz->getExams($where);
+        $where = ['ID'=>$exam['STUDY_ID']];
         $study = $this->xz->getStudies($where);
         if(empty($study['ID']))
         {