Browse Source

添加外链接口

lgy 1 month ago
parent
commit
0dd35d6c68

+ 1 - 1
jcjyhr/app/admin/controller/Option.php

@@ -35,7 +35,7 @@ class Option extends Backend
     public function getInsList(): void
     {
         $model = new Institution();
-        $res = $model->field(['id as code','name'])->where('status', 1)->select()->toArray();
+        $res = $model->field(['institution_code as code','name'])->where('status', 1)->select()->toArray();
         $this->success('', ['list' => $res]);
     }
 

+ 105 - 0
jcjyhr/app/zskk/controller/Wechat.php

@@ -0,0 +1,105 @@
+<?php
+declare (strict_types=1);
+
+namespace app\zskk\controller;
+
+use app\common\controller\ZskkApiController;
+use app\common\library\Upload;
+use app\zskk\servies\WechatServies;
+
+class Wechat extends ZskkApiController
+{
+    public function login(WechatServies $servies): void
+    {
+        $params = $this->request->post();
+        $data = $servies->checkUser($params);
+        if(empty($data)){
+            $this->error('用户名或密码错误');
+        }else{
+            $this->success('success',$data);
+        }
+    }
+
+    public function getAllCard(WechatServies $servies)
+    {
+        $params = $this->request->post();
+        $data = $servies->getCard($params);
+        $this->success('success',$data);
+    }
+
+    public function getOneCard(WechatServies $servies)
+    {
+        $params = $this->request->post();
+        $data = $servies->getOneCard($params);
+        $this->success('success',$data);
+    }
+
+    public function delCard(WechatServies $servies)
+    {
+        $params = $this->request->post();
+        $data = $servies->delCard($params);
+        $this->success('success',$data);
+    }
+
+    public function export(WechatServies $servies)
+    {
+        set_time_limit(0);
+        // 获取文件
+        $file = $this->request->file('file');
+        if (!$file) {
+            $this->error('上传文件错误');
+        }
+        $attachment = '';
+        try {
+            $upload = new Upload($file);
+            $attachment = $upload->upload(null, 1);
+            unset($attachment['create_time'], $attachment['quote']);
+        } catch (\Throwable $e) {
+            $this->error($e->getMessage());
+        }
+
+        if (!is_file($_SERVER['DOCUMENT_ROOT'].$attachment['url'])) {
+            $this->error(__('No results were found'));
+        }
+        $url = $_SERVER['DOCUMENT_ROOT'].$attachment['url'];
+        if (!(is_file($url))) {
+            $this->error('文件获取失败');
+        }
+        // 读取内容
+        $excel_data = read_excel($url);
+        if (empty($excel_data)) {
+            $this->error('请填写导入数据');
+        }
+        $data = [];
+        foreach ($excel_data as $key=>$val) {
+            foreach ($val as &$v) {
+                $v = str_replace(' ', '', trim($v));
+                $v = str_replace("\xC2\xA0", '', $v);
+            }
+            unset($v);
+            $info = $servies->checkPostcardUser($val[0],$val[7]);
+            if(!empty($info)){
+                continue;
+            }
+            $data[] = [
+                'NAME'=>$val[0],                    //姓名
+                'SEX'=>$val[1],                     //性别
+                'DEPART'=>$val[2],                  //科室
+                'TITLE'=>$val[3],                   //职称
+                'AREA'=>$val[4],                    //所在地
+                'AGE'=>$val[5],                     //年龄
+                'COMPANY'=>$val[6],                 //所属单位
+                'PHONE'=>$val[7],                   //手机号
+                'ADEPT'=>$val[8],                   //擅长-备注
+                'NATIVE'=>$val[9],                  //籍贯
+            ];
+        }
+        if(!empty($data))
+        {
+            $servies->saveAllWechat($data);
+        }else{
+            $this->error('导入失败,未读取到数据');
+        }
+        $this->success('导入成功');
+    }
+}

+ 5 - 0
jcjyhr/app/zskk/model/Patient.php

@@ -175,6 +175,11 @@ class Patient extends ZskkModel
         return (new MedicalInformation())->where('PATIENT_CODE',$patientCode)->where($medicalWhere)->field($field)->find();
     }
 
+    public function getOneMedicalInformation($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 getMedicalInformation($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();

+ 12 - 0
jcjyhr/app/zskk/model/Postcard.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\zskk\model;
+
+use app\common\model\ZskkModel;
+/**
+ * WechatUser 模型
+ */
+class Postcard extends ZskkModel
+{
+
+}

+ 12 - 0
jcjyhr/app/zskk/model/WechatUser.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\zskk\model;
+
+use app\common\model\ZskkModel;
+/**
+ * WechatUser 模型
+ */
+class WechatUser extends ZskkModel
+{
+
+}

+ 3 - 2
jcjyhr/app/zskk/servies/HrServies.php

@@ -260,7 +260,7 @@ class HrServies
             'D' => '1',
             default => $age_last,
         };
-        $data['AGE_DAY'] = $last*$age_num;
+        $data['AGE_DAY'] = (int)$last*(int)$age_num;
         $data['ID_CARDNUM'] = $patient['ID_CARDNUM'];
         $data['MPI'] = $patient['MPI'];
         $data['ENCOUNTER_DATE'] = $medical['ENCOUNTER_DATE'];  // 就诊时间
@@ -403,7 +403,8 @@ class HrServies
        
         $this->hanldeHR_RECORDSAndToken($HR_RECORDS, $TOKEN);
          // 获取token请求时间和PATIENT_CODE删除时间和内容做对比
-        $this->_saveRecogViewDetail($HR_RECORDS);
+        $where = $this->_saveRecogViewDetail($HR_RECORDS);
+        $this->saveHospitalHrPatient($where);
     }
 
 

+ 2 - 1
jcjyhr/app/zskk/servies/PatientServies.php

@@ -1436,7 +1436,8 @@ class PatientServies
 
     public function getMedical($mpi)
     {
-        $arr = $this->patientModel->getMedical($mpi);
+        $where = ['mpi'=>$mpi];
+        $arr = $this->patientModel->getOneMedicalInformation($where);
         return $arr;
     }
 

+ 95 - 0
jcjyhr/app/zskk/servies/WechatServies.php

@@ -0,0 +1,95 @@
+<?php
+declare (strict_types=1);
+
+namespace app\zskk\servies;
+
+use app\admin\model\dict\Commondata;
+use app\admin\servies\bi\BaseQcBiServies;
+use app\zskk\model\BiInspectReport;
+use app\zskk\model\ExamReport;
+use app\zskk\model\HrRecord;
+use app\zskk\model\InspectReport;
+use app\zskk\model\MedicalInformation;
+use app\zskk\model\Postcard;
+use app\zskk\model\WechatUser;
+use think\facade\Cache;
+
+class WechatServies
+{
+    public $postcardModel = null;
+    public $wechatuserModel = null;
+    public function __construct(WechatUser $wechatuserModel,Postcard $postcardModel)
+    {
+//        parent::__construct();
+        $this->postcardModel = $postcardModel;
+        $this->wechatuserModel = $wechatuserModel;
+    }
+
+
+    public function checkUser($params)
+    {
+        if(empty($params['username']) || empty($params['password'])){
+            return [];
+        }
+        $user = $this->wechatuserModel->where('username', $params['username'])->find();
+        if(empty($user)){
+            return [];
+        }
+        if($user['PASSWORD'] != md5($params['password'])){
+            return [];
+        }
+        unset($user['PASSWORD']);
+        $key = $params['username'].rand(1000,9999);
+        Cache::set($key,$user);
+        $user['key'] = $key;
+        return $user;
+    }
+
+    public function getCard($params)
+    {
+        $where = [];
+        if(!empty($params['age'])){
+            $where[] = ['age','between',explode(',',$params['age'])];
+        }
+        if(!empty($params['sex'])){
+            $where['sex'] = $params['sex'];
+        }
+        if(!empty($params['depart'])){
+            $where[] = ['depart' ,'in',explode(',',$params['depart'])];
+        }
+        if(!empty($params['title'])){
+            $where['title'] = $params['title'];
+        }
+        if(!empty($params['area'])){
+            $where['area'] = $params['area'];
+        }
+        $list = $this->postcardModel->where($where)->page((int)$params['page'],(int)$params['num'])->select()->toArray();
+        $total = $this->postcardModel->where($where)->count();
+        return ['list'=>$list,'total'=>$total];
+    }
+
+    public function getOneCard($params)
+    {
+        $id = $params['id'];
+        $list = $this->postcardModel->where('id',$id)->find()->toArray();
+        return $list;
+    }
+
+    public function delCard($params)
+    {
+        $id = $params['id'];
+        $list = $this->postcardModel->where('id',$id)->delete();
+        return $list;
+    }
+
+    public function checkPostcardUser($name,$phone)
+    {
+        $user = $this->postcardModel->where('name', $name)->where('phone',$phone)->find();
+        return $user;
+    }
+
+    public function saveAllWechat($arr)
+    {
+        $this->postcardModel->saveAll($arr);
+    }
+}