Browse Source

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

csx 4 years ago
parent
commit
4ea412f5a3

+ 40 - 0
controllers/gobal_config_api_controller.go View File

@@ -69,6 +69,9 @@ func GobalConfigRegistRouters() {
69 69
 
70 70
 	beego.Router("/api/isopen/init", &GobalConfigApiController{}, "get:GetAllIsOpenConfig")
71 71
 
72
+	beego.Router("/api/passdetail/export", &GobalConfigApiController{}, "get:GetPassExportData")
73
+	beego.Router("/api/consumedetail/export", &GobalConfigApiController{}, "get:GetExportData")
74
+
72 75
 }
73 76
 
74 77
 //provinces, _ := service.GetDistrictsByUpid(0)21
@@ -1366,3 +1369,40 @@ func (c *GobalConfigApiController) GetAllIsOpenConfig() {
1366 1369
 	})
1367 1370
 
1368 1371
 }
1372
+
1373
+func (c *GobalConfigApiController) GetPassExportData() {
1374
+
1375
+}
1376
+
1377
+func (c *GobalConfigApiController) GetExportData() {
1378
+	start_time := c.GetString("start_time")
1379
+	end_time := c.GetString("end_time")
1380
+	timeLayout := "2006-01-02"
1381
+	loc, _ := time.LoadLocation("Local")
1382
+	var startTime int64
1383
+	if len(start_time) > 0 {
1384
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
1385
+		if err != nil {
1386
+			fmt.Println(err)
1387
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1388
+			return
1389
+		}
1390
+		startTime = theTime.Unix()
1391
+	}
1392
+	var endTime int64
1393
+	if len(end_time) > 0 {
1394
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
1395
+		if err != nil {
1396
+			utils.ErrorLog(err.Error())
1397
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1398
+			return
1399
+		}
1400
+		endTime = theTime.Unix()
1401
+	}
1402
+	adminInfo := c.GetAdminUserInfo()
1403
+	order, _ := service.GetExportHisOrderList(adminInfo.CurrentOrgId, startTime, endTime)
1404
+	c.ServeSuccessJSON(map[string]interface{}{
1405
+		"order": order,
1406
+	})
1407
+
1408
+}

+ 72 - 5
controllers/his_api_controller.go View File

@@ -55,8 +55,12 @@ func HisManagerApiRegistRouters() {
55 55
 
56 56
 	beego.Router("/api/medicalinsurance/config", &HisApiController{}, "get:GetMedicalInsuranceConfig")
57 57
 
58
+	beego.Router("/api/doctor/list", &HisApiController{}, "get:GetAdminUsers")
59
+
60
+	//beego.Router("/api/medicalinsurance/config", &HisApiController{}, "get:GetMedicalInsuranceConfig")
61
+
58 62
 	//新增附加费用
59
-	beego.Router("/api/his/additionalcharge", &HisApiController{}, "Post:AdditionalCharge")
63
+	//beego.Router("/api/his/additionalcharge", &HisApiController{}, "Post:AdditionalCharge")
60 64
 
61 65
 	//beego.Router("/api/additionalcharge/get", &HisApiController{}, "Get:GetAdditionalcharge")
62 66
 
@@ -843,7 +847,10 @@ func (c *HisApiController) setAdviceWithJSON(advice *models.HisDoctorAdviceInfo,
843 847
 		med_list_codg, _ := json["medical_insurance_number"].(string)
844 848
 		advice.MedListCodg = med_list_codg
845 849
 	}
846
-
850
+	if json["day"] != nil || reflect.TypeOf(json["day"]).String() == "float64" {
851
+		day := int64(json["day"].(float64))
852
+		advice.Day = day
853
+	}
847 854
 	return 0
848 855
 }
849 856
 
@@ -895,6 +902,11 @@ func (c *HisApiController) setProjectWithJSON(project *models.HisPrescriptionPro
895 902
 		day, _ := json["number_days"].(string)
896 903
 		project.Day = day
897 904
 	}
905
+
906
+	if json["unit"] != nil && reflect.TypeOf(json["unit"]).String() == "string" {
907
+		unit, _ := json["unit"].(string)
908
+		project.Unit = unit
909
+	}
898 910
 	return 0
899 911
 }
900 912
 
@@ -927,12 +939,43 @@ func (c *HisApiController) setAddtionWithJSON(additionalCharge *models.HisAdditi
927 939
 }
928 940
 
929 941
 func (c *HisApiController) GetHisOrderList() {
942
+	page, _ := c.GetInt64("page", -1)
943
+	limit, _ := c.GetInt64("limit", -1)
944
+	start_time := c.GetString("start_time")
945
+	end_time := c.GetString("end_time")
946
+	types, _ := c.GetInt64("type", 0)
947
+	keywords := c.GetString("keywords")
948
+
949
+	timeLayout := "2006-01-02"
950
+	loc, _ := time.LoadLocation("Local")
951
+	var startTime int64
952
+	if len(start_time) > 0 {
953
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
954
+		if err != nil {
955
+			fmt.Println(err)
956
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
957
+			return
958
+		}
959
+		startTime = theTime.Unix()
960
+	}
961
+	var endTime int64
962
+	if len(end_time) > 0 {
963
+		theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
964
+		if err != nil {
965
+			utils.ErrorLog(err.Error())
966
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
967
+			return
968
+		}
969
+		endTime = theTime.Unix()
970
+	}
971
+
930 972
 	adminUser := c.GetAdminUserInfo()
931 973
 	org_id := adminUser.CurrentOrgId
932
-	order, err := service.GetHisOrderList(org_id)
974
+	order, err, total := service.GetHisOrderList(org_id, page, limit, startTime, endTime, types, keywords)
933 975
 	if err == nil {
934 976
 		c.ServeSuccessJSON(map[string]interface{}{
935 977
 			"order": order,
978
+			"total": total,
936 979
 		})
937 980
 	} else {
938 981
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
@@ -960,13 +1003,29 @@ func (c *HisApiController) GetHisOrder() {
960 1003
 }
961 1004
 
962 1005
 func (c *HisApiController) GetHisPrescriptionList() {
1006
+	record_date := c.GetString("record_date")
1007
+	keywords := c.GetString("keywords")
1008
+	page, _ := c.GetInt64("page")
1009
+	limit, _ := c.GetInt64("limit")
1010
+
1011
+	timeLayout := "2006-01-02"
1012
+	loc, _ := time.LoadLocation("Local")
1013
+	theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
1014
+	if err != nil {
1015
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1016
+		return
1017
+	}
1018
+	recordDateTime := theTime.Unix()
963 1019
 	adminInfo := c.GetAdminUserInfo()
964
-	prescriptionOrder, err := service.GetHisPrescriptionOrderList(adminInfo.CurrentOrgId)
965
-	fmt.Println(prescriptionOrder)
1020
+	prescriptionOrder, err, total := service.GetHisPatientPrescriptionList(adminInfo.CurrentOrgId, keywords, recordDateTime, page, limit)
966 1021
 
1022
+	//adminInfo := c.GetAdminUserInfo()
1023
+	//prescriptionOrder, err := service.GetHisPrescriptionOrderList(adminInfo.CurrentOrgId)
1024
+	//fmt.Println(prescriptionOrder)
967 1025
 	if err == nil {
968 1026
 		c.ServeSuccessJSON(map[string]interface{}{
969 1027
 			"order": prescriptionOrder,
1028
+			"total": total,
970 1029
 		})
971 1030
 	} else {
972 1031
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
@@ -1933,3 +1992,11 @@ func (this *HisApiController) DeleteAddition() {
1933 1992
 	}
1934 1993
 
1935 1994
 }
1995
+
1996
+func (this *HisApiController) GetAdminUsers() {
1997
+	adminUser := this.GetAdminUserInfo()
1998
+	doctors, _ := service.GetAllHisDoctor(adminUser.CurrentOrgId)
1999
+	this.ServeSuccessJSON(map[string]interface{}{
2000
+		"doctors": doctors,
2001
+	})
2002
+}

+ 7 - 7
controllers/mobile_api_controllers/check_weight_api_controller.go View File

@@ -338,10 +338,10 @@ func (c *CheckWeightApiController) SavePatientInfoDialysis() {
338 338
 
339 339
 	if template.TemplateId == 22 || template.TemplateId == 17 || template.TemplateId == 21 || template.TemplateId == 26 || template.TemplateId == 27 {
340 340
 		dewater_amount = dewater_amount * 1000
341
+	}
341 342
 
342
-		if dewater_amount < 0 {
343
-			dewater_amount = 0
344
-		}
343
+	if dewater_amount < 0 {
344
+		dewater_amount = 0
345 345
 	}
346 346
 
347 347
 	if dialysistype == 1 {
@@ -354,10 +354,10 @@ func (c *CheckWeightApiController) SavePatientInfoDialysis() {
354 354
 		var system_dialysisPrescribe *models.SystemPrescription
355 355
 
356 356
 		var mode_id int64
357
-		weightfirst, _ := service.FindLastDryWeightAdjust(adminUserInfo.Org.Id, id)
358
-		if weightfirst.DryWeight > weighing_before {
359
-			return
360
-		}
357
+		//weightfirst, _ := service.FindLastDryWeightAdjust(adminUserInfo.Org.Id, id)
358
+		//if weightfirst.DryWeight > weighing_before {
359
+		//	return
360
+		//}
361 361
 
362 362
 		dialysisPrescribe, _ = service.MobileGetDialysisPrescribe(adminUserInfo.Org.Id, id, theAssessmentDateTime)
363 363
 		if schedual != nil {

+ 138 - 8
controllers/mobile_api_controllers/patient_api_controller.go View File

@@ -1060,44 +1060,174 @@ func (c *PatientApiController) ExecDoctorAdvice() {
1060 1060
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1061 1061
 			return
1062 1062
 		}
1063
-
1064 1063
 		timeLayout2 := "2006-01-02 15:04:05"
1065 1064
 		loc, _ := time.LoadLocation("Local")
1066
-
1067 1065
 		theTime, errs := time.ParseInLocation(timeLayout2, execution_time, loc)
1068 1066
 		if errs != nil {
1069 1067
 			utils.ErrorLog(errs.Error())
1070 1068
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1071 1069
 			return
1072 1070
 		}
1073
-
1074 1071
 		adminInfo := c.GetMobileAdminUserInfo()
1075 1072
 		advice_id, _ := c.GetInt64("advice_id")
1076 1073
 		advices, _ := service.FindHisDoctorAdviceById(adminInfo.Org.Id, advice_id)
1077
-
1078 1074
 		if advices.ExecutionState == 1 {
1079 1075
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceExced)
1080 1076
 			return
1081 1077
 		}
1082
-
1083 1078
 		if advices.Checker >= 0 && advices.Checker == adminInfo.AdminUser.Id {
1084 1079
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeExceAndCheckNotOneUser)
1085 1080
 			return
1086 1081
 		}
1087
-
1088 1082
 		if advices.StartTime > theTime.Unix() {
1089 1083
 			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceExceBeforeStart)
1090 1084
 			return
1091 1085
 		}
1092
-
1093 1086
 		advices.ExecutionState = 1
1094 1087
 		advices.ExecutionStaff = adminInfo.AdminUser.Id
1095 1088
 		advices.ExecutionTime = theTime.Unix()
1096
-
1097 1089
 		err := service.SaveHisDoctorAdvice(&advices)
1098 1090
 		var ids []string
1099 1091
 		ids = append(ids, strconv.FormatInt(advices.ID, 10))
1100 1092
 		if err == nil {
1093
+			//药品管理信息
1094
+			_, drugStockConfig := service.FindDrugStockAutomaticReduceRecordByOrgId(adminInfo.Org.Id)
1095
+			if drugStockConfig.IsOpen == 1 {
1096
+				advice, _ := service.FindHisDoctorAdviceById(adminInfo.Org.Id, advice_id)
1097
+				record_time := advice.RecordDate
1098
+
1099
+				out, err := service.FindDrugStockOutByIsSys(adminInfo.Org.Id, 1, record_time)
1100
+				if err == gorm.ErrRecordNotFound {
1101
+					//没有记录,则创建出库单
1102
+					timeStr := time.Now().Format("2006-01-02")
1103
+					timeArr := strings.Split(timeStr, "-")
1104
+					total, _ := service.FindAllDrugWarehouseOut(adminInfo.Org.Id)
1105
+					total = total + 1
1106
+					warehousing_out_order := strconv.FormatInt(adminInfo.Org.Id, 10) + timeArr[0] + timeArr[1] + timeArr[2] + "000"
1107
+					number, _ := strconv.ParseInt(warehousing_out_order, 10, 64)
1108
+					number = number + total
1109
+					warehousing_out_order = "YPCKD" + strconv.FormatInt(number, 10)
1110
+					creater := adminInfo.AdminUser.Id
1111
+					warehouseOut := models.DrugWarehouseOut{
1112
+						WarehouseOutOrderNumber: warehousing_out_order,
1113
+						OperationTime:           time.Now().Unix(),
1114
+						OrgId:                   adminInfo.Org.Id,
1115
+						Creater:                 creater,
1116
+						Ctime:                   time.Now().Unix(),
1117
+						Status:                  1,
1118
+						WarehouseOutTime:        record_time,
1119
+						Dealer:                  0,
1120
+						Manufacturer:            0,
1121
+						Type:                    1,
1122
+						IsSys:                   1,
1123
+					}
1124
+					err := service.AddSigleDrugWarehouseOut(&warehouseOut)
1125
+					if err != nil {
1126
+						utils.TraceLog("创建出库单失败 err = %v", err)
1127
+					} else {
1128
+						if advice.PrescribingNumber > 0 {
1129
+							warehouseOutInfo := &models.DrugWarehouseOutInfo{
1130
+								WarehouseOutOrderNumber: warehouseOut.WarehouseOutOrderNumber,
1131
+								WarehouseOutId:          warehouseOut.ID,
1132
+								Status:                  1,
1133
+								Ctime:                   time.Now().Unix(),
1134
+								Remark:                  "",
1135
+								OrgId:                   adminInfo.Org.Id,
1136
+								Type:                    1,
1137
+								Manufacturer:            0,
1138
+								Dealer:                  0,
1139
+								IsSys:                   1,
1140
+								SysRecordTime:           record_time,
1141
+								DrugId:                  advice.DrugId,
1142
+							}
1143
+							prescribingNumber := strconv.FormatFloat(math.Abs(advice.PrescribingNumber), 'f', 0, 64)
1144
+							count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
1145
+							warehouseOutInfo.Count = count
1146
+							stockInInfo, _ := service.FindLastDrugStockInInfoRecord(advice.DrugId, adminInfo.Org.Id)
1147
+							warehouseOutInfo.Price = stockInInfo.Price
1148
+							err := service.AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
1149
+							if err == nil {
1150
+								details := &models.DrugAutomaticReduceDetail{
1151
+									WarehouseOutId:          warehouseOutInfo.ID,
1152
+									WarehouseOutOrderNumber: warehouseOutInfo.WarehouseOutOrderNumber,
1153
+									PatientId:               advice.PatientId,
1154
+									Ctime:                   time.Now().Unix(),
1155
+									Mtime:                   time.Now().Unix(),
1156
+									Status:                  1,
1157
+									RecordTime:              record_time,
1158
+									OrgId:                   adminInfo.Org.Id,
1159
+									DrugId:                  advice.DrugId,
1160
+									Count:                   count,
1161
+								}
1162
+								service.AddSigleDrugAutoReduceRecordInfo(details)
1163
+							}
1164
+						}
1165
+					}
1166
+
1167
+				} else if err == nil {
1168
+					outInfo, err := service.FindDrugStockOutInfoByTypeId(adminInfo.Org.Id, advice.DrugId, out.ID, out.WarehouseOutOrderNumber)
1169
+					if err == gorm.ErrRecordNotFound {
1170
+						warehouseOutInfo := &models.DrugWarehouseOutInfo{
1171
+							WarehouseOutOrderNumber: out.WarehouseOutOrderNumber,
1172
+							WarehouseOutId:          out.ID,
1173
+							Status:                  1,
1174
+							Ctime:                   time.Now().Unix(),
1175
+							Remark:                  "",
1176
+							OrgId:                   adminInfo.Org.Id,
1177
+							Type:                    1,
1178
+							Manufacturer:            0,
1179
+							Dealer:                  0,
1180
+							IsSys:                   1,
1181
+							SysRecordTime:           record_time,
1182
+						}
1183
+
1184
+						stockInInfo, _ := service.FindLastDrugStockInInfoRecord(advice.DrugId, adminInfo.Org.Id)
1185
+						warehouseOutInfo.Price = stockInInfo.Price
1186
+						warehouseOutInfo.DrugId = advice.DrugId
1187
+						prescribingNumber := strconv.FormatFloat(math.Abs(advice.PrescribingNumber), 'f', 0, 64)
1188
+						count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
1189
+						warehouseOutInfo.Count = count
1190
+						err := service.AddSigleDrugWarehouseOutInfo(warehouseOutInfo)
1191
+						if err == nil {
1192
+							details := &models.DrugAutomaticReduceDetail{
1193
+								WarehouseOutId:          warehouseOutInfo.ID,
1194
+								WarehouseOutOrderNumber: warehouseOutInfo.WarehouseOutOrderNumber,
1195
+								PatientId:               advice.PatientId,
1196
+								Ctime:                   time.Now().Unix(),
1197
+								Mtime:                   time.Now().Unix(),
1198
+								Status:                  1,
1199
+								RecordTime:              record_time,
1200
+								OrgId:                   adminInfo.Org.Id,
1201
+								DrugId:                  advice.DrugId,
1202
+								Count:                   count,
1203
+							}
1204
+							service.AddSigleDrugAutoReduceRecordInfo(details)
1205
+						}
1206
+
1207
+					} else if err == nil { //记录存在,则将增加数量
1208
+						if outInfo.ID > 0 {
1209
+							prescribingNumber := strconv.FormatFloat(math.Abs(advice.PrescribingNumber), 'f', 0, 64)
1210
+							count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
1211
+							service.UpdateDrugStockOutInfoCount2(adminInfo.Org.Id, outInfo.ID, count)
1212
+						}
1213
+						prescribingNumber := strconv.FormatFloat(math.Abs(advice.PrescribingNumber), 'f', 0, 64)
1214
+						count, _ := strconv.ParseInt(prescribingNumber, 10, 64)
1215
+						details := &models.DrugAutomaticReduceDetail{
1216
+							WarehouseOutId:          outInfo.ID,
1217
+							WarehouseOutOrderNumber: outInfo.WarehouseOutOrderNumber,
1218
+							PatientId:               advice.PatientId,
1219
+							Ctime:                   time.Now().Unix(),
1220
+							Mtime:                   time.Now().Unix(),
1221
+							Status:                  1,
1222
+							RecordTime:              record_time,
1223
+							OrgId:                   adminInfo.Org.Id,
1224
+							DrugId:                  advice.DrugId,
1225
+							Count:                   count,
1226
+						}
1227
+						service.AddSigleDrugAutoReduceRecordInfo(details)
1228
+					}
1229
+				}
1230
+			}
1101 1231
 			c.ServeSuccessJSON(map[string]interface{}{
1102 1232
 				"msg":    "ok",
1103 1233
 				"advice": advices,

+ 36 - 0
controllers/role_controller.go View File

@@ -233,6 +233,10 @@ func (this *RoleAPIController) EditPurviewInitData() {
233 233
 	//门诊管理
234 234
 	_, _, outpatientRegistrationPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientRegistration/index")
235 235
 
236
+	_, _, outpatientRegistrationPurviewTwo := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientDoctorStation")
237
+
238
+	_, _, outpatientRegistrationPurviewThree := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientCharges")
239
+
236 240
 	//透析管理
237 241
 	_, _, originDialysisWatchPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/dialysis/watch")
238 242
 	_, _, originWorkforcePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/workforce/patient")
@@ -255,6 +259,10 @@ func (this *RoleAPIController) EditPurviewInitData() {
255 259
 	//门诊管理
256 260
 
257 261
 	subPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
262
+
263
+	subPurviewTreeViewModelTwo := []*service.PurviewTreeViewModel{}
264
+	subPurviewTreeViewModelThree := []*service.PurviewTreeViewModel{}
265
+
258 266
 	for _, item := range outpatientRegistrationPurview {
259 267
 		temp := &service.PurviewTreeViewModel{
260 268
 			ID:     item.Id,
@@ -265,10 +273,38 @@ func (this *RoleAPIController) EditPurviewInitData() {
265 273
 		subPurviewTreeViewModel = append(subPurviewTreeViewModel, temp)
266 274
 	}
267 275
 
276
+	for _, item := range outpatientRegistrationPurviewTwo {
277
+		temp := &service.PurviewTreeViewModel{
278
+			ID:     item.Id,
279
+			PID:    item.Parentid,
280
+			Name:   item.Name,
281
+			Number: 1,
282
+		}
283
+		subPurviewTreeViewModelTwo = append(subPurviewTreeViewModelTwo, temp)
284
+	}
285
+
286
+	for _, item := range outpatientRegistrationPurviewThree {
287
+		temp := &service.PurviewTreeViewModel{
288
+			ID:     item.Id,
289
+			PID:    item.Parentid,
290
+			Name:   item.Name,
291
+			Number: 1,
292
+		}
293
+		subPurviewTreeViewModelThree = append(subPurviewTreeViewModelThree, temp)
294
+	}
295
+
268 296
 	for _, item := range outpatientRegistration {
269 297
 		if item.Name == "门诊挂号" {
270 298
 			item.Childs = append(item.Childs, subPurviewTreeViewModel...)
271 299
 		}
300
+
301
+		if item.Name == "门诊医生站" {
302
+			item.Childs = append(item.Childs, subPurviewTreeViewModelTwo...)
303
+		}
304
+
305
+		if item.Name == "门诊收费" {
306
+			item.Childs = append(item.Childs, subPurviewTreeViewModelThree...)
307
+		}
272 308
 	}
273 309
 
274 310
 	//电子病历

+ 9 - 10
controllers/schedule_api_controller.go View File

@@ -687,17 +687,17 @@ func (this *ScheduleApiController) SearchSchedulePatients() {
687 687
 		weekEnd1 := 7 - weekDay1
688 688
 		weekStart1 := weekEnd1 - 6
689 689
 		for index := weekStart1; index <= weekEnd1; index++ {
690
+			fmt.Println(index)
690 691
 			theDay := thisTime1.AddDate(0, 0, index)
691 692
 			days = append(days, theDay.Format("2006-01-02"))
692 693
 
693
-			if index == -1 {
694
-				start_time = theDay.Format("2006-01-02")
695
-				fmt.Println(start_time)
696
-			}
697
-
698
-			end_time = theDay.Format("2006-01-02")
699 694
 		}
700 695
 
696
+		fmt.Println(days)
697
+
698
+		start_time = days[0]
699
+		end_time = days[len(days)-1]
700
+
701 701
 		timeLayout := "2006-01-02"
702 702
 		loc, _ := time.LoadLocation("Local")
703 703
 
@@ -731,13 +731,12 @@ func (this *ScheduleApiController) SearchSchedulePatients() {
731 731
 		for index := weekStart2; index <= weekEnd2; index++ {
732 732
 			theDay := thisTime2.AddDate(0, 0, index)
733 733
 			days = append(days, theDay.Format("2006-01-02"))
734
-			if index == -1 {
735
-				start_time = theDay.Format("2006-01-02")
736
-			}
737 734
 
738
-			end_time = theDay.Format("2006-01-02")
739 735
 		}
740 736
 
737
+		start_time = days[0]
738
+		end_time = days[len(days)-1]
739
+
741 740
 		timeLayout := "2006-01-02"
742 741
 		loc, _ := time.LoadLocation("Local")
743 742
 

+ 51 - 52
models/drug.go View File

@@ -1,58 +1,57 @@
1 1
 package models
2 2
 
3 3
 type BaseDrugLib struct {
4
-	ID                          int64                          `gorm:"column:id" json:"id" form:"id"`
5
-	DrugName                    string                         `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
6
-	Pinyin                      string                         `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
7
-	Wubi                        string                         `gorm:"column:wubi" json:"wubi" form:"wubi"`
8
-	DrugAlias                   string                         `gorm:"column:drug_alias" json:"drug_alias" form:"drug_alias"`
9
-	DrugAliasPinyin             string                         `gorm:"column:drug_alias_pinyin" json:"drug_alias_pinyin" form:"drug_alias_pinyin"`
10
-	DrugAliasWubi               string                         `gorm:"column:drug_alias_wubi" json:"drug_alias_wubi" form:"drug_alias_wubi"`
11
-	DrugCategory                int64                          `gorm:"column:drug_category" json:"drug_category" form:"drug_category"`
12
-	DrugSpec                    string                         `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
13
-	DrugType                    int64                          `gorm:"column:drug_type" json:"drug_type" form:"drug_type"`
14
-	DrugStockLimit              string                         `gorm:"column:drug_stock_limit" json:"drug_stock_limit" form:"drug_stock_limit"`
15
-	DrugOriginPlace             string                         `gorm:"column:drug_origin_place" json:"drug_origin_place" form:"drug_origin_place"`
16
-	DrugDosageForm              int64                          `gorm:"column:drug_dosage_form" json:"drug_dosage_form" form:"drug_dosage_form"`
17
-	MedicalInsuranceLevel       int64                          `gorm:"column:medical_insurance_level" json:"medical_insurance_level" form:"medical_insurance_level"`
18
-	MaxUnit                     string                         `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
19
-	MinUnit                     string                         `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
20
-	UnitMatrixing               string                         `gorm:"column:unit_matrixing" json:"unit_matrixing" form:"unit_matrixing"`
21
-	RetailPrice                 float64                        `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
22
-	LastPrice                   float64                        `gorm:"column:last_price" json:"last_price" form:"last_price"`
23
-	DrugControl                 int64                          `gorm:"column:drug_control" json:"drug_control" form:"drug_control"`
24
-	Number                      string                         `gorm:"column:number" json:"number" form:"number"`
25
-	DrugClassify                string                         `gorm:"column:drug_classify" json:"drug_classify" form:"drug_classify"`
26
-	DrugDose                    float64                        `gorm:"column:drug_dose" json:"drug_dose" form:"drug_dose"`
27
-	DrugDoseUnit                int64                          `gorm:"column:drug_dose_unit" json:"drug_dose_unit" form:"drug_dose_unit"`
28
-	MedicalInsuranceNumber      string                         `gorm:"column:medical_insurance_number" json:"medical_insurance_number" form:"medical_insurance_number"`
29
-	Manufacturer                int64                          `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
30
-	PharmacologyCategory        int64                          `gorm:"column:pharmacology_category" json:"pharmacology_category" form:"pharmacology_category"`
31
-	StatisticsCategory          int64                          `gorm:"column:statistics_category" json:"statistics_category" form:"statistics_category"`
32
-	Code                        string                         `gorm:"column:code" json:"code" form:"code"`
33
-	IsSpecialDiseases           int64                          `gorm:"column:is_special_diseases" json:"is_special_diseases" form:"is_special_diseases"`
34
-	IsRecord                    int64                          `gorm:"column:is_record" json:"is_record" form:"is_record"`
35
-	Agent                       string                         `gorm:"column:agent" json:"agent" form:"agent"`
36
-	DrugStatus                  string                         `gorm:"column:drug_status" json:"drug_status" form:"drug_status"`
37
-	LimitRemark                 string                         `gorm:"column:limit_remark" json:"limit_remark" form:"limit_remark"`
38
-	DeliveryWay                 string                         `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
39
-	ExecutionFrequency          string                         `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
40
-	SingleDose                  float64                        `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
41
-	PrescribingNumber           float64                        `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
42
-	Label                       int64                          `gorm:"column:label" json:"label" form:"label"`
43
-	Sort                        int64                          `gorm:"column:sort" json:"sort" form:"sort"`
44
-	IsUseDoctorAdvice           int64                          `gorm:"column:is_use_doctor_advice" json:"is_use_doctor_advice" form:"is_use_doctor_advice"`
45
-	IsDefault                   int64                          `gorm:"column:is_default" json:"is_default" form:"is_default"`
46
-	IsChargePredict             int64                          `gorm:"column:is_charge_predict" json:"is_charge_predict" form:"is_charge_predict"`
47
-	IsStatisticsWork            int64                          `gorm:"column:is_statistics_work" json:"is_statistics_work" form:"is_statistics_work"`
48
-	IsChargeUse                 int64                          `gorm:"column:is_charge_use" json:"is_charge_use" form:"is_charge_use"`
49
-	Status                      int64                          `gorm:"column:status" json:"status" form:"status"`
50
-	Ctime                       int64                          `gorm:"column:ctime" json:"ctime" form:"ctime"`
51
-	Mtime                       int64                          `gorm:"column:mtime" json:"mtime" form:"mtime"`
52
-	OrgId                       int64                          `gorm:"column:org_id" json:"org_id" form:"org_id"`
53
-	DrugCode                    string                         `gorm:"column:drug_code" json:"drug_code" form:"drug_code"`
54
-	MedicineInsurancePercentage []*MedicineInsurancePercentage `gorm:"ForeignKey:PatientId;AssociationForeignKey:PatientId" json:"monitoring_record"`
55
-	DrugWarehouseInfo           []*DrugWarehouseInfo           `gorm:"ForeignKey:ID;AssociationForeignKey:DrugId" json:"stock_in"`
4
+	ID                     int64   `gorm:"column:id" json:"id" form:"id"`
5
+	DrugName               string  `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
6
+	Pinyin                 string  `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
7
+	Wubi                   string  `gorm:"column:wubi" json:"wubi" form:"wubi"`
8
+	DrugAlias              string  `gorm:"column:drug_alias" json:"drug_alias" form:"drug_alias"`
9
+	DrugAliasPinyin        string  `gorm:"column:drug_alias_pinyin" json:"drug_alias_pinyin" form:"drug_alias_pinyin"`
10
+	DrugAliasWubi          string  `gorm:"column:drug_alias_wubi" json:"drug_alias_wubi" form:"drug_alias_wubi"`
11
+	DrugCategory           int64   `gorm:"column:drug_category" json:"drug_category" form:"drug_category"`
12
+	DrugSpec               string  `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
13
+	DrugType               int64   `gorm:"column:drug_type" json:"drug_type" form:"drug_type"`
14
+	DrugStockLimit         string  `gorm:"column:drug_stock_limit" json:"drug_stock_limit" form:"drug_stock_limit"`
15
+	DrugOriginPlace        string  `gorm:"column:drug_origin_place" json:"drug_origin_place" form:"drug_origin_place"`
16
+	DrugDosageForm         int64   `gorm:"column:drug_dosage_form" json:"drug_dosage_form" form:"drug_dosage_form"`
17
+	MedicalInsuranceLevel  int64   `gorm:"column:medical_insurance_level" json:"medical_insurance_level" form:"medical_insurance_level"`
18
+	MaxUnit                string  `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
19
+	MinUnit                string  `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
20
+	UnitMatrixing          string  `gorm:"column:unit_matrixing" json:"unit_matrixing" form:"unit_matrixing"`
21
+	RetailPrice            float64 `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
22
+	LastPrice              float64 `gorm:"column:last_price" json:"last_price" form:"last_price"`
23
+	DrugControl            int64   `gorm:"column:drug_control" json:"drug_control" form:"drug_control"`
24
+	Number                 string  `gorm:"column:number" json:"number" form:"number"`
25
+	DrugClassify           string  `gorm:"column:drug_classify" json:"drug_classify" form:"drug_classify"`
26
+	DrugDose               float64 `gorm:"column:drug_dose" json:"drug_dose" form:"drug_dose"`
27
+	DrugDoseUnit           int64   `gorm:"column:drug_dose_unit" json:"drug_dose_unit" form:"drug_dose_unit"`
28
+	MedicalInsuranceNumber string  `gorm:"column:medical_insurance_number" json:"medical_insurance_number" form:"medical_insurance_number"`
29
+	Manufacturer           int64   `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
30
+	PharmacologyCategory   int64   `gorm:"column:pharmacology_category" json:"pharmacology_category" form:"pharmacology_category"`
31
+	StatisticsCategory     int64   `gorm:"column:statistics_category" json:"statistics_category" form:"statistics_category"`
32
+	Code                   string  `gorm:"column:code" json:"code" form:"code"`
33
+	IsSpecialDiseases      int64   `gorm:"column:is_special_diseases" json:"is_special_diseases" form:"is_special_diseases"`
34
+	IsRecord               int64   `gorm:"column:is_record" json:"is_record" form:"is_record"`
35
+	Agent                  string  `gorm:"column:agent" json:"agent" form:"agent"`
36
+	DrugStatus             string  `gorm:"column:drug_status" json:"drug_status" form:"drug_status"`
37
+	LimitRemark            string  `gorm:"column:limit_remark" json:"limit_remark" form:"limit_remark"`
38
+	DeliveryWay            string  `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
39
+	ExecutionFrequency     string  `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
40
+	SingleDose             float64 `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
41
+	PrescribingNumber      float64 `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
42
+	Label                  int64   `gorm:"column:label" json:"label" form:"label"`
43
+	Sort                   int64   `gorm:"column:sort" json:"sort" form:"sort"`
44
+	IsUseDoctorAdvice      int64   `gorm:"column:is_use_doctor_advice" json:"is_use_doctor_advice" form:"is_use_doctor_advice"`
45
+	IsDefault              int64   `gorm:"column:is_default" json:"is_default" form:"is_default"`
46
+	IsChargePredict        int64   `gorm:"column:is_charge_predict" json:"is_charge_predict" form:"is_charge_predict"`
47
+	IsStatisticsWork       int64   `gorm:"column:is_statistics_work" json:"is_statistics_work" form:"is_statistics_work"`
48
+	IsChargeUse            int64   `gorm:"column:is_charge_use" json:"is_charge_use" form:"is_charge_use"`
49
+	Status                 int64   `gorm:"column:status" json:"status" form:"status"`
50
+	Ctime                  int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
51
+	Mtime                  int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
52
+	OrgId                  int64   `gorm:"column:org_id" json:"org_id" form:"org_id"`
53
+	DrugCode               string  `gorm:"column:drug_code" json:"drug_code" form:"drug_code"`
54
+	//MedicineInsurancePercentage []*MedicineInsurancePercentage `gorm:"ForeignKey:PatientId;AssociationForeignKey:PatientId" json:"monitoring_record"`
56 55
 }
57 56
 
58 57
 func (BaseDrugLib) TableName() string {

+ 22 - 19
models/his_models.go View File

@@ -199,6 +199,7 @@ type HisDoctorAdviceInfo struct {
199 199
 	PrescriptionId        int64   `gorm:"column:prescription_id" json:"prescription_id" form:"prescription_id"`
200 200
 	MedListCodg           string  `gorm:"column:med_list_codg" json:"med_list_codg" form:"med_list_codg"`
201 201
 	FeedetlSn             string  `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
202
+	Day                   int64   `gorm:"column:day" json:"day" form:"day"`
202 203
 }
203 204
 
204 205
 func (HisDoctorAdviceInfo) TableName() string {
@@ -248,25 +249,26 @@ func (HisPatientCaseHistory) TableName() string {
248 249
 }
249 250
 
250 251
 type HisPrescriptionInfo struct {
251
-	ID                 int64  `gorm:"column:id" json:"id" form:"id"`
252
-	UserOrgId          int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
253
-	RecordDate         int64  `gorm:"column:record_date" json:"record_date" form:"record_date"`
254
-	PatientId          int64  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
255
-	HisPatientId       int64  `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
256
-	Status             int64  `gorm:"column:status" json:"status" form:"status"`
257
-	Ctime              int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
258
-	Mtime              int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
259
-	Creator            int64  `gorm:"column:creator" json:"creator" form:"creator"`
260
-	Modifier           int64  `gorm:"column:modifier" json:"modifier" form:"modifier"`
261
-	Diagnosis          string `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
262
-	RegisterType       string `gorm:"column:register_type" json:"register_type" form:"register_type"`
263
-	Doctor             string `gorm:"column:doctor" json:"doctor" form:"doctor"`
264
-	Departments        int64  `gorm:"column:departments" json:"departments" form:"departments"`
265
-	SickHistory        string `gorm:"column:sick_history" json:"sick_history" form:"sick_history"`
266
-	PrescriptionNumber string `gorm:"column:prescription_number" json:"prescription_number" form:"prescription_number"`
267
-	PrescriptionStatus int64  `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
268
-	BatchNumber        string `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
269
-	DoctorId           int64  `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
252
+	ID                 int64           `gorm:"column:id" json:"id" form:"id"`
253
+	UserOrgId          int64           `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
254
+	RecordDate         int64           `gorm:"column:record_date" json:"record_date" form:"record_date"`
255
+	PatientId          int64           `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
256
+	HisPatientId       int64           `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
257
+	Status             int64           `gorm:"column:status" json:"status" form:"status"`
258
+	Ctime              int64           `gorm:"column:ctime" json:"ctime" form:"ctime"`
259
+	Mtime              int64           `gorm:"column:mtime" json:"mtime" form:"mtime"`
260
+	Creator            int64           `gorm:"column:creator" json:"creator" form:"creator"`
261
+	Modifier           int64           `gorm:"column:modifier" json:"modifier" form:"modifier"`
262
+	Diagnosis          string          `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
263
+	RegisterType       string          `gorm:"column:register_type" json:"register_type" form:"register_type"`
264
+	Doctor             string          `gorm:"column:doctor" json:"doctor" form:"doctor"`
265
+	Departments        int64           `gorm:"column:departments" json:"departments" form:"departments"`
266
+	SickHistory        string          `gorm:"column:sick_history" json:"sick_history" form:"sick_history"`
267
+	PrescriptionNumber string          `gorm:"column:prescription_number" json:"prescription_number" form:"prescription_number"`
268
+	PrescriptionStatus int64           `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
269
+	BatchNumber        string          `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
270
+	DoctorId           int64           `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
271
+	XtHisDepartment    XtHisDepartment `gorm:"ForeignKey:ID;AssociationForeignKey:Departments" json:"department"`
270 272
 }
271 273
 
272 274
 func (HisPrescriptionInfo) TableName() string {
@@ -452,6 +454,7 @@ type HisPrescriptionProject struct {
452 454
 	Day                string     `gorm:"column:day" json:"day" form:"day"`
453 455
 	HisProject         HisProject `gorm:"ForeignKey:ProjectId;AssociationForeignKey:ID" json:"project"`
454 456
 	Remark             string     `gorm:"column:remark" json:"remark" form:"remark"`
457
+	Unit               string     `gorm:"column:unit" json:"unit" form:"unit"`
455 458
 }
456 459
 
457 460
 func (HisPrescriptionProject) TableName() string {

+ 21 - 0
service/gobal_config_service.go View File

@@ -192,3 +192,24 @@ func CreateXTHisRecord(config *models.XtHisConfig) (err error) {
192 192
 	err = writeDb.Model(&models.XtHisConfig{}).Create(config).Error
193 193
 	return
194 194
 }
195
+
196
+func GetExportHisOrderList(user_org_id int64, start_time int64, end_time int64) (order []*models.HisOrder, err error) {
197
+	db := readDb.Model(&models.HisOrder{})
198
+	if start_time != 0 {
199
+		db = db.Where("his_order.settle_accounts_date>=?", start_time)
200
+	}
201
+	if end_time != 0 {
202
+		db = db.Where("his_order.settle_accounts_date<=?", end_time)
203
+	}
204
+
205
+	db = db.Where("his_order.status = 1 AND his_order.user_org_id = ?", user_org_id)
206
+
207
+	db = db.Preload("HisOrderInfo", "status = 1 AND user_org_id = ?", user_org_id).
208
+		Preload("Patients", "status = 1 AND user_org_id = ?", user_org_id).
209
+		Preload("HisPatient", "status = 1 AND user_org_id = ?", user_org_id).
210
+		Preload("HisPrescriptionInfo", func(db *gorm.DB) *gorm.DB {
211
+			return db.Where("status = 1 AND user_org_id = ?", user_org_id).Preload("XtHisDepartment", "status = 1")
212
+		})
213
+	err = db.Order("ctime desc").Find(&order).Error
214
+	return
215
+}

+ 163 - 7
service/his_service.go View File

@@ -204,8 +204,122 @@ func GetHisPrescription(org_id int64, patient_id int64, record_date int64) (pres
204 204
 	return
205 205
 }
206 206
 
207
-func GetAllDrugLibList(org_id int64) (list []*models.BaseDrugLib, err error) {
208
-	err = readDb.Model(&models.BaseDrugLib{}).Where("org_id = ?  AND status = 1", org_id).Find(&list).Error
207
+type OtherDrugWarehouseInfo struct {
208
+	ID               int64 `gorm:"column:id" json:"id" form:"id"`
209
+	DrugId           int64 `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
210
+	WarehousingCount int64 `gorm:"column:warehousing_count" json:"warehousing_count" form:"warehousing_count"`
211
+	Status           int64 `gorm:"column:status" json:"status" form:"status"`
212
+	OrgId            int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
213
+}
214
+
215
+func (OtherDrugWarehouseInfo) TableName() string {
216
+	return "xt_drug_warehouse_info"
217
+}
218
+
219
+type VMDrugSalesReturnInfo struct {
220
+	ID     int64 `gorm:"column:id" json:"id" form:"id"`
221
+	DrugId int64 `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
222
+	Count  int64 `gorm:"column:count" json:"count" form:"count"`
223
+	Status int64 `gorm:"column:status" json:"status" form:"status"`
224
+	OrgId  int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
225
+}
226
+
227
+func (VMDrugSalesReturnInfo) TableName() string {
228
+	return "xt_drug_sales_return_info"
229
+}
230
+
231
+type VMDrugWarehouseOutInfo struct {
232
+	ID     int64 `gorm:"column:id" json:"id" form:"id"`
233
+	DrugId int64 `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
234
+	Count  int64 `gorm:"column:count" json:"count" form:"count"`
235
+	Status int64 `gorm:"column:status" json:"status" form:"status"`
236
+	OrgId  int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
237
+}
238
+
239
+func (VMDrugWarehouseOutInfo) TableName() string {
240
+	return "xt_drug_warehouse_out_info"
241
+}
242
+
243
+type VMDrugCancelStockInfo struct {
244
+	ID     int64 `gorm:"column:id" json:"id" form:"id"`
245
+	DrugId int64 `gorm:"column:drug_id" json:"drug_id" form:"drug_id"`
246
+	Count  int64 `gorm:"column:count" json:"count" form:"count"`
247
+	Status int64 `gorm:"column:status" json:"status" form:"status"`
248
+	OrgId  int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
249
+}
250
+
251
+func (VMDrugCancelStockInfo) TableName() string {
252
+	return "xt_drug_cancel_stock_info"
253
+}
254
+
255
+type BaseDrugLib struct {
256
+	ID                     int64   `gorm:"column:id" json:"id" form:"id"`
257
+	DrugName               string  `gorm:"column:drug_name" json:"drug_name" form:"drug_name"`
258
+	Pinyin                 string  `gorm:"column:pinyin" json:"pinyin" form:"pinyin"`
259
+	Wubi                   string  `gorm:"column:wubi" json:"wubi" form:"wubi"`
260
+	DrugAlias              string  `gorm:"column:drug_alias" json:"drug_alias" form:"drug_alias"`
261
+	DrugAliasPinyin        string  `gorm:"column:drug_alias_pinyin" json:"drug_alias_pinyin" form:"drug_alias_pinyin"`
262
+	DrugAliasWubi          string  `gorm:"column:drug_alias_wubi" json:"drug_alias_wubi" form:"drug_alias_wubi"`
263
+	DrugCategory           int64   `gorm:"column:drug_category" json:"drug_category" form:"drug_category"`
264
+	DrugSpec               string  `gorm:"column:drug_spec" json:"drug_spec" form:"drug_spec"`
265
+	DrugType               int64   `gorm:"column:drug_type" json:"drug_type" form:"drug_type"`
266
+	DrugStockLimit         string  `gorm:"column:drug_stock_limit" json:"drug_stock_limit" form:"drug_stock_limit"`
267
+	DrugOriginPlace        string  `gorm:"column:drug_origin_place" json:"drug_origin_place" form:"drug_origin_place"`
268
+	DrugDosageForm         int64   `gorm:"column:drug_dosage_form" json:"drug_dosage_form" form:"drug_dosage_form"`
269
+	MedicalInsuranceLevel  int64   `gorm:"column:medical_insurance_level" json:"medical_insurance_level" form:"medical_insurance_level"`
270
+	MaxUnit                string  `gorm:"column:max_unit" json:"max_unit" form:"max_unit"`
271
+	MinUnit                string  `gorm:"column:min_unit" json:"min_unit" form:"min_unit"`
272
+	UnitMatrixing          string  `gorm:"column:unit_matrixing" json:"unit_matrixing" form:"unit_matrixing"`
273
+	RetailPrice            float64 `gorm:"column:retail_price" json:"retail_price" form:"retail_price"`
274
+	LastPrice              float64 `gorm:"column:last_price" json:"last_price" form:"last_price"`
275
+	DrugControl            int64   `gorm:"column:drug_control" json:"drug_control" form:"drug_control"`
276
+	Number                 string  `gorm:"column:number" json:"number" form:"number"`
277
+	DrugClassify           string  `gorm:"column:drug_classify" json:"drug_classify" form:"drug_classify"`
278
+	DrugDose               float64 `gorm:"column:drug_dose" json:"drug_dose" form:"drug_dose"`
279
+	DrugDoseUnit           int64   `gorm:"column:drug_dose_unit" json:"drug_dose_unit" form:"drug_dose_unit"`
280
+	MedicalInsuranceNumber string  `gorm:"column:medical_insurance_number" json:"medical_insurance_number" form:"medical_insurance_number"`
281
+	Manufacturer           int64   `gorm:"column:manufacturer" json:"manufacturer" form:"manufacturer"`
282
+	PharmacologyCategory   int64   `gorm:"column:pharmacology_category" json:"pharmacology_category" form:"pharmacology_category"`
283
+	StatisticsCategory     int64   `gorm:"column:statistics_category" json:"statistics_category" form:"statistics_category"`
284
+	Code                   string  `gorm:"column:code" json:"code" form:"code"`
285
+	IsSpecialDiseases      int64   `gorm:"column:is_special_diseases" json:"is_special_diseases" form:"is_special_diseases"`
286
+	IsRecord               int64   `gorm:"column:is_record" json:"is_record" form:"is_record"`
287
+	Agent                  string  `gorm:"column:agent" json:"agent" form:"agent"`
288
+	DrugStatus             string  `gorm:"column:drug_status" json:"drug_status" form:"drug_status"`
289
+	LimitRemark            string  `gorm:"column:limit_remark" json:"limit_remark" form:"limit_remark"`
290
+	DeliveryWay            string  `gorm:"column:delivery_way" json:"delivery_way" form:"delivery_way"`
291
+	ExecutionFrequency     string  `gorm:"column:execution_frequency" json:"execution_frequency" form:"execution_frequency"`
292
+	SingleDose             float64 `gorm:"column:single_dose" json:"single_dose" form:"single_dose"`
293
+	PrescribingNumber      float64 `gorm:"column:prescribing_number" json:"prescribing_number" form:"prescribing_number"`
294
+	Label                  int64   `gorm:"column:label" json:"label" form:"label"`
295
+	Sort                   int64   `gorm:"column:sort" json:"sort" form:"sort"`
296
+	IsUseDoctorAdvice      int64   `gorm:"column:is_use_doctor_advice" json:"is_use_doctor_advice" form:"is_use_doctor_advice"`
297
+	IsDefault              int64   `gorm:"column:is_default" json:"is_default" form:"is_default"`
298
+	IsChargePredict        int64   `gorm:"column:is_charge_predict" json:"is_charge_predict" form:"is_charge_predict"`
299
+	IsStatisticsWork       int64   `gorm:"column:is_statistics_work" json:"is_statistics_work" form:"is_statistics_work"`
300
+	IsChargeUse            int64   `gorm:"column:is_charge_use" json:"is_charge_use" form:"is_charge_use"`
301
+	Status                 int64   `gorm:"column:status" json:"status" form:"status"`
302
+	Ctime                  int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
303
+	Mtime                  int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
304
+	OrgId                  int64   `gorm:"column:org_id" json:"org_id" form:"org_id"`
305
+	DrugCode               string  `gorm:"column:drug_code" json:"drug_code" form:"drug_code"`
306
+	//MedicineInsurancePercentage []*MedicineInsurancePercentage `gorm:"ForeignKey:PatientId;AssociationForeignKey:PatientId" json:"monitoring_record"`
307
+	OtherDrugWarehouseInfo []*OtherDrugWarehouseInfo `gorm:"ForeignKey:DrugId;AssociationForeignKey:ID" json:"stock_in"`
308
+	VMDrugSalesReturnInfo  []*VMDrugSalesReturnInfo  `gorm:"ForeignKey:DrugId;AssociationForeignKey:ID" json:"sales_return"`
309
+	VMDrugWarehouseOutInfo []*VMDrugWarehouseOutInfo `gorm:"ForeignKey:DrugId;AssociationForeignKey:ID" json:"stock_out"`
310
+	VMDrugCancelStockInfo  []*VMDrugCancelStockInfo  `gorm:"ForeignKey:DrugId;AssociationForeignKey:ID" json:"cancel_stock"`
311
+}
312
+
313
+func (BaseDrugLib) TableName() string {
314
+	return "xt_base_drug"
315
+}
316
+
317
+func GetAllDrugLibList(org_id int64) (list []*BaseDrugLib, err error) {
318
+	err = readDb.Model(&BaseDrugLib{}).Preload("OtherDrugWarehouseInfo", "status = 1 AND org_id = ?", org_id).
319
+		Preload("VMDrugSalesReturnInfo", "status = 1 AND org_id = ?", org_id).
320
+		Preload("VMDrugWarehouseOutInfo", "status = 1 AND org_id = ?", org_id).
321
+		Preload("VMDrugCancelStockInfo", "status = 1 AND org_id = ?", org_id).
322
+		Where("org_id = ?  AND status = 1", org_id).Find(&list).Error
209 323
 	return
210 324
 }
211 325
 
@@ -285,13 +399,37 @@ func SavePatientPrescriptionInfo(info models.HisPrescriptionInfo) (err error) {
285 399
 
286 400
 }
287 401
 
288
-func GetHisOrderList(user_org_id int64) (order []*models.HisOrder, err error) {
289
-	err = readDb.Model(&models.HisOrder{}).Where("status = 1 AND user_org_id = ?", user_org_id).
290
-		Preload("HisOrderInfo", "status = 1 AND user_org_id = ?", user_org_id).
402
+func GetHisOrderList(user_org_id int64, page int64, limit int64, start_time int64, end_time int64, doctor_id int64, keywords string) (order []*models.HisOrder, err error, total int64) {
403
+	offset := (page - 1) * limit
404
+	db := readDb.Model(&models.HisOrder{})
405
+
406
+	if doctor_id > 0 {
407
+		db = db.Joins("join his_prescription_info as info on info.patient_id = his_order.patient_id AND info.record_date = his_order.settle_accounts_date AND info.doctor_id = ? AND info.user_org_id = ?", doctor_id, user_org_id)
408
+	}
409
+
410
+	if len(keywords) > 0 {
411
+		keywords = "%" + keywords + "%"
412
+		db = db.Joins("join xt_patients as patient on patient.id = his_order.patient_id  AND patient.name like ? AND patient.user_org_id = ?", keywords, user_org_id)
413
+
414
+	}
415
+
416
+	if start_time != 0 {
417
+		db = db.Where("his_order.settle_accounts_date>=?", start_time)
418
+	}
419
+	if end_time != 0 {
420
+		db = db.Where("his_order.settle_accounts_date<=?", end_time)
421
+	}
422
+
423
+	db = db.Where("his_order.status = 1 AND his_order.user_org_id = ?", user_org_id)
424
+
425
+	db = db.Preload("HisOrderInfo", "status = 1 AND user_org_id = ?", user_org_id).
291 426
 		Preload("Patients", "status = 1 AND user_org_id = ?", user_org_id).
292 427
 		Preload("HisPatient", "status = 1 AND user_org_id = ?", user_org_id).
293
-		Preload("HisPrescriptionInfo", "status = 1 AND user_org_id = ?", user_org_id).Order("ctime desc").
294
-		Find(&order).Error
428
+		Preload("HisPrescriptionInfo", func(db *gorm.DB) *gorm.DB {
429
+			return db.Where("status = 1 AND user_org_id = ?", user_org_id).Preload("XtHisDepartment", "status = 1")
430
+		})
431
+	db = db.Count(&total)
432
+	err = db.Limit(limit).Offset(offset).Order("ctime desc").Find(&order).Error
295 433
 	return
296 434
 }
297 435
 
@@ -352,6 +490,7 @@ func GetHisPrescriptionThree(org_id int64, patient_id int64, record_date int64,
352 490
 		Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
353 491
 			return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisProject", "status=1")
354 492
 		}).
493
+		Preload("HisAdditionalCharge", "status = 1 AND user_org_id = ?", org_id).
355 494
 		Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ? AND batch_number=?", org_id, record_date, patient_id, number).
356 495
 		Find(&prescription).Error
357 496
 	return
@@ -530,3 +669,20 @@ func DelelteAddition(id int64, user_org_id int64) (err error) {
530 669
 	err = writeDb.Model(&models.HisAdditionalCharge{}).Where("user_org_id = ? AND id = ?", user_org_id, id).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
531 670
 	return
532 671
 }
672
+
673
+func GetHisPatientPrescriptionList(org_id int64, keywords string, record_date int64, page int64, limit int64) (patients []*Schedule, err error, total int64) {
674
+	offset := (page - 1) * limit
675
+	db := readDb.Model(&Schedule{}).Where("user_org_id = ? AND status = 1 AND schedule_date = ?", org_id, record_date)
676
+	if len(keywords) > 0 {
677
+		keywords = "%" + keywords + "%"
678
+		db = db.Joins("JOIN xt_patients as p On xt_schedule.patient_id = p.id AND p.user_org_id = ? AND p.name like ?", org_id, keywords)
679
+		db = db.Joins("JOIN his_prescription_info as info On xt_schedule.patient_id = info.patient_id  AND info.user_org_id = ? AND  info.record_date = ? AND info.prescription_number like ?", org_id, record_date, keywords)
680
+	}
681
+	db = db.Preload("Patients", "user_org_id = ? AND status = 1", org_id)
682
+	db = db.Preload("HisPatient", "user_org_id = ? AND status = 1", org_id)
683
+	db = db.Preload("HisPrescription", "user_org_id = ? AND status = 1", org_id).
684
+		Preload("VMHisPrescriptionInfo", "user_org_id = ? AND status = 1", org_id)
685
+	db = db.Count(&total)
686
+	err = db.Limit(limit).Offset(offset).Find(&patients).Error
687
+	return
688
+}

+ 6 - 0
service/user_service.go View File

@@ -158,3 +158,9 @@ func ModifyDryWeightData(adjust *models.SgjPatientDryweight, id int64) error {
158 158
 	err := XTWriteDB().Model(&adjust).Where("id=?", id).Updates(map[string]interface{}{"dry_weight": adjust.DryWeight, "creator": adjust.Creator, "remakes": adjust.Remakes, "adjusted_value": adjust.AdjustedValue}).Error
159 159
 	return err
160 160
 }
161
+
162
+func GetAllHisDoctor(orgid int64) (appRole []*models.App_Role, err error) {
163
+
164
+	err = UserReadDB().Where("org_id = ?  AND status = 1 AND  (user_type = ? OR user_type = ?) ", orgid, 2, 1).Find(&appRole).Error
165
+	return appRole, err
166
+}