lgy пре 6 дана
родитељ
комит
2ae56235f0

+ 1 - 1
jcjyhr/app/common/controller/ApiController.php

@@ -36,7 +36,7 @@ class ApiController extends Api
             $this->tokenData = $data;
             if(empty($data))
             {
-                $this->error('无效的token');
+//                $this->error('无效的token');
             }
         }
 

+ 36 - 9
jcjyhr/app/zskk/controller/Api.php

@@ -60,7 +60,7 @@ class Api extends ApiController
     public function delExamReport(PatientServies $servies)//: void
     {
         $params = $this->request->post();
-        $params = $this->getDecryptData($params['data']);
+//        $params = $this->getDecryptData($params['data']);
         $tokenData = $this->tokenData;
         if(empty($tokenData))
         {
@@ -76,8 +76,9 @@ class Api extends ApiController
     public function delLabReport(PatientServies $servies): void
     {
         $params = $this->request->post();
-        $params = $this->getDecryptData($params['data']);
+//        $params = $this->getDecryptData($params['data']);
         $tokenData = $this->tokenData;
+        $tokenData['orgCode'] = '001';
         if(empty($tokenData))
         {
             $this->error('无效的token');
@@ -87,6 +88,31 @@ class Api extends ApiController
         $this->success('');
     }
 
+    /**
+     * 后台初始化请求
+     * @return void
+     * @throws Throwable
+     */
+    public function getShareCheck(HrServies $servies,PatientServies $patientServies): void
+    {
+        $params = $this->request->post();
+//        $params = $this->getDecryptData($params['data']);
+        $params = $patientServies->makeMappingData($params,'0','getShareCheck');
+        $ID_CARDNUM = $params['ID_CARDNUM'] ?? '';
+        $ORGCODE = $params['ORGCODE'] ?? '';
+        $ORGNAME = $params['ORGNAME'] ?? '';
+        $DOCTORNAME = $params['DOCTORNAME'] ?? '';
+        $DOCTORCODE = $params['DOCTORCODE'] ?? '';
+        $DEPARTMENT = $params['DEPTNAME'] ?? '';
+        $data = $servies->getShareCheck($ID_CARDNUM, $ORGCODE,$DOCTORCODE,$DEPARTMENT,1);
+        $data = $patientServies->makeMappingData(['RETURN'=>$data],'0','getShareCheck',2);
+        // halt($data);
+//        $data = $this->makeEncryptData($data);
+        // halt($data);
+        $this->success('', $data);
+    }
+
+
     /**
      * 后台初始化请求
      * @return void
@@ -94,19 +120,20 @@ class Api extends ApiController
      */
     public function getRecogData(HrServies $servies,PatientServies $patientServies): void
     {
-        $param = $this->request->post();
-        $params = $this->getDecryptData($param['data']);
+        $params = $this->request->post();
+//        $params = $this->getDecryptData($param['data']);
         $params = $patientServies->makeMappingData($params,'0','getRecogData');
         $ID_CARDNUM = $params['ID_CARDNUM'] ?? '';
         $ORGCODE = $params['ORGCODE'] ?? '';
         $ORGNAME = $params['ORGNAME'] ?? '';
         $DOCTORNAME = $params['DOCTORNAME'] ?? '';
         $DOCTORCODE = $params['DOCTORCODE'] ?? '';
-        $data = $servies->getRecogData($ID_CARDNUM, $ORGCODE);
+        $DEPARTMENT = $params['DEPTNAME'] ?? '';
+        $data = $servies->getShareCheck($ID_CARDNUM, $ORGCODE,$DOCTORCODE,$DEPARTMENT,2);
         // halt($data);
-        $data = $patientServies->makeMappingData($data,'0','getRecogData',2);
-        // halt($data);
-        $data = $this->makeEncryptData($data);
+        $data = $patientServies->makeMappingData(['DATA'=>$data],'0','getRecogData',2);
+         var_dump($data);die;
+//        $data = $this->makeEncryptData($data);
         // halt($data);
         $this->success('', $data);
     }
@@ -119,7 +146,7 @@ class Api extends ApiController
     public function saveRecogResult(HrServies $servies, PatientServies $patientServies): void
     {
         $params = $this->request->post();
-        $params = $this->getDecryptData($params['data']);
+//        $params = $this->getDecryptData($params['data']);
         $params = $patientServies->makeMappingData($params,'0','saveRecogResult');
         $HR_RECORDS = $params['HR_RECORDS'] ?? array();
         $servies->saveRecogResult($HR_RECORDS);

+ 26 - 11
jcjyhr/app/zskk/controller/Patient.php

@@ -92,35 +92,50 @@ class Patient extends ZskkApiController
     /**
      * 上传检查数据
      */
-    public function postExamReport(PatientServies $servies): void
+    public function postExamInfo(PatientServies $servies): void
     {
 //        try {
             $params = $this->request->post();
-//            $params = $this->getDecryptData($params);
-            $params = $servies->makeMappingData($params,'0','postExamReport');
-        var_dump($params);die;
-            $data = $servies->postExamReport($params);
+//            $params = $this->getDecryptData($params['data']);
+            $params = $servies->makeMappingData($params,'0','postExamInfo');
+            $data = $servies->postExamInfo($params);
             $this->success($data,'');
 //        }catch (\Exception $e)
 //        {
 //            $this->error($e->getMessage());
 //        }
     }
-
     /**
-     * 上传检数据
+     * 上传检数据
      */
-    public function postLisReport(PatientServies $servies): void
+    public function postExamReport(PatientServies $servies): void
     {
         try {
             $params = $this->request->post();
-            $params = $this->getDecryptData($params['data']);
-            $params = $servies->makeMappingData($params,'0','postLisReport');
-            $data = $servies->postLisReport($params);
+//            $params = $this->getDecryptData($params['data']);
+            $params = $servies->makeMappingData($params,'0','postExamReport');
+            $data = $servies->postExamReport($params);
             $this->success($data,'');
         }catch (\Exception $e)
         {
             $this->error($e->getMessage());
         }
     }
+
+    /**
+     * 上传检验数据
+     */
+    public function postLisReport(PatientServies $servies): void
+    {
+//        try {
+            $params = $this->request->post();
+//            $params = $this->getDecryptData($params['data']);
+            $params = $servies->makeMappingData($params,'0','postLabReport');
+            $data = $servies->postLabReport($params);
+            $this->success($data,'');
+//        }catch (\Exception $e)
+//        {
+//            $this->error($e->getMessage());
+//        }
+    }
 }

+ 7 - 7
jcjyhr/app/zskk/model/Patient.php

@@ -146,7 +146,7 @@ class Patient extends ZskkModel
      */
     public function getMapping($where):array
     {
-        return (new Mapping)->where($where)->cache(3600)->select()->toArray();
+        return (new Mapping)->where($where)->select()->toArray();
     }
 
     /**
@@ -156,7 +156,7 @@ class Patient extends ZskkModel
      */
     public function getAllMapping($where=[]):array
     {
-        return (new Mapping)->where($where)->cache(3600)->select()->toArray();
+        return (new Mapping)->where($where)->select()->toArray();
     }
 
     /**
@@ -169,9 +169,9 @@ class Patient extends ZskkModel
         return (new Patient())->where($where)->field($field)->find();
     }
 
-    public function getMedical($patientCode,$field=['SERIESNUM','CLASS_CODE', 'CLASS', 'ENCOUNTER_CARD_NO', 'RECORD_CODE', 'HOS_EMPI', 'NAME', 'ENCOUNTER_DATE', 'DEPTNAME', 'CHIEFCOMPLAINT', 'ORGCODE', 'ORGNAME', 'AGE', 'GENDER', 'GENDER_CODE', 'DIAGNOSECODE', 'DIAGNOSENAME'])
+    public function getMedical($patientCode,$medicalWhere=[],$field=['SERIESNUM','CLASS_CODE', 'CLASS', 'ENCOUNTER_CARD_NO', 'RECORD_CODE', 'HOS_EMPI', 'NAME', 'ENCOUNTER_DATE', 'DEPTNAME', 'CHIEFCOMPLAINT', 'ORGCODE', 'ORGNAME', 'AGE', 'GENDER', 'GENDER_CODE', 'DIAGNOSECODE', 'DIAGNOSENAME','DOCTORNAME','DOCTORCODE'])
     {
-        return (new MedicalInformation())->where('PATIENT_CODE',$patientCode)->field($field)->find();
+        return (new MedicalInformation())->where('PATIENT_CODE',$patientCode)->where($medicalWhere)->field($field)->find();
     }
     public function getDiagnoses($patientCode)
     {
@@ -185,10 +185,10 @@ class Patient extends ZskkModel
     {
         return (new MedicalOrders())->where('PATIENT_CODE',$patientCode)->field(['MEDICAL_ORDER_CODE','ORDERID','NAME','SERIESNUM','LAB_ITEMNAME','LAB_ITEMNAME_CODE','SPECIMEN_TYPE','SPECIMEN_NUM','SPECIMEN_STATUS','SPECIMEN_COLLETIME','SPECIMEN_RECEITIME','ORGCODE','ORGNAME','DEPTNAME','PRACTITIONERNAME','REQUESTTIME','REPORTSTATUS','REPORTSTATUS_CODE','GENDER','GENDER_CODE','AGE'])->select()->toArray();
     }
-    public function getExam($patientCode)
+    public function getExam($patientCode,$where=[])
     {
         // return (new ExamReport())->where('PATIENT_CODE',$patientCode)->field(['NAME','SERIESNUM', 'EXAM_REQUESTID', 'REPORTID', 'EXAM_ITEMNAME', 'BODYSITE_CATEG', 'BODYSITE_CATEG_CODE', 'BODYSITE', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'BODYSITE_CATEG_CODE', 'BODYSITE', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'IMAGES', 'DICOM_INDEXID', 'DICOM_INDEXID', 'OBSERVATIONS_COMMENT', 'OBSERVATIONS_RESULT', 'IMAGES', 'DICOM_INDEXID', 'EXAM_ITEMNAME','EXAM_APPLICATION_CODE','STUDYTIME','EXAM_ITEMNAME_CODE','EXAM_REPORT_CODE','PRACTITIONERNAME'])->select()->toArray();
-        return (new ExamReport())->where('PATIENT_CODE',$patientCode)->field(['REQUESTID','REPORTID','DEVICETYPE_CODE','EXAM_ITEMNAME','EXAM_ITEMNAME_CODE','BODYSITE','OBSERVATIONS_COMMENT','OBSERVATIONS_RESULT','RESULT_STATUS_CODE', 'RESULT_STATUS', 'HR_RANGE','HR_ITEMNAME_CODE', 'HR_ITEMNAME', 'ORGNAME','ORGCODE','DEPTNAME','PRACTITIONERNAME','AUDITNAME','REPORTTIME','STUDYTIME','REPORT'])->select()->toArray();
+        return (new ExamReport())->where('PATIENT_CODE',$patientCode)->where($where)->field(['REQUESTID','REPORTID','DEVICETYPE_CODE','EXAM_ITEMNAME','EXAM_ITEMNAME_CODE','BODYSITE','OBSERVATIONS_COMMENT','OBSERVATIONS_RESULT','RESULT_STATUS_CODE', 'RESULT_STATUS', 'HR_RANGE','HR_ITEMNAME_CODE', 'HR_ITEMNAME', 'ORGNAME','ORGCODE','DEPTNAME','PRACTITIONERNAME','AUDITNAME','REPORTTIME','STUDYTIME','REPORT'])->select()->toArray();
     }
 
     public function getExamReport($where,$field)
@@ -198,7 +198,7 @@ class Patient extends ZskkModel
     public function getInspect($patientCode)
     {
         // return (new InspectReport())->where('PATIENT_CODE',$patientCode)->field(['NAME','SERIESNUM', 'EXAM_REQUESTID', 'REPORTID', 'SPECIMEN_TYPE', 'ORGCODE', 'ORGNAME', 'DEPTNAME', 'PRACTITIONERNAME', 'AUDITNAME', 'REPORTTIME', 'REPORTSTATUS', 'GENDER', 'GENDER_CODE', 'AGE', 'LAB_ITEMNAME', 'LAB_ITEMNAME_CODE', 'LAB_ITEMNAME_NUMBER', 'LAB_HR_STATUS', 'LAB_HR_ITEMNAME', 'LAB_HR_ITEMNAME_CODE','INSPECT_REPORT_CODE'])->select()->toArray();
-        return (new InspectReport())->where('PATIENT_CODE',$patientCode)->field(['REPORTID','LAB_ITEMNAME','LAB_ITEMNAME_TYPE_CODE','PRACTITIONERNAME','AUDITNAME','ORGNAME','ORGCODE','DEPTNAME','REPORT_COMMENT','REPORTTIME','REPORT','LAB_HR_ITEMNAME_CODE', 'LAB_HR_ITEMNAME', 'HR_RANGE','INSPECT_REPORT_CODE'])->select()->toArray();
+        return (new InspectReport())->where('PATIENT_CODE',$patientCode)->field(['REPORTID','LAB_ITEMNAME','LAB_ITEMNAME_TYPE_CODE','PRACTITIONERNAME','AUDITNAME','ORGNAME','ORGCODE','DEPTNAME','REPORT_COMMENT','REPORTTIME','REPORT','LAB_HR_ITEMNAME_CODE', 'LAB_HR_ITEMNAME', 'HR_RANGE','SPECIMEN_TYPE','INSPECT_REPORT_CODE','RECOG_STATUS'])->select()->toArray();
     }
 
     public function getInspectData($where,$field)

+ 50 - 46
jcjyhr/app/zskk/servies/CommonServies.php

@@ -68,8 +68,10 @@ class CommonServies
             'BIRTH_DATE' => $BIRTH_DATE,
             'MPI_KEY' => $MPI_KEY,
             'MPI' => $MPI,
-            'create_time' => $MEDICAL_INFORMATION['ENCOUNTER_DATE']
+            'create_time' => $MEDICAL_INFORMATION['ENCOUNTER_DATE'],
+            'PHONE' => $data['PHONE'],
         ];
+
         return $PATIENT;
     }
     
@@ -92,7 +94,7 @@ class CommonServies
         $CLASS_CODE = $data['CLASS_CODE'];
         $ENCOUNTER_CARD_NO = $data['ENCOUNTER_CARD_NO'];
         $SERIESNUM = $data['SERIESNUM'];
-        $HOS_EMPI = $data['HOS_EMPI'];
+//        $HOS_EMPI = $data['HOS_EMPI'];
         $ENCOUNTER_DATE = $data['ENCOUNTER_DATE'];
         $DEPTNAME = $data['DEPTNAME'];
         $CHIEFCOMPLAINT = $data['CHIEFCOMPLAINT'];
@@ -116,7 +118,7 @@ class CommonServies
             'CLASS_CODE' => $CLASS_CODE,
             'ENCOUNTER_CARD_NO' => $ENCOUNTER_CARD_NO,
             'SERIESNUM' => $SERIESNUM,
-            'HOS_EMPI' => $HOS_EMPI,
+//            'HOS_EMPI' => $HOS_EMPI,
             'ENCOUNTER_DATE' => $ENCOUNTER_DATE,
             'DEPTNAME' => $DEPTNAME,
             'CHIEFCOMPLAINT' => $CHIEFCOMPLAINT,
@@ -153,8 +155,8 @@ class CommonServies
         return rand(0, 1);
     }
 
-    public function handleEXAM($datas, $MEDICAL_INFORMATION) {
-        
+    public function handleEXAM($data, $MEDICAL_INFORMATION) {
+
         $EXAM_APPLICATIONS = array();
         $EXAM_REPORTS = array();
 
@@ -169,7 +171,7 @@ class CommonServies
         $AGE = $MEDICAL_INFORMATION['AGE'];
 
         
-        foreach($datas as $data) {
+//        foreach($datas as $data) {
 
             // 申请单编号/医嘱编号
             // 报告单编号
@@ -219,29 +221,29 @@ class CommonServies
             $EXAM_ITEMNAME = $data['EXAM_ITEMNAME'];
             $EXAM_ITEMNAME_CODE = $data['EXAM_ITEMNAME_CODE'];
             $BODYSITE = $data['BODYSITE'];
-            $OBSERVATIONS_COMMENT = $data['OBSERVATIONS_COMMENT'];
-            $OBSERVATIONS_RESULT = $data['OBSERVATIONS_RESULT'];
-            $RESULT_STATUS_CODE = $data['RESULT_STATUS_CODE'];
-            $HR_RANGE = $data['HR_RANGE'];
+//            $OBSERVATIONS_COMMENT = $data['OBSERVATIONS_COMMENT'];
+//            $OBSERVATIONS_RESULT = $data['OBSERVATIONS_RESULT'];
+//            $RESULT_STATUS_CODE = $data['RESULT_STATUS_CODE'];
+//            $HR_RANGE = $data['HR_RANGE'];
             $HR_ITEMNAME_CODE = $data['HR_ITEMNAME_CODE'];
-            $ORGNAME = $data['ORGNAME'];
-            $ORGCODE = $data['ORGCODE'];
-            $DEPTNAME = $data['DEPTNAME'];
-            $PRACTITIONERNAME = $data['PRACTITIONERNAME'];
-            $AUDITNAME = $data['AUDITNAME'];
-            $REPORTTIME = $data['REPORTTIME'];
+            $ORGNAME = $MEDICAL_INFORMATION['ORGNAME'];
+            $ORGCODE = $MEDICAL_INFORMATION['ORGCODE'];
+            $DEPTNAME = $MEDICAL_INFORMATION['DEPTNAME'];
+//            $PRACTITIONERNAME = $data['PRACTITIONERNAME'];
+//            $AUDITNAME = $data['AUDITNAME'];
+//            $REPORTTIME = $data['REPORTTIME'];
             $STUDYTIME = $data['STUDYTIME'];
-            $REPORT = $data['REPORT'];
+//            $REPORT = $data['REPORT'];
             $HR_ITEMNAME = $data['HR_ITEMNAME'];
-            
+
             // $RECOG_STATUS = $data['RECOG_STATUS'];
             $EXAM_APPLICATION_CODE = $this->getEXAM_APPLICATION_CODE($PATIENT_CODE, $REQUESTID);
             $EXAM_REPORT_CODE = $this->getEXAM_REPORT_CODE($PATIENT_CODE, $REPORTID);
-            $RESULT_STATUS = $this->getRESULT_STATUSByCode($RESULT_STATUS_CODE);
+//            $RESULT_STATUS = $this->getRESULT_STATUSByCode($RESULT_STATUS_CODE);
             $DEVICETYPE = $this->getDEVICETYPEByCode($DEVICETYPE_CODE);
             // $RECOG_STATUS = $this->getRECOG_STATUS($RECOG_STATUS_CODE);
 
-            $EXAM_APPLICATION = [];
+//            $EXAM_APPLICATION = [];
             $EXAM_REPORT = [
                 'MPI' => $MPI,
                 'MPI_KEY' => $MPI_KEY,
@@ -257,22 +259,22 @@ class CommonServies
                 'EXAM_ITEMNAME' => $EXAM_ITEMNAME,
                 'EXAM_ITEMNAME_CODE' => $EXAM_ITEMNAME_CODE,
                 'BODYSITE' => $BODYSITE,
-                'OBSERVATIONS_COMMENT' => $OBSERVATIONS_COMMENT,
-                'OBSERVATIONS_RESULT' => $OBSERVATIONS_RESULT,
-                'RESULT_STATUS_CODE' => $RESULT_STATUS_CODE,
-                'HR_RANGE' => $HR_RANGE,
+//                'OBSERVATIONS_COMMENT' => $OBSERVATIONS_COMMENT,
+//                'OBSERVATIONS_RESULT' => $OBSERVATIONS_RESULT,
+//                'RESULT_STATUS_CODE' => $RESULT_STATUS_CODE,
+//                'HR_RANGE' => $HR_RANGE,
                 'HR_ITEMNAME_CODE' => $HR_ITEMNAME_CODE,
                 'ORGNAME' => $ORGNAME,
                 'ORGCODE' => $ORGCODE,
                 'DEPTNAME' => $DEPTNAME,
-                'PRACTITIONERNAME' => $PRACTITIONERNAME,
-                'AUDITNAME' => $AUDITNAME,
-                'REPORTTIME' => $REPORTTIME,
+//                'PRACTITIONERNAME' => $PRACTITIONERNAME,
+//                'AUDITNAME' => $AUDITNAME,
+//                'REPORTTIME' => $REPORTTIME,
                 'STUDYTIME' => $STUDYTIME,
-                'REPORT' => $REPORT,
+//                'REPORT' => $REPORT,
                 'EXAM_APPLICATION_CODE' => $EXAM_APPLICATION_CODE,
                 'EXAM_REPORT_CODE' => $EXAM_REPORT_CODE,
-                'RESULT_STATUS' => $RESULT_STATUS,
+//                'RESULT_STATUS' => $RESULT_STATUS,
                 'DEVICETYPE' => $DEVICETYPE,
                 'HR_ITEMNAME' => $HR_ITEMNAME,
                 'DOCTORNAME' => $MEDICAL_INFORMATION['DOCTORNAME'],
@@ -280,22 +282,24 @@ class CommonServies
                 'CALL_FLAG' => $MEDICAL_INFORMATION['CALL_FLAG'],
                 // 'RECOG_STATUS' => $RECOG_STATUS,
                 // todo 
-                'create_time' => $REPORTTIME,
+                'create_time' => date('Y-m-d H:i:s')
 
             
             ];        
         
 
-            $EXAM_APPLICATIONS[] = $EXAM_APPLICATION;
+//            $EXAM_APPLICATIONS[] = $EXAM_APPLICATION;
             $EXAM_REPORTS[] = $EXAM_REPORT;
-        }
+//        }
+
         return [
-            'EXAM_APPLICATIONS' => $EXAM_APPLICATIONS,
+//            'EXAM_APPLICATIONS' => $EXAM_APPLICATIONS,
             'EXAM_REPORTS' => $EXAM_REPORTS,
         ];
     }
 
-    public function handleINSPECT_REPORTS($datas, $MEDICAL_INFORMATION) {
+    public function handleINSPECT_REPORTS($params, $MEDICAL_INFORMATION) {
+        $data = $params['INSPECT_REPORTS'];
         $INSPECT_REPORTS = array();
         $INSPECT_REPORT_ITEMS = array();
         
@@ -341,23 +345,23 @@ class CommonServies
         // LAB_HR_ITEMNAME
 
 
-        foreach($datas as $data) {
+//        foreach($datas as $data) {
             $REPORTID = $data['REPORTID'];
             $SPECIMEN_TYPE = $data['SPECIMEN_TYPE'];
             $LAB_ITEMNAME = $data['LAB_ITEMNAME'];
             $LAB_ITEMNAME_TYPE_CODE = $data['LAB_ITEMNAME_TYPE_CODE'];
             $PRACTITIONERNAME = $data['PRACTITIONERNAME'];
             $AUDITNAME = $data['AUDITNAME'];
-            $ORGNAME = $data['ORGNAME'];
-            $ORGCODE = $data['ORGCODE'];
-            $DEPTNAME = $data['DEPTNAME'];
+            $ORGNAME = $MEDICAL_INFORMATION['ORGNAME'];
+            $ORGCODE = $MEDICAL_INFORMATION['ORGCODE'];
+            $DEPTNAME = $MEDICAL_INFORMATION['DEPTNAME'];
             $REPORT_COMMENT = $data['REPORT_COMMENT'];
             $REPORTTIME = $data['REPORTTIME'];
             $REPORT = $data['REPORT'];
             $LAB_HR_ITEMNAME_CODE = $data['LAB_HR_ITEMNAME_CODE'];
             $itemLabDict = $this->patientModel->getItemLab(['BSYBBM'=>$LAB_HR_ITEMNAME_CODE],'ITEMTYPE');
             $itemType = $itemLabDict['ITEMTYPE'] ?? '';
-            $HR_RANGE = $data['HR_RANGE'];
+//            $HR_RANGE = $data['HR_RANGE'];
             $LAB_HR_ITEMNAME = $data['LAB_HR_ITEMNAME'];
             // $SPECIMEN_TYPE = $this->getSPECIMEN_TYPEByCode($SPECIMEN_TYPE_CODE);
             $LAB_ITEMNAME_TYPE = $this->getLAB_ITEMNAME_TYPEByCode($LAB_ITEMNAME_TYPE_CODE);
@@ -389,7 +393,7 @@ class CommonServies
                 'REPORT' => $REPORT,
                 'LAB_HR_ITEMNAME_CODE' => $LAB_HR_ITEMNAME_CODE,
                 'ITEMTYPE'=>$itemType,
-                'HR_RANGE' => $HR_RANGE,
+//                'HR_RANGE' => $HR_RANGE,
                 'LAB_HR_ITEMNAME' => $LAB_HR_ITEMNAME,
                 'SPECIMEN_TYPE' => $SPECIMEN_TYPE,
                 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE,
@@ -403,13 +407,13 @@ class CommonServies
                 'create_time' => $REPORTTIME,
             ];
         
-            $this->handleINSPECT_REPORT_ITEMS($INSPECT_REPORT_ITEMS, $data['INSPECT_REPORT_ITEMS'],[
+            $this->handleINSPECT_REPORT_ITEMS($INSPECT_REPORT_ITEMS, $params['INSPECT_REPORT_ITEMS'],[
                 'REPORTID' => $REPORTID,
                 'INSPECT_REPORT_CODE' => $INSPECT_REPORT_CODE, 
                 'ORGCODE' => $ORGCODE, 
             ]);
             $INSPECT_REPORTS[] = $INSPECT_REPORT;
-        }
+//        }
 
         return [
             'INSPECT_REPORT_ITEMS' => $INSPECT_REPORT_ITEMS,
@@ -473,8 +477,8 @@ class CommonServies
             $MIC = $data['MIC'];
             $LAB_ITEMDETAILINTERPRE = $data['LAB_ITEMDETAILINTERPRE'];
             $LAB_HR_ITEMDETAILNAME_CODE = $data['LAB_HR_ITEMDETAILNAME_CODE'];
-            $HR_RANGE = $data['HR_RANGE'];
-            $RECOG_STATUS = $data['RECOG_STATUS'];
+//            $HR_RANGE = $data['HR_RANGE'];
+//            $RECOG_STATUS = $data['RECOG_STATUS'];
             $LAB_HR_ITEMDETAILNAME = $data['LAB_HR_ITEMDETAILNAME'];
 
             $INSPECT_REPORT_ITEM = [
@@ -495,8 +499,8 @@ class CommonServies
                 'MIC' => $MIC, 
                 'LAB_ITEMDETAILINTERPRE' => $LAB_ITEMDETAILINTERPRE, 
                 'LAB_HR_ITEMDETAILNAME_CODE' => $LAB_HR_ITEMDETAILNAME_CODE, 
-                'HR_RANGE' => $HR_RANGE, 
-                'RECOG_STATUS' => $RECOG_STATUS,
+//                'HR_RANGE' => $HR_RANGE,
+//                'RECOG_STATUS' => $RECOG_STATUS,
                 'LAB_HR_ITEMDETAILNAME' => $LAB_HR_ITEMDETAILNAME, 
             ];
             $INSPECT_REPORT_ITEMS[] = $INSPECT_REPORT_ITEM;

+ 40 - 0
jcjyhr/app/zskk/servies/HrServies.php

@@ -44,6 +44,27 @@ class HrServies
     
 
 
+    public function getShareCheck($ID_CARDNUM, $ORGCODE,$DOCTORCODE,$DEPART,$result): bool|array
+    {
+        $ID_CARDNUM = Gm::encrypt(Config::get('gm.key'),$ID_CARDNUM);
+        $data = array();
+        $patients = $this->patientModel->getPatientsByID_CARDNUM($ID_CARDNUM);
+        $r = false;
+        foreach($patients as $patient) {
+            $return = $this->getRecogViewDetails($patient['PATIENT_CODE'], $ORGCODE,$DOCTORCODE,$DEPART,$result);
+            $data[] = $return;
+            if($return)
+            {
+                $r = true;
+            }
+        }
+        if($result == 1)
+        {
+            return $r;
+        }
+        return $data;
+    }
+
     public function getRecogData($ID_CARDNUM, $ORGCODE): array {
         $ID_CARDNUM = Gm::encrypt(Config::get('gm.key'),$ID_CARDNUM);
         $data = array();
@@ -112,6 +133,25 @@ class HrServies
         return $data;
     }
 
+    public function getRecogViewDetails($PATIENT_CODE,$ORGCODE,$DOCTORCODE,$DEPART,$RESULT): bool|array {
+        $data = null;
+        $WHERE = [];
+        if($ORGCODE)
+        {
+            $WHERE['ORGCODE'] = $ORGCODE;
+        }
+        if($DOCTORCODE)
+        {
+            $WHERE['DOCTORCODE'] = $DOCTORCODE;
+        }
+        if($DEPART)
+        {
+            $WHERE['DEPTNAME'] = $DEPART;
+        }
+        $data = $this->patientServies->getPatientSign(['PATIENT_CODE'=> $PATIENT_CODE],$WHERE,$RESULT);
+        return $data;
+    }
+
 
     public function hanldeHR_RECORDS(&$HR_RECORDS) {
         foreach($HR_RECORDS as &$HR_RECORD) {

+ 118 - 26
jcjyhr/app/zskk/servies/PatientServies.php

@@ -53,25 +53,25 @@ class PatientServies
         $allMapping = [];
         foreach ($all as $k=>$v)
         {
-            $allMapping[$v['MPKEY']][] = $v;
+            $allMapping[$v['mpKey']][] = $v;
         }
         $mappingArr = [];
         foreach ($mapping as $v)
         {
             $childMapping = [];
-            if($v['TYPE'] == 'object' || $v['TYPE'] == 'array')
+            if($v['type'] == 'object' || $v['type'] == 'array')
             {
-                $childMapping = $allMapping[$v['MKEY']] ?? [];
+                $childMapping = $allMapping[$v['mKey']] ?? [];
             }
             $child = [];
             if(!empty($childMapping))
             {
                 foreach ($childMapping as $value)
                 {
-                    $child[$value['MKEY']] = ['key'=>$value['KEY'],'mpKey'=>$value['MPKEY'],'mKey'=>$v['MKEY'],'type'=>$value['TYPE'],'action'=>$v['ACTION']];
+                    $child[$value['mKey']] = ['key'=>$value['key'],'mpKey'=>$value['mpKey'],'mKey'=>$v['mKey'],'type'=>$value['type'],'action'=>$v['action']];
                 }
             }
-            $mappingArr[$v['MKEY']] = ['key'=>$v['KEY'],'mpKey'=>$v['MPKEY'],'mKey'=>$v['MKEY'],'type'=>$v['TYPE'],'child'=>$child,'action'=>$v['ACTION']];
+            $mappingArr[$v['mKey']] = ['key'=>$v['key'],'mpKey'=>$v['mpKey'],'mKey'=>$v['mKey'],'type'=>$v['type'],'child'=>$child,'action'=>$v['action']];
         }
         foreach ($params as $k=>$v)
         {
@@ -100,6 +100,7 @@ class PatientServies
                 }
             }
         }
+        ksort($return);
         return $return;
     }
 
@@ -697,7 +698,77 @@ class PatientServies
      * @throws DbException
      * @throws DataNotFoundException
      */
-    public function getPatient($where): array|string
+    public function getPatientSign($where,$medicalWhere,$RESULT ): bool|array
+    {
+        $patient = $this->patientModel->getPatient($where);
+        if(empty($patient))
+        {
+            return false;
+        }
+        $patient = $patient->toArray();
+        $medical = $this->patientModel->getMedical($patient['PATIENT_CODE'],$medicalWhere);
+        $medical = empty($medical) ? $medical : $medical->toArray();
+        if(empty($medical))
+        {
+            return false;
+        }
+        $exam = $this->patientModel->getExam($patient['PATIENT_CODE'],['RECOG_STATUS'=>'*']);
+        if(!empty($exam) && $RESULT == 1)
+        {
+            return $exam;
+        }
+        $inspect = $this->patientModel->getInspect($patient['PATIENT_CODE']);
+
+        unset($patient['PATIENT_CODE']);
+        $inspectData = [];
+        $return = false;
+        foreach ($inspect as $k=>$v)
+        {
+            $RECOG = 0;
+            if($v['RECOG_STATUS'] == '*' && $RESULT == 1)
+            {
+                $RECOG = 1;
+                $return = true;
+            }
+            $lab = $this->patientModel->getLab($v['INSPECT_REPORT_CODE']);
+            if(!empty($lab))
+            {
+                foreach ($lab as $key=>$value)
+                {
+                    if($value['RECOG_STATUS'] == '*')
+                    {
+                        $RECOG = 1;
+                    }
+                }
+            }
+            if($RECOG == 1)
+            {
+                $return = true;
+                $v['LAB_DATA'] = $lab;
+                $inspectData[] = $v;
+            }
+
+        }
+        $data = [
+            'PATIENT'=>$patient,
+            'MEDICAL_INFORMATION'=>$medical,
+            'EXAM_REPORTS'=>$exam,
+            'INSPECT_REPORTS'=>$inspectData
+        ];
+        if($RESULT == 1)
+        {
+            return $return;
+        }else{
+            return $data;
+        }
+    }
+
+    /**
+     * @throws ModelNotFoundException
+     * @throws DbException
+     * @throws DataNotFoundException
+     */
+    public function getPatient($where,$medicalWhere = []): array|string
     {
         $patient = $this->patientModel->getPatient($where);
         if(empty($patient))
@@ -705,7 +776,7 @@ class PatientServies
             return '无法找到患者信息';
         }
         $patient = $patient->toArray();
-        $medical = $this->patientModel->getMedical($patient['PATIENT_CODE']);
+        $medical = $this->patientModel->getMedical($patient['PATIENT_CODE'],$medicalWhere);
         $medical = empty($medical) ? $medical : $medical->toArray();
         $exam = $this->patientModel->getExam($patient['PATIENT_CODE']);
         $inspect = $this->patientModel->getInspect($patient['PATIENT_CODE']);
@@ -732,12 +803,12 @@ class PatientServies
 
 
     public function checkPostExamReport($params): array {
-        
+
         $PATIENT = $this->commonServies->handlePATIENT($params['PATIENT'], $params['MEDICAL_INFORMATION']);
         $MEDICAL_INFORMATION = $this->commonServies->handleMEDICAL_INFORMATION($params['MEDICAL_INFORMATION'], $PATIENT);
 
         $EXAM = $this->commonServies->handleEXAM($params['EXAM_REPORTS'], $MEDICAL_INFORMATION);
-        $EXAM_APPLICATIONS = $EXAM['EXAM_APPLICATIONS'];
+//        $EXAM_APPLICATIONS = $EXAM['EXAM_APPLICATIONS'];
         $EXAM_REPORTS = $EXAM['EXAM_REPORTS'];
         foreach ($EXAM_REPORTS as &$v)
         {
@@ -750,7 +821,7 @@ class PatientServies
         return [
             "PATIENT" => $PATIENT,
             "MEDICAL_INFORMATION" => $MEDICAL_INFORMATION,
-            "EXAM_APPLICATIONS" => $EXAM_APPLICATIONS,
+//            "EXAM_APPLICATIONS" => $EXAM_APPLICATIONS,
             "EXAM_REPORTS" => $EXAM_REPORTS,
         ];
     }
@@ -760,7 +831,7 @@ class PatientServies
         $PATIENT = $this->commonServies->handlePATIENT($params['PATIENT'], $params['MEDICAL_INFORMATION']);
         $MEDICAL_INFORMATION = $this->commonServies->handleMEDICAL_INFORMATION($params['MEDICAL_INFORMATION'], $PATIENT);
 
-        $reportModel = $this->commonServies->handleINSPECT_REPORTS($params['INSPECT_REPORTS'], $MEDICAL_INFORMATION);
+        $reportModel = $this->commonServies->handleINSPECT_REPORTS($params, $MEDICAL_INFORMATION);
 
         $INSPECT_REPORTS = $reportModel['INSPECT_REPORTS'];
         $INSPECT_REPORT_ITEMS = $reportModel['INSPECT_REPORT_ITEMS'];
@@ -784,14 +855,14 @@ class PatientServies
     /*
      * 上传检查数据
      */
-    public function postExamReport($params): string
+    public function postExamInfo($params): string
     {
         // try {
             $check = $this->checkPostExamReport($params);
 
             $this->handlePatient($check['PATIENT']);
             $MEDICAL_INFORMATION = $check['MEDICAL_INFORMATION'];
-            $information = $this->patientModel->getMedical($MEDICAL_INFORMATION['PATIENT_CODE'],'*');
+            $information = $this->patientModel->getMedical($MEDICAL_INFORMATION['PATIENT_CODE'],[],'*');
             if(!empty($information))
             {
                 $this->patientModel->saveRepeatInformation($information);
@@ -801,18 +872,7 @@ class PatientServies
             $MEDICAL_INFORMATION_INSERT['create_time'] =  $check['EXAM_REPORTS'][0]['create_time'];
             $this->patientModel->saveMedical($MEDICAL_INFORMATION_INSERT);
             $EXAM_REPORTS = $check['EXAM_REPORTS'];
-            $EXAM_REPORTS_INSERT = [];
-            foreach ($EXAM_REPORTS as $k=>$v)
-            {
-                $report = $this->patientModel->getExamReport(['EXAM_REPORT_CODE'=>$v['EXAM_REPORT_CODE']],'*');
-                if(!empty($report))
-                {
-                    $this->patientModel->saveRepeatReport($report);
-                    $this->patientModel->delOldReport(['EXAM_REPORT_CODE'=>$v['EXAM_REPORT_CODE']]);
-                }
-                $EXAM_REPORTS_INSERT[] = $v;
-            }
-            $this->patientModel->saveExamReport($EXAM_REPORTS_INSERT);
+            $this->saveExamData($EXAM_REPORTS);
             $this->saveUploadHospitalPatient($MEDICAL_INFORMATION['PATIENT_CODE']);
             return 'success';
         // }catch (\Exception $e)
@@ -822,6 +882,38 @@ class PatientServies
 
     }
 
+    public function postExamReport($params): string
+    {
+        $EXAM_REPORTS = $this->makeExamData($params['EXAM_REPORTS']);
+        $report = $this->patientModel->getExamReport(['EXAM_REPORT_CODE'=>$EXAM_REPORTS['EXAM_REPORT_CODE']],'*');
+        $report->save($EXAM_REPORTS);
+        return 'success';
+    }
+
+    public function makeExamData($report)
+    {
+        $RESULT_STATUS = $this->commonServies->getRESULT_STATUSByCode($report['RESULT_STATUS_CODE']);
+        $report['RESULT_STATUS'] = $RESULT_STATUS;
+        return $report;
+    }
+
+    public function saveExamData($EXAM_REPORTS)
+    {
+
+        $EXAM_REPORTS_INSERT = [];
+        foreach ($EXAM_REPORTS as $k=>$v)
+        {
+            $report = $this->patientModel->getExamReport(['EXAM_REPORT_CODE'=>$v['EXAM_REPORT_CODE']],'*');
+            if(!empty($report))
+            {
+                $this->patientModel->saveRepeatReport($report);
+                $this->patientModel->delOldReport(['EXAM_REPORT_CODE'=>$v['EXAM_REPORT_CODE']]);
+            }
+            $EXAM_REPORTS_INSERT[] = $v;
+        }
+        $this->patientModel->saveExamReport($EXAM_REPORTS_INSERT);
+    }
+
     public function makeUrl($base64_string)
     {
         if(empty($base64_string))
@@ -1005,7 +1097,7 @@ class PatientServies
 
             $this->handlePatient($check['PATIENT']);
             $MEDICAL_INFORMATION = $check['MEDICAL_INFORMATION'];
-            $information = $this->patientModel->getMedical($MEDICAL_INFORMATION['PATIENT_CODE'],'*');
+            $information = $this->patientModel->getMedical($MEDICAL_INFORMATION['PATIENT_CODE'],[],'*');
             if(!empty($information))
             {
                 $this->patientModel->saveRepeatInformation($information);