request->input('order_inquiry_id'); // 获取订单数据 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $order_inquiry = OrderInquiry::getOne($params); if (empty($order_inquiry)) { return fail(); } // 获取病例信息 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $params['status'] = 1; $order_inquiry_case = OrderInquiryCase::getOne($params); if (empty($order_inquiry_case)) { return fail(); } $result = array(); $result['patient_name'] = $order_inquiry['patient_name']; $result['patient_sex'] = $order_inquiry['patient_sex']; $result['patient_age'] = $order_inquiry['patient_age']; $result['disease_desc'] = $order_inquiry_case['disease_desc']; $result['reception_time'] = $order_inquiry['reception_time']; // 接诊时间 return success($result); } /** * 获取问诊订单病例详情 * @return array */ public function getPatientFamilyInquiryCase(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $order_inquiry_id = $this->request->input('order_inquiry_id'); // 获取订单数据 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $order_inquiry = OrderInquiry::getOne($params); if (empty($order_inquiry)) { return fail(); } // 获取病例信息 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $params['status'] = 1; $order_inquiry_case = OrderInquiryCase::getOne($params); if (empty($order_inquiry_case)) { return fail(); } $order_inquiry_case = $order_inquiry_case->toArray(); // 获取患者家庭成员信息表-基本信息 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family = PatientFamily::getOne($params); if (!empty($patient_family)){ $order_inquiry_case['height'] = $order_inquiry_case['height'] ?: $patient_family['height'] ?: NULL; $order_inquiry_case['weight'] = $order_inquiry_case['weight'] ?: $patient_family['weight'] ?: NULL; $order_inquiry_case['job_id'] = $order_inquiry_case['job_id'] ?: $patient_family['job_id'] ?: NULL; $order_inquiry_case['job_name'] = $order_inquiry_case['job_name'] ?: $patient_family['job_name'] ?: NULL; $order_inquiry_case['nation_name'] = $order_inquiry_case['nation_name'] ?: $patient_family['nation_name'] ?: NULL; $order_inquiry_case['marital_status'] = $order_inquiry_case['marital_status'] ?: $patient_family['marital_status'] ?: NULL; } // 获取患者家庭成员信息表-健康情况 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family_health = PatientFamilyHealth::getOne($params); if (!empty($patient_family_health)) { $order_inquiry_case['diagnosis_hospital'] = $order_inquiry_case['diagnosis_hospital'] ?: $patient_family_health['diagnosis_hospital'] ?: ""; $order_inquiry_case['is_take_medicine'] = $order_inquiry_case['is_take_medicine'] ?: $patient_family_health['is_take_medicine'] ?: null; $order_inquiry_case['drugs_name'] = $order_inquiry_case['drugs_name'] ?: $patient_family_health['drugs_name'] ?: ""; } // 获取患者家庭成员信息表-个人情况 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family_personal = PatientFamilyPersonal::getOne($params); if (!empty($patient_family_personal)) { $order_inquiry_case['drink_wine_status'] = $order_inquiry_case['drink_wine_status'] ?: $patient_family_personal['drink_wine_status'] ?: null; $order_inquiry_case['smoke_status'] = $order_inquiry_case['smoke_status'] ?: $patient_family_personal['smoke_status'] ?: null; $order_inquiry_case['chemical_compound_status'] = $order_inquiry_case['chemical_compound_status'] ?: $patient_family_personal['chemical_compound_status'] ?: null; $order_inquiry_case['chemical_compound_describe'] = $order_inquiry_case['chemical_compound_describe'] ?: $patient_family_personal['chemical_compound_describe'] ?: ""; $order_inquiry_case['is_operation'] = $order_inquiry_case['is_operation'] ?: $patient_family_personal['is_operation'] ?: null; $order_inquiry_case['operation'] = $order_inquiry_case['operation'] ?: $patient_family_personal['operation'] ?: ""; } // 获取用药意向 $product = []; $fields = [ 'inquiry_case_id', 'product_id', 'case_product_num', ]; $params = array(); $params['inquiry_case_id'] = $order_inquiry_case['inquiry_case_id']; $inquiry_case_product = InquiryCaseProduct::getWithProductList($params, $fields); if (!empty($inquiry_case_product)) { foreach ($inquiry_case_product as &$item) { if (!empty($item['Product'])) { $product[] = $item['Product']['product_name'] . ' ' . $item['Product']['product_spec'] . '(' . $item['case_product_num'] . $item['Product']['packaging_unit'] . ')'; } } } $order_inquiry_case['product'] = $product; unset($inquiry_case_product); // 复诊凭证 if (!empty($order_inquiry_case['diagnose_images'])) { $diagnose_images = explode(',', $order_inquiry_case['diagnose_images']); foreach ($diagnose_images as &$item) { $item = addAliyunOssWebsite($item); } $order_inquiry_case['diagnose_images'] = $diagnose_images; } // 检测项目 $order_inquiry_case['detection_project'] = null; if ($order_inquiry['inquiry_type'] == 5) { // 获取检测订单 $params = array(); $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; $order_detection = OrderDetection::getOne($params); if (!empty($order_detection)) { // 获取检测项目 $params = array(); $params['detection_project_id'] = $order_detection['detection_project_id']; $detection_project = DetectionProject::getOne($params); if (!empty($detection_project)) { $order_inquiry_case['detection_project']['detection_project_name'] = $detection_project['detection_project_name']; // 检测项目名称 $order_inquiry_case['detection_project']['detection_time'] = $order_detection['detection_time']; // 检测时间 $order_inquiry_case['detection_project']['detection_link'] = addAliyunOssWebsite($order_detection['detection_result_pdf']); // 检测结果链接 } } } // 获取处方数据 $order_inquiry_case['order_prescription'] = null; $params = array(); $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; $order_prescription = OrderPrescription::getOne($params); if (!empty($order_prescription)){ $order_inquiry_case['order_prescription']['doctor_created_time'] = $order_prescription['doctor_created_time']; // 医生开具处方时间 $order_inquiry_case['order_prescription']['doctor_advice'] = $order_prescription['doctor_advice'];// 医嘱 // 获取处方疾病数据 $params = array(); $params['order_prescription_id'] = $order_prescription['order_prescription_id']; $order_prescription_icds = OrderPrescriptionIcd::getList($params); if (empty($order_prescription_icds)){ return fail(); } $icd_name = array_column($order_prescription_icds->toArray(),"icd_name"); $order_inquiry_case['order_prescription']['icd_name'] = implode(";",$icd_name); // 获取处方药品名称 $params = array(); $params['order_prescription_id'] = $order_prescription['order_prescription_id']; $order_prescription_products = OrderPrescriptionProduct::getList($params); if (empty($order_prescription_products)){ return fail(); } $order_inquiry_case['order_prescription']["product"] = $order_prescription_products->toArray(); } return success($order_inquiry_case); } /** * 获取问诊订单病例缺少字段 * @return array */ public function getPatientFamilyInquiryCaseUnfilledFields(): array { $user_info = $this->request->getAttribute("userInfo") ?? []; $order_inquiry_id = $this->request->input('order_inquiry_id'); // 获取订单数据 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $order_inquiry = OrderInquiry::getOne($params); if (empty($order_inquiry)) { return fail(); } // 获取病例信息 $params = array(); $params['order_inquiry_id'] = $order_inquiry_id; $params['status'] = 1; $order_inquiry_case = OrderInquiryCase::getOne($params); if (empty($order_inquiry_case)) { return fail(); } // 获取患者家庭成员信息表-基本信息 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family = PatientFamily::getOne($params); // 获取患者家庭成员信息表-健康情况 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family_health = PatientFamilyHealth::getOne($params); // 获取患者家庭成员信息表-个人情况 $params = array(); $params['family_id'] = $order_inquiry_case['family_id']; $patient_family_personal = PatientFamilyPersonal::getOne($params); // 初始字段定义 $fields = [ "relation", // 与患者关系(1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他 ) "name", // 患者名称 "sex", // 患者性别(0:未知 1:男 2:女) "age", // 患者年龄 "height", // 身高(cm) "weight", // 体重(kg) "marital_status", // 婚姻状况(0:未婚 1:已婚 2:离异) "disease_class_name", // 疾病名称-系统 "diagnosis_date", // 确诊日期 "disease_desc", // 病情描述(主诉) "is_allergy_history", // 是否存在过敏史(0:否 1:是) "allergy_history", // 过敏史描述 "is_family_history", // 是否存在家族病史(0:否 1:是) "family_history", // 家族病史描述 "is_pregnant", // 是否备孕、妊娠、哺乳期(0:否 1:是) "pregnant", // 备孕、妊娠、哺乳期描述 "is_taboo", // 是否服用过禁忌药物,且无相关禁忌(0:否 1:是)问诊购药时存在 "is_take_medicine", // 正在服药(0:否 1:是) "drugs_name", // 正在服药名称 "nation_name", // 民族名称 "job_name", // 职业名称 "diagnosis_hospital", // 确诊医院 "is_operation", // 是否存在手术(0:否 1:是) "operation", // 手术描述 "drink_wine_status", // 饮酒状态(1:从不 2:偶尔 3:经常 4:每天 5:已戒酒) "smoke_status", // 吸烟状态(1:从不 2:偶尔 3:经常 4:每天 5:已戒烟) "chemical_compound_status", // 化合物状态(1:从不 2:偶尔 3:经常 4:每天) "chemical_compound_describe", // 化合物描述 ]; // 获取缓存 $redis = $this->container->get(Redis::class); $redis_key = "patient_family_inquiry_case_unfilled_fields_" . $order_inquiry_id; $redis_value = $redis->get($redis_key); // 处理字段 $result = null; foreach ($fields as $field){ if ($order_inquiry_case[$field] !== null){ continue; } if (!empty($patient_family)){ if ($patient_family[$field] !== null){ continue; } } if (!empty($patient_family_health)){ if ($patient_family_health[$field] !== null){ continue; } } if (!empty($patient_family_personal)){ if ($patient_family_personal[$field] !== null){ continue; } } // 缓存 if (!empty($redis_value)){ if (strstr($redis_value,$field)){ continue; } } $result[] = $field; } return success($result); } }