first commit
This commit is contained in:
727
digital_doctor/application/api/controller/Hdruserbaseinfo.php
Normal file
727
digital_doctor/application/api/controller/Hdruserbaseinfo.php
Normal file
@@ -0,0 +1,727 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use think\Db;
|
||||
use app\common\model\TabConf;
|
||||
use wanghua\general_utility_tools_php\file\upload\FileUpload;
|
||||
use wanghua\general_utility_tools_php\gpt\chat\ChatGPT;
|
||||
use wanghua\general_utility_tools_php\http\Curl;
|
||||
use wanghua\general_utility_tools_php\Mmodel;
|
||||
use wanghua\general_utility_tools_php\SundryConfig;
|
||||
use wanghua\general_utility_tools_php\tool\Tools;
|
||||
use wanghua\general_utility_tools_php\Validate;
|
||||
use think\Controller;
|
||||
|
||||
|
||||
/**
|
||||
* 数字人修改基本信息
|
||||
*
|
||||
* Class Hdruserbaseinfo
|
||||
* @package app\api\controller
|
||||
*/
|
||||
class Hdruserbaseinfo extends BaseHttpApi
|
||||
{
|
||||
protected $controller_comments = '统一问诊用户基本信息';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* desc:获取统一问诊用户基本信息列表(后台病历管理列表)
|
||||
*
|
||||
* api/Hdruserbaseinfo/getHdruserbaseinfoList
|
||||
*
|
||||
* 参数:
|
||||
* 带分页
|
||||
* current_page 当前页码
|
||||
* list_rows 每页显示条数 默认15
|
||||
* doctor 所属医生
|
||||
* id ID
|
||||
* date 日期
|
||||
* doctor 所属医生
|
||||
* hdrdepartment_id 科室
|
||||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||||
* name 病人姓名
|
||||
*
|
||||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||||
* id ID
|
||||
* date 日期
|
||||
* doctor 所属医生
|
||||
* hdrdepartment_id 科室
|
||||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||||
* name 病人姓名
|
||||
* gender 病人性别
|
||||
* age 病人年龄
|
||||
* edu 教育程度
|
||||
* career_year 职业及年限
|
||||
* power 体力要求
|
||||
* satisfaction 经济满意度
|
||||
* old_career_year 过往职业及年限
|
||||
* old_career_power 过往职业体力要求
|
||||
* support 社会支持度
|
||||
* marriage 婚姻状况
|
||||
* live 居住情况
|
||||
* home 家庭关系
|
||||
* address 地址
|
||||
* phone 联系方式
|
||||
* wechat_no 微信号
|
||||
* ticket 对话票据(数据隔离)
|
||||
* create_time 创建时间
|
||||
* is_flow 是否接受随访:yes=是,no=否
|
||||
|
||||
* author:wh
|
||||
*/
|
||||
function getHdruserbaseinfoList(){
|
||||
Tools::log_to_write_txt(['获取统一问诊用户基本信息列表(后台病历管理列表) 入参:'=>input()]);
|
||||
$api_desc = '获取统一问诊用户基本信息列表(后台病历管理列表)';
|
||||
try {
|
||||
|
||||
$id = input('id');
|
||||
$date = input('date');
|
||||
$doctor = input('doctor');
|
||||
$hdrdepartment_id = input('hdrdepartment_id');
|
||||
$from = input('from');
|
||||
$name = input('name');
|
||||
|
||||
|
||||
$model_obj = Db::table(TabConf::$fa_tt_userbaseinfo);
|
||||
|
||||
if(input('doctor')){
|
||||
$model_obj->whereLike('doctor','%'.input('doctor').'%');
|
||||
}
|
||||
|
||||
if(input('id')){
|
||||
$model_obj->where('id',input('id'));
|
||||
}
|
||||
if(input('date')){
|
||||
$model_obj->where('date',input('date'));
|
||||
}
|
||||
if(input('hdrdepartment_id')){
|
||||
$model_obj->where('hdrdepartment_id',input('hdrdepartment_id'));
|
||||
}
|
||||
if(input('from')){
|
||||
$model_obj->where('from',input('from'));
|
||||
}
|
||||
if(input('name')){
|
||||
$model_obj->where('name',input('name'));
|
||||
}
|
||||
|
||||
$data = $model_obj->paginate(['page'=>input('current_page',1),'list_rows'=>input('list_rows',15)])
|
||||
->each(function($item, $key){
|
||||
|
||||
|
||||
|
||||
return $item;
|
||||
});
|
||||
|
||||
// ['total'] => int(30)
|
||||
// ['per_page'] => int(15)
|
||||
// ['current_page'] => int(1)
|
||||
// ['last_page''] => int(2)
|
||||
$data = $data->toArray();//包含 data列表
|
||||
|
||||
|
||||
|
||||
|
||||
return json(Tools::set_ok('ok',$data));
|
||||
}catch(\Exception $e){
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'获取统一问诊用户基本信息列表(后台病历管理列表).异常.'.$e->getMessage(),
|
||||
'参数'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_res(500,'操作异常',[]));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* desc:获取统一问诊用户基本信息详情(后台病历管理详情)
|
||||
*
|
||||
* api/Hdruserbaseinfo/getHdruserbaseinfoDetailById
|
||||
*
|
||||
* 参数:
|
||||
* id ID ID 必须
|
||||
*
|
||||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||||
* id ID
|
||||
* date 日期
|
||||
* doctor 所属医生
|
||||
* hdrdepartment_id 科室
|
||||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊
|
||||
* name 病人姓名
|
||||
* gender 病人性别
|
||||
* age 病人年龄
|
||||
* edu 教育程度
|
||||
* career_year 职业及年限
|
||||
* power 体力要求
|
||||
* satisfaction 经济满意度
|
||||
* old_career_year 过往职业及年限
|
||||
* old_career_power 过往职业体力要求
|
||||
* support 社会支持度
|
||||
* marriage 婚姻状况
|
||||
* live 居住情况
|
||||
* home 家庭关系
|
||||
* address 地址
|
||||
* phone 联系方式
|
||||
* wechat_no 微信号
|
||||
* ticket 对话票据(数据隔离)
|
||||
* create_time 创建时间
|
||||
* is_flow 是否接受随访:yes=是,no=否
|
||||
|
||||
* author:wh
|
||||
*/
|
||||
function getHdruserbaseinfoDetailById(){
|
||||
Tools::log_to_write_txt(['获取统一问诊用户基本信息详情(后台病历管理详情) 入参:'=>input()]);
|
||||
$api_desc = '获取统一问诊用户基本信息详情(后台病历管理详情)';
|
||||
try {
|
||||
|
||||
$id = input('id');
|
||||
if(empty($id)){
|
||||
return json(Tools::set_fail('id参数错误'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
$model_obj = Db::table(TabConf::$fa_tt_userbaseinfo);
|
||||
|
||||
if(input('id')){
|
||||
$model_obj->where('id',input('id'));
|
||||
}
|
||||
$item = $model_obj->find();
|
||||
$data = $item;
|
||||
|
||||
|
||||
|
||||
return json(Tools::set_ok('ok',$data));
|
||||
}catch(\Exception $e){
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'获取统一问诊用户基本信息详情(后台病历管理详情).异常.'.$e->getMessage(),
|
||||
'参数'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_res(500,'操作异常',[]));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id修改统一问诊用户基本信息
|
||||
* 参数:
|
||||
* id ID 【必须】
|
||||
* name 病人姓名
|
||||
* gender 病人性别
|
||||
* age 病人年龄
|
||||
* edu 教育程度
|
||||
* career_year 职业及年限
|
||||
* power 体力要求
|
||||
* satisfaction 经济满意度
|
||||
* old_career_year 过往职业及年限
|
||||
* old_career_power 过往职业体力要求
|
||||
* support 社会支持度
|
||||
* marriage 婚姻状况
|
||||
* live 居住情况
|
||||
* home 家庭关系
|
||||
* address 地址
|
||||
* phone 联系方式
|
||||
* wechat_no 微信号
|
||||
* api/Hdruserbaseinfo/updateHdruserbaseinfoById
|
||||
*/
|
||||
function updateHdruserbaseinfoById(){
|
||||
Tools::log_to_write_txt(['修改统一问诊用户基本信息'=>input()]);
|
||||
|
||||
$api_desc = '修改统一问诊用户基本信息';
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
$name = input('name');
|
||||
$gender = input('gender');
|
||||
$age = input('age');
|
||||
$edu = input('edu');
|
||||
$career_year = input('career_year');
|
||||
$power = input('power');
|
||||
$satisfaction = input('satisfaction');
|
||||
$old_career_year = input('old_career_year');
|
||||
$old_career_power = input('old_career_power');
|
||||
$support = input('support');
|
||||
$marriage = input('marriage');
|
||||
$live = input('live');
|
||||
$home = input('home');
|
||||
$address = input('address');
|
||||
$phone = input('phone');
|
||||
$wechat_no = input('wechat_no');
|
||||
if(empty(input('id'))){
|
||||
return json(Tools::set_fail('参数错误。0',['error_msg'=>'错误信息:id错误']));
|
||||
}
|
||||
|
||||
|
||||
//存在则修改
|
||||
$data = [];
|
||||
if($name){
|
||||
$data['name'] = $name;
|
||||
}
|
||||
|
||||
if($gender){
|
||||
$data['gender'] = $gender;
|
||||
}
|
||||
|
||||
if($age){
|
||||
$data['age'] = $age;
|
||||
}
|
||||
|
||||
if($edu){
|
||||
$data['edu'] = $edu;
|
||||
}
|
||||
|
||||
if($career_year){
|
||||
$data['career_year'] = $career_year;
|
||||
}
|
||||
|
||||
if($power){
|
||||
$data['power'] = $power;
|
||||
}
|
||||
|
||||
if($satisfaction){
|
||||
$data['satisfaction'] = $satisfaction;
|
||||
}
|
||||
|
||||
if($old_career_year){
|
||||
$data['old_career_year'] = $old_career_year;
|
||||
}
|
||||
|
||||
if($old_career_power){
|
||||
$data['old_career_power'] = $old_career_power;
|
||||
}
|
||||
|
||||
if($support){
|
||||
$data['support'] = $support;
|
||||
}
|
||||
|
||||
if($marriage){
|
||||
$data['marriage'] = $marriage;
|
||||
}
|
||||
|
||||
if($live){
|
||||
$data['live'] = $live;
|
||||
}
|
||||
|
||||
if($home){
|
||||
$data['home'] = $home;
|
||||
}
|
||||
|
||||
if($address){
|
||||
$data['address'] = $address;
|
||||
}
|
||||
|
||||
if($phone){
|
||||
$data['phone'] = $phone;
|
||||
}
|
||||
|
||||
if($wechat_no){
|
||||
$data['wechat_no'] = $wechat_no;
|
||||
}
|
||||
|
||||
|
||||
$hdrdepartment = input('hdrdepartment');
|
||||
if($hdrdepartment){
|
||||
$data['hdrdepartment'] = $hdrdepartment;
|
||||
}
|
||||
$hdrdepartment_id = input('hdrdepartment_id');
|
||||
if($hdrdepartment_id){
|
||||
$data['hdrdepartment_id'] = $hdrdepartment_id;
|
||||
}
|
||||
|
||||
$dataid = Db::table(TabConf::$fa_tt_userbaseinfo)
|
||||
->data($data)
|
||||
->where('id',input('id'))
|
||||
->update();
|
||||
|
||||
//$this->operateLog('修改统一问诊用户基本信息',api_user_info('id'));
|
||||
Db::commit();
|
||||
return json(Tools::set_ok('ok',$dataid));
|
||||
}catch (\Exception $e){
|
||||
Db::rollback();
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'修改统一问诊用户基本信息.异常.'.$e->getMessage(),
|
||||
'input'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_fail());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增统一问诊用户基本信息
|
||||
*
|
||||
* 参数:
|
||||
* date 日期 【必须】
|
||||
* doctor 所属医生 【必须】
|
||||
* hdrdepartment_id 科室 【必须】
|
||||
* from 来源:num_per=数智人,ty=听译助手,h5=h5网页问诊,doc_add=医生添加 【必须】
|
||||
* name 病人姓名 【必须】
|
||||
* gender 病人性别 【必须】
|
||||
* age 病人年龄 【必须】
|
||||
* edu 教育程度
|
||||
* career_year 职业及年限
|
||||
* power 体力要求
|
||||
* satisfaction 经济满意度
|
||||
* old_career_year 过往职业及年限
|
||||
* old_career_power 过往职业体力要求
|
||||
* support 社会支持度
|
||||
* marriage 婚姻状况
|
||||
* live 居住情况
|
||||
* home 家庭关系
|
||||
* address 地址
|
||||
* phone 联系方式 【必须】
|
||||
* wechat_no 微信号
|
||||
* ticket 对话票据(数据隔离)
|
||||
* diagnosis 诊断
|
||||
*/
|
||||
function addHdruserbaseinfo(){
|
||||
Tools::log_to_write_txt(['新增统一问诊用户基本信息'=>input()]);
|
||||
$api_desc = '新增统一问诊用户基本信息';
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
$date = input('date');
|
||||
if(empty($date)){
|
||||
return json(Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:date错误']));
|
||||
}
|
||||
|
||||
$doctor = input('doctor');
|
||||
if(empty($doctor)){
|
||||
return json(Tools::set_fail('参数错误.1',['error_msg'=>'错误信息:doctor错误']));
|
||||
}
|
||||
|
||||
$hdrdepartment_id = input('hdrdepartment_id');
|
||||
if(empty($hdrdepartment_id)){
|
||||
return json(Tools::set_fail('参数错误.2',['error_msg'=>'错误信息:hdrdepartment_id错误']));
|
||||
}
|
||||
|
||||
$from = input('from');
|
||||
if(empty($from)){
|
||||
return json(Tools::set_fail('参数错误.3',['error_msg'=>'错误信息:from错误']));
|
||||
}
|
||||
|
||||
$name = input('name');
|
||||
if(empty($name)){
|
||||
return json(Tools::set_fail('参数错误.4',['error_msg'=>'错误信息:name错误']));
|
||||
}
|
||||
|
||||
$gender = input('gender');
|
||||
if(empty($gender)){
|
||||
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息:gender错误']));
|
||||
}
|
||||
|
||||
$age = input('age');
|
||||
if(empty($age)){
|
||||
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息:age错误']));
|
||||
}
|
||||
|
||||
$edu = input('edu');
|
||||
$career_year = input('career_year');
|
||||
$power = input('power');
|
||||
$satisfaction = input('satisfaction');
|
||||
$old_career_year = input('old_career_year');
|
||||
$old_career_power = input('old_career_power');
|
||||
$support = input('support');
|
||||
$marriage = input('marriage');
|
||||
$live = input('live');
|
||||
$home = input('home');
|
||||
$address = input('address');
|
||||
$phone = input('phone');
|
||||
if(empty($phone)){
|
||||
return json(Tools::set_fail('参数错误.18',['error_msg'=>'错误信息:phone错误']));
|
||||
}
|
||||
|
||||
$wechat_no = input('wechat_no');
|
||||
$ticket = input('ticket');
|
||||
$diagnosis = input('diagnosis');
|
||||
|
||||
$data = [
|
||||
'date'=>$date?:'',
|
||||
'doctor'=>$doctor?:'',
|
||||
'hdrdepartment_id'=>$hdrdepartment_id?:'',
|
||||
'from'=>$from?:'',
|
||||
'name'=>$name?:'',
|
||||
'gender'=>$gender?:'',
|
||||
'age'=>$age?:'',
|
||||
'edu'=>$edu?:'',
|
||||
'career_year'=>$career_year?:'',
|
||||
'power'=>$power?:'',
|
||||
'satisfaction'=>$satisfaction?:'',
|
||||
'old_career_year'=>$old_career_year?:'',
|
||||
'old_career_power'=>$old_career_power?:'',
|
||||
'support'=>$support?:'',
|
||||
'marriage'=>$marriage?:'',
|
||||
'live'=>$live?:'',
|
||||
'home'=>$home?:'',
|
||||
'address'=>$address?:'',
|
||||
'phone'=>$phone?:'',
|
||||
'wechat_no'=>$wechat_no?:'',
|
||||
'ticket'=>$ticket?:'',
|
||||
'diagnosis'=>$diagnosis?:'',
|
||||
];
|
||||
|
||||
|
||||
$dataid = Db::table(TabConf::$fa_tt_userbaseinfo)->insertGetId($data);
|
||||
|
||||
//$this->operateLog('新增统一问诊用户基本信息',api_user_info('id'));
|
||||
Db::commit();
|
||||
return json(Tools::set_ok('ok',$dataid));
|
||||
}catch (\Exception $e){
|
||||
Db::rollback();
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'新增统一问诊用户基本信息.异常.'.$e->getMessage(),
|
||||
'input'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_fail());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* desc:保存用户基本信息,没有就新增
|
||||
*
|
||||
* * 参数:
|
||||
* doctor 所属医生 【必须】
|
||||
* hdrdepartment_id 科室 【必须】
|
||||
* name 病人姓名 【必须】
|
||||
* gender 病人性别 【必须】
|
||||
* age 病人年龄 【必须】
|
||||
* phone 图片识别联系方式
|
||||
* user_phone 当前用户登录的手机号 【必须】
|
||||
*
|
||||
*
|
||||
* author:wh
|
||||
*/
|
||||
function saveBaseinfo(){
|
||||
Tools::log_to_write_txt(['保存用户基本信息,没有就新增'=>input()]);
|
||||
$api_desc = '保存用户基本信息,没有就新增';
|
||||
Db::startTrans();
|
||||
try {
|
||||
|
||||
|
||||
$hdrdepartment_id = input('hdrdepartment_id');
|
||||
if(empty($hdrdepartment_id)){
|
||||
return json(Tools::set_fail('参数错误.2',['error_msg'=>'错误信息:hdrdepartment_id错误']));
|
||||
}
|
||||
|
||||
$name = input('name');
|
||||
if(empty($name)){
|
||||
return json(Tools::set_fail('参数错误.4',['error_msg'=>'错误信息:name错误']));
|
||||
}
|
||||
|
||||
$gender = input('gender');
|
||||
if(empty($gender)){
|
||||
return json(Tools::set_fail('参数错误.5',['error_msg'=>'错误信息:gender错误']));
|
||||
}
|
||||
|
||||
$age = input('age');
|
||||
if(empty($age)){
|
||||
return json(Tools::set_fail('参数错误.6',['error_msg'=>'错误信息:age错误']));
|
||||
}
|
||||
$doctor = input('doctor');
|
||||
if(empty($doctor)){
|
||||
return json(Tools::set_fail('参数错误.3',['error_msg'=>'错误信息:doctor手机号错误']));
|
||||
}
|
||||
|
||||
$hdrdepartment = input('hdrdepartment');
|
||||
$phone = input('phone');
|
||||
if(empty($phone)){
|
||||
return json(Tools::set_fail('参数错误.18',['error_msg'=>'错误信息:phone错误']));
|
||||
}
|
||||
|
||||
$data = [
|
||||
'hdrdepartment_id'=>$hdrdepartment_id?:'',
|
||||
'name'=>$name?:'',
|
||||
'gender'=>$gender?:'',
|
||||
'age'=>$age?:'',
|
||||
'phone'=>$phone?:'',
|
||||
'hdrdepartment'=>$hdrdepartment?:'',
|
||||
'user_phone'=>api_user_info('username')
|
||||
];
|
||||
//同步科室(没有则新增)
|
||||
$department_data = [
|
||||
'name'=>$hdrdepartment,
|
||||
];
|
||||
$insert_hdrdepartment_id = Mmodel::existsUpdateInsert(TabConf::$fa_hdrdepartment,[
|
||||
'name'=>$hdrdepartment
|
||||
],$department_data);
|
||||
if($insert_hdrdepartment_id){
|
||||
$data['hdrdepartment_id'] = $insert_hdrdepartment_id;
|
||||
}
|
||||
//同步基本信息到fa_tt_userbaseinfo表
|
||||
$base_info_data = [
|
||||
'date'=>Tools::get_now_date(),
|
||||
'doctor'=>$doctor,
|
||||
'hdrdepartment_id'=>$hdrdepartment_id,
|
||||
'hdrdepartment'=>$hdrdepartment,
|
||||
'name'=>$name,
|
||||
'gender'=>$gender,
|
||||
'age'=>$age,
|
||||
'phone'=>$phone,
|
||||
'user_phone'=>api_user_info('username'),
|
||||
'from'=>'h5',
|
||||
];
|
||||
//只能新增基本信息,不能修改
|
||||
$base_info_data_id = Db::table(TabConf::$fa_tt_userbaseinfo)
|
||||
->insertGetId($base_info_data);
|
||||
|
||||
//$this->operateLog('保存用户基本信息,没有就新增',api_user_info('id'));
|
||||
Db::commit();
|
||||
return json(Tools::set_ok('ok',['base_info_data_id'=>$base_info_data_id]));
|
||||
}catch (\Exception $e){
|
||||
Db::rollback();
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'保存用户基本信息,没有就新增.异常.'.$e->getMessage(),
|
||||
'input'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_fail());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* desc:根据手机号码获取统一问诊用户基本信息,查询最新的一条数据
|
||||
*
|
||||
* api/Hdruserbaseinfo/getHdruserbaseinfoByPhone
|
||||
*
|
||||
* 参数:
|
||||
* phone 联系方式 【必须】
|
||||
*
|
||||
* 所有字段说明<span style="color: gray">(可能有部分额外字段未在此体现)</span>:
|
||||
* id ID
|
||||
* hdrdepartment_id 科室
|
||||
* hdrdepartment 科室名称
|
||||
* name 病人姓名
|
||||
* gender 病人性别
|
||||
* age 病人年龄
|
||||
* phone 联系方式
|
||||
|
||||
* author:wh
|
||||
*/
|
||||
function getHdruserbaseinfoByPhone(){
|
||||
Tools::log_to_write_txt(['根据手机号码获取统一问诊用户基本信息 入参:'=>input()]);
|
||||
$api_desc = '根据手机号码获取统一问诊用户基本信息';
|
||||
try {
|
||||
|
||||
$phone = input('phone');
|
||||
if(empty($phone)){
|
||||
return json(Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:phone错误']));
|
||||
}
|
||||
|
||||
|
||||
|
||||
$model_obj = Db::table(TabConf::$fa_ty_userbaseinfo);
|
||||
$model_obj->order('id desc');
|
||||
if(input('phone')){
|
||||
$model_obj->where('user_phone',input('phone'));
|
||||
}
|
||||
$item = $model_obj->find();
|
||||
$data = $item;
|
||||
|
||||
|
||||
|
||||
return json(Tools::set_ok('ok',$data));
|
||||
}catch(\Exception $e){
|
||||
Tools::log_to_write_txt([
|
||||
'error'=>'根据手机号码获取统一问诊用户基本信息.异常.'.$e->getMessage(),
|
||||
'参数'=>input(),
|
||||
'error_info'=>$e->getTraceAsString()
|
||||
]);
|
||||
return json(Tools::set_res(500,'操作异常',[]));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 基本信息读取
|
||||
* 基本信息读取接口(传图片地址)
|
||||
*
|
||||
* 参数:
|
||||
* phone 患者手机号码
|
||||
*
|
||||
* 文件上传控件name值设置为:file_upload,否则无法上传
|
||||
*
|
||||
*/
|
||||
public function getBaseInfoUploadRead(){
|
||||
return Mmodel::catchJson(function (){
|
||||
//基本信息读取接口(传图片地址)【一张图片一个chatid】
|
||||
$phone = input('phone');
|
||||
if(empty($phone)){
|
||||
return Tools::set_fail('参数错误.0',['error_msg'=>'错误信息:phone错误']);
|
||||
}
|
||||
$sessionid = input('sessionid');
|
||||
if(empty($sessionid)){
|
||||
return Tools::set_fail( '参数错误.1',['error_msg'=>'错误信息:sessionid错误']);
|
||||
}
|
||||
|
||||
$oss_config = config('aliyun_oss_config');
|
||||
$file_obj = new FileUpload();
|
||||
$file_res = $file_obj->fileUploadToAliCloudOss($oss_config);
|
||||
Tools::log_to_write_txt(['文件上传结果'=>$file_res]);
|
||||
if($file_res['code']!=200){
|
||||
return Tools::set_fail($file_res['msg']);
|
||||
}
|
||||
$upload_data = $file_res['data'][0];
|
||||
$upload_data['sessionid'] = $sessionid;
|
||||
//保存图片信息,存在则更新
|
||||
$hdruserbaseinfo_upload_id = Db::table(TabConf::$fa_hdruserbaseinfo_upload)
|
||||
->insertGetId($upload_data);
|
||||
//ai分析
|
||||
$ai_config = config('basic_information_read_config');
|
||||
$chatobj = new ChatGPT();
|
||||
$chatobj->url = $ai_config['base_url'];
|
||||
$chatobj->model = '';
|
||||
$chatobj->apiKey = $ai_config['APIKey'];
|
||||
|
||||
$answer_json_arr = [];
|
||||
|
||||
$config = [
|
||||
'stream'=>false,
|
||||
'chatId'=>Tools::getMillisecond(),
|
||||
];
|
||||
|
||||
$sub_content_msg = [
|
||||
[
|
||||
"role" => "user",
|
||||
"content" => [
|
||||
[
|
||||
"type" => "image_url",
|
||||
"image_url" => [
|
||||
"url" => $file_res['data'][0]['outer_req_url']
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
//chatGpt设置前置聊天上下文
|
||||
$chatobj->setBefore($sub_content_msg);
|
||||
$question = '';
|
||||
//回答
|
||||
$chatobj->returnAnswer($question,$config,$answer_json_arr);
|
||||
|
||||
Tools::log_to_write_txt(['请求gpt'=>$chatobj->post_msg_body]);
|
||||
Tools::log_to_write_txt(['gpt回复'=>$answer_json_arr]);
|
||||
//保存处理结果
|
||||
$answer_result = json_decode($answer_json_arr[0],true);
|
||||
$ai_result_data = [
|
||||
'result'=>$answer_result['choices'][0]['message']['content']
|
||||
];
|
||||
//保存ai分析结果
|
||||
Db::table(TabConf::$fa_hdruserbaseinfo_upload)
|
||||
->where('id',$hdruserbaseinfo_upload_id)
|
||||
->data($ai_result_data)
|
||||
->update();
|
||||
|
||||
|
||||
|
||||
|
||||
unset($file_res['data'][0]['real_path']);
|
||||
//返回分析结果
|
||||
return Tools::set_ok('ok',['result'=>$answer_result['choices'][0]['message']['content'],'file_info'=>$file_res['data']]);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user