From a0b77261156d0db113f98378b46690fc1b76cefb Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Fri, 15 Sep 2023 16:20:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=97=AE=E8=AF=8A=E7=97=85?= =?UTF-8?q?=E4=BE=8B=E6=8E=A5=E5=8F=A3=E6=9F=A5=E8=AF=A2=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=97=AE=E8=AF=8A=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=97=AE=E8=AF=8A=E7=97=85=E4=BE=8B=E8=BF=94=E5=9B=9E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/dao/inquiryCaseProduct.go | 65 +++++++++++++++++++ api/dao/userDoctor.go | 4 ++ api/model/inquiryCaseProduct.go | 34 ++++++++++ .../orderInquiryCase.go | 3 +- api/service/case.go | 41 +++++++++++- api/service/orderInquiryCase.go | 16 ----- 6 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 api/dao/inquiryCaseProduct.go create mode 100644 api/model/inquiryCaseProduct.go diff --git a/api/dao/inquiryCaseProduct.go b/api/dao/inquiryCaseProduct.go new file mode 100644 index 0000000..1b92831 --- /dev/null +++ b/api/dao/inquiryCaseProduct.go @@ -0,0 +1,65 @@ +package dao + +import ( + "gorm.io/gorm" + "hospital-admin-api/api/model" + "hospital-admin-api/global" +) + +type InquiryCaseProductDao struct { +} + +func (r *InquiryCaseProductDao) DeleteInquiryCaseProduct(tx *gorm.DB, maps interface{}) error { + err := tx.Where(maps).Delete(&model.InquiryCaseProduct{}).Error + if err != nil { + return err + } + return nil +} + +func (r *InquiryCaseProductDao) GetInquiryCaseProductListByInquiryCaseId(inquiryCaseId int64) (m []*model.InquiryCaseProduct, err error) { + err = global.Db.Where("inquiry_case_id = ?", inquiryCaseId).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} + +func (r *InquiryCaseProductDao) EditInquiryCaseProduct(tx *gorm.DB, maps interface{}, data interface{}) error { + err := tx.Model(&model.InquiryCaseProduct{}).Where(maps).Updates(data).Error + if err != nil { + return err + } + return nil +} + +func (r *InquiryCaseProductDao) EditInquiryCaseProductById(tx *gorm.DB, caseProductId int64, data interface{}) error { + err := tx.Model(&model.InquiryCaseProduct{}).Where("case_product_id = ?", caseProductId).Updates(data).Error + if err != nil { + return err + } + return nil +} + +func (r *InquiryCaseProductDao) GetInquiryCaseProductList(maps interface{}) (m []*model.InquiryCaseProduct, err error) { + err = global.Db.Where(maps).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} + +func (r *InquiryCaseProductDao) AddInquiryCaseProduct(tx *gorm.DB, model *model.InquiryCaseProduct) (*model.InquiryCaseProduct, error) { + if err := tx.Create(model).Error; err != nil { + return nil, err + } + return model, nil +} + +func (r *InquiryCaseProductDao) AddInquiryCaseProductByMap(tx *gorm.DB, data map[string]interface{}) (*model.InquiryCaseProduct, error) { + userDoctorInfo := &model.InquiryCaseProduct{} + if err := tx.Model(&model.InquiryCaseProduct{}).Create(data).Error; err != nil { + return nil, err + } + return userDoctorInfo, nil +} diff --git a/api/dao/userDoctor.go b/api/dao/userDoctor.go index f149d53..62e907f 100644 --- a/api/dao/userDoctor.go +++ b/api/dao/userDoctor.go @@ -198,6 +198,10 @@ func (r *UserDoctorDao) GetUserDoctorPageSearch(getUserDoctorPage requests.GetUs query = query.Where("is_platform_deep_cooperation = ?", getUserDoctorPage.IsPlatformDeepCooperation) } + if getUserDoctorPage.IsSysDiagnoCooperation != nil { + query = query.Where("is_sys_diagno_cooperation = ?", getUserDoctorPage.IsSysDiagnoCooperation) + } + // 查询总数量 if err := query.Count(&totalRecords).Error; err != nil { return nil, 0, err diff --git a/api/model/inquiryCaseProduct.go b/api/model/inquiryCaseProduct.go new file mode 100644 index 0000000..9daaa0b --- /dev/null +++ b/api/model/inquiryCaseProduct.go @@ -0,0 +1,34 @@ +package model + +import ( + "gorm.io/gorm" + "hospital-admin-api/global" + "time" +) + +// InquiryCaseProduct 问诊病例-用药意向表 +type InquiryCaseProduct struct { + CaseProductId int64 `gorm:"column:case_product_id;type:bigint(19);primary_key;comment:主键id" json:"case_product_id"` + InquiryCaseId int64 `gorm:"column:inquiry_case_id;type:bigint(19);comment:病例id" json:"inquiry_case_id"` + ProductId int64 `gorm:"column:product_id;type:bigint(19);comment:商品id" json:"product_id"` + CaseProductNum int `gorm:"column:case_product_num;type:int(11);default:1;comment:药品数量" json:"case_product_num"` + Model +} + +func (m *InquiryCaseProduct) TableName() string { + return "gdxz_inquiry_case_product" +} + +func (m *InquiryCaseProduct) BeforeCreate(tx *gorm.DB) error { + if m.CaseProductId == 0 { + m.CaseProductId = global.Snowflake.Generate().Int64() + } + + m.CreatedAt = LocalTime(time.Now()) + tx.Statement.SetColumn("CreatedAt", m.CreatedAt) + + m.UpdatedAt = LocalTime(time.Now()) + tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt) + + return nil +} diff --git a/api/responses/orderInquiryCaseResponse/orderInquiryCase.go b/api/responses/orderInquiryCaseResponse/orderInquiryCase.go index d42df9f..821d7ef 100644 --- a/api/responses/orderInquiryCaseResponse/orderInquiryCase.go +++ b/api/responses/orderInquiryCaseResponse/orderInquiryCase.go @@ -22,7 +22,7 @@ type OrderInquiryCase struct { DiseaseClassName string `json:"disease_class_name"` // 疾病名称-系统 DiagnosisDate model.LocalTime `json:"diagnosis_date"` // 确诊日期 DiseaseDesc string `json:"disease_desc"` // 病情描述(主诉) - DiagnoseImages string `json:"diagnose_images"` // 复诊凭证(多个使用逗号分隔) + DiagnoseImages []*string `json:"diagnose_images"` // 复诊凭证(多个使用逗号分隔) IsAllergyHistory *int `json:"is_allergy_history"` // 是否存在过敏史(0:否 1:是) AllergyHistory string `json:"allergy_history"` // 过敏史描述 IsFamilyHistory *int `json:"is_family_history"` // 是否存在家族病史(0:否 1:是) @@ -39,6 +39,7 @@ type OrderInquiryCase struct { ChemicalCompoundDescribe string `json:"chemical_compound_describe"` // 化合物描述 IsOperation *int `json:"is_operation"` // 是否存在手术(0:否 1:是) Operation string `json:"operation"` // 手术描述 + Product []*string `json:"product"` // 用药意向 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间 } diff --git a/api/service/case.go b/api/service/case.go index ed9ecf6..dd35e7d 100644 --- a/api/service/case.go +++ b/api/service/case.go @@ -2,9 +2,12 @@ package service import ( "errors" + "fmt" "hospital-admin-api/api/dao" "hospital-admin-api/api/responses/orderInquiryCaseResponse" + "hospital-admin-api/utils" "strconv" + "strings" ) // CaseService 病例 @@ -27,6 +30,10 @@ func (r *CaseService) GetOrderInquiryCaseByInquiryCaseId(inquiryCaseId int64) (u 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), @@ -45,7 +52,6 @@ func (r *CaseService) GetOrderInquiryCaseByInquiryCaseId(inquiryCaseId int64) (u DiseaseClassName: orderInquiryCase.DiseaseClassName, DiagnosisDate: orderInquiryCase.DiagnosisDate, DiseaseDesc: orderInquiryCase.DiseaseDesc, - DiagnoseImages: orderInquiryCase.DiagnoseImages, IsAllergyHistory: orderInquiryCase.IsAllergyHistory, AllergyHistory: orderInquiryCase.AllergyHistory, IsFamilyHistory: orderInquiryCase.IsFamilyHistory, @@ -71,5 +77,38 @@ func (r *CaseService) GetOrderInquiryCaseByInquiryCaseId(inquiryCaseId int64) (u 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 i, inquiryCaseProduct := range inquiryCaseProducts { + // 获取商品数据 + productDao := dao.ProductDao{} + productData, err := productDao.GetProductById(inquiryCaseProduct.CaseProductId) + if err != nil { + return nil, errors.New("数据错误") + } + + caseProductNum := fmt.Sprintf("%d", inquiryCaseProduct.CaseProductNum) + productName := productData.ProductName + productData.ProductSpec + "(" + caseProductNum + productData.PackagingUnit + ")" + + product[i] = &productName + } + } + + u.Product = product + return u, nil } diff --git a/api/service/orderInquiryCase.go b/api/service/orderInquiryCase.go index 0179ed7..5c04307 100644 --- a/api/service/orderInquiryCase.go +++ b/api/service/orderInquiryCase.go @@ -24,27 +24,11 @@ func (r *OrderInquiryCaseService) GetOrderInquiryCaseByOrderInquiryId(orderInqui 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, - DiagnoseImages: orderInquiryCase.DiagnoseImages, - 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, } return u, nil