Bläddra i källkod

患者检验检查统计开发

XMLWAN 4 år sedan
förälder
incheckning
74ee2f0227

+ 9 - 6
controllers/new_mobile_api_controllers/common_api_controller.go Visa fil

@@ -389,7 +389,9 @@ func (this *CommonApiController) GetTotalLapseCount() {
389 389
 	//统计一个月内转出的病人
390 390
 	//patients, total, err := service.GetTotalRollOut(startime, endtime, orgid)
391 391
 	//统计该机构的转出人数
392
-	patients, total, err := service.GetTotalRollOutPatients(orgid)
392
+	patients, err := service.GetTotalRollOutPatients(orgid, startime, endtime)
393
+	//统计该机构转出病人
394
+	patienttwo, err := service.GetTotalRollOutPatientsTwo(orgid, startime, endtime)
393 395
 	//统计总共病人
394 396
 	//	_, count, _ := service.GetPatientTotalCountTwo(orgid, startime, endtime)
395 397
 	count := service.GetPatientTotalCount(orgid)
@@ -398,9 +400,9 @@ func (this *CommonApiController) GetTotalLapseCount() {
398 400
 		return
399 401
 	}
400 402
 	this.ServeSuccessJSON(map[string]interface{}{
401
-		"patients": patients,
402
-		"total":    total,
403
-		"count":    count,
403
+		"patients":   patients,
404
+		"count":      count,
405
+		"patienttwo": patienttwo,
404 406
 	})
405 407
 }
406 408
 
@@ -1145,6 +1147,7 @@ func (this *CommonApiController) GetMonthProjectList() {
1145 1147
 	monthlist, err := service.GetMonthProjectList(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1146 1148
 	//统计不合格
1147 1149
 	monthNolist, err := service.GetMonthProjectListTwo(orgid, lapseto, modetype, januaryStartStrUnix, januaryEndStrUnix, febStartStrStrUnix, febEndStrUnix, marchStartStrUnix, marchEndStrUnix, aprStartStrUnix, aprEndStrsUnix, mayStartStrUnix, mayEndStrsUnix, junStartStrUnix, junEndStrsUnix, julStartStrUnix, julEndStrsUnix, augStartStrUnix, augEndStrsUnix, sepStartStrUnix, sepEndStrsUnix, octStartStrUnix, octEndStrsUnix, novStartStrUnix, novEndStrsUnix, decStartStrUnix, decEndStrsUnix)
1150
+	fmt.Println("monthnolist=====", monthNolist)
1148 1151
 	if err != nil {
1149 1152
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1150 1153
 		return
@@ -1232,6 +1235,7 @@ func (this *CommonApiController) GetPatientContor() {
1232 1235
 	orgid := adminUser.CurrentOrgId
1233 1236
 	fmt.Println(orgid)
1234 1237
 	lapstor, _ := this.GetInt64("lapstor")
1238
+	fmt.Println("lapstor", lapstor)
1235 1239
 	keyword := this.GetString("keyword")
1236 1240
 	fmt.Println("keyword", keyword)
1237 1241
 	startime := this.GetString("startime")
@@ -1245,9 +1249,8 @@ func (this *CommonApiController) GetPatientContor() {
1245 1249
 	endtimeStrs, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", endtimeStr)
1246 1250
 	endtimeStrsUnix := endtimeStrs.Unix()
1247 1251
 	fmt.Println("结束时间搓", endtimeStrsUnix)
1248
-
1249
-	patientcontorDetail, err := service.GetPatientContor(lapstor, orgid, keyword, startimeStrUnix, endtimeStrsUnix)
1250 1252
 	patients, err := service.GetPatientNames(orgid, keyword)
1253
+	patientcontorDetail, err := service.GetLastPatientsControlTwo(orgid, patients.ID, startimeStrUnix, endtimeStrsUnix)
1251 1254
 	if err != nil {
1252 1255
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
1253 1256
 		return

+ 35 - 3
controllers/new_mobile_api_controllers/new_common_api_controller.go Visa fil

@@ -50,15 +50,18 @@ func (this *NewCommonApiController) GetMobileTotalLapseCount() {
50 50
 	fmt.Println("endtime", endtime)
51 51
 	adminUser := this.GetMobileAdminUserInfo()
52 52
 	orgid := adminUser.Org.Id
53
-	_, total, err := service.GetTotalRollOutPatients(orgid)
53
+	//统计转出的病人
54
+	patient, err := service.GetTotalRollOutPatients(orgid, startime, endtime)
55
+	patienttwo, err := service.GetTotalRollOutPatientsTwo(orgid, startime, endtime)
54 56
 	count := service.GetPatientTotalCount(orgid)
55 57
 	if err != nil {
56 58
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
57 59
 		return
58 60
 	}
59 61
 	this.ServeSuccessJSON(map[string]interface{}{
60
-		"total": total,
61
-		"count": count,
62
+		"patient":    patient,
63
+		"count":      count,
64
+		"patienttwo": patienttwo,
62 65
 	})
63 66
 }
64 67
 
@@ -831,3 +834,32 @@ func (this *NewCommonApiController) GetMobileQualityControl() {
831 834
 		"list": list,
832 835
 	})
833 836
 }
837
+
838
+func (this *NewCommonApiController) GetSeachPatientsControl() {
839
+	adminUser := this.GetMobileAdminUserInfo()
840
+	orgid := adminUser.Org.Id
841
+	fmt.Println("orgid", orgid)
842
+	id, _ := this.GetInt64("id")
843
+	fmt.Println("id", id)
844
+	startime := this.GetString("startime")
845
+	fmt.Println("开始时间", startime)
846
+	startimeStr, _ := utils.ParseTimeStringToTime("2006-01-02", startime)
847
+	startimeStrUnix := startimeStr.Unix()
848
+	fmt.Println("时间搓", startimeStrUnix)
849
+	endtime := this.GetString("endtime")
850
+	fmt.Println("结束时间", endtime)
851
+	endtimeStr := endtime + " 23:59:59"
852
+	endtimeStrs, _ := utils.ParseTimeStringToTime("2006-01-02 15:04:05", endtimeStr)
853
+	endtimeStrsUnix := endtimeStrs.Unix()
854
+	fmt.Println("结束时间搓", endtimeStrsUnix)
855
+	control, err := service.GetLastPatientsControlTwo(orgid, id, startimeStrUnix, endtimeStrsUnix)
856
+	if err != nil {
857
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
858
+		return
859
+	}
860
+
861
+	this.ServeSuccessJSON(map[string]interface{}{
862
+
863
+		"control": control,
864
+	})
865
+}

+ 1 - 0
controllers/new_mobile_api_controllers/new_common_api_router.go Visa fil

@@ -28,4 +28,5 @@ func NewCommonApiControllersRegisterRouters() {
28 28
 	beego.Router("/m/api/getmobilepatientcontrol", &NewCommonApiController{}, "Get:GetMobilePatientControl")
29 29
 	beego.Router("m/api/getmobilecartogramlist", &NewCommonApiController{}, "Get:GetMobileCartogramlist")
30 30
 	beego.Router("/m/api/getmobilequalitycontrol", &NewCommonApiController{}, "Get:GetMobileQualityControl")
31
+	beego.Router("/m/api/toseachpatientscontrol", &NewCommonApiController{}, "Get:GetSeachPatientsControl")
31 32
 }

+ 15 - 2
controllers/patient_api_controller.go Visa fil

@@ -467,7 +467,20 @@ func (c *PatientApiController) EditPatient() {
467 467
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdatePatient)
468 468
 		return
469 469
 	}
470
-	fmt.Println("病人--------------------------------------------------------------", patient.Name, patient.Age)
470
+	//更新转归状态
471
+
472
+	fmt.Println("病人id--------------------------------------------------------------", patient.ID)
473
+	lapseto := models.PatientLapseto{
474
+		LapsetoType: patient.Lapseto,
475
+		LapsetoTime: time.Now().Unix(),
476
+		UpdatedTime: time.Now().Unix(),
477
+	}
478
+	err = service.UpdatePatientLapseto(patient.ID, lapseto)
479
+	fmt.Println("更新转归失败", err)
480
+	if err != nil {
481
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdatePatient)
482
+		return
483
+	}
471 484
 	patientsNew := models.XtPatientsNew{
472 485
 		UserOrgId:                 patient.UserOrgId,
473 486
 		UserId:                    patient.UserId,
@@ -619,6 +632,7 @@ func (c *PatientApiController) EditPatient() {
619 632
 
620 633
 func (c *PatientApiController) EditLapseto() {
621 634
 	id, _ := c.GetInt64("id", 0)
635
+	fmt.Println("id===========", id)
622 636
 	if id <= 0 {
623 637
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
624 638
 		return
@@ -691,7 +705,6 @@ func (c *PatientApiController) EditLapseto() {
691 705
 	//		return
692 706
 	//	}
693 707
 	//}
694
-
695 708
 	err = service.EditPatientLapseto(&patient, &lapseto)
696 709
 	if err != nil {
697 710
 		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeEditLapsetoFail)

+ 110 - 74
service/common_service.go Visa fil

@@ -179,10 +179,18 @@ func GetTotalRollOut(starttime int64, endtime int64, orgid int64) (counts []*mod
179 179
 	return counts, total, err
180 180
 }
181 181
 
182
-func GetTotalRollOutPatients(orgid int64) (patients []*models.XtPatients, total int64, err error) {
182
+func GetTotalRollOutPatients(orgid int64, startime int64, endtime int64) (patients []*models.XtPatients, err error) {
183 183
 
184
-	err = XTReadDB().Model(&patients).Where("user_org_id = ? and status = 1 and lapseto = 2", orgid).Count(&total).Find(&patients).Error
185
-	return patients, total, err
184
+	db := XTReadDB().Table("x.patients as x")
185
+	err = db.Raw("select x.id,x.`name`,s.lapseto_type,s.lapseto_time from xt_patients as x left join xt_patient_lapseto AS s ON s.patient_id = x.id where s.lapseto_time >=? and s.lapseto_time <=? and x.user_org_id = ? and s.lapseto_type = 1 and x.status = 1 group by s.patient_id", startime, endtime, orgid).Scan(&patients).Error
186
+	return patients, err
187
+}
188
+
189
+func GetTotalRollOutPatientsTwo(orgid int64, startime int64, endtime int64) (patients []*models.XtPatients, err error) {
190
+
191
+	db := XTReadDB().Table("x.patients as x")
192
+	err = db.Raw("select x.id,x.`name`,s.lapseto_type,s.lapseto_time from xt_patients as x left join xt_patient_lapseto AS s ON s.patient_id = x.id where s.lapseto_time >=? and s.lapseto_time <=? and x.user_org_id = ? and s.lapseto_type = 2 and x.status = 1 group by s.patient_id", startime, endtime, orgid).Scan(&patients).Error
193
+	return patients, err
186 194
 }
187 195
 
188 196
 func GetPatientTotalCount(orgID int64) (total int64) {
@@ -767,8 +775,11 @@ func GetQuarterTotalCount(orgid int64, startime int64, endtime int64, lapseto in
767 775
 	if endtime > 0 {
768 776
 		db = db.Where("x.inspect_date <=?", endtime)
769 777
 	}
778
+	if lapseto == 0 {
779
+		db = db.Where("s.lapseto = 1 or s.lapseto = 2")
780
+	}
770 781
 	if lapseto > 0 {
771
-		d = d.Where("s.lapseto = ?", lapseto)
782
+		db = db.Where("s.lapseto = ?", lapseto)
772 783
 	}
773 784
 	err = db.Group("x.item_id").Select("sum(case when x.inspect_date >=? and x.inspect_date<=? then 1 else 0 end) as total,sum(case when x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0 and x.inspect_date >=? and x.inspect_date <=? then 1 else 0 end) as count,x.id,x.patient_id,x.org_id,x.project_id,x.item_id,x.item_name,x.project_name,x.inspect_value,x.inspect_date,r.range_min,r.range_max,p.sort", startime, endtime, startime, endtime).Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_patients as  s on s.id = x.patient_id").Joins("left join xt_quality_control_standard as p on p.inspection_minor = x.item_id").Order("p.sort asc").Scan(&inspection).Error
774 785
 	return inspection, err
@@ -1301,7 +1312,7 @@ func GetMonthProjectList(orgid int64, lapseto int64, modetype int64, januaryStar
1301 1312
 }
1302 1313
 
1303 1314
 func GetMonthProjectListTwo(orgid int64, lapseto int64, modetype int64, januaryStartStrUnix int64, januaryEndStrUnix int64, febStartStrStrUnix int64, febEndStrUnix int64, marchStartStrUnix int64, marchEndStrUnix int64, aprStartStrUnix int64, aprEndStrsUnix int64, mayStartStrUnix int64, mayEndStrsUnix int64, junStartStrUnix int64, junEndStrsUnix int64, julStartStrUnix int64, julEndStrsUnix int64, augStartStrUnix int64, augEndStrsUnix int64, sepStartStrUnix int64, sepEndStrsUnix int64, octStartStrUnix int64, octEndStrsUnix int64, novStartStrUnix int64, novEndStrsUnix int64, decStartStrUnix int64, decEndStrsUnix int64) (inspection []*models.ProjectCount, err error) {
1304
-
1315
+	fmt.Println("lapseto=======", lapseto)
1305 1316
 	if lapseto == 0 {
1306 1317
 		d := XTReadDB().Table("xt_patients as s")
1307 1318
 		fmt.Println("d", d)
@@ -1445,79 +1456,78 @@ func GetMonthProjectListTwo(orgid int64, lapseto int64, modetype int64, januaryS
1445 1456
 		}
1446 1457
 		countSQL += ")a GROUP BY nnd"
1447 1458
 		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1459
+	}
1448 1460
 
1449
-		if lapseto == 2 {
1450
-
1451
-			d := XTReadDB().Table("xt_patients as s")
1452
-			fmt.Println("d", d)
1453
-			db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1454
-			table := XTReadDB().Table("xt_inspection_reference as r")
1455
-			fmt.Println(table)
1456
-			countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1457
-				"SELECT " +
1458
-				"CASE " +
1459
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1460
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1461
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1462
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1463
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1464
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1465
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1466
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1467
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1468
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1469
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1470
-				" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1471
-				" ELSE '其他'" +
1472
-				"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1473
-			countParams := make([]interface{}, 0)
1461
+	if lapseto == 2 {
1462
+		d := XTReadDB().Table("xt_patients as s")
1463
+		fmt.Println("d", d)
1464
+		db := readDb.Table("xt_inspection as x ").Where("x.status=1")
1465
+		table := XTReadDB().Table("xt_inspection_reference as r")
1466
+		fmt.Println(table)
1467
+		countSQL := "SELECT nnd AS 'total',COUNT(*) AS 'count' FROM(" +
1468
+			"SELECT " +
1469
+			"CASE " +
1470
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '一月'" +
1471
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '二月'" +
1472
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '三月'" +
1473
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '四月'" +
1474
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '五月'" +
1475
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '六月'" +
1476
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '七月'" +
1477
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '八月'" +
1478
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '九月'" +
1479
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十月'" +
1480
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十一月'" +
1481
+			" WHEN x.inspect_date>=? AND  x.inspect_date<=? and x.inspect_value+0>=r.range_min+0 and x.inspect_value +0 <= r.range_max+0  THEN '十二月'" +
1482
+			" ELSE '其他'" +
1483
+			"END AS nnd FROM xt_inspection as x left join xt_inspection_reference as  r on r.id = x.item_id left join xt_patients as s on s.id = x.patient_id  WHERE x.status=1 and (s.lapseto = 2) and (x.inspect_value + 0 >= r.range_min + 0 AND x.inspect_value + 0 <= r.range_max + 0)"
1484
+		countParams := make([]interface{}, 0)
1485
+		countParams = append(countParams, januaryStartStrUnix)
1486
+		countParams = append(countParams, januaryEndStrUnix)
1487
+		countParams = append(countParams, febStartStrStrUnix)
1488
+		countParams = append(countParams, febEndStrUnix)
1489
+		countParams = append(countParams, marchStartStrUnix)
1490
+		countParams = append(countParams, marchEndStrUnix)
1491
+		countParams = append(countParams, aprStartStrUnix)
1492
+		countParams = append(countParams, aprEndStrsUnix)
1493
+		countParams = append(countParams, mayStartStrUnix)
1494
+		countParams = append(countParams, mayEndStrsUnix)
1495
+		countParams = append(countParams, junStartStrUnix)
1496
+		countParams = append(countParams, junEndStrsUnix)
1497
+		countParams = append(countParams, julStartStrUnix)
1498
+		countParams = append(countParams, julEndStrsUnix)
1499
+		countParams = append(countParams, augStartStrUnix)
1500
+		countParams = append(countParams, augEndStrsUnix)
1501
+		countParams = append(countParams, sepStartStrUnix)
1502
+		countParams = append(countParams, sepEndStrsUnix)
1503
+		countParams = append(countParams, octStartStrUnix)
1504
+		countParams = append(countParams, octEndStrsUnix)
1505
+		countParams = append(countParams, novStartStrUnix)
1506
+		countParams = append(countParams, novEndStrsUnix)
1507
+		countParams = append(countParams, decStartStrUnix)
1508
+		countParams = append(countParams, decEndStrsUnix)
1509
+		if orgid > 0 {
1510
+			db = db.Where("x.org_id=?", orgid)
1511
+			countSQL += " AND x.org_id=?"
1512
+			countParams = append(countParams, orgid)
1513
+		}
1514
+		if modetype > 0 {
1515
+			db = db.Where("x.item_id = ?", modetype)
1516
+			countSQL += " AND x.item_id=?"
1517
+			countParams = append(countParams, modetype)
1518
+		}
1519
+		if januaryStartStrUnix > 0 {
1520
+			db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
1521
+			countSQL += " AND x.inspect_date >=?"
1474 1522
 			countParams = append(countParams, januaryStartStrUnix)
1475
-			countParams = append(countParams, januaryEndStrUnix)
1476
-			countParams = append(countParams, febStartStrStrUnix)
1477
-			countParams = append(countParams, febEndStrUnix)
1478
-			countParams = append(countParams, marchStartStrUnix)
1479
-			countParams = append(countParams, marchEndStrUnix)
1480
-			countParams = append(countParams, aprStartStrUnix)
1481
-			countParams = append(countParams, aprEndStrsUnix)
1482
-			countParams = append(countParams, mayStartStrUnix)
1483
-			countParams = append(countParams, mayEndStrsUnix)
1484
-			countParams = append(countParams, junStartStrUnix)
1485
-			countParams = append(countParams, junEndStrsUnix)
1486
-			countParams = append(countParams, julStartStrUnix)
1487
-			countParams = append(countParams, julEndStrsUnix)
1488
-			countParams = append(countParams, augStartStrUnix)
1489
-			countParams = append(countParams, augEndStrsUnix)
1490
-			countParams = append(countParams, sepStartStrUnix)
1491
-			countParams = append(countParams, sepEndStrsUnix)
1492
-			countParams = append(countParams, octStartStrUnix)
1493
-			countParams = append(countParams, octEndStrsUnix)
1494
-			countParams = append(countParams, novStartStrUnix)
1495
-			countParams = append(countParams, novEndStrsUnix)
1496
-			countParams = append(countParams, decStartStrUnix)
1523
+		}
1524
+		if decEndStrsUnix > 0 {
1525
+			db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
1526
+			countSQL += " AND x.inspect_date <=?"
1497 1527
 			countParams = append(countParams, decEndStrsUnix)
1498
-			if orgid > 0 {
1499
-				db = db.Where("x.org_id=?", orgid)
1500
-				countSQL += " AND x.org_id=?"
1501
-				countParams = append(countParams, orgid)
1502
-			}
1503
-			if modetype > 0 {
1504
-				db = db.Where("x.item_id = ?", modetype)
1505
-				countSQL += " AND x.item_id=?"
1506
-				countParams = append(countParams, modetype)
1507
-			}
1508
-			if januaryStartStrUnix > 0 {
1509
-				db = db.Where("x.inspect_date >= ?", januaryStartStrUnix)
1510
-				countSQL += " AND x.inspect_date >=?"
1511
-				countParams = append(countParams, januaryStartStrUnix)
1512
-			}
1513
-			if decEndStrsUnix > 0 {
1514
-				db = db.Where("x.inspect_date <= ?", decEndStrsUnix)
1515
-				countSQL += " AND x.inspect_date <=?"
1516
-				countParams = append(countParams, decEndStrsUnix)
1517
-			}
1518
-			countSQL += ")a GROUP BY nnd"
1519
-			err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1520 1528
 		}
1529
+		countSQL += ")a GROUP BY nnd"
1530
+		err = readDb.Raw(countSQL, countParams...).Scan(&inspection).Error
1521 1531
 	}
1522 1532
 	return
1523 1533
 }
@@ -1661,3 +1671,29 @@ func GetQualityControlById(orgid int64, patientid int64, startime int64, endtime
1661 1671
 
1662 1672
 	return inspection, err
1663 1673
 }
1674
+
1675
+func GetLastPatientsControlTwo(orgid int64, patientid int64, startime int64, endtime int64) (inspection []*models.PatientInspectionCount, err error) {
1676
+
1677
+	db := readDb.Table("xt_inspection as x").Where("x.status =1")
1678
+	table := readDb.Table("xt_patients as s")
1679
+	fmt.Println(table)
1680
+	d := readDb.Table(" xt_inspection_reference as r")
1681
+	fmt.Println(d)
1682
+	d2 := readDb.Table("xt_quality_control_standard as d")
1683
+	fmt.Println("d2", d2)
1684
+	if orgid > 0 {
1685
+		db = db.Where("x.org_id = ?", orgid)
1686
+	}
1687
+	if patientid > 0 {
1688
+		db = db.Where("x.patient_id = ?", patientid)
1689
+	}
1690
+	if startime > 0 {
1691
+		db = db.Where("x.inspect_date >=?", startime)
1692
+	}
1693
+	if endtime > 0 {
1694
+		db = db.Where("x.inspect_date <=?", endtime)
1695
+	}
1696
+	err = db.Group("x.id").Select("x.id,x.patient_id,x.item_id,x.item_name,x.inspect_value,x.inspect_date,s.name,s.dialysis_no,r.range_max,r.range_min,d.sort").Joins("left join xt_patients as s on s.id = x.patient_id").Joins("left join xt_inspection_reference as r on r.id = x.item_id").Joins("left join xt_quality_control_standard as d on d.inspection_minor = x.item_id").Order("x.inspect_date desc").Scan(&inspection).Error
1697
+
1698
+	return inspection, err
1699
+}

+ 7 - 1
service/patient_service.go Visa fil

@@ -277,7 +277,8 @@ func CreatePatientsNew(patientsNew *models.XtPatientsNew) error {
277 277
 
278 278
 func EditPatientLapseto(patient *models.Patients, lapseto *models.PatientLapseto) (err error) {
279 279
 	utx := writeDb.Begin()
280
-	err = utx.Model(&models.Patients{}).Where("id=?", patient.ID).Update(map[string]interface{}{"Lapseto": patient.Lapseto}).Error
280
+	//err = utx.Model(&models.Patients{}).Where("id=?", patient.ID).Update(map[string]interface{}{"Lapseto": patient.Lapseto}).Error
281
+	err = utx.Model(&models.PatientLapseto{}).Where("id=?", patient.ID).Update(map[string]interface{}{"lapseto_type": patient.Lapseto, "lapseto_time": time.Now().Unix(), "updated_time": time.Now().Unix()}).Error
281 282
 	if err != nil {
282 283
 		utx.Rollback()
283 284
 		return
@@ -380,6 +381,11 @@ func UpdatePatient(patient *models.Patients, contagions []int64, diseases []int6
380 381
 	return
381 382
 }
382 383
 
384
+func UpdatePatientLapseto(patientid int64, lapseto models.PatientLapseto) error {
385
+	err := XTWriteDB().Model(&lapseto).Where("patient_id = ?", patientid).Updates(map[string]interface{}{"lapseto_type": lapseto.LapsetoType, "lapseto_time": time.Now().Unix(), "updated_time": time.Now().Unix()}).Error
386
+	return err
387
+}
388
+
383 389
 func UpdatepatientTwo(patientsNew *models.XtPatientsNew, id int64) error {
384 390
 
385 391
 	err := XTWriteDB().Model(&patientsNew).Where("blood_id = ?", id).Update(map[string]interface{}{"user_org_id": patientsNew.UserOrgId, "user_id": patientsNew.UserId, "avatar": patientsNew.Avatar, "patient_type": patientsNew.Avatar, "dialysis_no": patientsNew.DialysisNo, "admission_number": patientsNew.AdmissionNumber, "source": patientsNew.Source, "lapseto": patientsNew.Lapseto, "partition_id": patientsNew.PartitionId, "bed_id": patientsNew.BedId, "name": patientsNew.Name, "alias": patientsNew.Alias, "gender": patientsNew.Gender, "marital_status": patientsNew.MaritalStatus, "id_card_no": patientsNew.IdCardNo, "birthday": patientsNew.Birthday, "reimbursement_way_id": patientsNew.ReimbursementWayId, "health_care_type": patientsNew.HealthCareType, "health_care_no": patientsNew.HealthCareType, "health_care_due_date": patientsNew.HealthCareType, "height": patientsNew.Height, "blood_type": patientsNew.BloodType, "rh": patientsNew.Rh, "health_care_due_alert_date": patientsNew.HealthCareDueAlertDate, "education_level": patientsNew.EducationLevel, "profession": patientsNew.Profession, "phone": patientsNew.Phone, "home_telephone": patientsNew.HomeTelephone, "relative_phone": patientsNew.RelativePhone, "relative_relations": patientsNew.RelativeRelations, "home_address": patientsNew.HomeAddress, "work_unit": patientsNew.WorkUnit, "unit_address": patientsNew.UnitAddress, "children": patientsNew.Children, "receiving_date": patientsNew.ReceivingDate, "is_hospital_first_dialysis": patientsNew.IsHospitalFirstDialysis, "first_dialysis_date": patientsNew.FirstDialysisDate, "first_dialysis_hospital": patientsNew.FirstDialysisHospital, "predialysis_condition": patientsNew.PredialysisCondition, "pre_hospital_dialysis_frequency": patientsNew.PreHospitalDialysisFrequency, "pre_hospital_dialysis_times": patientsNew.PreHospitalDialysisFrequency, "hospital_first_dialysis_date": patientsNew.HospitalFirstDialysisDate, "induction_period": patientsNew.InductionPeriod, "initial_dialysis": patientsNew.InitialDialysis, "total_dialysis": patientsNew.TotalDialysis, "attending_doctor_id": patientsNew.AttendingDoctorId, "head_nurse_id": patientsNew.HeadNurseId, "evaluate": patientsNew.Evaluate, "diagnose": patientsNew.Diagnose, "remark": patientsNew.Remark, "registrars_id": patientsNew.RegistrarsId, "registrars": patientsNew.Registrars, "qr_code": patientsNew.QrCode, "binding_state": patientsNew.BindingState, "patient_complains": patientsNew.PatientComplains, "present_history": patientsNew.PresentHistory, "past_history": patientsNew.PastHistory, "temperature": patientsNew.Temperature,