123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592 |
- <?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
- {
- /**
- * 预约登记
- *
- * @ApiTitle (预约登记)
- * @ApiSummary (预约登记)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/index)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'sessionid': 'a17z7a7a8f9g9rh9d89jio',
- 'info' : ''
- }
- *")
- **/
- 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()]);
- }
- }
- /**
- * 预约登记用户信息
- *
- * @ApiTitle (预约登记用户信息)
- * @ApiSummary (预约登记用户信息)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/exam_info)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
- * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
- * @ApiParams (name="param[id]", type="string", sample="", description="预约登记exams表id值<必填>")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'sessionid': 'a17z7a7a8f9g9rh9d89jio',
- 'info' : ''
- }
- *")
- **/
- public function exam_info(){
- try{
- $sessionid = $_REQUEST['sessionid'];
- $examid = $_REQUEST['param']['id'];
- $examinfo = DB::table('exams')->where('id',$examid)->field(['id','exam_status','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();
- $examinfo['family_ill'] = explode(',',$examinfo['family_ill']);
- $examinfo['anamnesis'] = explode(',',$examinfo['anamnesis']);
- $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()]);
- }
- }
- /**
- * 检查类别
- *
- * @ApiTitle (检查类别)
- * @ApiSummary (检查类别)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/exam_class)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['CT','CR',','MR']
- }
- *")
- **/
- 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]);
- }
- /**
- * 检查子类
- *
- * @ApiTitle (检查子类)
- * @ApiSummary (检查子类)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/exam_sub_class)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['CR平片','CR造影']
- }
- *")
- **/
- public function exam_sub_class(){
- $exam_subclass = DB::table('exam_subclass')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_subclass]);
- }
- /**
- * 检查部位
- *
- * @ApiTitle (检查部位)
- * @ApiSummary (检查部位)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/bodypart)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['头部','腿部']
- }
- *")
- **/
- public function bodypart(){
- $bodypart = DB::table('bodypart')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$bodypart]);
- }
- /**
- * 检查设备
- *
- * @ApiTitle (检查设备)
- * @ApiSummary (检查设备)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/device)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['西门子']
- }
- *")
- **/
- public function device(){
- $device = DB::table('device')->where('status',1)->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$device]);
- }
- /**
- * 检查项目
- *
- * @ApiTitle (检查项目)
- * @ApiSummary (检查项目)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/exam_project)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['五官颈部','骨关节',]
- }
- *")
- **/
- public function exam_project(){
- $exam_project = DB::table('exam_project')->cache(300)->select();
- return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam_project]);
- }
- /**
- * 执行科室
- *
- * @ApiTitle (执行科室)
- * @ApiSummary (执行科室)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/department)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['内科','外科',]
- }
- *")
- **/
- 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]);
- }
- /**
- * 预约登记保存
- *
- * @ApiTitle (预约登记保存)
- * @ApiSummary (预约登记保存)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/save)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
- * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
- * @ApiParams (name="param[exam_id]", type="string", sample="", description="预约登记exams表id值<必填>")
- * @ApiParams (name="param[pnum]", type="string", sample="", description="病历号<必填>")
- * @ApiParams (name="param[name]", type="string", sample="", description="患者姓名<选填>")
- * @ApiParams (name="param[phone]", type="string", sample="", description="手机号<选填>")
- * @ApiParams (name="param[sex]", type="string", sample="", description="性别<选填>")
- * @ApiParams (name="param[age]", type="string", sample="", description="年龄<选填>")
- * @ApiParams (name="param[card_num]", type="string", sample="", description="身份证号<选填>")
- * @ApiParams (name="param[anamnesis]", type="string", sample="", description="既往史<选填>")
- * @ApiParams (name="param[family_ill]", type="string", sample="", description="家族史<选填>")
- * @ApiParams (name="param[birthday]", type="string", sample="", description="生日<选填>")
- * @ApiParams (name="param[checknum]", type="string", sample="", description="检查号<必填>")
- * @ApiParams (name="param[checkclass]", type="string", sample="", description="检查类<选填>")
- * @ApiParams (name="param[checkchild]", type="string", sample="", description="检查子类<选填>")
- * @ApiParams (name="param[body]", type="string", sample="", description="检查部位<选填>")
- * @ApiParams (name="param[device]", type="string", sample="", description="检查设备<选填>")
- * @ApiParams (name="param[checktime]", type="string", sample="", description="检查时间<选填>")
- * @ApiParams (name="param[department]", type="string", sample="", description="检查科室(执行科室)<选填>")
- * @ApiParams (name="param[cost]", type="string", sample="", description="实际费用<选填>")
- * @ApiParams (name="param[project]", type="string", sample="", description="检查项目<选填>")
- * @ApiParams (name="param[illness]", type="string", sample="", description="主诉<选填>")
- * @ApiParams (name="param[phys_sign]", type="string", sample="", description="体征<选填>")
- * @ApiParams (name="param[clin_symp]", type="string", sample="", description="临床症状<选填>")
- * @ApiParams (name="param[remark]", type="string", sample="", description="备注<选填>")
- * @ApiParams (name="param[clin_diag]", type="string", sample="", description="临床诊断<选填>")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="msg", type="integer", required=true, sample="0", description="返回消息")
- * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'msg' : '保存成功',
- 'sessionid': 'a17z7a7a8f9g9rh9d89jio'
- }
- *")
- **/
- 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'] : '';
- $patient_info['card_num'] = isset($param['card_num']) ? $param['card_num'] : '';
- $exam_info = array();
- if(isset($param['anamnesis']) && !empty($param['anamnesis'])){
- $ana = implode(',',$param['anamnesis']);
- $exam_info['anamnesis'] = $ana;
- }
- if(isset($param['family_ill']) && !empty($param['family_ill'])){
- $fam = implode(',',$param['family_ill']);
- $exam_info['family_ill'] = $fam;
- }
- if(isset($param['birthday']) && !empty($param['birthday'])){
- $patient_info['birthday'] = str_replace('-', '', $param['birthday']);
- }
- if(isset($param['exam_id']) && !empty($param['exam_id'])){
- $pid = DB::table('exams')->where('id',$param['exam_id'])->field('patient_id,exam_status')->find();
- if($pid['exam_status'] >= 3){
- return json_encode(['status'=>'fail','code'=>'1130','msg'=>'已经检查完毕,不允许在此修改']);
- }
- //存在并且有值 则修改
- $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'] = str_replace('-', '', $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['createdAt'] = 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['createdAt'] = 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()]);
- }
- }
- /**
- * 生成病历号
- *
- * @ApiTitle (生成病历号)
- * @ApiSummary (生成病历号)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/build_patient_num)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : 'P1810250010'
- }
- *")
- **/
- 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]);
- }
- /**
- * 生成检查号
- *
- * @ApiTitle (生成检查号)
- * @ApiSummary (生成检查号)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/build_check_num)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiParams (name="check_class", type="string", required=true, description="检查类")
- * @ApiParams (name="pnum", type="string", required=true, description="病历号")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : 'CT1810250010'
- }
- *")
- **/
- 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();
- }
- }
- /**
- * 家族病史
- *
- * @ApiTitle (家族病史)
- * @ApiSummary (家族病史)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/family_ill)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : ['头疼','通风']
- }
- *")
- **/
- 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]);
- }
- /**
- * 疾病史
- *
- * @ApiTitle (疾病史)
- * @ApiSummary (疾病史)
- * @ApiSector (远程诊断)
- * @ApiMethod (POST)
- * @ApiRoute (/inter/inspectregister/illness)
- * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
- * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
- * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
- * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串,缓存的数据key")
- * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
- * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
- * @ApiReturn (data="
- {
- 'status': ok,
- 'code': '0000',
- 'info' : [头疼','中风']
- }
- *")
- **/
- 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]);
- }
- }
|