'blur1', 'ID_CARDNUM' => 'blur2', 'INSUR_CARD_NO' => 'blur3' ]; protected array $decrypts = ['ID_CARDNUM','NAME','INSUR_CARD_NO','PATIENTNAME','CARDNUM']; public function saveMpi($mpi,$idCard,$mpiKey) { (new Mpi())->save(['MPI'=>$mpi,'ID_CARDNUM'=>$idCard,'MPI_KEY'=>$mpiKey]); } public function getPatientsByID_CARDNUM($ID_CARDNUM) { return (new Patient())->where('ID_CARDNUM', $ID_CARDNUM)->field(['NAME','ID_CARD_CODE','ID_CARDNUM','GENDER_CODE','BIRTH_DATE','PATIENT_CODE'])->select(); } /** * @throws DataNotFoundException * @throws \think\exception\DbException * @throws ModelNotFoundException * @throws DbException */ public function getMpi($idCard) { return (new Mpi())->where('ID_CARDNUM',$idCard)->find(); } /** * @throws DataNotFoundException * @throws \think\exception\DbException * @throws ModelNotFoundException * @throws DbException */ public function getMpiData($where) { return (new Mpi())->where($where)->find(); } public function saveMedical($data):void { $MedicalInformation = new MedicalInformation; $MedicalInformation->save($data); } /** * @throws \Exception */ public function saveDiagnose($data):void { $diagnose = new Diagnose(); $diagnose->saveAll($data); } /** * @throws \Exception */ public function saveApplication($data):void { $ExamApplication = new ExamApplication; $ExamApplication->saveAll($data); } /** * @throws \Exception */ public function saveOrders($data):void { $MedicalOrders = new MedicalOrders; $MedicalOrders->saveAll($data); } /** * @throws \Exception */ public function saveExamReport($data):void { $ExamReport = new ExamReport; $ExamReport->saveAll($data); } /** * @throws \Exception */ public function saveInspectReport($data):void { $InspectReport = new InspectReport; $InspectReport->saveAll($data); } /** * @throws \Exception */ public function saveLabData($data):void { $LabData = new LabData; $LabData->saveAll($data); } public function saveBiInspect($data): void { $biInspect = new BiInspectReport(); $biInspect->saveAll($data); } /** * @throws \Exception */ public function saveLabDataOrganism($data):void { $LabData = new LabDataOrganism; $LabData->saveAll($data); } /** * @throws ModelNotFoundException * @throws DbException * @throws DataNotFoundException */ public function getMapping($where):array { return (new Mapping)->where($where)->select()->toArray(); } /** * @throws ModelNotFoundException * @throws DbException * @throws DataNotFoundException */ public function getAllMapping($where=[]):array { return (new Mapping)->where($where)->select()->toArray(); } /** * @throws ModelNotFoundException * @throws DataNotFoundException * @throws DbException */ public function getPatient($where,$field =['NAME', 'MPI','MPI_KEY', 'GENDER', 'ID_CARD', 'ID_CARD_CODE','ID_CARDNUM','GENDER_CODE','BIRTH_DATE','PATIENT_CODE','NAME AS PATIENTNAME','ID_CARDNUM AS CARDNUM'] ) { return (new Patient())->where($where)->field($field)->find(); } 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)->where($medicalWhere)->field($field)->find(); } public function getMedicalData($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($medicalWhere)->field($field)->find(); } public function getDiagnoses($patientCode) { return (new Diagnose())->where('PATIENT_CODE',$patientCode)->field(['DIAGNOSECODE','DIAGNOSENAME'])->select()->toArray(); } public function getApplication($patientCode) { return (new ExamApplication())->where('PATIENT_CODE',$patientCode)->field(['EXAM_APPLICATION_CODE','REQUESTID','NAME','SERIESNUM','DEVICETYPE','DEVICETYPE_CODE','EXAM_ITEMNAME','EXAM_ITEMNAME_CODE','BODYSITE_CATEG','BODYSITE_CATEG_CODE','BODYSITE','EXAM_METHOD','ORGCODE','ORGNAME','DEPTNAME','PRACTITIONERNAME','REQUESTTIME','GENDER','GENDER_CODE','AGE'])->select()->toArray(); } public function getOrders($patientCode) { 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,$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)->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) { return (new ExamReport())->where($where)->field($field)->find(); } public function getInspect($patientCode,$where=[]) { // 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)->where($where)->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) { return (new InspectReport())->where($where)->field($field)->find(); } public function getLab($reportCode) { // return (new LabData())->where('INSPECT_REPORT_CODE',$reportCode)->field(['EXAM_REQUESTID','REPORTID', 'ORGCODE', 'LAB_ITEMDETAILNAME', 'LAB_ITEMDETAILNAME_CODE', 'LAB_ITEMDETAILNAME_NUMBER', 'LAB_ITEMDETAILVALUE', 'LAB_ITEMDETAILSPEC', 'LAB_ITEMDETAILINTERPRETATION', 'LAB_ITEMDETAILRANGE', 'CRITICAL_RANGE', 'LAB_HR_ITEMDETAIL_STATUS', 'LAB_HR_ITEMDETAILNAME', 'LAB_HR_ITEMDETAILNAME_CODE'])->select()->toArray(); return (new LabData())->where('INSPECT_REPORT_CODE',$reportCode)->field(['LAB_ITEMDETAILNAME','LAB_ITEMDETAILNAME_EN','LAB_ITEMDETAILNAME_NUMBER','LAB_ITEMDETAILVALUE','LAB_ITEMDETAILSPEC','LAB_ITEMDETAILINTERPRETATION','LAB_ITEMDETAILINTERPRETATION_BIA','LAB_ITEMDETAILRANGE','CRITICAL_RANGE','LAB_METHOD','KB','MIC','LAB_ITEMDETAILINTERPRE','LAB_HR_ITEMDETAILNAME_CODE','LAB_HR_ITEMDETAILNAME','HR_RANGE','RECOG_STATUS','LAB_ITEMDETAILNAME_CODE'])->order('LAB_ITEMDETAILNAME_NUMBER')->select()->toArray(); } public function updateMiddleStatus($id,$update):void { (new MiddleStorage())->where('id',$id)->update($update); } public function getMpiByKey($key) { return (new Mpi())->where('MPI_KEY',$key)->value('mpi'); } public function getDictNameByCode($code, $type) { return (new Commondata())->where('code',$code)->where('type', $type)->value('name'); } public function saveRepeatData($data) { (new RepeatPost())->save($data); } public function HospitalPatient($data) { $model = new HospitalPatient(); if(empty($data['MPI_KEY'])) { $model->where('PATIENT_CODE', $data['PATIENT_CODE'])->delete(); }else{ $info = $model->where('PATIENT_CODE', $data['PATIENT_CODE'])->find(); if (empty($info)) { $model->save($data); // HospitalPatient::insert($data); } else { // $info->data($data); // $model->where('PATIENT_CODE',$data['PATIENT_CODE'])->update($data); $info->save($data); // HospitalPatient::where('PATIENT_CODE',$data['PATIENT_CODE'])->update($data); } } } public function saveRepeatPatient($data): void { $model = new DelPatient(); unset($data['ID']); $model->save($data); } public function delOldPatient($where): void { $this->where($where)->delete(); } public function saveRepeatInformation($data): void { $model = new DelMedicalInformation(); unset($data['ID']); $model->save($data); } public function delOldInformation($where): void { $model = new MedicalInformation(); $model->where($where)->delete(); } public function saveRepeatReport($data): void { $model = new DelExamReport(); unset($data['ID']); $model->save($data); } public function delOldReport($where): void { $model = new ExamReport(); $model->where($where)->delete(); } public function saveRepeatInspect($data): void { $model = new DelInspectReport(); unset($data['ID']); $model->save($data); } public function delOldInspect($where): void { $model = new InspectReport(); $model->where($where)->delete(); } public function getOldLab($where) { $arr = (new LabData())->where('INSPECT_REPORT_CODE','in',$where)->select()->toArray(); return $arr; } public function delOldLab($where) { (new LabData())->where('INSPECT_REPORT_CODE','in',$where)->delete(); } public function saveRepeatLab($data) { $model = new DelLabData(); $model->saveAll($data); } public function getBiInspect($where) { $arr = (new BiInspectReport())->where('INSPECT_REPORT_CODE','in',$where)->select()->toArray(); return $arr; } public function delBiInspect($where) { (new BiInspectReport())->where('INSPECT_REPORT_CODE','in',$where)->delete(); } public function saveRepeatBiInspect($data) { $model = new DelBiInspectReport(); $model->saveAll($data); } public function getItemLab($where, $value) { $model = new Labitem(); return $model->where($where)->field($value)->find(); } public function getHospitalData($param) { $model = new TestHospitalData(); return $model->where('TYPE',$param['type'] ?? 1)->select()->toArray(); } public function getCheck($param) { $model = new TestCheckRecognition(); return $model->where('TYPE',$param['type'] ?? 1)->select()->toArray(); } public function getInpection($param) { $model = new TestInspectionRecognition(); return $model->where('TYPE',$param['type'] ?? 1)->select()->toArray(); } }