diff --git a/app/Request/InquiryRequest.php b/app/Request/InquiryRequest.php index 78d8cda..9486c49 100644 --- a/app/Request/InquiryRequest.php +++ b/app/Request/InquiryRequest.php @@ -20,8 +20,6 @@ class InquiryRequest extends FormRequest 'is_allergy_history',// 过敏史 'is_family_history', // 家族病史 'is_pregnant',// 备孕、妊娠、哺乳期 - 'height', - 'weight', 'inquiry_type', // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) 'inquiry_mode', // 订单问诊方式(1:图文 2:视频 3:语音 4:电话 5:会员) 'client_type', // 客户端类型(1:手机 2:电脑) diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index a9baa3b..914e5f1 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -80,6 +80,16 @@ class InquiryService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "患者信息错误"); } + // 获取患者家庭成员信息表-健康情况 + $params = array(); + $params['family_id'] = $request_params['family_id']; + $patient_family_health = PatientFamilyHealth::getOne($params); + + // 获取患者家庭成员信息表-个人情况 + $params = array(); + $params['family_id'] = $request_params['family_id']; + $patient_family_personal = PatientFamilyPersonal::getOne($params); + // 检测是否存在同类型未完成的问诊订单 $PatientOrderService = new PatientOrderService(); $order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($request_params['inquiry_type'], $user_info['client_user_id']); @@ -90,7 +100,7 @@ class InquiryService extends BaseService return success($result); } - // 是否为孕妇 + // 是否备孕、妊娠、哺乳期(0:否 1:是) if ($request_params['is_pregnant'] == 1) { return fail(HttpEnumCode::HTTP_ERROR, "请您到线下问诊"); } @@ -174,6 +184,13 @@ class InquiryService extends BaseService $inquiry_pay_channel = 2; } + // 处理复诊凭证 + if (!empty($request_params['diagnose_images'])) { + // 医师资格证 + $diagnose_images = implode(',', $request_params['diagnose_images']); + $diagnose_images = PcreMatch::pregRemoveOssWebsite($diagnose_images); + } + Db::beginTransaction(); $generator = $this->container->get(IdGeneratorInterface::class); @@ -214,13 +231,6 @@ class InquiryService extends BaseService return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); } - // 处理复诊凭证 - if (!empty($request_params['diagnose_images'])) { - // 医师资格证 - $diagnose_images = implode(',', $request_params['diagnose_images']); - $diagnose_images = PcreMatch::pregRemoveOssWebsite($diagnose_images); - } - // 增加患者问诊病例 $data = array(); $data['user_id'] = $user_info['user_id']; @@ -229,37 +239,121 @@ class InquiryService extends BaseService $data['family_id'] = $patient_family['family_id']; // 家庭成员id $data['relation'] = $patient_family['relation']; // 与患者关系(1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他 ) $data['name'] = $patient_family['card_name']; // 患者名称 - $data['sex'] = $patient_family['sex'] ?? 0; // 患者性别(0:未知 1:男 2:女) - $data['age'] = $patient_family['age'] ?? null; // 患者年龄 - $data['height'] = $request_params['height'] ?? $patient_family['height'] ?: null; // 身高(cm) - $data['weight'] = $request_params['weight'] ?? $patient_family['weight'] ?: null;; // 体重(kg) + $data['sex'] = $patient_family['sex']; // 患者性别(0:未知 1:男 2:女) $data['disease_class_id'] = $disease_class['disease_class_id']; // 疾病分类id-系统 $data['disease_class_name'] = $disease_class['disease_class_name']; // 疾病名称-系统 - $data['diagnosis_date'] = $request_params['diagnosis_date'] ?: null; // 确诊日期 - $data['disease_desc'] = $request_params['disease_desc'] ?: null; // 病情描述(主诉) + $data['diagnosis_date'] = $request_params['diagnosis_date']; // 确诊日期 + $data['disease_desc'] = $request_params['disease_desc']; // 病情描述(主诉) $data['diagnose_images'] = $diagnose_images ?? ""; // 复诊凭证(多个使用逗号分隔) - if (isset($request_params['is_allergy_history'])) { + + if ($patient_family['age'] != null){ + $data['age'] = $patient_family['age'];// 患者年龄 + } + + // 身高(cm) + if ($patient_family['height'] != null){ + $data['height'] = $patient_family['height']; + } + + // 体重(kg) + if ($patient_family['weight'] != null){ + $data['weight'] = $patient_family['weight']; + } + + // 职业id-职业名称 + if ($patient_family['job_id'] != null){ + $data['job_id'] = $patient_family['job_id']; + if ($patient_family['job_name'] != null){ + $data['job_name'] = $patient_family['job_name']; + } + } + + // 民族id-民族名称 + if ($patient_family['nation_id'] != null){ + $data['nation_id'] = $patient_family['nation_id']; + if ($patient_family['nation_name'] != null){ + $data['nation_name'] = $patient_family['nation_name']; + } + } + + // 婚姻状况 + if ($patient_family['marital_status'] != null){ + $data['marital_status'] = $patient_family['marital_status']; + } + + // 家庭成员-健康情况 + if (!empty($patient_family_health)){ + if ($patient_family_health['diagnosis_hospital'] != null){ + $data['diagnosis_hospital'] = $patient_family_health['diagnosis_hospital']; // 确诊医院 + } + + if ($patient_family_health['is_take_medicine'] != null){ + $data['is_take_medicine'] = $patient_family_health['is_take_medicine']; // 正在服药 + if ($patient_family_health['drugs_name'] != null){ + $data['drugs_name'] = $patient_family_health['drugs_name']; // 正在服药名称 + } + } + } + + // 家庭成员-个人情况 + if (!empty($patient_family_personal)){ + if ($patient_family_personal['drink_wine_status'] != null){ + $data['drink_wine_status'] = $patient_family_personal['drink_wine_status']; // 饮酒状态 + } + + if ($patient_family_personal['smoke_status'] != null){ + $data['smoke_status'] = $patient_family_personal['smoke_status']; // 吸烟状态 + } + + if ($patient_family_personal['chemical_compound_status'] != null){ + $data['chemical_compound_status'] = $patient_family_personal['chemical_compound_status']; // 化合物状态 + if ($patient_family_personal['chemical_compound_describe'] != null){ + $data['chemical_compound_describe'] = $patient_family_personal['chemical_compound_describe']; // 化合物描述 + } + } + + if ($patient_family_personal['is_operation'] != null){ + $data['is_operation'] = $patient_family_personal['is_operation']; // 是否存在手术 + if ($patient_family_personal['operation'] != null){ + $data['operation'] = $patient_family_personal['operation']; // 手术描述 + } + } + } + + // 过敏史 + if (array_key_exists("is_allergy_history",$request_params)){ if ($request_params['is_allergy_history'] !== null) { $data['is_allergy_history'] = $request_params['is_allergy_history']; // 是否存在过敏史(0:否 1:是) + if ($request_params['allergy_history'] != ""){ + $data['allergy_history'] = $request_params['allergy_history']; // 过敏史描述 + } } } - $data['allergy_history'] = $request_params['allergy_history'] ?? null; // 过敏史描述 - if (isset($request_params['is_family_history'])) { + + // 家族病史 + if (array_key_exists("is_family_history",$request_params)){ if ($request_params['is_family_history'] !== null) { $data['is_family_history'] = $request_params['is_family_history']; // 是否存在家族病史(0:否 1:是) + if ($request_params['family_history'] != ""){ + $data['family_history'] = $request_params['family_history']; // 家族病史描述 + } } } - $data['family_history'] = $request_params['family_history'] ?? null; // 家族病史描述 - if (isset($request_params['is_pregnant'])) { + + // 是否备孕、妊娠、哺乳期(0:否 1:是) + if (array_key_exists("is_pregnant",$request_params)){ if ($request_params['is_pregnant'] !== null) { $data['is_pregnant'] = $request_params['is_pregnant']; // 是否备孕、妊娠、哺乳期(0:否 1:是) } } - if (isset($request_params['is_taboo'])) { + + // 是否存在禁忌药物(0:否 1:是)问诊购药时存在 + if (array_key_exists("is_taboo",$request_params)){ if ($request_params['is_taboo'] !== null) { $data['is_taboo'] = $request_params['is_taboo']; // 是否存在禁忌药物(0:否 1:是)问诊购药时存在 } } + $order_inquiry_case = OrderInquiryCase::addOrderInquiryCase($data); if (empty($order_inquiry_case)) { Db::rollBack(); diff --git a/app/Services/PatientCaseService.php b/app/Services/PatientCaseService.php index a33aff5..63589c7 100644 --- a/app/Services/PatientCaseService.php +++ b/app/Services/PatientCaseService.php @@ -87,41 +87,42 @@ class PatientCaseService extends BaseService $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'] ?: ""; - } +// // 获取患者家庭成员信息表-基本信息 +// $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_id'] = $order_inquiry_case['nation_id'] ?: $patient_family['nation_id'] ?: 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 = []; @@ -241,20 +242,20 @@ class PatientCaseService extends BaseService $order_inquiry_case = $order_inquiry_case->toArray(); - // 获取患者家庭成员信息表-基本信息 - $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); +// // 获取患者家庭成员信息表-基本信息 +// $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 = [ @@ -279,7 +280,6 @@ class PatientCaseService extends BaseService ]; try { - // 获取缓存 /** * 获取缓存 * 缓存格式 @@ -311,29 +311,29 @@ class PatientCaseService extends BaseService } - if (!empty($patient_family)){ - if (array_key_exists($field,$patient_family->toArray())){ - if ($patient_family[$field] !== null){ - continue; - } - } - } - - if (!empty($patient_family_health)){ - if (array_key_exists($field,$patient_family_health->toArray())){ - if ($patient_family_health[$field] !== null){ - continue; - } - } - } - - if (!empty($patient_family_personal)){ - if (array_key_exists($field,$patient_family_personal->toArray())){ - if ($patient_family_personal[$field] !== null){ - continue; - } - } - } +// if (!empty($patient_family)){ +// if (array_key_exists($field,$patient_family->toArray())){ +// if ($patient_family[$field] !== null){ +// continue; +// } +// } +// } +// +// if (!empty($patient_family_health)){ +// if (array_key_exists($field,$patient_family_health->toArray())){ +// if ($patient_family_health[$field] !== null){ +// continue; +// } +// } +// } +// +// if (!empty($patient_family_personal)){ +// if (array_key_exists($field,$patient_family_personal->toArray())){ +// if ($patient_family_personal[$field] !== null){ +// continue; +// } +// } +// } // 缓存 if (!empty($redis_value)){