123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- <?php
- namespace app\inter\controller;
- use think\Controller;
- use think\Db;
- use app\common\library\UUIDs;
- use think\Session;
- use app\common\library\ResultTools;
- use think\Log;
- use think\Cache;
- use think\Request;
- use app\common\library\Verify;
- class Inspectregister extends Base
- {
- public function index(){
- try{
- $sessionid = $_REQUEST['sessionid'];
- log::record('-------------------------');
- log::record($_REQUEST);
- log::record('-------------------------');
- $doctor = Cache::get($sessionid);
- $info = array();
- // 科室
- $department = DB::table('department')->where('institution_id',$doctor['institution_id'])->cache(300)->field('id','department_name')->select();
- $info['department'] = $department;
- // 机构
- $doctor_department = DB::table('department')->where('id',$doctor['department_id'])->cache(300)->field('id,department_name')->find();
- $info['execute_department'] = $doctor_department;
- log::record('--------返回信息-----------------');
- log::record($info);
- log::record('-----------返回信息--------------');
- // Cache::set('inspectregister_index',$info);
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid]);
- }catch(\Exception $e ){
- return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
- }
- }
- public function exam_info(){
- try{
- $sessionid = $_REQUEST['sessionid'];
- $examid = $_REQUEST['param']['id'];
- $examinfo = DB::table('exams')->where('id',$examid)->field(['id','accession_num','exam_class','exam_sub_class','body_part','device','exam_datetime','anamnesis','family_ill','dept_id','charge','exam_project','illness_desc','phys_sign','clin_symp','remark','clin_diag','hopitalized_no','bed_no','patient_id'])->find();
- $exam_class = DB::table('constant')->where('id',$examinfo['exam_class'])->field('constant_value as name')->cache(300)->find();
- $department = DB::table('department')->where('id',$examinfo['dept_id'])->field('department_name')->find();
- $examinfo['dept_name'] = $department['department_name'];
- $examinfo['exam_class_name'] = $exam_class['name'];
- $exam_sub_class = DB::table('exam_subclass')->where('id',$examinfo['exam_sub_class'])->field('name')->cache(300)->find();
- $examinfo['exam_subclass_name'] = $exam_sub_class['name'];
- $body_part = DB::table('bodypart')->where('id',$examinfo['body_part'])->field('name')->cache(300)->find();
- $examinfo['bodypart_name'] = $body_part['name'];
- $device = DB::table('device')->where('id',$examinfo['device'])->field('name')->cache(300)->find();
- $examinfo['device_name'] = $device['name'];
- $exam_project = DB::table('exam_project')->where('id',$examinfo['exam_project'])->field('name')->find();
- $examinfo['exam_project_name'] = $exam_project['name'];
- $patientinfo = DB::table('patient_infos')->where('id',$examinfo['patient_id'])->field(['name','sex','age','phone','birthday',' temp_patient_id'])->find();
- $info = array_merge($examinfo,$patientinfo);
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$info,'sessionid'=>$sessionid]);
- }catch(\Exception $e ){
- return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
- }
- }
- //检查类别
- public function exam_class(){
- // $sessionid = $_REQUEST['sessionid'];
- // $doctor = Cache::get($sessionid);
- $exam_class = DB::table('constant')->where('parent_id','exam_class')->field(['id','constant_value as name'])->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_class]);
- }
- //检查子类
- public function exam_sub_class(){
- $exam_subclass = DB::table('exam_subclass')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_subclass]);
- }
- //检查部位
- public function bodypart(){
- $bodypart = DB::table('bodypart')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$bodypart]);
- }
- //检查设备
- public function device(){
- $device = DB::table('device')->where('status',1)->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$device]);
- }
- //检查项目
- public function exam_project(){
- $exam_project = DB::table('exam_project')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_project]);
- }
- //执行科室
- public function department(){
- $sessionid = $_REQUEST['sessionid'];
- $doctor = Cache::get($sessionid);
- $department = DB::table('department')->where('is_report',1)->where('institution_id',$doctor['institution_id'])->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$department]);
- }
- public function save(){
- try{
- log::record('--------数据保存-----------------');
- log::record($_REQUEST);
- log::record('-------------------------');
- // 登记医生 5
- $sessionid = Request::instance()->param('sessionid');
- $return = Verify::check_role($sessionid,5);
- if($return != 1){
- return json_encode(['status'=>'fail','code'=>'1029','msg'=>'没有操作权限']);
- }
- $doctor = Cache::get($sessionid);
- $param = $_REQUEST['param'];
- Verify::registerCheck($param);
- //基本信息
- $patient_info = array();
- $patient_info['temp_patient_id'] = isset($param['pnum']) ? $param['pnum'] : '';
- $patient_info['name'] = isset($param['name']) ? $param['name'] : '';
- $patient_info['phone'] = isset($param['phone']) ? $param['phone'] : '';
- $patient_info['sex'] = isset($param['sex']) ? $param['sex'] : '';
- $patient_info['age'] = isset($param['age']) ? $param['age'] : '';
- if(isset($param['anamnesis']) && !empty($param['anamnesis'])){
- $ana = implode(',',$param['anamnesis']);
- $patient_info['anamnesis'] = $ana;
- }
- if(isset($patient_info['family_ill']) && !empty($patient_info['family_ill'])){
- $fam = implode(',',$patient_info['family_ill']);
- $patient_info['family_ill'] = $fam;
- }
- if(isset($param['birthday']) && !empty($param['birthday'])){
- $patient_info['birthday'] = $param['birthday'];
- }
- $exam_info = array();
- if(isset($param['exam_id']) && !empty($param['exam_id'])){
- $pid = DB::table('exams')->where('id',$param['exam_id'])->field('patient_id')->find();
- //存在并且有值 则修改
- $patient = DB::table('patient_infos')->where('temp_patient_id',$pid['patient_id'])->update($patient_info);
- }else{
- $p = DB::table('patient_infos')->where('temp_patient_id',$param['pnum'])->find();
- if($p){
- return json_encode(['status'=>'fail','code'=>'1030','msg'=>'病历号已存在,请更改']);
- }
- $patient_info['id'] = UUids::uuid16();
- //不存在或者没有值则添加
- $patient = DB::table('patient_infos')->insert($patient_info);
- $exam_info['patient_id'] = $patient_info['id'];
- }
- //检查信息和申请信息
- $exam_info['id'] = UUIDs::uuid16();
- $exam_info['institution_id'] = $doctor['institution_id'];
- $exam_info['exam_status'] = 1; // 登记完成
- $exam_info['register_datetime'] = date('Y-m-d : H:i:s');
- $exam_info['phone'] = $doctor['phone'];
- $exam_info['patient_num'] = isset($param['pnum']) ? $param['pnum'] : '';
- $exam_info['hopitalized_no'] = isset($param['hopitalized_no']) ? $param['hopitalized_no'] : '';
- $exam_info['bed_no'] = isset($param['bed_no']) ? $param['bed_no'] : '';
- $exam_info['accession_num'] = isset($param['checknum']) ? $param['checknum'] : '';
- $exam_info['exam_class'] = isset($param['checkclass']) ? $param['checkclass'] : '';
- $exam_info['exam_sub_class'] = isset($param['checkchild']) ? $param['checkchild'] : '';
- $exam_info['body_part'] = isset($param['body']) ? $param['body'] : '';
- $exam_info['device'] = isset($param['device']) ? $param['device'] : '';
- if(isset($param['checktime']) && !empty($param['checktime'])){
- $exam_info['exam_datetime'] = $param['checktime'];
- }
- $exam_info['dept_id'] = isset($param['department']) ? $param['department'] : '';
- $exam_info['charge'] = isset($param['cost']) ? $param['cost'] : '';
- $exam_info['exam_project'] = isset($param['project']) ? $param['project'] : '';
- $exam_info['illness_desc'] = isset($param['illness']) ? $param['illness'] : '';
- $exam_info['phys_sign'] = isset($param['phys_sign']) ? $param['phys_sign'] : '';
- $exam_info['clin_symp'] = isset($param['clin_symp']) ? $param['clin_symp'] : '';
- $exam_info['remark'] = isset($param['remark']) ? $param['remark'] : '';
- $exam_info['clin_diag'] = isset($param['clin_diag']) ? $param['clin_diag'] : '';
- $exam_info['register'] = $doctor['id'];
- $exam_info['ctime'] = date('Y-m-d H:i:s',time());
- if(isset($param['exam_id']) && !empty($param['exam_id'])){
- $exam = DB::table('exams')->where('id',$param['exam_id'])->update($exam_info);
- }else{
- $exam_info['ctime'] = date('Y-m-d H:i:s',time());
- $exam = DB::table('exams')->insert($exam_info);
- }
- return json_encode(['status'=>'ok','code'=>'0000','msg'=>'保存成功','sessionid'=>$sessionid]);
- }catch(\Exception $e ){
- return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
- }
- }
- public function build_patient_num(){
- $sessionid = $_REQUEST['sessionid'];
- if(Cache::get('P_'.$sessionid)){
- return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get('P_'.$sessionid)]);
- }
- $num = $this->getNum('P');
- Cache::set('P_'.$sessionid,$num,5);
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$num]);
- }
- public function build_check_num(){
- $sessionid = $_REQUEST['sessionid'];
- $front = $_REQUEST['check_class'];
- $pnum = $_REQUEST['pnum'];
- if(Cache::get($front.'_'.$pnum)){
- return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get($front.'_'.$pnum)]);
- }
- if(Cache::get($front.'_'.$sessionid)){
- return json_encode(['status'=>'ok','code'=>'0000','info'=>Cache::get($front.'_'.$sessionid)]);
- }
- $cname = DB::table('constant')->where('id',$front)->cache(300)->field('constant_value as name')->find();
- $num = $this->getNum($cname['name']);
- Cache::set($front.'_'.$sessionid,$num,5);
- Cache::set($front.'_'.$pnum,$num,600);
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$num]);
- }
- public function getNum($head){
- if(!Cache::get('lock')){
- //没有锁
- Cache::set('lock','11');
- $date = $head.date('ymd',time());
- if(!Cache::get($date)){
- Cache::set($date,1,86400);
- $datenum = 1;
- }else{
- //自增
- Cache::inc($date);
- $datenum = Cache::get($date);
- }
- $dnum = '';
- switch(strlen($datenum)){
- case 1:
- $dnum = $date.'000'.$datenum;
- break;
- case 2:
- $dnum = $date.'00'.$datenum;
- break;
- case 3:
- $dnum = $date.'0'.$datenum;
- break;
- default:
- $dnum =$date.$datenum;
- break;
- }
- Cache::rm('lock');
- return $dnum;
- }else{
- //当接口被其他人占用时 调用自身重新获取字符串
- sleep(1);
- self::getNum();
- }
- }
- public function family_ill(){
- $family_ill = DB::table('constant')->where('parent_id','family_ill')->cache(300)->field('constant_key,constant_value')->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$family_ill]);
- }
- public function illness(){
- $illness = DB::table('constant')->where('parent_id','illness')->cache(300)->field('constant_key,constant_value')->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$illness]);
- }
- }
|