csx пре 3 година
родитељ
комит
3ac0ad1099

+ 2 - 3
controllers/his_hospital_api_controller.go Прегледај датотеку

@@ -135,11 +135,10 @@ func (c *HisHospitalApiController) GetHisHospitalChargePatientList() {
135 135
 	orders, _ := service.GetNewAllChargeHisHospitalPatientList(adminInfo.CurrentOrgId, recordDateTime)
136 136
 	tempPatients, _ := service.GetNewAllUnChargeHisHospitalPatientList(adminInfo.CurrentOrgId, recordDateTime)
137 137
 
138
-	var patients []*service.HospitalPatient
138
+	var patients []*models.HisHospitalCheckRecord
139 139
 	for _, item := range tempPatients {
140 140
 		fmt.Println(item.ID)
141
-		if item.HisHospitalCheckRecord.ID > 0 && item.HisHospitalCheckRecord.InHospitalStatus == 1 &&
142
-			item.HisHospitalCheckRecord.HisHospitalOrder.ID == 0 {
141
+		if item.ID > 0 && item.InHospitalStatus == 1 && item.HisHospitalOrder.OrderStatus != 2 {
143 142
 			patients = append(patients, item)
144 143
 		}
145 144
 	}

+ 1 - 0
models/his_charge_models.go Прегледај датотеку

@@ -25,6 +25,7 @@ type HisChargeDoctorAdviceInfo struct {
25 25
 	AdviceName string `gorm:"column:advice_name" json:"advice_name" form:"advice_name"`
26 26
 	Status     int64  `gorm:"column:status" json:"status" form:"status"`
27 27
 	DrugId     int64  `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
28
+	Drug       Drug   `gorm:"ForeignKey:ID;AssociationForeignKey:DrugId" json:"drug"`
28 29
 }
29 30
 
30 31
 func (HisChargeDoctorAdviceInfo) TableName() string {

+ 81 - 17
service/his_charge_service.go Прегледај датотеку

@@ -12,7 +12,10 @@ func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64,
12 12
 			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
13 13
 				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
14 14
 					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
15
-						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
15
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").
16
+							Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
17
+								return db.Preload("Drug", "status = 1").Where("status = 1")
18
+							}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
16 19
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
17 20
 								return db.Select("id,project_name,unit").Where("status = 1 ")
18 21
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
@@ -27,7 +30,9 @@ func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64,
27 30
 			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
28 31
 				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
29 32
 					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
30
-						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id > 0 AND project_id = 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
33
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id > 0 AND project_id = 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
34
+							return db.Preload("Drug", "status = 1").Where("status = 1")
35
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
31 36
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
32 37
 								return db.Select("id,project_name,unit").Where("status = 1 ")
33 38
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
@@ -42,7 +47,9 @@ func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64,
42 47
 			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
43 48
 				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
44 49
 					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
45
-						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
50
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
51
+							return db.Preload("Drug", "status = 1").Where("status = 1")
52
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
46 53
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
47 54
 								return db.Select("id,project_name,unit").Where("status = 1 ")
48 55
 							}).Where("status = 1 ")
@@ -55,7 +62,9 @@ func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64,
55 62
 			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
56 63
 				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
57 64
 					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
58
-						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
65
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
66
+							return db.Preload("Drug", "status = 1").Where("status = 1")
67
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
59 68
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
60 69
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
61 70
 							}).Where("status = 1 ")
@@ -68,19 +77,74 @@ func GetAllPatientChargeDetails(org_id int64, start_time int64, end_time int64,
68 77
 		}
69 78
 
70 79
 	} else {
71
-		keyword = "%" + keyword + "%"
72
-		err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
73
-			return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
74
-				Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
75
-					return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", "status = 1").Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
76
-						return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
77
-							return db.Select("id,project_name,unit").Where("status = 1 ")
78
-						}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
79
-							return db.Select("id,good_name,good_unit").Where("status = 1 ")
80
-						}).Where("status = 1 ")
81
-					})
82
-				}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
83
-		}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
80
+		keyword := "%" + keyword + "%"
81
+		switch item_type {
82
+		case 0:
83
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
84
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
85
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
86
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
87
+							return db.Preload("Drug", "status = 1").Where("status = 1")
88
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
89
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
90
+								return db.Select("id,project_name,unit").Where("status = 1 ")
91
+							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
92
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
93
+							}).Where("status = 1 ")
94
+						})
95
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
96
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
97
+
98
+			break
99
+		case 1:
100
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
101
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
102
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
103
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id > 0 AND project_id = 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
104
+							return db.Preload("Drug", "status = 1").Where("status = 1")
105
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
106
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
107
+								return db.Select("id,project_name,unit").Where("status = 1 ")
108
+							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
109
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
110
+							}).Where("status = 1 ")
111
+						})
112
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
113
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
114
+
115
+			break
116
+		case 2:
117
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
118
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
119
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
120
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
121
+							return db.Preload("Drug", "status = 1").Where("status = 1")
122
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
123
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
124
+								return db.Select("id,project_name,unit").Where("status = 1 ")
125
+							}).Where("status = 1 ")
126
+						})
127
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
128
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
129
+
130
+			break
131
+		case 3:
132
+			err = readDb.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND orders.settle_accounts_date >= ? AND orders.settle_accounts_date <= ? AND orders.user_org_id = ? AND orders.order_status = 2", start_time, end_time, org_id).Preload("HisChargeOrder", func(db *gorm.DB) *gorm.DB {
133
+				return db.Select("id,user_org_id,his_patient_id,settle_accounts_date,status,number,order_status,mdtrt_id,patient_id").
134
+					Preload("HisChargeOrderInfo", func(db *gorm.DB) *gorm.DB {
135
+						return db.Select("id,order_number,advice_id,det_item_fee_sumamt,cnt,pric,med_chrgitm_type,status,chld_medc_flag,chrgitm_lv,user_org_id,project_id,type").Where("advice_id = 0 AND project_id > 0").Preload("HisChargeDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
136
+							return db.Preload("Drug", "status = 1").Where("status = 1")
137
+						}).Preload("HisChargePrescriptionProject", func(db *gorm.DB) *gorm.DB {
138
+							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
139
+								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
140
+							}).Where("status = 1 ")
141
+						})
142
+					}).Where("status = 1  AND settle_accounts_date >= ? AND settle_accounts_date <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
143
+			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
144
+
145
+			break
146
+
147
+		}
84 148
 
85 149
 	}
86 150
 

+ 5 - 10
service/his_hospital_service.go Прегледај датотеку

@@ -103,20 +103,15 @@ func GetHisHospitalSchPatientList(org_id int64, record_date int64, sch_type int6
103 103
 
104 104
 }
105 105
 
106
-func GetNewAllUnChargeHisHospitalPatientList(org_id int64, record_date int64) (patients []*HospitalPatient, err error) {
107
-	db := readDb.Model(&HospitalPatient{}).Where("xt_patients.user_org_id = ? AND xt_patients.status = 1", org_id)
108
-	db = db.Joins("join his_hospital_check_record as hp ON hp.patient_id = xt_patients.id  AND hp.status = 1 AND hp.user_org_id = ? ", org_id)
109
-
110
-	db = db.Preload("HisHospitalCheckRecord", func(db *gorm.DB) *gorm.DB {
111
-		return db.Where("status = 1 AND user_org_id = ? AND in_hospital_status = 1", org_id).Preload("HisHospitalOrder", "user_org_id = ? AND status = 1", org_id)
112
-	})
113
-	//db = db.Preload("HisHospitalOrder", "user_org_id = ? AND status = 1 ", org_id)
114
-	err = db.Group("id").Find(&patients).Error
106
+func GetNewAllUnChargeHisHospitalPatientList(org_id int64, record_date int64) (patients []*models.HisHospitalCheckRecord, err error) {
107
+	db := readDb.Model(&models.HisHospitalCheckRecord{}).Where("his_hospital_check_record.user_org_id = ? AND his_hospital_check_record.status = 1 AND his_hospital_check_record.in_hospital_status = 1", org_id)
108
+	db = db.Preload("HisHospitalOrder", "user_org_id = ? AND status = 1", org_id)
109
+	err = db.Group("number").Find(&patients).Error
115 110
 	return
116 111
 }
117 112
 
118 113
 func GetNewAllChargeHisHospitalPatientList(org_id int64, record_date int64) (orders []*HisHospitalOrder, err error) {
119
-	db := readDb.Model(&HisHospitalOrder{}).Where("his_order.user_org_id = ? AND his_order.status = 1 AND his_order.settle_accounts_date = ? AND his_order.p_type = 1", org_id, record_date)
114
+	db := readDb.Model(&HisHospitalOrder{}).Where("his_order.user_org_id = ? AND his_order.status = 1 AND his_order.settle_accounts_date = ? AND his_order.p_type = 1 AND his_order.order_status = 2", org_id, record_date)
120 115
 	db = db.Preload("Patient", "status = 1")
121 116
 	db = db.Preload("HisHospitalCheckRecord", func(db *gorm.DB) *gorm.DB {
122 117
 		return db.Where("status = 1 AND user_org_id = ? AND in_hospital_status = 1", org_id)