Преглед на файлове

Merge branch '20230223_xt_api_new_branch' of http://git.shengws.com/csx/XT_New into 20230223_xt_api_new_branch

28169 преди 2 месеца
родител
ревизия
7eb41c4476

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

@@ -58,6 +58,20 @@ func HisConfigApiRegistRouters() {
58 58
 	beego.Router("/api/his/addstemplate", &HisConfigApiController{}, "post:AddsTemplate")                //批量添加
59 59
 	beego.Router("/api/his/ptemplateinformation", &HisConfigApiController{}, "get:PTemplateInformation") //根据患者id、透析模式获取处方模板信息
60 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 77
 func (c *HisConfigApiController) GetAllHisPatientsList() {

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

@@ -0,0 +1,36 @@
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,6 +230,7 @@ func (c *ManagerCenterApiController) CreateBaseDrugLib() {
230 230
 		Bby01:                       bby01,
231 231
 		ZuobiaoId:                   bbx01,
232 232
 		Bbx01:                       bbx01,
233
+		Bck01b:                      "10",
233 234
 		IsProject:                   is_project,
234 235
 	}
235 236
 
@@ -416,6 +417,7 @@ func (c *ManagerCenterApiController) EditBaseDrugLib() {
416 417
 		ZuobiaoId:                   bbx01,
417 418
 		Bby01:                       bby01,
418 419
 		Bbx01:                       bbx01,
420
+		Bck01b:                      "10",
419 421
 		IsProject:                   is_project,
420 422
 	}
421 423
 	if adminInfo.CurrentOrgId == 10206 || adminInfo.CurrentOrgId == 10344 {

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

@@ -15,20 +15,192 @@ type StatisticsApiController struct {
15 15
 }
16 16
 
17 17
 func StatisticsApiRegistRouters() {
18
-
19 18
 	beego.Router("/api/statistisc/index", &StatisticsApiController{}, "get:GetStatistics")
20 19
 	beego.Router("/api/qc/statistiscall/get", &StatisticsApiController{}, "get:GetAllInspectionStatistisc")
21 20
 	beego.Router("/api/qc/statistiscperson/get", &StatisticsApiController{}, "get:GetPersonInspectionStatistisc")
22
-
21
+	beego.Router("/api/qc/statistiscperson/list", &StatisticsApiController{}, "get:GetInsepctionList")
23 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 205
 func (c *StatisticsApiController) GetFivePatientInspectionStatistisc() {
34 206
 	start_date := c.GetString("start_date")
@@ -60,7 +232,6 @@ func (c *StatisticsApiController) GetFivePatientInspectionStatistisc() {
60 232
 		"list": list,
61 233
 	})
62 234
 }
63
-
64 235
 func (c *StatisticsApiController) GetPatientInspectionStatistisc() {
65 236
 	start_date := c.GetString("start_date")
66 237
 	end_date := c.GetString("end_date")
@@ -170,7 +341,6 @@ func (c *StatisticsApiController) GetPatientInspectionStatistisc() {
170 341
 		break
171 342
 	}
172 343
 }
173
-
174 344
 func (c *StatisticsApiController) GetAllInspectionStatistisc() {
175 345
 	start_date := c.GetString("start_date")
176 346
 	end_date := c.GetString("end_date")
@@ -214,12 +384,9 @@ func (c *StatisticsApiController) GetAllInspectionStatistisc() {
214 384
 	if s_type == 2 {
215 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 387
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950, 1.2)
219
-
220 388
 		//获取没有检查的患者总数
221 389
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10950)
222
-
223 390
 		c.ServeSuccessJSON(map[string]interface{}{
224 391
 			"patient_count":  patientCount,
225 392
 			"normal_total":   normalTotal,
@@ -228,30 +395,24 @@ func (c *StatisticsApiController) GetAllInspectionStatistisc() {
228 395
 		})
229 396
 
230 397
 	} else if s_type == 3 {
231
-
232 398
 		normalTotal, _ := service.GetNormalKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
233 399
 		//获取数值异常的总数
234 400
 		//unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1.2)
235 401
 		unusualTotal, _ := service.GetUnusualKTVORURRInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951, 65)
236
-
237 402
 		//获取没有检查的患者总数
238 403
 		noCheckTotal, _ := service.GetPatientNotKTVORURRInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, 1014, 10951)
239
-
240 404
 		c.ServeSuccessJSON(map[string]interface{}{
241 405
 			"patient_count":  patientCount,
242 406
 			"normal_total":   normalTotal,
243 407
 			"unusual_total":  unusualTotal,
244 408
 			"no_check_total": noCheckTotal,
245 409
 		})
246
-
247 410
 	} else {
248
-
249 411
 		normalTotal, _ := service.GetNormalInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
250 412
 		//获取数值异常的总数
251 413
 		unusualTotal, _ := service.GetUnusualInspectionTotalByID(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID, max, min)
252 414
 		//获取没有检查的患者总数
253 415
 		noCheckTotal, _ := service.GetPatientNotInspectionTotal(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, reference.SystemProjectId, reference.ID)
254
-
255 416
 		c.ServeSuccessJSON(map[string]interface{}{
256 417
 			"patient_count":  patientCount,
257 418
 			"normal_total":   normalTotal,
@@ -259,7 +420,6 @@ func (c *StatisticsApiController) GetAllInspectionStatistisc() {
259 420
 			"no_check_total": noCheckTotal,
260 421
 			"reference":      reference,
261 422
 		})
262
-
263 423
 	}
264 424
 
265 425
 }
@@ -332,7 +492,6 @@ func (c *StatisticsApiController) GetPersonInspectionStatistisc() {
332 492
 	}
333 493
 
334 494
 }
335
-
336 495
 func (c *StatisticsApiController) GetStatistics() {
337 496
 	adminUserInfo := c.GetAdminUserInfo()
338 497
 

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

@@ -0,0 +1,127 @@
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,7 +157,7 @@ func GetNewAllPatientDrugChargeDetails(org_id int64, start_time_str string, end_
157 157
 		switch item_type {
158 158
 		case 0:
159 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 161
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
162 162
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
163 163
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
@@ -165,7 +165,7 @@ func GetNewAllPatientDrugChargeDetails(org_id int64, start_time_str string, end_
165 165
 			break
166 166
 		case 1:
167 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 169
 				Joins(" JOIN his_doctor_advice_info a ON oi.advice_id = a.id").
170 170
 				Joins(" JOIN xt_patients pp on oi.patient_id = pp.id").
171 171
 				Joins(" JOIN  xt_base_drug drug on  a.drug_id = drug.id").
@@ -233,7 +233,7 @@ func GetNewAllPatientProjectAndGoodChargeDetails(org_id int64, start_time_str st
233 233
 			break
234 234
 		case 2:
235 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 237
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 2").
238 238
 				Joins("left join xt_his_project project on  p.project_id = project.id").
239 239
 				Joins("left join  xt_good_information good on  p.project_id = good.id").
@@ -243,7 +243,7 @@ func GetNewAllPatientProjectAndGoodChargeDetails(org_id int64, start_time_str st
243 243
 			break
244 244
 		case 3:
245 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 247
 				Joins(" JOIN his_prescription_project p ON oi.project_id = p.id and p.type = 3").
248 248
 				Joins("left join xt_his_project project on  p.project_id = project.id").
249 249
 				Joins("left join  xt_good_information good on  p.project_id = good.id").

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

@@ -882,3 +882,21 @@ func TranslateZu(sc, orgid int64, types string) (s string, err error) {
882 882
 	}
883 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
+}