创建问诊订单,新增家庭成员数据填入问诊病例中。修改问诊病例数据的获取方式,去除家庭成员数据

This commit is contained in:
wucongxing 2023-12-06 10:53:35 +08:00
parent 74a72c1cf6
commit 80984617c9
3 changed files with 187 additions and 95 deletions

View File

@ -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电脑)

View File

@ -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();

View File

@ -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)){