新增问诊病例接口查询,修改问诊订单详情问诊病例返回数据

This commit is contained in:
wucongxing 2023-09-15 16:20:07 +08:00
parent 744fb8d067
commit a0b7726115
6 changed files with 145 additions and 18 deletions

View File

@ -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
}

View File

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

View File

@ -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
}

View File

@ -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"` // 修改时间
}

View File

@ -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
}

View File

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