From 2e7d3363ae1a181a315ed98c1d521fd5b56c9534 Mon Sep 17 00:00:00 2001 From: haomingming Date: Fri, 26 Dec 2025 11:56:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 118 +++++++++++++++------------ 1 file changed, 66 insertions(+), 52 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index d367ee5..d6a991c 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1985,72 +1985,86 @@ class PatientOrderService extends BaseService */ public function getPatientPrescriptionOrderList(): array { - $user_info = $this->request->getAttribute("userInfo") ?? []; - $page = $this->request->input('page', 1); - $per_page = $this->request->input('per_page', 10); + try { + $user_info = $this->request->getAttribute("userInfo") ?? []; + $page = $this->request->input('page', 1); + $per_page = $this->request->input('per_page', 10); - // 获取处方数据 - $params = array(); - $params['patient_id'] = $user_info['client_user_id']; - $params['pharmacist_audit_status'] = 1; - $params['platform_audit_status'] = 1; - $params['is_delete'] = 0; - $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); - if (!empty($order_prescription['data'])) { - foreach ($order_prescription['data'] as &$item) { + // 获取处方数据 + $params = array(); + $params['patient_id'] = $user_info['client_user_id']; + $params['pharmacist_audit_status'] = 1; + $params['platform_audit_status'] = 1; + $params['is_delete'] = 0; + $order_prescription = OrderPrescription::getWithPage($params, ['*'], $page, $per_page); + if (!empty($order_prescription['data'])) { + foreach ($order_prescription['data'] as &$item) { - //处理抄方情况 - $params = array(); - $params['order_inquiry_id'] = $item['order_inquiry_id']; - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ - 'order_prescription_id' => $item['order_prescription_id'] ?? null, - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); - $OrderInquiry = OrderInquiry::getOne($params); - if (!empty($OrderInquiry)) { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, + //处理抄方情况 + $params = array(); + $params['order_inquiry_id'] = $item['order_inquiry_id']; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("处理抄方情况开始", [ + 'order_prescription_id' => $item['order_prescription_id'] ?? null, + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, ]); - //为抄方订单 - if (!empty($OrderInquiry['transfer_doctor_id'])) { - $params = array(); - $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; - $fields = ['doctor_id','user_name','doctor_title']; - - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ - 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + $OrderInquiry = OrderInquiry::getOne($params); + if (!empty($OrderInquiry)) { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询到OrderInquiry", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'] ?? null, ]); - $UserDoctor = UserDoctor::getOne($params, $fields); - if (!empty($UserDoctor)) { - $item['UserDoctor'] = $UserDoctor->toArray(); - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ - 'doctor_id' => $UserDoctor['doctor_id'] ?? null, - 'user_name' => $UserDoctor['user_name'] ?? null, - ]); - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ + //为抄方订单 + if (!empty($OrderInquiry['transfer_doctor_id'])) { + $params = array(); + $params['doctor_id'] = $OrderInquiry['transfer_doctor_id']; + $fields = ['doctor_id','user_name','doctor_title']; + + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("查询UserDoctor", [ 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], ]); + $UserDoctor = UserDoctor::getOne($params, $fields); + if (!empty($UserDoctor)) { + $item['UserDoctor'] = $UserDoctor->toArray(); + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("成功设置UserDoctor", [ + 'doctor_id' => $UserDoctor['doctor_id'] ?? null, + 'user_name' => $UserDoctor['user_name'] ?? null, + ]); + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->warning("未查询到UserDoctor", [ + 'transfer_doctor_id' => $OrderInquiry['transfer_doctor_id'], + ]); + } + } else { + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ + 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + ]); } } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("OrderInquiry中transfer_doctor_id为空", [ - 'order_inquiry_id' => $OrderInquiry['order_inquiry_id'] ?? null, + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ + 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, ]); } - } else { - Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->info("未查询到OrderInquiry", [ - 'order_inquiry_id' => $item['order_inquiry_id'] ?? null, - ]); - } - if (!empty($item['UserDoctor'])) { - $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + if (!empty($item['UserDoctor'])) { + $item['UserDoctor']['doctor_title'] = DoctorTitleCode::getMessage($item['UserDoctor']['doctor_title']); + } } } - } - return success($order_prescription); + return success($order_prescription); + } catch (\Throwable $e) { + $user_info = $this->request->getAttribute("userInfo") ?? []; + Log::getInstance("PatientOrderService-getPatientPrescriptionOrderList")->error("获取处方订单列表异常", [ + 'message' => $e->getMessage(), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTraceAsString(), + 'patient_id' => $user_info['client_user_id'] ?? null, + 'page' => $this->request->input('page', 1), + 'per_page' => $this->request->input('per_page', 10), + ]); + return fail(HttpEnumCode::SERVER_ERROR, "获取处方订单列表失败"); + } } /**