package service import ( "errors" "fmt" "hospital-admin-api/api/dao" "hospital-admin-api/api/responses/orderInquiryCaseResponse" "hospital-admin-api/utils" "strconv" "strings" ) // CaseService 病例 type CaseService struct { } // GetOrderInquiryCaseByInquiryCaseId 获取病例-问诊订单 func (r *CaseService) GetOrderInquiryCaseByInquiryCaseId(inquiryCaseId int64) (u *orderInquiryCaseResponse.OrderInquiryCase, err error) { orderInquiryCaseDao := dao.OrderInquiryCaseDao{} orderInquiryCase, err := orderInquiryCaseDao.GetOrderInquiryCaseById(inquiryCaseId) if orderInquiryCase == nil { return nil, errors.New("数据错误,无问诊病例") } // 获取患者家庭成员信息-健康情况 patientFamilyHealthDao := dao.PatientFamilyHealthDao{} patientFamilyHealth, err := patientFamilyHealthDao.GetPatientFamilyHealthByFamilyId(orderInquiryCase.FamilyId) // 获取患者家庭成员信息表-个人情况 patientFamilyPersonalDao := dao.PatientFamilyPersonalDao{} patientFamilyPersonal, err := patientFamilyPersonalDao.GetPatientFamilyPersonalByFamilyId(orderInquiryCase.FamilyId) // 获取用药意向 inquiryCaseProductDao := dao.InquiryCaseProductDao{} inquiryCaseProducts, err := inquiryCaseProductDao.GetInquiryCaseProductListByInquiryCaseId(orderInquiryCase.InquiryCaseId) // 处理返回数据 u = &orderInquiryCaseResponse.OrderInquiryCase{ InquiryCaseId: strconv.FormatInt(orderInquiryCase.InquiryCaseId, 10), UserId: strconv.FormatInt(orderInquiryCase.UserId, 10), PatientId: strconv.FormatInt(orderInquiryCase.PatientId, 10), OrderInquiryId: strconv.FormatInt(orderInquiryCase.OrderInquiryId, 10), FamilyId: strconv.FormatInt(orderInquiryCase.FamilyId, 10), Relation: orderInquiryCase.Relation, Status: orderInquiryCase.Status, Name: orderInquiryCase.Name, Sex: orderInquiryCase.Sex, Age: orderInquiryCase.Age, Height: orderInquiryCase.Height, Weight: orderInquiryCase.Weight, DiseaseClassId: strconv.FormatInt(orderInquiryCase.DiseaseClassId, 10), DiseaseClassName: orderInquiryCase.DiseaseClassName, DiagnosisDate: orderInquiryCase.DiagnosisDate, DiseaseDesc: orderInquiryCase.DiseaseDesc, IsAllergyHistory: orderInquiryCase.IsAllergyHistory, AllergyHistory: orderInquiryCase.AllergyHistory, IsFamilyHistory: orderInquiryCase.IsFamilyHistory, FamilyHistory: orderInquiryCase.FamilyHistory, IsPregnant: orderInquiryCase.IsPregnant, Pregnant: orderInquiryCase.Pregnant, IsTaboo: orderInquiryCase.IsTaboo, CreatedAt: orderInquiryCase.CreatedAt, UpdatedAt: orderInquiryCase.UpdatedAt, } if patientFamilyHealth != nil { u.DiagnosisHospital = patientFamilyHealth.DiagnosisHospital u.IsTakeMedicine = patientFamilyHealth.IsTakeMedicine u.DrugsName = patientFamilyHealth.DrugsName } if patientFamilyPersonal != nil { u.DrinkWineStatus = patientFamilyPersonal.DrinkWineStatus u.SmokeStatus = patientFamilyPersonal.SmokeStatus u.ChemicalCompoundStatus = patientFamilyPersonal.ChemicalCompoundStatus u.ChemicalCompoundDescribe = patientFamilyPersonal.ChemicalCompoundDescribe u.IsOperation = patientFamilyPersonal.IsOperation u.Operation = patientFamilyPersonal.Operation } // 处理复诊凭证 var diagnoseImages []*string if orderInquiryCase.DiagnoseImages != "" { diagnoseImages := strings.Split(orderInquiryCase.DiagnoseImages, ",") for i, image := range diagnoseImages { diagnoseImages[i] = utils.AddOssDomain(image) } } u.DiagnoseImages = diagnoseImages // 处理用药意向 var product []*string if inquiryCaseProducts != nil { for _, inquiryCaseProduct := range inquiryCaseProducts { // 获取商品数据 productDao := dao.ProductDao{} productData, err := productDao.GetProductById(inquiryCaseProduct.ProductId) if err != nil { return nil, errors.New("数据错误") } caseProductNum := fmt.Sprintf("%d", inquiryCaseProduct.CaseProductNum) productName := productData.ProductName + productData.ProductSpec + "(" + caseProductNum + productData.PackagingUnit + ")" product = append(product, &productName) } } u.Product = product return u, nil }