This commit is contained in:
parent
171c32881a
commit
fe5d86cd46
@ -171,17 +171,27 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
||||
$this->computeDoctorAvgPesponseTime($order_inquiry['doctor_id']);
|
||||
|
||||
// 新增上报监管平台数据,只上报 多点执业的医生 20251021 测试分支
|
||||
if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
|
||||
$reportRegulatoryService = new ReportRegulatoryService();
|
||||
$res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']);
|
||||
if (!$res) {
|
||||
// 新增上报失败
|
||||
Db::rollBack();
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败");
|
||||
return Result::REQUEUE;
|
||||
}
|
||||
}else{
|
||||
Log::getInstance("queue-AutoFinishInquiry")->info("非多点执业的医生不上报监管平台");
|
||||
// if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
|
||||
// $reportRegulatoryService = new ReportRegulatoryService();
|
||||
// $res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']);
|
||||
// if (!$res) {
|
||||
// // 新增上报失败
|
||||
// Db::rollBack();
|
||||
// Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败");
|
||||
// return Result::REQUEUE;
|
||||
// }
|
||||
// }else{
|
||||
// Log::getInstance("queue-AutoFinishInquiry")->info("非多点执业的医生不上报监管平台");
|
||||
// }
|
||||
|
||||
//新增抄方功能,所有要全部保存,上报的时候再判断
|
||||
$reportRegulatoryService = new ReportRegulatoryService();
|
||||
$res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']);
|
||||
if (!$res) {
|
||||
// 新增上报失败
|
||||
Db::rollBack();
|
||||
Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败");
|
||||
return Result::REQUEUE;
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
|
||||
@ -100,6 +100,18 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
|
||||
return Result::ACK;
|
||||
}
|
||||
|
||||
// 获取抄方医生数据 (如果存在抄方操作)
|
||||
if(!empty($order_inquiry['transfer_doctor_id'])){
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['transfer_doctor_id'];
|
||||
$user_doctor = UserDoctor::getOne($params);
|
||||
if (empty($user_doctor)) {
|
||||
Log::getInstance("queue-AutoPharmacistCaVerify")->error("错误:抄方医生数据错误");
|
||||
return Result::ACK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 获取用户数据
|
||||
$params = array();
|
||||
$params['patient_id'] = $order_prescription['patient_id'];
|
||||
|
||||
@ -319,6 +319,23 @@ class ReportRegulatoryCommand extends HyperfCommand
|
||||
return false;
|
||||
}
|
||||
|
||||
//判断该问诊是否为抄方
|
||||
if(!empty($order_inquiry['transfer_doctor_id'])){
|
||||
$this->line("信息:该问诊为抄方类型,不执行");
|
||||
return false;
|
||||
}else{
|
||||
$params = array();
|
||||
$params['doctor_id'] = $order_inquiry['doctor_id'];
|
||||
$user_doctor_info = UserDoctorInfo::getOne($params);
|
||||
if (empty($user_doctor_info)) {
|
||||
$this->line("错误:医生详情数据错误,不执行");
|
||||
return false;
|
||||
}
|
||||
if ($user_doctor_info['multi_point_status'] != 1) {
|
||||
$this->line("错误:医生为非多点执业,不执行");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -13,11 +13,12 @@ use Hyperf\DbConnection\Db;
|
||||
use Hyperf\Snowflake\Concern\Snowflake;
|
||||
|
||||
/**
|
||||
* @property int $order_inquiry_id 主键id
|
||||
* @property int $order_inquiry_id 主键id
|
||||
* @property int $order_id 订单id
|
||||
* @property int $user_id 用户id-患者
|
||||
* @property int $patient_id 患者id
|
||||
* @property int $doctor_id 医生id(未分配时为null)
|
||||
* @property int $transfer_doctor_id 接受抄方的医生id
|
||||
* @property int $family_id 家庭成员id(就诊用户)
|
||||
* @property int $inquiry_type 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
|
||||
* @property int $inquiry_mode 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包)
|
||||
@ -65,7 +66,7 @@ class OrderInquiry extends Model
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected array $fillable = ['order_inquiry_id', 'order_id', 'user_id', 'patient_id', 'doctor_id', 'family_id', 'inquiry_type', 'inquiry_mode', 'inquiry_status', 'is_delete', 'inquiry_refund_status', 'inquiry_pay_channel', 'inquiry_pay_status', 'inquiry_no', 'escrow_trade_no', 'amount_total', 'coupon_amount_total', 'payment_amount_total', 'pay_time', 'reception_time', 'complete_time', 'finish_time', 'statistics_status', 'statistics_time', 'is_withdrawal', 'withdrawal_time', 'cancel_time', 'cancel_reason', 'cancel_remarks', 'times_number', 'duration', 'patient_name', 'patient_name_mask', 'patient_sex', 'patient_age', 'created_at', 'updated_at'];
|
||||
protected array $fillable = ['order_inquiry_id', 'order_id', 'user_id', 'patient_id', 'doctor_id', 'transfer_doctor_id', 'family_id', 'inquiry_type', 'inquiry_mode', 'inquiry_status', 'is_delete', 'inquiry_refund_status', 'inquiry_pay_channel', 'inquiry_pay_status', 'inquiry_no', 'escrow_trade_no', 'amount_total', 'coupon_amount_total', 'payment_amount_total', 'pay_time', 'reception_time', 'complete_time', 'finish_time', 'statistics_status', 'statistics_time', 'is_withdrawal', 'withdrawal_time', 'cancel_time', 'cancel_reason', 'cancel_remarks', 'times_number', 'duration', 'patient_name', 'patient_name_mask', 'patient_sex', 'patient_age', 'created_at', 'updated_at'];
|
||||
|
||||
protected string $primaryKey = "order_inquiry_id";
|
||||
|
||||
|
||||
@ -50,6 +50,7 @@ use Hyperf\Utils\Arr;
|
||||
* @property int $is_enterprise_deep_cooperation 是否企业深度合作医生(0:否 1:是)
|
||||
* @property int $is_sys_diagno_cooperation 是否先思达合作医生(0:否 1:是)
|
||||
* @property int $is_welfare_cooperation 是否公益问诊合作医生(可把公益问诊设为0元)
|
||||
* @property int $is_transfer_prescription 是否接受抄方(0:否 1:是)
|
||||
* @property string $qr_code 分享二维码
|
||||
* @property string $be_good_at 擅长
|
||||
* @property string $brief_introduction 医生简介
|
||||
@ -73,7 +74,7 @@ class UserDoctor extends Model
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'introduction_status', 'introduction_time', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'is_welfare_cooperation', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at'];
|
||||
protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'introduction_status', 'introduction_time', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'is_welfare_cooperation', 'is_transfer_prescription', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at'];
|
||||
|
||||
protected string $primaryKey = "doctor_id";
|
||||
|
||||
|
||||
@ -1336,13 +1336,47 @@ class UserDoctorService extends BaseService
|
||||
return fail(HttpEnumCode::HTTP_ERROR, $res);
|
||||
}
|
||||
|
||||
if ($user_doctor['multi_point_status'] != 1) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证");
|
||||
$is_transfer_prescription = false; // 是否抄方医生 false:不是抄方医生 true:抄方医生
|
||||
$transfer_doctor = null; // 抄方医生
|
||||
|
||||
Db::beginTransaction();
|
||||
try {
|
||||
if ($user_doctor['multi_point_status'] != 1) {
|
||||
|
||||
//查找可接受抄方的医生
|
||||
$params = array();
|
||||
$params['is_transfer_prescription'] = 1;
|
||||
$params['multi_point_status'] = 1;
|
||||
$transfer_prescription_list = UserDoctor::getList($params);
|
||||
if (!empty($transfer_prescription_list)) {
|
||||
$transfer_doctor = $transfer_prescription_list[0];//取第一个抄方医生
|
||||
$is_transfer_prescription = true;
|
||||
|
||||
//修改抄方医生id
|
||||
$data = array();
|
||||
$data['transfer_doctor_id'] = $transfer_doctor['doctor_id'];
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||
$res = OrderInquiry::edit($params,$data);
|
||||
if (!$res) {
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败");
|
||||
}
|
||||
}
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证");
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "开具处方失败");
|
||||
}
|
||||
|
||||
|
||||
// 获取医生问诊配置-问诊购药
|
||||
$params = array();
|
||||
$params['doctor_id'] = $user_doctor['doctor_id'];
|
||||
if ($is_transfer_prescription){
|
||||
$params['doctor_id'] = $transfer_doctor['doctor_id'];
|
||||
}
|
||||
$params['inquiry_type'] = 4;
|
||||
$params['inquiry_mode'] = 1;
|
||||
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
|
||||
@ -1398,7 +1432,7 @@ class UserDoctorService extends BaseService
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "请填写病情主诉");
|
||||
}
|
||||
|
||||
Db::beginTransaction();
|
||||
|
||||
$generator = $this->container->get(IdGeneratorInterface::class);
|
||||
|
||||
try {
|
||||
@ -1416,12 +1450,18 @@ class UserDoctorService extends BaseService
|
||||
$data = array();
|
||||
$data['order_inquiry_id'] = $order_inquiry_id;
|
||||
$data['doctor_id'] = $user_info['client_user_id'];
|
||||
if ($is_transfer_prescription){
|
||||
$data['doctor_id'] = $transfer_doctor['doctor_id'];
|
||||
}
|
||||
$data['patient_id'] = $order_inquiry['patient_id'];
|
||||
$data['family_id'] = $order_inquiry['family_id'];
|
||||
$data['prescription_status'] = 1;
|
||||
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
|
||||
$data['prescription_code'] = $generator->generate(); // 处方编号
|
||||
$data['doctor_name'] = $user_doctor['user_name']; // 医生名称
|
||||
if ($is_transfer_prescription){
|
||||
$data['doctor_name'] = $transfer_doctor['user_name'];
|
||||
}
|
||||
$data['patient_name'] = $order_inquiry['patient_name'];
|
||||
$data['patient_sex'] = $order_inquiry['patient_sex'];
|
||||
$data['patient_age'] = $order_inquiry['patient_age'];
|
||||
@ -1542,8 +1582,14 @@ class UserDoctorService extends BaseService
|
||||
|
||||
// 开具处方
|
||||
$OrderPrescriptionService = new OrderPrescriptionService();
|
||||
$user_id = "";
|
||||
if ($is_transfer_prescription){
|
||||
$user_id = $transfer_doctor['user_id'];
|
||||
}else{
|
||||
$user_id = $user_info['user_id'];
|
||||
}
|
||||
dump($user_info['user_id']);
|
||||
$prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,2,$user_info['user_id']);
|
||||
$prescription_open_result = $OrderPrescriptionService->openPrescription($order_prescription->order_prescription_id,2,$user_id);
|
||||
if (empty($prescription_open_result['prescription_img_oss_path']) || empty($prescription_open_result['file_id'])){
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user