package service import ( "XT_New/models" "github.com/jinzhu/gorm" ) type HisPatient struct { ID int64 `gorm:"column:id" json:"id" form:"id"` Name string `gorm:"column:name" json:"name" form:"name"` Gender int64 `gorm:"column:gender" json:"gender" form:"gender"` Total float64 `gorm:"column:total" json:"total" form:"total"` UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"` Status int64 `gorm:"column:status" json:"status" form:"status"` RecordDate int64 `gorm:"column:record_date" json:"record_date" form:"record_date"` HisPrescription []*HisPrescription `gorm:"ForeignKey:PatientId,RecordDate;AssociationForeignKey:ID,RecordDate" json:"prescription"` PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"` Number string `gorm:"column:name" json:"name" form:"name"` } func (HisPatient) TableName() string { return "his_patient" } type Schedule struct { ID int64 `gorm:"column:id" json:"id" form:"id"` UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"` PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"` Status int64 `gorm:"column:status" json:"status" form:"status"` ScheduleDate int64 `gorm:"column:schedule_date" json:"schedule_date" form:"schedule_date"` Patients Patients `gorm:"ForeignKey:ID;AssociationForeignKey:PatientId" json:"patients"` HisPatient HisPatient `gorm:"ForeignKey:PatientId,RecordDate;AssociationForeignKey:PatientId,ScheduleDate" json:"his_patient"` HisPrescription []*HisPrescription `gorm:"ForeignKey:PatientId,RecordDate;AssociationForeignKey:PatientId,ScheduleDate" json:"prescription"` } func (Schedule) TableName() string { return "xt_schedule" } type Patients struct { ID int64 `gorm:"column:id" json:"id" form:"id"` UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"` Name string `gorm:"column:name" json:"name" form:"name"` Status int64 `gorm:"column:status" json:"status" form:"status"` } func (Patients) TableName() string { return "xt_patients" } type HisPrescription struct { ID int64 `gorm:"column:id" json:"id" form:"id"` UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"` RecordDate int64 `gorm:"column:record_date" json:"record_date" form:"record_date"` PatientId int64 `gorm:"column:patient_id" json:"patient_id" form:"patient_id"` HisPatientId int64 `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"` Status int64 `gorm:"column:status" json:"status" form:"status"` } func (HisPrescription) TableName() string { return "his_prescription" } func GetHisPatientList(org_id int64, keywords string, record_date int64) (patients []*Schedule, err error) { db := readDb.Model(&Schedule{}).Where("user_org_id = ? AND status = 1 AND schedule_date = ?", org_id, record_date) db = db.Preload("Patients", "user_org_id = ? AND status = 1", org_id) db = db.Preload("HisPatient", "user_org_id = ? AND status = 1", org_id) err = db.Preload("HisPrescription", "user_org_id = ? AND status = 1", org_id).Find(&patients).Error return } func GetAllBaseDrugStockList(org_id int64) (drugs []*models.BaseDrugLib, err error) { err = readDb.Model(&models.BaseDrugLib{}).Where("user_org_id = ? AND status = 1", org_id).Find(&drugs).Error return } func GetHisPatientInfo(org_id int64, patient_id int64, record_date int64) (info HisPatient, err error) { err = readDb.Model(&models.HisPatient{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND id = ?", org_id, record_date, patient_id).First(&info).Error return } func GetXTPatientInfo(org_id int64, patient_id int64) (info models.Patients, err error) { err = readDb.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1 AND id = ?", org_id, patient_id).First(&info).Error return } func GetHisPatientCaseHistoryInfo(org_id int64, patient_id int64, record_date int64) (info models.HisPatientCaseHistory, err error) { err = readDb.Model(&models.HisPatientCaseHistory{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ?", org_id, record_date, patient_id).First(&info).Error return } func GetHisPatientCaseHistoryList(org_id int64, patient_id int64) (caseHistorys []*models.HisPatientCaseHistory, err error) { db := readDb.Model(&models.HisPatientCaseHistory{}).Where("user_org_id = ? AND status = 1 AND his_patient_id = ?", org_id, patient_id) err = db.Find(&caseHistorys).Error return } func GetHisPatientCaseHistoryTemplate(org_id int64) (caseHistorys []*models.HisCaseHistoryTemplate, err error) { db := readDb.Model(&models.HisCaseHistoryTemplate{}).Where("user_org_id = ? AND status = 1", org_id) err = db.Find(&caseHistorys).Error return } func SaveHisPatientCaseHistoryTemplate(template models.HisCaseHistoryTemplate) (err error) { err = writeDb.Create(&template).Error return } func SaveHisPatientCaseHistory(caseHistory models.HisPatientCaseHistory) (err error) { err = writeDb.Create(&caseHistory).Error return } func SaveHisPrescription(prescription *models.HisPrescription) (err error) { err = writeDb.Create(&prescription).Error return } func GetHisPrescription(org_id int64, patient_id int64, record_date int64) (prescription []*models.HisPrescription, err error) { err = readDb.Model(&models.HisPrescription{}). Preload("HisDoctorAdviceInfo", "status = 1 AND user_org_id = ?", org_id). Preload("HisPrescriptionProject", "status = 1 AND user_org_id = ?", org_id). Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ?", org_id, record_date, patient_id). First(&prescription).Error return } func GetAllDrugLibList(org_id int64) (list []*models.BaseDrugLib, err error) { err = readDb.Model(&models.BaseDrugLib{}).Where("org_id = ? AND status = 1", org_id).Find(&list).Error return } func GetAllProjectList(org_id int64) (list []*models.HisProject, err error) { err = readDb.Model(&models.HisProject{}).Where("user_org_id = ? AND status = 1", org_id).Find(&list).Error return } func CreateAddtionalCharge(charge *models.HisAdditionalCharge) (err error) { err = writeDb.Create(&charge).Error return } func FindAllHisAdviceTemplate(org_id int64) (temps []*models.HisDoctorAdviceParentTemplate, err error) { err = readDb.Model(&models.HisDoctorAdviceParentTemplate{}).Preload("HisDoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB { return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,way,drug_id,drug_name_id, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id") }).Where("org_id = ? AND status=1 ", org_id).Find(&temps).Error return } func GetHisAdminUserDoctors(org_id int64) (doctors []*models.UserAdminRole, err error) { err = readUserDb.Model(&models.UserAdminRole{}).Where("org_id = ? AND status = 1 AND (user_type = 1 OR user_type = 2)", org_id).Find(&doctors).Error return } func CreateHisDoctorAdvice(s *models.HisDoctorAdviceInfo) (err error) { err = writeDb.Create(s).Error return }