hospital-admin-api/api/dto/OrderInquiryCase.go

173 lines
8.1 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"fmt"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/model"
"hospital-admin-api/utils"
)
type OrderInquiryCaseDto struct {
InquiryCaseId string `json:"inquiry_case_id"` // 主键id
UserId string `json:"user_id"` // 用户id
PatientId string `json:"patient_id"` // 患者id
OrderInquiryId string `json:"order_inquiry_id"` // 订单-问诊id;NOT NULL
FamilyId string `json:"family_id"` // 家庭成员id
Relation *int `json:"relation"` // 与患者关系1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他)
Status *int `json:"status"` // 状态1:正常 2:删除)
Name string `json:"name"` // 患者名称
Sex *int `json:"sex"` // 患者性别0:未知 1:男 2:女)
Age *int `json:"age"` // 患者年龄
Height string `json:"height"` // 身高cm
Weight string `json:"weight"` // 体重kg
DiseaseClassId string `json:"disease_class_id"` // 疾病分类id-系统
DiseaseClassName string `json:"disease_class_name"` // 疾病名称-系统
DiagnosisDate model.LocalTime `json:"diagnosis_date"` // 确诊日期
DiseaseDesc string `json:"disease_desc"` // 病情描述(主诉)
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:是)
FamilyHistory string `json:"family_history"` // 家族病史描述
IsPregnant *int `json:"is_pregnant"` // 是否备孕、妊娠、哺乳期0:否 1:是)
Pregnant string `json:"pregnant"` // 备孕、妊娠、哺乳期描述
IsTaboo *int `json:"is_taboo"` // 是否服用过禁忌药物且无相关禁忌0:否 1:是)问诊购药时存在
DiagnosisHospital string `json:"diagnosis_hospital"` // 确诊医院
IsTakeMedicine *int `json:"is_take_medicine"` // 正在服药0:否 1:是)
DrugsName string `json:"drugs_name"` // 正在服药名称
DrinkWineStatus *int `json:"drink_wine_status"` // 饮酒状态1:从不 2:偶尔 3:经常 4:每天 5:已戒酒)
SmokeStatus *int `json:"smoke_status"` // 吸烟状态1:从不 2:偶尔 3:经常 4:每天 5:已戒烟)
ChemicalCompoundStatus *int `json:"chemical_compound_status"` // 化合物状态1:从不 2:偶尔 3:经常 4:每天)
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"` // 修改时间
}
func GetOrderInquiryCaseDto(m *model.OrderInquiryCase) *OrderInquiryCaseDto {
return &OrderInquiryCaseDto{
InquiryCaseId: fmt.Sprintf("%d", m.InquiryCaseId),
UserId: fmt.Sprintf("%d", m.InquiryCaseId),
PatientId: fmt.Sprintf("%d", m.InquiryCaseId),
OrderInquiryId: fmt.Sprintf("%d", m.InquiryCaseId),
FamilyId: fmt.Sprintf("%d", m.InquiryCaseId),
Relation: m.Relation,
Status: m.Status,
Name: m.Name,
Sex: m.Sex,
Age: m.Age,
Height: m.Height,
Weight: m.Weight,
DiseaseClassId: fmt.Sprintf("%d", m.InquiryCaseId),
DiseaseClassName: m.DiseaseClassName,
DiagnosisDate: m.DiagnosisDate,
DiseaseDesc: m.DiseaseDesc,
DiagnoseImages: m.DiagnoseImages,
IsAllergyHistory: m.IsAllergyHistory,
AllergyHistory: m.AllergyHistory,
IsFamilyHistory: m.IsFamilyHistory,
FamilyHistory: m.FamilyHistory,
IsPregnant: m.IsPregnant,
Pregnant: m.Pregnant,
IsTaboo: m.IsTaboo,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetMaskOrderInquiryCaseDto(m *model.OrderInquiryCase) *OrderInquiryCaseDto {
return &OrderInquiryCaseDto{
InquiryCaseId: fmt.Sprintf("%d", m.InquiryCaseId),
UserId: fmt.Sprintf("%d", m.InquiryCaseId),
PatientId: fmt.Sprintf("%d", m.InquiryCaseId),
OrderInquiryId: fmt.Sprintf("%d", m.InquiryCaseId),
FamilyId: fmt.Sprintf("%d", m.InquiryCaseId),
Relation: m.Relation,
Status: m.Status,
Name: utils.MaskNameStr(m.Name, 0),
Sex: m.Sex,
Age: m.Age,
DiseaseClassId: fmt.Sprintf("%d", m.InquiryCaseId),
DiseaseClassName: m.DiseaseClassName,
DiagnosisDate: m.DiagnosisDate,
DiseaseDesc: m.DiseaseDesc,
DiagnoseImages: m.DiagnoseImages,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetOrderInquiryCaseListDto(m []*model.OrderInquiryCase) []OrderInquiryCaseDto {
// 处理返回值
responses := make([]OrderInquiryCaseDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := OrderInquiryCaseDto{
InquiryCaseId: fmt.Sprintf("%d", v.InquiryCaseId),
UserId: fmt.Sprintf("%d", v.UserId),
PatientId: fmt.Sprintf("%d", v.PatientId),
OrderInquiryId: fmt.Sprintf("%d", v.OrderInquiryId),
FamilyId: fmt.Sprintf("%d", v.FamilyId),
Name: v.Name,
Sex: v.Sex,
Age: v.Age,
DiseaseClassName: v.DiseaseClassName,
DiseaseDesc: v.DiseaseDesc,
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadPatientFamilyHealthAttr 加载健康属性
func (r *OrderInquiryCaseDto) LoadPatientFamilyHealthAttr(m *model.PatientFamilyHealth) *OrderInquiryCaseDto {
if m != nil {
r.DiagnosisHospital = m.DiagnosisHospital
r.IsTakeMedicine = m.IsTakeMedicine
r.DrugsName = m.DrugsName
}
return r
}
// LoadPatientFamilyPersonalAttr 加载个人情况属性
func (r *OrderInquiryCaseDto) LoadPatientFamilyPersonalAttr(m *model.PatientFamilyPersonal) *OrderInquiryCaseDto {
if m != nil {
r.DrinkWineStatus = m.DrinkWineStatus
r.SmokeStatus = m.SmokeStatus
r.ChemicalCompoundStatus = m.ChemicalCompoundStatus
r.ChemicalCompoundDescribe = m.ChemicalCompoundDescribe
r.IsOperation = m.IsOperation
r.Operation = m.Operation
}
return r
}
// LoadInquiryCaseProduct 加载用药意向
func (r *OrderInquiryCaseDto) LoadInquiryCaseProduct(m []*model.InquiryCaseProduct) *OrderInquiryCaseDto {
if len(m) > 0 {
var product []*string
for _, inquiryCaseProduct := range m {
// 获取商品数据
productDao := dao.ProductDao{}
productData, err := productDao.GetProductById(inquiryCaseProduct.ProductId)
if err != nil {
return r
}
caseProductNum := fmt.Sprintf("%d", inquiryCaseProduct.CaseProductNum)
productName := productData.ProductName + productData.ProductSpec + "(" + caseProductNum + productData.PackagingUnit + ")"
product = append(product, &productName)
}
r.Product = product
}
return r
}