浏览代码

Merge branch 'xt_statistics_branch'

csx 5 年前
父节点
当前提交
7c959cbceb

+ 13 - 0
controllers/new_mobile_api_controllers/index_evaluation_api_controller.go 查看文件

896
 	})
896
 	})
897
 
897
 
898
 }
898
 }
899
+
900
+func (this *IndexEvaluationApiController) GetAllPatients() {
901
+	adminUserInfo := this.GetMobileAdminUserInfo()
902
+	patients, _ := statistics_service.GetOrgPatients(adminUserInfo.Org.Id)
903
+	if patients == nil {
904
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeOrgNoPatient)
905
+		return
906
+	}
907
+	this.ServeSuccessJSON(map[string]interface{}{
908
+		"patients": patients,
909
+	})
910
+
911
+}

+ 2 - 0
controllers/new_mobile_api_controllers/statistics_api_controllers.go 查看文件

35
 	beego.Router("/m/api/adminuser/all", &IndexEvaluationApiController{}, "Get:GetAdminUser")
35
 	beego.Router("/m/api/adminuser/all", &IndexEvaluationApiController{}, "Get:GetAdminUser")
36
 	beego.Router("/m/api/defalutpatient/get", &IndexEvaluationApiController{}, "Get:GetDefaultPatient")
36
 	beego.Router("/m/api/defalutpatient/get", &IndexEvaluationApiController{}, "Get:GetDefaultPatient")
37
 
37
 
38
+	beego.Router("/m/api/patients/get", &IndexEvaluationApiController{}, "Get:GetAllPatients")
39
+
38
 }
40
 }

+ 44 - 18
service/statistics_service/index_evaluation_service.go 查看文件

874
 		for _, item := range bps {
874
 		for _, item := range bps {
875
 			if item.SystolicBloodPressure > 160 && item.DiastolicBloodPressure > 100 {
875
 			if item.SystolicBloodPressure > 160 && item.DiastolicBloodPressure > 100 {
876
 				total_one++
876
 				total_one++
877
-			} else if item.SystolicBloodPressure < 140 && item.DiastolicBloodPressure < 99 {
877
+			} else if item.SystolicBloodPressure < 140 && item.DiastolicBloodPressure < 90 {
878
 				total_two++
878
 				total_two++
879
 
879
 
880
-			} else if item.SystolicBloodPressure >= 140 && item.SystolicBloodPressure <= 160 && item.DiastolicBloodPressure >= 99 && item.DiastolicBloodPressure <= 100 {
880
+			} else if item.SystolicBloodPressure >= 140 && item.SystolicBloodPressure <= 160 && item.DiastolicBloodPressure >= 90 && item.DiastolicBloodPressure <= 100 {
881
 				total_three++
881
 				total_three++
882
 			} else {
882
 			} else {
883
 
883
 
892
 		}
892
 		}
893
 		newItem1 := &otherItemAmount{
893
 		newItem1 := &otherItemAmount{
894
 			Total: total_two,
894
 			Total: total_two,
895
-			Name:  "小于140/99mmHg",
895
+			Name:  "小于140/90mmHg",
896
 			Ratio: "0",
896
 			Ratio: "0",
897
 		}
897
 		}
898
 		newItem2 := &otherItemAmount{
898
 		newItem2 := &otherItemAmount{
924
 		if patient_id == 0 {
924
 		if patient_id == 0 {
925
 			tempErr = db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ?  ", user_org_id, start_time, end_time).
925
 			tempErr = db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ?  ", user_org_id, start_time, end_time).
926
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
926
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
927
-					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 99 THEN '小于140/99mmHg'" +
928
-					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 99 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
927
+					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 90 THEN '小于140/90mmHg'" +
928
+					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 90 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
929
 					" ELSE '其他' END AS name, COUNT(*) AS total",
929
 					" ELSE '其他' END AS name, COUNT(*) AS total",
930
 				).Group("name").Scan(&items).Error
930
 				).Group("name").Scan(&items).Error
931
 			db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? AND status = 1  AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time).Count(&Total)
931
 			db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? AND status = 1  AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time).Count(&Total)
934
 
934
 
935
 			tempErr = db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ?  and patient_id = ? ", user_org_id, start_time, end_time, patient_id).
935
 			tempErr = db.Table("xt_assessment_before_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ?  and patient_id = ? ", user_org_id, start_time, end_time, patient_id).
936
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
936
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
937
-					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 99 THEN '小于140/99mmHg'" +
938
-					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 99 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
937
+					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 90 THEN '小于140/90mmHg'" +
938
+					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 90 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
939
 					" ELSE '其他' END AS name, COUNT(*) AS total",
939
 					" ELSE '其他' END AS name, COUNT(*) AS total",
940
 				).Group("name").Scan(&items).Error
940
 				).Group("name").Scan(&items).Error
941
 
941
 
952
 			if item.Name == "大于160/100mmHg" {
952
 			if item.Name == "大于160/100mmHg" {
953
 				isHasConditionOne = true
953
 				isHasConditionOne = true
954
 			}
954
 			}
955
-			if item.Name == "小于140/99mmHg" {
955
+			if item.Name == "小于140/90mmHg" {
956
 				isHasConditionTwo = true
956
 				isHasConditionTwo = true
957
 			}
957
 			}
958
 
958
 
975
 		if !isHasConditionTwo {
975
 		if !isHasConditionTwo {
976
 			newItem := &otherItemAmount{
976
 			newItem := &otherItemAmount{
977
 				Total: 0,
977
 				Total: 0,
978
-				Name:  "小于140/99mmHg",
978
+				Name:  "小于140/90mmHg",
979
 				Ratio: "0",
979
 				Ratio: "0",
980
 			}
980
 			}
981
 			items = append(items, newItem)
981
 			items = append(items, newItem)
1013
 		if patient_id == 0 {
1013
 		if patient_id == 0 {
1014
 			tempErr = db.Table("xt_assessment_after_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ? ", user_org_id, start_time, end_time).
1014
 			tempErr = db.Table("xt_assessment_after_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ? ", user_org_id, start_time, end_time).
1015
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
1015
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
1016
-					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 99 THEN '小于140/99mmHg'" +
1017
-					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 99 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
1016
+					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 90 THEN '小于140/90mmHg'" +
1017
+					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 90 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
1018
 					" ELSE '其他' END AS name, COUNT(*) AS total",
1018
 					" ELSE '其他' END AS name, COUNT(*) AS total",
1019
 				).Group("name").Scan(&items).Error
1019
 				).Group("name").Scan(&items).Error
1020
 			db.Table("xt_assessment_after_dislysis").Where("user_org_id=? AND status = 1  AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time).Count(&Total)
1020
 			db.Table("xt_assessment_after_dislysis").Where("user_org_id=? AND status = 1  AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time).Count(&Total)
1022
 		} else {
1022
 		} else {
1023
 			tempErr = db.Table("xt_assessment_after_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ? and patient_id = ?", user_org_id, start_time, end_time, patient_id).
1023
 			tempErr = db.Table("xt_assessment_after_dislysis ").Where("user_org_id=? and status=1 and  created_time >= ? and created_time <= ? and patient_id = ?", user_org_id, start_time, end_time, patient_id).
1024
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
1024
 				Select("CASE WHEN systolic_blood_pressure > 160 AND  diastolic_blood_pressure > 100 THEN '大于160/100mmHg'" +
1025
-					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 99 THEN '小于140/99mmHg'" +
1026
-					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 99 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
1025
+					" WHEN systolic_blood_pressure < 140 AND  diastolic_blood_pressure < 90 THEN '小于140/90mmHg'" +
1026
+					" WHEN systolic_blood_pressure >= 140 AND  systolic_blood_pressure <= 160   AND  diastolic_blood_pressure >= 90 AND  diastolic_blood_pressure <= 100 THEN '140-160mmHg/90-100mmHg'" +
1027
 					" ELSE '其他' END AS name, COUNT(*) AS total",
1027
 					" ELSE '其他' END AS name, COUNT(*) AS total",
1028
 				).Group("name").Scan(&items).Error
1028
 				).Group("name").Scan(&items).Error
1029
 
1029
 
1040
 			if item.Name == "大于160/100mmHg" {
1040
 			if item.Name == "大于160/100mmHg" {
1041
 				isHasConditionOne = true
1041
 				isHasConditionOne = true
1042
 			}
1042
 			}
1043
-			if item.Name == "小于140/99mmHg" {
1043
+			if item.Name == "小于140/90mmHg" {
1044
 				isHasConditionTwo = true
1044
 				isHasConditionTwo = true
1045
 			}
1045
 			}
1046
 
1046
 
1063
 		if !isHasConditionTwo {
1063
 		if !isHasConditionTwo {
1064
 			newItem := &otherItemAmount{
1064
 			newItem := &otherItemAmount{
1065
 				Total: 0,
1065
 				Total: 0,
1066
-				Name:  "小于140/99mmHg",
1066
+				Name:  "小于140/90mmHg",
1067
 				Ratio: "0",
1067
 				Ratio: "0",
1068
 			}
1068
 			}
1069
 			items = append(items, newItem)
1069
 			items = append(items, newItem)
1114
 		db = db.Where("sch.patient_id=?", patientID)
1114
 		db = db.Where("sch.patient_id=?", patientID)
1115
 	}
1115
 	}
1116
 	if start != 0 {
1116
 	if start != 0 {
1117
-		db = db.Where("sch.created_time>=?", start)
1117
+		db = db.Where("sch.schedule_date>=?", start)
1118
 	}
1118
 	}
1119
 	if end != 0 {
1119
 	if end != 0 {
1120
-		db = db.Where("sch.created_time<=?", end)
1120
+		db = db.Where("sch.schedule_date<=?", end)
1121
 	}
1121
 	}
1122
 	db = db.Preload("VMPredialysisEvaluation", "status = 1 AND user_org_id = ?", orgID).
1122
 	db = db.Preload("VMPredialysisEvaluation", "status = 1 AND user_org_id = ?", orgID).
1123
 		Preload("VMAssessmentAfterDislysis", "status = 1 AND user_org_id = ?", orgID).
1123
 		Preload("VMAssessmentAfterDislysis", "status = 1 AND user_org_id = ?", orgID).
1403
 	db := service.XTReadDB()
1403
 	db := service.XTReadDB()
1404
 	if range_type == 1 {
1404
 	if range_type == 1 {
1405
 
1405
 
1406
-		err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_type = 1 AND range_max REGEXP '([^0-9.])' AND range_min REGEXP '([^0-9.])' ", user_org_id).Find(&references).Error
1406
+		err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_type = 1 AND  (range_min REGEXP '[^0-9.]') = 0  AND  (range_max REGEXP '[^0-9.]') = 0 ", user_org_id).Find(&references).Error
1407
 
1407
 
1408
 	} else {
1408
 	} else {
1409
 		err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_type = 2", user_org_id).Find(&references).Error
1409
 		err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_type = 2", user_org_id).Find(&references).Error
1727
 	}
1727
 	}
1728
 
1728
 
1729
 }
1729
 }
1730
+
1731
+type VMPatient struct {
1732
+	ID        int64  `gorm:"column:id" json:"id" form:"id"`
1733
+	UserOrgId int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
1734
+	UserId    int64  `gorm:"column:user_id" json:"user_id" form:"user_id"`
1735
+	Name      string `gorm:"column:name" json:"name" form:"name"`
1736
+	Lapseto   int64  `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
1737
+	Status    int64  `gorm:"column:status" json:"status" form:"status"`
1738
+}
1739
+
1740
+func (VMPatient) TableName() string {
1741
+	return "xt_patients"
1742
+}
1743
+
1744
+func GetOrgPatients(user_org_id int64) (patient *[]VMPatient, err error) {
1745
+	db := service.XTReadDB()
1746
+	var tempPatient []VMPatient
1747
+	findErr := db.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1 AND lapseto = 1", user_org_id).Find(&tempPatient).Error
1748
+	if findErr == gorm.ErrRecordNotFound {
1749
+		return nil, nil
1750
+	}
1751
+	if findErr != nil {
1752
+		return nil, findErr
1753
+	}
1754
+	return &tempPatient, nil
1755
+}