陈少旭 преди 1 година
родител
ревизия
a6a30c9070

+ 14 - 0
controllers/his_config_api_controller.go Целия файл

58
 	beego.Router("/api/his/addstemplate", &HisConfigApiController{}, "post:AddsTemplate")                //批量添加
58
 	beego.Router("/api/his/addstemplate", &HisConfigApiController{}, "post:AddsTemplate")                //批量添加
59
 	beego.Router("/api/his/ptemplateinformation", &HisConfigApiController{}, "get:PTemplateInformation") //根据患者id、透析模式获取处方模板信息
59
 	beego.Router("/api/his/ptemplateinformation", &HisConfigApiController{}, "get:PTemplateInformation") //根据患者id、透析模式获取处方模板信息
60
 	beego.Router("/api/his/deleteone", &HisConfigApiController{}, "get:DeleteOne")                       //删除单条处方模板
60
 	beego.Router("/api/his/deleteone", &HisConfigApiController{}, "get:DeleteOne")                       //删除单条处方模板
61
+
62
+	beego.Router("/api/his/exportmdtrtcerttype", &HisConfigApiController{}, "get:ExportMdtrtCertType") //删除单条处方模板
63
+
64
+}
65
+
66
+func (c *HisConfigApiController) ExportMdtrtCertType() {
67
+	start_time := c.GetString("start_time")
68
+	end_time := c.GetString("end_time")
69
+	start_time = start_time + " 00:00:00"
70
+	end_time = end_time + " 23:00:00"
71
+	os, _ := service.GetHisMdtrtCertType(start_time, end_time, c.GetAdminUserInfo().CurrentOrgId)
72
+	c.ServeSuccessJSON(map[string]interface{}{
73
+		"list": os,
74
+	})
61
 }
75
 }
62
 
76
 
63
 func (c *HisConfigApiController) GetAllHisPatientsList() {
77
 func (c *HisConfigApiController) GetAllHisPatientsList() {

+ 36 - 0
controllers/his_export_data_controller.go Целия файл

1
+package controllers
2
+
3
+import (
4
+	"XT_New/service"
5
+	"github.com/astaxie/beego"
6
+)
7
+
8
+type HisExportDataController struct {
9
+	BaseAuthAPIController
10
+}
11
+
12
+func HisExportDataApiRegistRouters() {
13
+
14
+	beego.Router("/api/export", &HisExportDataController{}, "Get:GetExportData")
15
+}
16
+
17
+func (this *HisExportDataController) GetExportData() {
18
+	start_time := this.GetString("start_time")
19
+	start_time = start_time + " 00:00:00"
20
+	end_time := this.GetString("end_time")
21
+	end_time = end_time + " 23:59:59"
22
+
23
+	type_str := this.GetString("type")
24
+	if type_str == "1" {
25
+		ps, _ := service.GetHisOrderDetailFor310(start_time, end_time, this.GetAdminUserInfo().CurrentOrgId)
26
+		this.ServeSuccessJSON(map[string]interface{}{
27
+			"order": ps,
28
+		})
29
+	} else {
30
+		ps, _ := service.GetHisOrderDetailFor390(start_time, end_time, this.GetAdminUserInfo().CurrentOrgId)
31
+		this.ServeSuccessJSON(map[string]interface{}{
32
+			"order": ps,
33
+		})
34
+	}
35
+
36
+}

+ 2 - 0
controllers/manager_center_api_controller.go Целия файл

230
 		Bby01:                       bby01,
230
 		Bby01:                       bby01,
231
 		ZuobiaoId:                   bbx01,
231
 		ZuobiaoId:                   bbx01,
232
 		Bbx01:                       bbx01,
232
 		Bbx01:                       bbx01,
233
+		Bck01b:                      "10",
233
 		IsProject:                   is_project,
234
 		IsProject:                   is_project,
234
 	}
235
 	}
235
 
236
 
416
 		ZuobiaoId:                   bbx01,
417
 		ZuobiaoId:                   bbx01,
417
 		Bby01:                       bby01,
418
 		Bby01:                       bby01,
418
 		Bbx01:                       bbx01,
419
 		Bbx01:                       bbx01,
420
+		Bck01b:                      "10",
419
 		IsProject:                   is_project,
421
 		IsProject:                   is_project,
420
 	}
422
 	}
421
 	if adminInfo.CurrentOrgId == 10206 || adminInfo.CurrentOrgId == 10344 {
423
 	if adminInfo.CurrentOrgId == 10206 || adminInfo.CurrentOrgId == 10344 {

+ 177 - 18
controllers/statistics_api_controller.go Целия файл

15
 }
15
 }
16
 
16
 
17
 func StatisticsApiRegistRouters() {
17
 func StatisticsApiRegistRouters() {
18
-
19
 	beego.Router("/api/statistisc/index", &StatisticsApiController{}, "get:GetStatistics")
18
 	beego.Router("/api/statistisc/index", &StatisticsApiController{}, "get:GetStatistics")
20
 	beego.Router("/api/qc/statistiscall/get", &StatisticsApiController{}, "get:GetAllInspectionStatistisc")
19
 	beego.Router("/api/qc/statistiscall/get", &StatisticsApiController{}, "get:GetAllInspectionStatistisc")
21
 	beego.Router("/api/qc/statistiscperson/get", &StatisticsApiController{}, "get:GetPersonInspectionStatistisc")
20
 	beego.Router("/api/qc/statistiscperson/get", &StatisticsApiController{}, "get:GetPersonInspectionStatistisc")
22
-
21
+	beego.Router("/api/qc/statistiscperson/list", &StatisticsApiController{}, "get:GetInsepctionList")
23
 	beego.Router("/api/qc/patientstatistiscall/get", &StatisticsApiController{}, "get:GetPatientInspectionStatistisc")
22
 	beego.Router("/api/qc/patientstatistiscall/get", &StatisticsApiController{}, "get:GetPatientInspectionStatistisc")
23
+	beego.Router("/api/qc/patientinspectionstatistis/get", &StatisticsApiController{}, "get:GetFivePatientInspectionStatistisc")
24
 
24
 
25
-	//beego.Router("/api/qc/patientstatistiscall/get", &StatisticsApiController{}, "get:GetPatientInspectionStatistisc")
25
+	beego.Router("/api/commonqc/statistiscall/get", &StatisticsApiController{}, "get:GetAllCommonInspectionStatistisc")
26
+	beego.Router("/api/commonqc/statistiscperson/get", &StatisticsApiController{}, "get:GetPersonCommonInspectionStatistisc")
27
+	beego.Router("/api/commonqc/patientstatistiscall/get", &StatisticsApiController{}, "get:GetPatientCommonInspectionStatistisc")
26
 
28
 
27
-	//beego.Router("/api/qc/statistiscperson/export", &StatisticsApiController{}, "get:ExportPersonInspectionStatistisc")
29
+}
28
 
30
 
29
-	beego.Router("/api/qc/patientinspectionstatistis/get", &StatisticsApiController{}, "get:GetFivePatientInspectionStatistisc")
31
+// 配置检验数据查询
32
+func (this *StatisticsApiController) GetInsepctionList() {
33
+	adminUser := this.GetAdminUserInfo()
34
+	orgid := adminUser.CurrentOrgId
35
+	configurationlist, err := service.GetInsepctionConfigurationList(orgid)
36
+	if err != nil {
37
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
38
+		return
39
+	}
40
+	this.ServeSuccessJSON(map[string]interface{}{
41
+		"configurationlist": configurationlist,
42
+	})
43
+}
44
+func (c *StatisticsApiController) GetAllCommonInspectionStatistisc() {
45
+	start_date := c.GetString("start_date")
46
+	end_date := c.GetString("end_date")
47
+	project_id, _ := c.GetInt64("project_id")
48
+	item_id, _ := c.GetInt64("item_id")
49
+
50
+	timeLayout := "2006-01-02"
51
+	loc, _ := time.LoadLocation("Local")
52
+	var startTime int64
53
+	if len(start_date) > 0 {
54
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_date+" 00:00:00", loc)
55
+		fmt.Println("err-----------", err)
56
+		if err != nil {
57
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
58
+			return
59
+		}
60
+		startTime = theTime.Unix()
61
+	}
62
+	var endTime int64
63
+	if len(end_date) > 0 {
64
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_date+" 23:59:59", loc)
65
+		if err != nil {
66
+			utils.ErrorLog(err.Error())
67
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
68
+			return
69
+		}
70
+		endTime = theTime.Unix()
71
+	}
72
+
73
+	//患者总数
74
+	patientCount := service.GetPatientCount(c.GetAdminUserInfo().CurrentOrgId)
75
+	//获取配置
76
+	reference, _ := service.GetInspectionReferenceFour(project_id, item_id)
77
+	//获取数值在正常范围内的总数
78
+	config, _ := service.GetConfigurationById(project_id, item_id, c.GetAdminUserInfo().CurrentOrgId)
79
+	max, _ := strconv.ParseFloat(config.LargeRange, 64)
80
+	min, _ := strconv.ParseFloat(config.MinRange, 64)
81
+
82
+	normalTotal, _ := service.GetNormalInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
83
+	//获取数值异常的总数
84
+	unusualTotal, _ := service.GetUnusualInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
85
+	//获取没有检查的患者总数
86
+	noCheckTotal, _ := service.GetPatientNotInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID)
87
+	c.ServeSuccessJSON(map[string]interface{}{
88
+		"patient_count":  patientCount,
89
+		"normal_total":   normalTotal,
90
+		"unusual_total":  unusualTotal,
91
+		"no_check_total": noCheckTotal,
92
+		"reference":      reference,
93
+		"config":         config,
94
+	})
30
 
95
 
31
 }
96
 }
97
+func (c *StatisticsApiController) GetPersonCommonInspectionStatistisc() {
98
+	start_date := c.GetString("start_time")
99
+	end_date := c.GetString("end_time")
100
+	project_id, _ := c.GetInt64("project_id")
101
+	item_id, _ := c.GetInt64("item_id")
102
+	patient_id, _ := c.GetInt64("patient_id")
103
+
104
+	timeLayout := "2006-01-02"
105
+	loc, _ := time.LoadLocation("Local")
106
+	var startTime int64
107
+	if len(start_date) > 0 {
108
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_date+" 00:00:00", loc)
109
+		fmt.Println("err-----------", err)
110
+		if err != nil {
111
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
112
+			return
113
+		}
114
+		startTime = theTime.Unix()
115
+	}
116
+	var endTime int64
117
+	if len(end_date) > 0 {
118
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_date+" 23:59:59", loc)
119
+		if err != nil {
120
+			utils.ErrorLog(err.Error())
121
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
122
+			return
123
+		}
124
+		endTime = theTime.Unix()
125
+	}
126
+
127
+	patient, _ := service.GetFaPiaoPatientByID(c.GetAdminUserInfo().CurrentOrgId, patient_id)
128
+	//获取配置
129
+	reference, _ := service.GetInspectionReferenceFour(project_id, item_id)
130
+	//获取数值在正常范围内的总数
131
+	inspections, _ := service.GetPatientInspectionByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.SysItemId, patient_id)
132
+	c.ServeSuccessJSON(map[string]interface{}{
133
+		"patient":     patient,
134
+		"reference":   reference,
135
+		"inspections": inspections,
136
+	})
137
+
138
+}
139
+func (c *StatisticsApiController) GetPatientCommonInspectionStatistisc() {
140
+	start_date := c.GetString("start_date")
141
+	end_date := c.GetString("end_date")
142
+	project_id, _ := c.GetInt64("project_id")
143
+	item_id, _ := c.GetInt64("item_id")
144
+	item_type, _ := c.GetInt64("item_type")
145
+	keyword := c.GetString("keyword")
146
+	timeLayout := "2006-01-02"
147
+	loc, _ := time.LoadLocation("Local")
148
+	var startTime int64
149
+	if len(start_date) > 0 {
150
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_date+" 00:00:00", loc)
151
+		fmt.Println("err-----------", err)
152
+		if err != nil {
153
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
154
+			return
155
+		}
156
+		startTime = theTime.Unix()
157
+	}
158
+	var endTime int64
159
+	if len(end_date) > 0 {
160
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_date+" 23:59:59", loc)
161
+		if err != nil {
162
+			utils.ErrorLog(err.Error())
163
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
164
+			return
165
+		}
166
+		endTime = theTime.Unix()
167
+	}
168
+
169
+	//获取配置
170
+	reference, _ := service.GetInspectionReferenceFour(project_id, item_id)
171
+	//获取数值在正常范围内的总数
172
+
173
+	config, _ := service.GetConfigurationById(project_id, item_id, c.GetAdminUserInfo().CurrentOrgId)
174
+	max, _ := strconv.ParseFloat(config.LargeRange, 64)
175
+	min, _ := strconv.ParseFloat(config.MinRange, 64)
176
+
177
+	//max, _ := strconv.ParseFloat(reference.RangeMax, 64)
178
+	//min, _ := strconv.ParseFloat(reference.RangeMin, 64)
179
+
180
+	switch item_type {
181
+	case 1:
182
+		list, _ := service.GetUnusualInspectionPatientList(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min, keyword)
183
+		c.ServeSuccessJSON(map[string]interface{}{
184
+			"list":      list,
185
+			"reference": reference,
186
+		})
187
+		break
188
+	case 2:
189
+		list, _ := service.GetPatientNotInspectionPatientList(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, keyword)
190
+		c.ServeSuccessJSON(map[string]interface{}{
191
+			"list":      list,
192
+			"reference": reference,
193
+		})
194
+		break
195
+	case 3:
196
+		list, _ := service.GetNormalInspectionPatientList(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min, keyword)
197
+		c.ServeSuccessJSON(map[string]interface{}{
198
+			"list":      list,
199
+			"reference": reference,
200
+		})
201
+		break
202
+	}
203
+}
32
 
204
 
33
 func (c *StatisticsApiController) GetFivePatientInspectionStatistisc() {
205
 func (c *StatisticsApiController) GetFivePatientInspectionStatistisc() {
34
 	start_date := c.GetString("start_date")
206
 	start_date := c.GetString("start_date")
60
 		"list": list,
232
 		"list": list,
61
 	})
233
 	})
62
 }
234
 }
63
-
64
 func (c *StatisticsApiController) GetPatientInspectionStatistisc() {
235
 func (c *StatisticsApiController) GetPatientInspectionStatistisc() {
65
 	start_date := c.GetString("start_date")
236
 	start_date := c.GetString("start_date")
66
 	end_date := c.GetString("end_date")
237
 	end_date := c.GetString("end_date")
170
 		break
341
 		break
171
 	}
342
 	}
172
 }
343
 }
173
-
174
 func (c *StatisticsApiController) GetAllInspectionStatistisc() {
344
 func (c *StatisticsApiController) GetAllInspectionStatistisc() {
175
 	start_date := c.GetString("start_date")
345
 	start_date := c.GetString("start_date")
176
 	end_date := c.GetString("end_date")
346
 	end_date := c.GetString("end_date")
214
 	if s_type == 2 {
384
 	if s_type == 2 {
215
 		normalTotal, _ := service.GetNormalKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950, 1.2)
385
 		normalTotal, _ := service.GetNormalKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950, 1.2)
216
 		//获取数值异常的总数
386
 		//获取数值异常的总数
217
-		//unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1.2)
218
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950, 1.2)
387
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950, 1.2)
219
-
220
 		//获取没有检查的患者总数
388
 		//获取没有检查的患者总数
221
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950)
389
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950)
222
-
223
 		c.ServeSuccessJSON(map[string]interface{}{
390
 		c.ServeSuccessJSON(map[string]interface{}{
224
 			"patient_count":  patientCount,
391
 			"patient_count":  patientCount,
225
 			"normal_total":   normalTotal,
392
 			"normal_total":   normalTotal,
228
 		})
395
 		})
229
 
396
 
230
 	} else if s_type == 3 {
397
 	} else if s_type == 3 {
231
-
232
 		normalTotal, _ := service.GetNormalKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
398
 		normalTotal, _ := service.GetNormalKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
233
 		//获取数值异常的总数
399
 		//获取数值异常的总数
234
 		//unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1.2)
400
 		//unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1.2)
235
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
401
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
236
-
237
 		//获取没有检查的患者总数
402
 		//获取没有检查的患者总数
238
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951)
403
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951)
239
-
240
 		c.ServeSuccessJSON(map[string]interface{}{
404
 		c.ServeSuccessJSON(map[string]interface{}{
241
 			"patient_count":  patientCount,
405
 			"patient_count":  patientCount,
242
 			"normal_total":   normalTotal,
406
 			"normal_total":   normalTotal,
243
 			"unusual_total":  unusualTotal,
407
 			"unusual_total":  unusualTotal,
244
 			"no_check_total": noCheckTotal,
408
 			"no_check_total": noCheckTotal,
245
 		})
409
 		})
246
-
247
 	} else {
410
 	} else {
248
-
249
 		normalTotal, _ := service.GetNormalInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
411
 		normalTotal, _ := service.GetNormalInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
250
 		//获取数值异常的总数
412
 		//获取数值异常的总数
251
 		unusualTotal, _ := service.GetUnusualInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
413
 		unusualTotal, _ := service.GetUnusualInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
252
 		//获取没有检查的患者总数
414
 		//获取没有检查的患者总数
253
 		noCheckTotal, _ := service.GetPatientNotInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID)
415
 		noCheckTotal, _ := service.GetPatientNotInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID)
254
-
255
 		c.ServeSuccessJSON(map[string]interface{}{
416
 		c.ServeSuccessJSON(map[string]interface{}{
256
 			"patient_count":  patientCount,
417
 			"patient_count":  patientCount,
257
 			"normal_total":   normalTotal,
418
 			"normal_total":   normalTotal,
259
 			"no_check_total": noCheckTotal,
420
 			"no_check_total": noCheckTotal,
260
 			"reference":      reference,
421
 			"reference":      reference,
261
 		})
422
 		})
262
-
263
 	}
423
 	}
264
 
424
 
265
 }
425
 }
332
 	}
492
 	}
333
 
493
 
334
 }
494
 }
335
-
336
 func (c *StatisticsApiController) GetStatistics() {
495
 func (c *StatisticsApiController) GetStatistics() {
337
 	adminUserInfo := c.GetAdminUserInfo()
496
 	adminUserInfo := c.GetAdminUserInfo()
338
 
497
 

+ 127 - 0
service/export_data_service.go Целия файл

1
+package service
2
+
3
+import (
4
+	"XT_New/models"
5
+	"github.com/jinzhu/gorm"
6
+)
7
+
8
+type ExportPatient struct {
9
+	ID          int64          `gorm:"column:id" json:"id" form:"id"`
10
+	UserOrgId   int64          `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
11
+	Name        string         `gorm:"column:name" json:"name" form:"name"`
12
+	Lapseto     int64          `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
13
+	Status      int64          `gorm:"column:status" json:"status" form:"status"`
14
+	IdCardNo    string         `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
15
+	XtCount     int64          `gorm:"column:-" json:"xt_count" form:"xt_count"`
16
+	SettleOrder []*SettleOrder `gorm:"ForeignKey:PatientID;AssociationForeignKey:ID" json:"orders"`
17
+}
18
+
19
+func (ExportPatient) TableName() string {
20
+	return "xt_patients"
21
+}
22
+
23
+type SettleOrder struct {
24
+	ID                  int64            `gorm:"column:id" json:"id" form:"id"`
25
+	UserOrgId           int64            `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
26
+	Status              int64            `gorm:"column:status" json:"status" form:"status"`
27
+	PatientId           int64            `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
28
+	OrderStatus         int64            `gorm:"column:order_status" json:"order_status" form:"order_status"`
29
+	MdtrtId             string           `gorm:"column:mdtrt_id" json:"mdtrt_id" form:"mdtrt_id"`
30
+	Number              string           `gorm:"column:number" json:"number" form:"number"`
31
+	SetlId              string           `gorm:"column:setl_id" json:"setl_id" form:"setl_id"`
32
+	Insutype            string           `gorm:"column:insutype" json:"insutype" form:"insutype"`
33
+	SetlTime            string           `gorm:"column:setl_time" json:"setl_time" form:"setl_time"`
34
+	MedfeeSumamt        float64          `gorm:"column:medfee_sumamt" json:"medfee_sumamt" form:"medfee_sumamt"`
35
+	FulamtOwnpayAmt     float64          `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
36
+	OverlmtSelfPay      float64          `gorm:"column:overlmt_self_pay" json:"overlmt_self_pay" form:"overlmt_self_pay"`
37
+	PreselfpayAmt       float64          `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
38
+	InscpScpAmt         float64          `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
39
+	ActPayDedc          float64          `gorm:"column:act_pay_dedc" json:"act_pay_dedc" form:"act_pay_dedc"`
40
+	HifpPay             float64          `gorm:"column:hifp_pay" json:"hifp_pay" form:"hifp_pay"`
41
+	CvlservPay          float64          `gorm:"column:cvlserv_pay" json:"cvlserv_pay" form:"cvlserv_pay"`
42
+	PoolPropSelfpay     float64          `gorm:"column:pool_prop_selfpay" json:"pool_prop_selfpay" form:"pool_prop_selfpay"`
43
+	HifesPay            float64          `gorm:"column:hifes_pay" json:"hifes_pay" form:"hifes_pay"`
44
+	HifmiPay            float64          `gorm:"column:hifmi_pay" json:"hifmi_pay" form:"hifmi_pay"`
45
+	HifobPay            float64          `gorm:"column:hifob_pay" json:"hifob_pay" form:"hifob_pay"`
46
+	MafPay              float64          `gorm:"column:maf_pay" json:"maf_pay" form:"maf_pay"`
47
+	OthPay              float64          `gorm:"column:oth_pay" json:"oth_pay" form:"oth_pay"`
48
+	FundPaySumamt       float64          `gorm:"column:fund_pay_sumamt" json:"fund_pay_sumamt" form:"fund_pay_sumamt"`
49
+	PsnPartAmt          float64          `gorm:"column:psn_part_amt" json:"psn_part_amt" form:"psn_part_amt"`
50
+	AcctPay             float64          `gorm:"column:acct_pay" json:"acct_pay" form:"acct_pay"`
51
+	PsnCashPay          float64          `gorm:"column:psn_cash_pay" json:"psn_cash_pay" form:"psn_cash_pay"`
52
+	HospPartAmt         float64          `gorm:"column:hosp_part_amt" json:"hosp_part_amt" form:"hosp_part_amt"`
53
+	IsMedicineInsurance int64            `gorm:"column:is_medicine_insurance" json:"is_medicine_insurance" form:"is_medicine_insurance"`
54
+	OrderInfo9919       []*OrderInfo9919 `gorm:"ForeignKey:OrderNumber;AssociationForeignKey:Number" json:"info"`
55
+}
56
+
57
+func (SettleOrder) TableName() string {
58
+	return "his_order"
59
+}
60
+
61
+type OrderInfo9919 struct {
62
+	ID               int64   `gorm:"column:id" json:"id" form:"id"`
63
+	OrderNumber      string  `gorm:"column:order_number" json:"order_number" form:"order_number"`
64
+	UploadDate       int64   `gorm:"column:upload_date" json:"upload_date" form:"upload_date"`
65
+	AdviceId         int64   `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
66
+	DetItemFeeSumamt float64 `gorm:"column:det_item_fee_sumamt" json:"det_item_fee_sumamt" form:"det_item_fee_sumamt"`
67
+	Cnt              float64 `gorm:"column:cnt" json:"cnt" form:"cnt"`
68
+	Pric             float64 `gorm:"column:pric" json:"pric" form:"pric"`
69
+	PatientId        int64   `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
70
+	PricUplmtAmt     float64 `gorm:"column:pric_uplmt_amt" json:"pric_uplmt_amt" form:"pric_uplmt_amt"`
71
+	SelfpayProp      float64 `gorm:"column:selfpay_prop" json:"selfpay_prop" form:"selfpay_prop"`
72
+	FulamtOwnpayAmt  float64 `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
73
+	OverlmtAmt       float64 `gorm:"column:overlmt_amt" json:"overlmt_amt" form:"overlmt_amt"`
74
+	PreselfpayAmt    float64 `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
75
+	BasMednFlag      string  `gorm:"column:bas_medn_flag" json:"bas_medn_flag" form:"bas_medn_flag"`
76
+	MedChrgitmType   string  `gorm:"column:med_chrgitm_type" json:"med_chrgitm_type" form:"med_chrgitm_type"`
77
+	HiNegoDrugFlag   string  `gorm:"column:hi_nego_drug_flag" json:"hi_nego_drug_flag" form:"hi_nego_drug_flag"`
78
+	Status           int64   `gorm:"column:status" json:"status" form:"status"`
79
+	Memo             string  `gorm:"column:memo" json:"memo" form:"memo"`
80
+	FeedetlSn        string  `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
81
+	Mtime            int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
82
+	InscpScpAmt      float64 `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
83
+	DrtReimFlag      string  `gorm:"column:drt_reim_flag" json:"drt_reim_flag" form:"drt_reim_flag"`
84
+	Ctime            int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
85
+	ListSpItemFlag   string  `gorm:"column:list_sp_item_flag" json:"list_sp_item_flag" form:"list_sp_item_flag"`
86
+	ChldMedcFlag     string  `gorm:"column:chld_medc_flag" json:"chld_medc_flag" form:"chld_medc_flag"`
87
+	LmtUsedFlag      string  `gorm:"column:lmt_used_flag" json:"lmt_used_flag" form:"lmt_used_flag"`
88
+	ChrgitmLv        string  `gorm:"column:chrgitm_lv" json:"chrgitm_lv" form:"chrgitm_lv"`
89
+	UserOrgId        int64   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
90
+	HisPatientId     int64   `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
91
+	OrderId          int64   `gorm:"column:order_id" json:"order_id" form:"order_id"`
92
+	ProjectId        int64   `gorm:"column:project_id" json:"project_id" form:"project_id"`
93
+	Type             int64   `gorm:"column:type" json:"type" form:"type"`
94
+	ItemId           int64   `gorm:"column:item_id" json:"item_id" form:"item_id"`
95
+	SettleType       int64   `gorm:"column:settle_type" json:"settle_type" form:"settle_type"`
96
+}
97
+
98
+func (OrderInfo9919) TableName() string {
99
+	return "his_order_info"
100
+}
101
+
102
+func GetHisOrderDetailFor310(start_time string, end_time string, org_id int64) (patients []*ExportPatient, err error) {
103
+	err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND FROM_UNIXTIME(orders.ctime) >= ? AND FROM_UNIXTIME(orders.ctime) <= ? AND orders.user_org_id = ? AND orders.order_status = 2 and orders.insutype = 310", start_time, end_time, org_id).Preload("SettleOrder", func(db *gorm.DB) *gorm.DB {
104
+		return db.Where("status = 1  AND setl_time >= ? AND setl_time <= ? AND user_org_id = ? AND order_status = 2 and insutype = 310", start_time, end_time, org_id).Preload("OrderInfo9919", "status = 1").Order("ctime")
105
+	}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
106
+
107
+	for _, item := range patients {
108
+		var total int64
109
+		readDb.Model(&models.DialysisOrder{}).Where("patient_id = ? AND status = 1 AND stage = 2 AND FROM_UNIXTIME(dialysis_date) <= ? AND  FROM_UNIXTIME(dialysis_date) >= ?", item.ID, end_time, start_time).Count(&total)
110
+		item.XtCount = total
111
+
112
+	}
113
+	return
114
+}
115
+
116
+func GetHisOrderDetailFor390(start_time string, end_time string, org_id int64) (patients []*ExportPatient, err error) {
117
+	err = readDb2.Table("xt_patients as p").Select("p.id,p.user_org_id,p.name,p.lapseto,p.status,p.id_card_no").Joins("JOIN his_order AS orders ON orders.patient_id = p.id AND orders.status = 1  AND FROM_UNIXTIME(orders.ctime) >= ? AND FROM_UNIXTIME(orders.ctime) <= ? AND orders.user_org_id = ? AND orders.order_status = 2 and orders.insutype = 390", start_time, end_time, org_id).Preload("SettleOrder", func(db *gorm.DB) *gorm.DB {
118
+		return db.Where("status = 1  AND setl_time >= ? AND setl_time <= ? AND user_org_id = ? AND order_status = 2 and insutype = 390", start_time, end_time, org_id).Preload("OrderInfo9919", "status = 1").Order("ctime")
119
+	}).Where("p.status = 1  AND p.user_org_id = ?", org_id).Group("id").Find(&patients).Error
120
+	for _, item := range patients {
121
+		var total int64
122
+		readDb.Model(&models.DialysisOrder{}).Where("patient_id = ? AND status = 1 AND stage = 2 AND FROM_UNIXTIME(dialysis_date) <= ? AND  FROM_UNIXTIME(dialysis_date) >= ?", item.ID, end_time, start_time).Count(&total)
123
+		item.XtCount = total
124
+
125
+	}
126
+	return
127
+}

+ 4 - 4
service/his_charge_service.go Целия файл

157
 		switch item_type {
157
 		switch item_type {
158
 		case 0:
158
 		case 0:
159
 			err = readDb.Table("his_order_info as oi").Select("oi.advice_id as advice_id, 0 as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,drug.drug_name as item_name,drug.dose as dose,drug.dose_unit as dose_unit, drug.min_number as min_number,drug.min_unit as min_unit, drug.max_unit as max_unit,drug.id as item_id").
159
 			err = readDb.Table("his_order_info as oi").Select("oi.advice_id as advice_id, 0 as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,drug.drug_name as item_name,drug.dose as dose,drug.dose_unit as dose_unit, drug.min_number as min_number,drug.min_unit as min_unit, drug.max_unit as max_unit,drug.id as item_id").
160
-				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1", start_time_str, end_time_str).
160
+				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1 and o.is_medicine_insurance = 1", start_time_str, end_time_str).
161
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
161
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
162
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
162
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
163
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
163
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
165
 			break
165
 			break
166
 		case 1:
166
 		case 1:
167
 			err = readDb.Table("his_order_info as oi").Select("oi.advice_id as advice_id, 0 as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,drug.drug_name as item_name,drug.dose as dose,drug.dose_unit as dose_unit, drug.min_number as min_number,drug.min_unit as min_unit, drug.max_unit as max_unit,drug.id as item_id").
167
 			err = readDb.Table("his_order_info as oi").Select("oi.advice_id as advice_id, 0 as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,drug.drug_name as item_name,drug.dose as dose,drug.dose_unit as dose_unit, drug.min_number as min_number,drug.min_unit as min_unit, drug.max_unit as max_unit,drug.id as item_id").
168
-				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1", start_time_str, end_time_str).
168
+				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1 and o.is_medicine_insurance = 1", start_time_str, end_time_str).
169
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
169
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
170
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
170
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
171
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
171
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
233
 			break
233
 			break
234
 		case 2:
234
 		case 2:
235
 			err = readDb.Table("his_order_info as oi").Select("0 as advice_id, oi.project_id as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,p.type as p_type,  (case p.type  when 2 then project.project_name  when 3 then good.good_name  END) as item_name,(case p.type  when 2 then ''  when 3 then good.specification_name  END) as specification_name, p.project_id as item_id").
235
 			err = readDb.Table("his_order_info as oi").Select("0 as advice_id, oi.project_id as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,p.type as p_type,  (case p.type  when 2 then project.project_name  when 3 then good.good_name  END) as item_name,(case p.type  when 2 then ''  when 3 then good.specification_name  END) as specification_name, p.project_id as item_id").
236
-				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1", start_time_str, end_time_str).
236
+				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1 ", start_time_str, end_time_str).
237
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 2").
237
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 2").
238
 				Joins("left join xt_his_project project on  p.project_id = project.id").
238
 				Joins("left join xt_his_project project on  p.project_id = project.id").
239
 				Joins("left join  xt_good_information good on  p.project_id = good.id").
239
 				Joins("left join  xt_good_information good on  p.project_id = good.id").
243
 			break
243
 			break
244
 		case 3:
244
 		case 3:
245
 			err = readDb.Table("his_order_info as oi").Select("0 as advice_id, oi.project_id as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,p.type as p_type,  (case p.type  when 2 then project.project_name  when 3 then good.good_name  END) as item_name,(case p.type  when 2 then ''  when 3 then good.specification_name  END) as specification_name, p.project_id as item_id").
245
 			err = readDb.Table("his_order_info as oi").Select("0 as advice_id, oi.project_id as project_id, oi.patient_id as p_id,oi.cnt as cnt,oi.pric as pric,pp.name as p_name,p.type as p_type,  (case p.type  when 2 then project.project_name  when 3 then good.good_name  END) as item_name,(case p.type  when 2 then ''  when 3 then good.specification_name  END) as specification_name, p.project_id as item_id").
246
-				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1", start_time_str, end_time_str).
246
+				Joins("JOIN his_order o ON oi.order_number = o.number   and o.setl_time BETWEEN  ? AND ?  and o.order_status = 2 and o.status = 1 and o.is_medicine_insurance <> 1", start_time_str, end_time_str).
247
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 3").
247
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 3").
248
 				Joins("left join xt_his_project project on  p.project_id = project.id").
248
 				Joins("left join xt_his_project project on  p.project_id = project.id").
249
 				Joins("left join  xt_good_information good on  p.project_id = good.id").
249
 				Joins("left join  xt_good_information good on  p.project_id = good.id").

+ 18 - 0
service/his_config_service.go Целия файл

882
 	}
882
 	}
883
 	return dataconfig[0].Name, err
883
 	return dataconfig[0].Name, err
884
 }
884
 }
885
+
886
+type TempOrder struct {
887
+	UserOrgId     int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
888
+	Status        int64  `gorm:"column:status" json:"status" form:"status"`
889
+	OrderStatus   int64  `gorm:"column:order_status" json:"order_status" form:"order_status"`
890
+	PsnName       string `gorm:"column:psn_name" json:"psn_name" form:"psn_name"`
891
+	Insutype      string `gorm:"column:insutype" json:"insutype" form:"insutype"`
892
+	MdtrtCertType string `gorm:"column:mdtrt_cert_type" json:"mdtrt_cert_type" form:"mdtrt_cert_type"`
893
+}
894
+
895
+func (TempOrder) TableName() string {
896
+	return "his_order"
897
+}
898
+
899
+func GetHisMdtrtCertType(start_time string, end_time string, org_id int64) (os []TempOrder, err error) {
900
+	err = readDb.Model(&TempOrder{}).Where("user_org_id = ? and setl_time >= ? and setl_time <= ? and order_status = 2 and status = 1", org_id, start_time, end_time).Find(&os).Error
901
+	return
902
+}