陈少旭 1 年間 前
コミット
6e89509bba
共有5 個のファイルを変更した84 個の追加9 個の削除を含む
  1. 1 1
      conf/app.conf
  2. 49 0
      controllers/his_api_controller.go
  3. 8 8
      service/his_charge_service.go
  4. 1 0
      service/his_hospital_service.go
  5. 25 0
      service/his_service.go

+ 1 - 1
conf/app.conf ファイルの表示

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

+ 49 - 0
controllers/his_api_controller.go ファイルの表示

@@ -100,6 +100,55 @@ func HisManagerApiRegistRouters() {
100 100
 
101 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 154
 func (c *HisApiController) GetBatchSettleAccounts() {

+ 8 - 8
service/his_charge_service.go ファイルの表示

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

@@ -602,6 +602,7 @@ func GetHisInHospitalHistory(keyword string, startime int64, endtime int64, limi
602 602
 	if orgid > 0 {
603 603
 		db = db.Where("user_org_id = ?", orgid)
604 604
 	}
605
+
605 606
 	err = db.Count(&total).Offset(offset).Limit(limit).Order("id desc").Find(&hisPatient).Error
606 607
 	return hisPatient, total, err
607 608
 }

+ 25 - 0
service/his_service.go ファイルの表示

@@ -2785,3 +2785,28 @@ func GetHisPrescriptionProjectByIDTwoone(id int64) (projects models.HisPrescript
2785 2785
 	err = readDb.Model(&models.HisPrescriptionProject{}).Preload("GoodInfo", "status = 1").Preload("HisProject", "status = 1").Where("id = ? AND status = 1", id).First(&projects).Error
2786 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
+}