|
@@ -12,7 +12,7 @@ import (
|
12
|
12
|
func GetOrgFirstPatientInfo(user_org_id int64) (patient *models.Patients, err error) {
|
13
|
13
|
db := service.XTReadDB()
|
14
|
14
|
var tempPatient models.Patients
|
15
|
|
- findErr := db.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1 AND lapseto = 1", user_org_id).First(&tempPatient).Error
|
|
15
|
+ findErr := db.Model(&models.Patients{}).Where("user_org_id = ? AND status = 1 AND lapseto = 1", user_org_id).Last(&tempPatient).Error
|
16
|
16
|
if findErr == gorm.ErrRecordNotFound {
|
17
|
17
|
return nil, nil
|
18
|
18
|
}
|
|
@@ -487,7 +487,6 @@ func GetDialysisWeightChartData(user_org_id int64, start_time int64, end_time in
|
487
|
487
|
weightAdd = append(weightAdd, weights[index].WeightBefore-weights[index+1].WeightAfter)
|
488
|
488
|
}
|
489
|
489
|
}
|
490
|
|
- fmt.Println(weightAdd)
|
491
|
490
|
|
492
|
491
|
var total_one int64
|
493
|
492
|
var total_two int64
|
|
@@ -750,7 +749,7 @@ func GetBloodPressureChartData(user_org_id int64, start_time int64, end_time int
|
750
|
749
|
db := service.XTReadDB()
|
751
|
750
|
var items []*otherItemAmount
|
752
|
751
|
var tempErr error
|
753
|
|
- //var total int64
|
|
752
|
+ var Total int64
|
754
|
753
|
switch statistics_type {
|
755
|
754
|
case 1:
|
756
|
755
|
type bp struct {
|
|
@@ -761,8 +760,11 @@ func GetBloodPressureChartData(user_org_id int64, start_time int64, end_time int
|
761
|
760
|
|
762
|
761
|
if patient_id == 0 {
|
763
|
762
|
db.Raw("SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_before_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? UNION ALL SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_after_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time, user_org_id, start_time, end_time).Scan(&bps)
|
|
763
|
+ db.Raw("SELECT count(id) FROM xt_assessment_before_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? UNION ALL SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_after_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? ", user_org_id, start_time, end_time, user_org_id, start_time, end_time).Count(&Total)
|
|
764
|
+
|
764
|
765
|
} else {
|
765
|
766
|
db.Raw("SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_before_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? AND patient_id = ? UNION ALL SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_after_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? AND patient_id = ? ", user_org_id, start_time, end_time, patient_id, user_org_id, start_time, end_time, patient_id).Scan(&bps)
|
|
767
|
+ db.Raw("SELECT count(id) FROM xt_assessment_before_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? AND patient_id = ? UNION ALL SELECT systolic_blood_pressure,diastolic_blood_pressure FROM xt_assessment_after_dislysis Where user_org_id = ? AND created_time >= ? AND created_time <= ? AND patient_id = ? ", user_org_id, start_time, end_time, patient_id, user_org_id, start_time, end_time, patient_id).Count(&Total)
|
766
|
768
|
|
767
|
769
|
}
|
768
|
770
|
|
|
@@ -780,6 +782,9 @@ func GetBloodPressureChartData(user_org_id int64, start_time int64, end_time int
|
780
|
782
|
} else if item.SystolicBloodPressure >= 100 && item.SystolicBloodPressure <= 160 && item.DiastolicBloodPressure >= 99 && item.DiastolicBloodPressure <= 140 {
|
781
|
783
|
total_three++
|
782
|
784
|
} else {
|
|
785
|
+ fmt.Println(item.SystolicBloodPressure)
|
|
786
|
+ fmt.Println(item.DiastolicBloodPressure)
|
|
787
|
+
|
783
|
788
|
total_four++
|
784
|
789
|
}
|
785
|
790
|
}
|
|
@@ -810,6 +815,11 @@ func GetBloodPressureChartData(user_org_id int64, start_time int64, end_time int
|
810
|
815
|
items = append(items, newItem2)
|
811
|
816
|
items = append(items, newItem3)
|
812
|
817
|
|
|
818
|
+ for _, item := range items {
|
|
819
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", float64(item.Total)/float64(Total)), 64)
|
|
820
|
+ item.Ratio = strconv.FormatInt(int64(float_value*100), 10)
|
|
821
|
+ }
|
|
822
|
+
|
813
|
823
|
break
|
814
|
824
|
case 2:
|
815
|
825
|
if patient_id == 0 {
|
|
@@ -831,6 +841,8 @@ func GetBloodPressureChartData(user_org_id int64, start_time int64, end_time int
|
831
|
841
|
|
832
|
842
|
}
|
833
|
843
|
|
|
844
|
+ //db.Table("xt_assessment_before_dislysis as before").Where("before.user_org_id=? AND before.status = 1 AND before.created_time >= ? and before.created_time <= ? ", user_org_id, patient_id, start_time, end_time).Count(&total)
|
|
845
|
+
|
834
|
846
|
var isHasConditionOne bool = false
|
835
|
847
|
var isHasConditionTwo bool = false
|
836
|
848
|
var isHasConditionThree bool = false
|
|
@@ -1076,14 +1088,14 @@ func GetNurseWorkloadChartData(user_org_id int64, start_time int64, end_time int
|
1076
|
1088
|
case 1:
|
1077
|
1089
|
for _, item := range datas {
|
1078
|
1090
|
var Total int64
|
1079
|
|
- db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND config.name like '%内瘘%' Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
|
1091
|
+ db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND FIND_IN_SET('内瘘',config.name) > 0 Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
1080
|
1092
|
item.PunctureCount = Total
|
1081
|
1093
|
}
|
1082
|
1094
|
break
|
1083
|
1095
|
case 2:
|
1084
|
1096
|
for _, item := range datas {
|
1085
|
1097
|
var Total int64
|
1086
|
|
- db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND config.name like '%导管%' Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
|
1098
|
+ db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND FIND_IN_SET('导管',config.name) > 0 Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
1087
|
1099
|
item.ChangemedicineCount = Total
|
1088
|
1100
|
}
|
1089
|
1101
|
|
|
@@ -1127,8 +1139,8 @@ func GetNurseWorkloadTableData(user_org_id int64, start_time int64, end_time int
|
1127
|
1139
|
var TotalOne int64
|
1128
|
1140
|
var TotalTwo int64
|
1129
|
1141
|
var TotalThree int64
|
1130
|
|
- db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND config.name like '%内瘘%' Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
1131
|
|
- db.Raw("select count(*) as total_one from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND config.name like '%导管%' Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalOne)
|
|
1142
|
+ db.Raw("select count(*) as total from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND FIND_IN_SET('内瘘',config.name) > 0 Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&Total)
|
|
1143
|
+ db.Raw("select count(*) as total_one from (select d.patient_id as patient, d.id, d.`assessment_date` as date,config.name as name from xt_assessment_before_dislysis as d JOIN `xt_data_config` config on d.`blood_access_part_opera_id` = config.value AND config.org_id = ? AND config.parent_id = ? AND FIND_IN_SET('导管',config.name) > 0 Group by d.id) b JOIN `xt_dialysis_order` on xt_dialysis_order.`dialysis_date` = b.date AND xt_dialysis_order.user_org_id = ? AND xt_dialysis_order.status = 1 AND xt_dialysis_order.start_nurse = ? AND xt_dialysis_order.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalOne)
|
1132
|
1144
|
db.Table("xt_monitoring_record ").Where("user_org_id = ? AND status = 1 AND monitoring_nurse = ? AND created_time >= ? AND created_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalTwo)
|
1133
|
1145
|
db.Table("xt_treatment_summary").Where("user_org_id = ? AND status = 1 AND creater = ? AND created_time >= ? AND created_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&TotalThree)
|
1134
|
1146
|
item.PunctureCount = Total
|