陈少旭 1 year ago
parent
commit
6e89509bba

+ 1 - 1
conf/app.conf View File

1
 appname = 血透
1
 appname = 血透
2
 httpport = 9531
2
 httpport = 9531
3
-runmode = dev
3
+runmode = prod
4
 #dev/prod
4
 #dev/prod
5
 
5
 
6
 #
6
 #

+ 49 - 0
controllers/his_api_controller.go View File

100
 
100
 
101
 	beego.Router("/api/batch/settleaccount", &HisApiController{}, "get:GetBatchSettleAccounts")
101
 	beego.Router("/api/batch/settleaccount", &HisApiController{}, "get:GetBatchSettleAccounts")
102
 
102
 
103
+	beego.Router("/api/monthhispatient", &HisApiController{}, "get:GetMonthHisPatient")
104
+
105
+}
106
+func (c *HisApiController) GetMonthHisPatient() {
107
+	record_date := c.GetString("record_date")
108
+	//order_status, _ := c.GetInt64("type")
109
+
110
+	timeLayout := "2006-01-02"
111
+	loc, _ := time.LoadLocation("Local")
112
+	theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
113
+	if err != nil {
114
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
115
+		return
116
+	}
117
+	recordDateTime := theTime.Unix()
118
+	adminInfo := c.GetAdminUserInfo()
119
+	var tempPatients []service.NewTempPatients
120
+	//tempPatients, _ := service.GetAllChargeHisPatientList(adminInfo.CurrentOrgId, "", recordDateTime)
121
+	// 获取当前时间
122
+	now := time.Now()
123
+	// 获取本月的第一天
124
+	firstDay := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location())
125
+	// 获取下个月的第一天
126
+	nextMonth := firstDay.AddDate(0, 1, 0)
127
+	// 获取本月的最后一天
128
+	lastDay := nextMonth.Add(-time.Nanosecond)
129
+	tempPatients, _ = service.GetMonthNewAllUnChargeHisPatientList(adminInfo.CurrentOrgId, "", recordDateTime, firstDay.Unix(), lastDay.Unix())
130
+
131
+	chargePatients, _ := service.GetChargeHisPatientList(adminInfo.CurrentOrgId, recordDateTime)
132
+
133
+	var patients []service.NewTempPatients
134
+	var patients_two []service.NewTempPatients
135
+
136
+	for _, item := range tempPatients {
137
+		//过滤掉没挂号的和没开处方的
138
+		if len(item.HisPatient) > 0 && len(item.HisPrescription) > 0 {
139
+			patients = append(patients, item)
140
+		}
141
+		////过滤掉没挂号的
142
+		//if len(item.HisPatient) > 0 {
143
+		//	patients_two = append(patients_two, item)
144
+		//}
145
+	}
146
+	c.ServeSuccessJSON(map[string]interface{}{
147
+		"list":           patients,
148
+		"list_two":       patients_two,
149
+		"chargePatients": chargePatients,
150
+	})
151
+
103
 }
152
 }
104
 
153
 
105
 func (c *HisApiController) GetBatchSettleAccounts() {
154
 func (c *HisApiController) GetBatchSettleAccounts() {

+ 8 - 8
service/his_charge_service.go View File

22
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
22
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
23
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
23
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
24
 							}).Where("status = 1 ")
24
 							}).Where("status = 1 ")
25
-						})
25
+						}).Where("status = 1")
26
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
26
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
27
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
27
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
28
 
28
 
39
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
39
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
40
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
40
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
41
 							}).Where("status = 1 ")
41
 							}).Where("status = 1 ")
42
-						})
42
+						}).Where("status = 1")
43
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
43
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
44
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
44
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
45
 
45
 
54
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
54
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
55
 								return db.Select("id,project_name,unit").Where("status = 1 ")
55
 								return db.Select("id,project_name,unit").Where("status = 1 ")
56
 							}).Where("status = 1 ")
56
 							}).Where("status = 1 ")
57
-						})
57
+						}).Where("status = 1")
58
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
58
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
59
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
59
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
60
 
60
 
69
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
69
 							return db.Select("id,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
70
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
70
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
71
 							}).Where("status = 1 ")
71
 							}).Where("status = 1 ")
72
-						})
72
+						}).Where("status = 1")
73
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
73
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
74
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
74
 			}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
75
 
75
 
92
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
92
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
93
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
93
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
94
 							}).Where("status = 1 ")
94
 							}).Where("status = 1 ")
95
-						})
95
+						}).Where("status = 1")
96
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
96
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
97
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
97
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
98
 
98
 
109
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
109
 							}).Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
110
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
110
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
111
 							}).Where("status = 1 ")
111
 							}).Where("status = 1 ")
112
-						})
112
+						}).Where("status = 1")
113
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
113
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
114
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
114
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
115
 
115
 
124
 							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_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeProject", func(db *gorm.DB) *gorm.DB {
125
 								return db.Select("id,project_name,unit").Where("status = 1 ")
125
 								return db.Select("id,project_name,unit").Where("status = 1 ")
126
 							}).Where("status = 1 ")
126
 							}).Where("status = 1 ")
127
-						})
127
+						}).Where("status = 1")
128
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
128
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
129
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
129
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
130
 
130
 
139
 							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,project_id,user_org_id,status,patient_id,record_date,count,type").Preload("HisChargeGoodInfo", func(db *gorm.DB) *gorm.DB {
140
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
140
 								return db.Select("id,good_name,good_unit,specification_name").Where("status = 1 ")
141
 							}).Where("status = 1 ")
141
 							}).Where("status = 1 ")
142
-						})
142
+						}).Where("status = 1")
143
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
143
 					}).Where("status = 1  AND ctime >= ? AND ctime <= ? AND user_org_id = ? AND order_status = 2", start_time, end_time, org_id)
144
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
144
 			}).Where("p.status = 1  AND p.user_org_id = ? AND p.name LIKE ?", org_id, keyword).Group("id").Find(&patients).Error
145
 
145
 

+ 1 - 0
service/his_hospital_service.go View File

602
 	if orgid > 0 {
602
 	if orgid > 0 {
603
 		db = db.Where("user_org_id = ?", orgid)
603
 		db = db.Where("user_org_id = ?", orgid)
604
 	}
604
 	}
605
+
605
 	err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Find(&hisPatient).Error
606
 	err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Find(&hisPatient).Error
606
 	return hisPatient, total, err
607
 	return hisPatient, total, err
607
 }
608
 }

+ 25 - 0
service/his_service.go View File

2785
 	err = readDb.Model(&models.HisPrescriptionProject{}).Preload("GoodInfo", "status = 1").Preload("HisProject", "status = 1").Where("id = ? AND status = 1", id).First(&projects).Error
2785
 	err = readDb.Model(&models.HisPrescriptionProject{}).Preload("GoodInfo", "status = 1").Preload("HisProject", "status = 1").Where("id = ? AND status = 1", id).First(&projects).Error
2786
 	return
2786
 	return
2787
 }
2787
 }
2788
+
2789
+func GetMonthNewAllUnChargeHisPatientList(org_id int64, keywords string, record_date int64, start_date int64, end_date int64) (patients []NewTempPatients, err error) {
2790
+	db := readDb.Model(&NewTempPatients{}).Where("xt_patients.user_org_id = ? AND xt_patients.status = 1", org_id)
2791
+	db = db.Preload("HisPatient", func(db *gorm.DB) *gorm.DB {
2792
+		return db.Where("status = 1 AND user_org_id = ? AND record_date = ?", org_id, record_date).Preload("VMHisOrders", "user_org_id = ? AND status = 1 AND settle_accounts_date = ?", org_id, record_date)
2793
+	})
2794
+	db = db.Preload("HisPrescription", "user_org_id = ? AND status = 1  AND p_type <> 1 AND order_status <> 2 AND order_status <> 3 and record_date >= ? and record_date <= ?", org_id, start_date, end_date)
2795
+	err = db.Preload("VMHisPrescriptionInfo", "user_org_id = ? AND status = 1 AND record_date = ? AND p_type <> 1 AND prescription_status <> 3", org_id, record_date).Find(&patients).Error
2796
+
2797
+	for _, item := range patients {
2798
+		for _, sumItem := range item.HisPatient {
2799
+			if len(sumItem.VMHisOrders) > 0 {
2800
+				sumItem.VMHisOrder.OrderStatus = sumItem.VMHisOrders[len(sumItem.VMHisOrders)-1].OrderStatus
2801
+			}
2802
+		}
2803
+
2804
+	}
2805
+
2806
+	return
2807
+}
2808
+
2809
+func GetChargeHisPatientList(org_id int64, record_date int64) (order []*HisOrder, err error) {
2810
+	err = readDb.Model(&models.HisOrder{}).Preload("Patients", "status = 1").Where("settle_accounts_date = ? and user_org_id = ? AND status = 1 and order_status = 2", record_date, org_id).Find(&order).Error
2811
+	return
2812
+}