This commit is contained in:
parent
171c32881a
commit
fe5d86cd46
@ -171,17 +171,27 @@ class AutoFinishInquiryDelayDirectConsumer extends ConsumerMessage
|
|||||||
$this->computeDoctorAvgPesponseTime($order_inquiry['doctor_id']);
|
$this->computeDoctorAvgPesponseTime($order_inquiry['doctor_id']);
|
||||||
|
|
||||||
// 新增上报监管平台数据,只上报 多点执业的医生 20251021 测试分支
|
// 新增上报监管平台数据,只上报 多点执业的医生 20251021 测试分支
|
||||||
if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
|
// if ($user_doctor['multi_point_status'] == 1){//医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败)
|
||||||
$reportRegulatoryService = new ReportRegulatoryService();
|
// $reportRegulatoryService = new ReportRegulatoryService();
|
||||||
$res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']);
|
// $res = $reportRegulatoryService->addReportRegulatory($order_inquiry['order_inquiry_id']);
|
||||||
if (!$res) {
|
// if (!$res) {
|
||||||
// 新增上报失败
|
// // 新增上报失败
|
||||||
Db::rollBack();
|
// Db::rollBack();
|
||||||
Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败");
|
// Log::getInstance("queue-AutoFinishInquiry")->error("新增上报监管平台数据失败");
|
||||||
return Result::REQUEUE;
|
// return Result::REQUEUE;
|
||||||
}
|
// }
|
||||||
}else{
|
// }else{
|
||||||
Log::getInstance("queue-AutoFinishInquiry")->info("非多点执业的医生不上报监管平台");
|
// 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();
|
Db::commit();
|
||||||
|
|||||||
@ -100,6 +100,18 @@ class AutoPharmacistCaVerifyDelayDirectConsumer extends ConsumerMessage
|
|||||||
return Result::ACK;
|
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 = array();
|
||||||
$params['patient_id'] = $order_prescription['patient_id'];
|
$params['patient_id'] = $order_prescription['patient_id'];
|
||||||
|
|||||||
@ -319,6 +319,23 @@ class ReportRegulatoryCommand extends HyperfCommand
|
|||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ use Hyperf\Snowflake\Concern\Snowflake;
|
|||||||
* @property int $user_id 用户id-患者
|
* @property int $user_id 用户id-患者
|
||||||
* @property int $patient_id 患者id
|
* @property int $patient_id 患者id
|
||||||
* @property int $doctor_id 医生id(未分配时为null)
|
* @property int $doctor_id 医生id(未分配时为null)
|
||||||
|
* @property int $transfer_doctor_id 接受抄方的医生id
|
||||||
* @property int $family_id 家庭成员id(就诊用户)
|
* @property int $family_id 家庭成员id(就诊用户)
|
||||||
* @property int $inquiry_type 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
|
* @property int $inquiry_type 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
|
||||||
* @property int $inquiry_mode 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包)
|
* @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.
|
* 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";
|
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_enterprise_deep_cooperation 是否企业深度合作医生(0:否 1:是)
|
||||||
* @property int $is_sys_diagno_cooperation 是否先思达合作医生(0:否 1:是)
|
* @property int $is_sys_diagno_cooperation 是否先思达合作医生(0:否 1:是)
|
||||||
* @property int $is_welfare_cooperation 是否公益问诊合作医生(可把公益问诊设为0元)
|
* @property int $is_welfare_cooperation 是否公益问诊合作医生(可把公益问诊设为0元)
|
||||||
|
* @property int $is_transfer_prescription 是否接受抄方(0:否 1:是)
|
||||||
* @property string $qr_code 分享二维码
|
* @property string $qr_code 分享二维码
|
||||||
* @property string $be_good_at 擅长
|
* @property string $be_good_at 擅长
|
||||||
* @property string $brief_introduction 医生简介
|
* @property string $brief_introduction 医生简介
|
||||||
@ -73,7 +74,7 @@ class UserDoctor extends Model
|
|||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* 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";
|
protected string $primaryKey = "doctor_id";
|
||||||
|
|
||||||
|
|||||||
@ -1336,13 +1336,47 @@ class UserDoctorService extends BaseService
|
|||||||
return fail(HttpEnumCode::HTTP_ERROR, $res);
|
return fail(HttpEnumCode::HTTP_ERROR, $res);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user_doctor['multi_point_status'] != 1) {
|
$is_transfer_prescription = false; // 是否抄方医生 false:不是抄方医生 true:抄方医生
|
||||||
return fail(HttpEnumCode::HTTP_ERROR, "请先完成多点执业认证");
|
$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 = array();
|
||||||
$params['doctor_id'] = $user_doctor['doctor_id'];
|
$params['doctor_id'] = $user_doctor['doctor_id'];
|
||||||
|
if ($is_transfer_prescription){
|
||||||
|
$params['doctor_id'] = $transfer_doctor['doctor_id'];
|
||||||
|
}
|
||||||
$params['inquiry_type'] = 4;
|
$params['inquiry_type'] = 4;
|
||||||
$params['inquiry_mode'] = 1;
|
$params['inquiry_mode'] = 1;
|
||||||
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
|
$doctor_inquiry_config = DoctorInquiryConfig::getOne($params);
|
||||||
@ -1398,7 +1432,7 @@ class UserDoctorService extends BaseService
|
|||||||
return fail(HttpEnumCode::HTTP_ERROR, "请填写病情主诉");
|
return fail(HttpEnumCode::HTTP_ERROR, "请填写病情主诉");
|
||||||
}
|
}
|
||||||
|
|
||||||
Db::beginTransaction();
|
|
||||||
$generator = $this->container->get(IdGeneratorInterface::class);
|
$generator = $this->container->get(IdGeneratorInterface::class);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -1416,12 +1450,18 @@ class UserDoctorService extends BaseService
|
|||||||
$data = array();
|
$data = array();
|
||||||
$data['order_inquiry_id'] = $order_inquiry_id;
|
$data['order_inquiry_id'] = $order_inquiry_id;
|
||||||
$data['doctor_id'] = $user_info['client_user_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['patient_id'] = $order_inquiry['patient_id'];
|
||||||
$data['family_id'] = $order_inquiry['family_id'];
|
$data['family_id'] = $order_inquiry['family_id'];
|
||||||
$data['prescription_status'] = 1;
|
$data['prescription_status'] = 1;
|
||||||
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
|
$data['doctor_created_time'] = date('Y-m-d H:i:s',time());
|
||||||
$data['prescription_code'] = $generator->generate(); // 处方编号
|
$data['prescription_code'] = $generator->generate(); // 处方编号
|
||||||
$data['doctor_name'] = $user_doctor['user_name']; // 医生名称
|
$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_name'] = $order_inquiry['patient_name'];
|
||||||
$data['patient_sex'] = $order_inquiry['patient_sex'];
|
$data['patient_sex'] = $order_inquiry['patient_sex'];
|
||||||
$data['patient_age'] = $order_inquiry['patient_age'];
|
$data['patient_age'] = $order_inquiry['patient_age'];
|
||||||
@ -1542,8 +1582,14 @@ class UserDoctorService extends BaseService
|
|||||||
|
|
||||||
// 开具处方
|
// 开具处方
|
||||||
$OrderPrescriptionService = new OrderPrescriptionService();
|
$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']);
|
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'])){
|
if (empty($prescription_open_result['prescription_img_oss_path']) || empty($prescription_open_result['file_id'])){
|
||||||
Db::rollBack();
|
Db::rollBack();
|
||||||
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
|
return fail(HttpEnumCode::SERVER_ERROR, "处方开具失败");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user