|
|
|
|
124
|
|
124
|
|
125
|
for _, item := range items {
|
125
|
for _, item := range items {
|
126
|
if math.IsNaN(float64(item.Total) / float64(total)) {
|
126
|
if math.IsNaN(float64(item.Total) / float64(total)) {
|
127
|
- item.Ratio = "0"
|
|
|
|
|
127
|
+ item.Ratio = "0.0"
|
128
|
} else {
|
128
|
} else {
|
129
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(total))*100), 64)
|
129
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(total))*100), 64)
|
130
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
130
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
428
|
|
428
|
|
429
|
for _, item := range items {
|
429
|
for _, item := range items {
|
430
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
430
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
431
|
- item.Ratio = "0"
|
|
|
|
|
431
|
+ item.Ratio = "0.0"
|
432
|
} else {
|
432
|
} else {
|
433
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
433
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
434
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
434
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
522
|
|
522
|
|
523
|
for _, item := range items {
|
523
|
for _, item := range items {
|
524
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
524
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
525
|
- item.Ratio = "0"
|
|
|
|
|
525
|
+ item.Ratio = "0.0"
|
526
|
} else {
|
526
|
} else {
|
527
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
527
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
528
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
528
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
622
|
|
622
|
|
623
|
for _, item := range items {
|
623
|
for _, item := range items {
|
624
|
if math.IsNaN(float64(item.Total) / float64(newTotal)) {
|
624
|
if math.IsNaN(float64(item.Total) / float64(newTotal)) {
|
625
|
- item.Ratio = "0"
|
|
|
|
|
625
|
+ item.Ratio = "0.0"
|
626
|
} else {
|
626
|
} else {
|
627
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(newTotal))*100), 64)
|
627
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(newTotal))*100), 64)
|
628
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
628
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
717
|
|
717
|
|
718
|
for _, item := range items {
|
718
|
for _, item := range items {
|
719
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
719
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
720
|
- item.Ratio = "0"
|
|
|
|
|
720
|
+ item.Ratio = "0.0"
|
721
|
} else {
|
721
|
} else {
|
722
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
722
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
723
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
723
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
913
|
|
913
|
|
914
|
for _, item := range items {
|
914
|
for _, item := range items {
|
915
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
915
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
916
|
- item.Ratio = "0"
|
|
|
|
|
916
|
+ item.Ratio = "0.0"
|
917
|
} else {
|
917
|
} else {
|
918
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
918
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
919
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
919
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1002
|
|
1002
|
|
1003
|
for _, item := range items {
|
1003
|
for _, item := range items {
|
1004
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1004
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1005
|
- item.Ratio = "0"
|
|
|
|
|
1005
|
+ item.Ratio = "0.0"
|
1006
|
} else {
|
1006
|
} else {
|
1007
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1007
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1008
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1008
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1089
|
|
1089
|
|
1090
|
for _, item := range items {
|
1090
|
for _, item := range items {
|
1091
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1091
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1092
|
- item.Ratio = "0"
|
|
|
|
|
1092
|
+ item.Ratio = "0.0"
|
1093
|
} else {
|
1093
|
} else {
|
1094
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1094
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1095
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1095
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1167
|
|
1167
|
|
1168
|
switch statistics_type {
|
1168
|
switch statistics_type {
|
1169
|
case 1:
|
1169
|
case 1:
|
|
|
1170
|
+ var Total int64
|
|
|
1171
|
+ db.Table("xt_dialysis_prescription as p").Where("user_org_id = ? AND status = 1 AND created_time >= ? AND created_time <= ?", user_org_id, start_time, end_time).Count(&Total)
|
|
|
1172
|
+
|
1170
|
for _, item := range datas {
|
1173
|
for _, item := range datas {
|
1171
|
var total int64
|
1174
|
var total int64
|
1172
|
db.Table("xt_dialysis_prescription as p").Where("user_org_id = ? AND status = 1 AND prescription_doctor = ? AND created_time >= ? AND created_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1175
|
db.Table("xt_dialysis_prescription as p").Where("user_org_id = ? AND status = 1 AND prescription_doctor = ? AND created_time >= ? AND created_time <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1173
|
item.PCount = total
|
1176
|
item.PCount = total
|
|
|
1177
|
+
|
|
|
1178
|
+ if math.IsNaN(float64(item.PCount) / float64(Total)) {
|
|
|
1179
|
+ item.PRatio = "0.0"
|
|
|
1180
|
+ } else {
|
|
|
1181
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.PCount)/float64(Total))*100), 64)
|
|
|
1182
|
+ item.PRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1183
|
+ }
|
|
|
1184
|
+
|
1174
|
}
|
1185
|
}
|
1175
|
break
|
1186
|
break
|
1176
|
case 2:
|
1187
|
case 2:
|
|
|
1188
|
+ var Total int64
|
|
|
1189
|
+ db.Table("xt_patient_course_of_disease as course").Where("org_id = ? AND status = 1 AND ctime >= ? AND ctime <= ?", user_org_id, start_time, end_time).Count(&Total)
|
|
|
1190
|
+
|
1177
|
for _, item := range datas {
|
1191
|
for _, item := range datas {
|
1178
|
var total int64
|
1192
|
var total int64
|
1179
|
db.Table("xt_patient_course_of_disease as course").Where("org_id = ? AND status = 1 AND recorder = ? AND ctime >= ? AND ctime <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1193
|
db.Table("xt_patient_course_of_disease as course").Where("org_id = ? AND status = 1 AND recorder = ? AND ctime >= ? AND ctime <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1180
|
item.CourseCount = total
|
1194
|
item.CourseCount = total
|
|
|
1195
|
+
|
|
|
1196
|
+ if math.IsNaN(float64(item.CourseCount) / float64(Total)) {
|
|
|
1197
|
+ item.CourseRatio = "0.0"
|
|
|
1198
|
+ } else {
|
|
|
1199
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.CourseCount)/float64(Total))*100), 64)
|
|
|
1200
|
+ item.CourseRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1201
|
+ }
|
|
|
1202
|
+
|
1181
|
}
|
1203
|
}
|
1182
|
|
1204
|
|
1183
|
break
|
1205
|
break
|
1184
|
case 3:
|
1206
|
case 3:
|
|
|
1207
|
+ var Total int64
|
|
|
1208
|
+
|
|
|
1209
|
+ db.Table("xt_patient_rescue_record as rescue").Where("org_id = ? AND status = 1 AND ctime >= ? AND ctime <= ?", user_org_id, start_time, end_time).Count(&Total)
|
|
|
1210
|
+
|
1185
|
for _, item := range datas {
|
1211
|
for _, item := range datas {
|
1186
|
var total int64
|
1212
|
var total int64
|
1187
|
db.Table("xt_patient_rescue_record as rescue").Where("org_id = ? AND status = 1 AND recorder = ? AND ctime >= ? AND ctime <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1213
|
db.Table("xt_patient_rescue_record as rescue").Where("org_id = ? AND status = 1 AND recorder = ? AND ctime >= ? AND ctime <= ?", user_org_id, item.AdminUserId, start_time, end_time).Count(&total)
|
1188
|
item.RescueCount = total
|
1214
|
item.RescueCount = total
|
|
|
1215
|
+
|
|
|
1216
|
+ if math.IsNaN(float64(item.RescueCount) / float64(Total)) {
|
|
|
1217
|
+ item.RescueRatio = "0.0"
|
|
|
1218
|
+ } else {
|
|
|
1219
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.RescueCount)/float64(Total))*100), 64)
|
|
|
1220
|
+ item.RescueRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1221
|
+ }
|
|
|
1222
|
+
|
1189
|
}
|
1223
|
}
|
1190
|
break
|
1224
|
break
|
1191
|
}
|
1225
|
}
|
|
|
|
|
1227
|
db := service.XTReadDB()
|
1261
|
db := service.XTReadDB()
|
1228
|
userDb.Raw("select admin_user_id, user_name,org_id from sgj_user_admin_role Where status = 1 AND org_id = ? AND user_type = 3 ", user_org_id).Scan(&datas)
|
1262
|
userDb.Raw("select admin_user_id, user_name,org_id from sgj_user_admin_role Where status = 1 AND org_id = ? AND user_type = 3 ", user_org_id).Scan(&datas)
|
1229
|
|
1263
|
|
|
|
1264
|
+ var NewTotalOne int64
|
|
|
1265
|
+ var NewTotalTwo int64
|
|
|
1266
|
+ var NewTotalThree int64
|
|
|
1267
|
+ var NewTotalFour int64
|
|
|
1268
|
+
|
1230
|
var tempConfig models.Dataconfig
|
1269
|
var tempConfig models.Dataconfig
|
1231
|
db.Model(&models.Dataconfig{}).Where("name = '血管通路' AND module = 'hemodialysis' AND field_name = 'vascular_access_desc' AND parent_id = 0").First(&tempConfig)
|
1270
|
db.Model(&models.Dataconfig{}).Where("name = '血管通路' AND module = 'hemodialysis' AND field_name = 'vascular_access_desc' AND parent_id = 0").First(&tempConfig)
|
1232
|
|
1271
|
|
|
|
1272
|
+ 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.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, start_time, end_time).Count(&NewTotalOne)
|
|
|
1273
|
+ 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.created_time >= ? AND xt_dialysis_order.created_time <= ? ", user_org_id, tempConfig.ID, user_org_id, start_time, end_time).Count(&NewTotalTwo)
|
|
|
1274
|
+ db.Table("xt_monitoring_record ").Where("user_org_id = ? AND status = 1 AND created_time >= ? AND created_time <= ?", user_org_id, start_time, end_time).Count(&NewTotalThree)
|
|
|
1275
|
+ db.Table("xt_treatment_summary").Where("user_org_id = ? AND status = 1 AND created_time >= ? AND created_time <= ?", user_org_id, start_time, end_time).Count(&NewTotalFour)
|
|
|
1276
|
+
|
1233
|
switch statistics_type {
|
1277
|
switch statistics_type {
|
1234
|
case 1:
|
1278
|
case 1:
|
1235
|
for _, item := range datas {
|
1279
|
for _, item := range datas {
|
1236
|
var Total int64
|
1280
|
var Total int64
|
1237
|
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)
|
1281
|
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)
|
1238
|
item.PunctureCount = Total
|
1282
|
item.PunctureCount = Total
|
|
|
1283
|
+
|
|
|
1284
|
+ if math.IsNaN(float64(item.PunctureCount) / float64(NewTotalOne)) {
|
|
|
1285
|
+ item.PunctureRatio = "0.0"
|
|
|
1286
|
+ } else {
|
|
|
1287
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.PunctureCount)/float64(NewTotalOne))*100), 64)
|
|
|
1288
|
+ item.PunctureRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1289
|
+ }
|
|
|
1290
|
+
|
1239
|
}
|
1291
|
}
|
1240
|
break
|
1292
|
break
|
1241
|
case 2:
|
1293
|
case 2:
|
|
|
|
|
1243
|
var Total int64
|
1295
|
var Total int64
|
1244
|
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)
|
1296
|
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)
|
1245
|
item.ChangemedicineCount = Total
|
1297
|
item.ChangemedicineCount = Total
|
|
|
1298
|
+
|
|
|
1299
|
+ if math.IsNaN(float64(item.ChangemedicineCount) / float64(NewTotalTwo)) {
|
|
|
1300
|
+ item.ChangemedicineRatio = "0.0"
|
|
|
1301
|
+ } else {
|
|
|
1302
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.ChangemedicineCount)/float64(NewTotalTwo))*100), 64)
|
|
|
1303
|
+ item.ChangemedicineRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1304
|
+ }
|
1246
|
}
|
1305
|
}
|
1247
|
|
1306
|
|
1248
|
break
|
1307
|
break
|
|
|
|
|
1251
|
var total int64
|
1310
|
var total int64
|
1252
|
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(&total)
|
1311
|
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(&total)
|
1253
|
item.CureCount = total
|
1312
|
item.CureCount = total
|
|
|
1313
|
+ if math.IsNaN(float64(item.CureCount) / float64(NewTotalThree)) {
|
|
|
1314
|
+ item.CureRatio = "0.0"
|
|
|
1315
|
+ } else {
|
|
|
1316
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.CureCount)/float64(NewTotalThree))*100), 64)
|
|
|
1317
|
+ item.CureRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1318
|
+ }
|
|
|
1319
|
+
|
1254
|
}
|
1320
|
}
|
1255
|
break
|
1321
|
break
|
1256
|
|
1322
|
|
|
|
|
|
1259
|
var Total int64
|
1325
|
var Total int64
|
1260
|
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(&Total)
|
1326
|
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(&Total)
|
1261
|
item.MissionCount = Total
|
1327
|
item.MissionCount = Total
|
|
|
1328
|
+ if math.IsNaN(float64(item.MissionCount) / float64(NewTotalFour)) {
|
|
|
1329
|
+ item.MissionRatio = "0.0"
|
|
|
1330
|
+ } else {
|
|
|
1331
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.MissionCount)/float64(NewTotalFour))*100), 64)
|
|
|
1332
|
+ item.MissionRatio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
1333
|
+ }
|
1262
|
}
|
1334
|
}
|
1263
|
break
|
1335
|
break
|
1264
|
}
|
1336
|
}
|
|
|
|
|
1273
|
userDb := service.UserReadDB()
|
1345
|
userDb := service.UserReadDB()
|
1274
|
db := service.XTReadDB()
|
1346
|
db := service.XTReadDB()
|
1275
|
var tempConfig models.Dataconfig
|
1347
|
var tempConfig models.Dataconfig
|
|
|
1348
|
+
|
1276
|
db.Model(&models.Dataconfig{}).Where("name = '血管通路' AND module = 'hemodialysis' AND field_name = 'vascular_access_desc' AND parent_id = 0").First(&tempConfig)
|
1349
|
db.Model(&models.Dataconfig{}).Where("name = '血管通路' AND module = 'hemodialysis' AND field_name = 'vascular_access_desc' AND parent_id = 0").First(&tempConfig)
|
1277
|
|
1350
|
|
1278
|
if admin_user_id == 0 {
|
1351
|
if admin_user_id == 0 {
|
|
|
|
|
1280
|
} else {
|
1353
|
} else {
|
1281
|
userDb.Raw("select admin_user_id, user_name,org_id from sgj_user_admin_role Where status = 1 AND org_id = ? AND user_type = 3 AND admin_user_id = ?", user_org_id, admin_user_id).Scan(&datas)
|
1354
|
userDb.Raw("select admin_user_id, user_name,org_id from sgj_user_admin_role Where status = 1 AND org_id = ? AND user_type = 3 AND admin_user_id = ?", user_org_id, admin_user_id).Scan(&datas)
|
1282
|
}
|
1355
|
}
|
|
|
1356
|
+
|
1283
|
for _, item := range datas {
|
1357
|
for _, item := range datas {
|
1284
|
var Total int64
|
1358
|
var Total int64
|
1285
|
var TotalOne int64
|
1359
|
var TotalOne int64
|
|
|
|
|
1291
|
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)
|
1365
|
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)
|
1292
|
item.PunctureCount = Total
|
1366
|
item.PunctureCount = Total
|
1293
|
item.ChangemedicineCount = TotalOne
|
1367
|
item.ChangemedicineCount = TotalOne
|
1294
|
- item.PCount = Total
|
|
|
1295
|
item.CureCount = TotalTwo
|
1368
|
item.CureCount = TotalTwo
|
1296
|
item.MissionCount = TotalThree
|
1369
|
item.MissionCount = TotalThree
|
|
|
1370
|
+
|
1297
|
}
|
1371
|
}
|
|
|
1372
|
+
|
1298
|
if err != nil {
|
1373
|
if err != nil {
|
1299
|
return nil, err
|
1374
|
return nil, err
|
1300
|
}
|
1375
|
}
|
|
|
|
|
1324
|
return
|
1399
|
return
|
1325
|
}
|
1400
|
}
|
1326
|
|
1401
|
|
1327
|
-func FindOrgInspectionReference(user_org_id int64) (references []*models.InspectionReference, err error) {
|
|
|
|
|
1402
|
+func FindOrgInspectionReference(user_org_id int64, range_type int) (references []*models.InspectionReference, err error) {
|
1328
|
db := service.XTReadDB()
|
1403
|
db := service.XTReadDB()
|
1329
|
- err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_max REGEXP '(^[0-9]+.[0-9]+$)|(^[0-9]$)' AND range_min REGEXP '(^[0-9]+.[0-9]+$)|(^[0-9]$)' ", user_org_id).Find(&references).Error
|
|
|
|
|
1404
|
+ if range_type == 1 {
|
|
|
1405
|
+ 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
|
+
|
|
|
1407
|
+ } else {
|
|
|
1408
|
+ err = db.Model(&models.InspectionReference{}).Where("status = 1 AND org_id = ? AND range_type = 2", user_org_id).Find(&references).Error
|
|
|
1409
|
+
|
|
|
1410
|
+ }
|
1330
|
return
|
1411
|
return
|
1331
|
}
|
1412
|
}
|
1332
|
|
1413
|
|
|
|
|
|
1338
|
|
1419
|
|
1339
|
func FindOrgInspectionReferenceRangeTypeValue(user_org_id int64, project_id int64, item_id int64) (inspection []*models.Inspection, err error) {
|
1420
|
func FindOrgInspectionReferenceRangeTypeValue(user_org_id int64, project_id int64, item_id int64) (inspection []*models.Inspection, err error) {
|
1340
|
db := service.XTReadDB()
|
1421
|
db := service.XTReadDB()
|
1341
|
- err = db.Model(&models.Inspection{}).Where("status = 1 AND org_id = ? AND project_id = ? AND item_id = ? AND inspect_type = 2 AND inspect_value <> ''", user_org_id, project_id, item_id).Group("inspect_value").Find(&inspection).Error
|
|
|
|
|
1422
|
+ err = db.Model(&models.Inspection{}).Where("status = 1 AND org_id = ? AND project_id = ? AND item_id = ? ", user_org_id, project_id, item_id).Group("inspect_value").Find(&inspection).Error
|
1342
|
return
|
1423
|
return
|
1343
|
}
|
1424
|
}
|
1344
|
|
1425
|
|
|
|
|
|
1356
|
selectContent := "CASE"
|
1437
|
selectContent := "CASE"
|
1357
|
range_value_arr := strings.Split(range_value, ",")
|
1438
|
range_value_arr := strings.Split(range_value, ",")
|
1358
|
|
1439
|
|
1359
|
- db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ?", user_org_id, start_time, end_time, project_id, item_id).Count(&Total)
|
|
|
|
|
1440
|
+ db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND inspect_value <> '' ", user_org_id, start_time, end_time, project_id, item_id).Count(&Total)
|
1360
|
|
1441
|
|
1361
|
if range_type == 1 {
|
1442
|
if range_type == 1 {
|
1362
|
- tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ?", user_org_id, start_time, end_time, project_id, item_id).
|
|
|
|
|
1443
|
+ tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND inspect_value <> ''", user_org_id, start_time, end_time, project_id, item_id).
|
1363
|
Select("CASE WHEN inspect_value < " + range_value_arr[0] + " THEN " + "'" + "小于" + range_value_arr[0] + "'" +
|
1444
|
Select("CASE WHEN inspect_value < " + range_value_arr[0] + " THEN " + "'" + "小于" + range_value_arr[0] + "'" +
|
1364
|
" WHEN inspect_value >= " + range_value_arr[0] + " AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1445
|
" WHEN inspect_value >= " + range_value_arr[0] + " AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1365
|
" WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
1446
|
" WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
|
|
|
|
1409
|
|
1490
|
|
1410
|
for _, item := range items {
|
1491
|
for _, item := range items {
|
1411
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1492
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1412
|
- item.Ratio = "0"
|
|
|
|
|
1493
|
+ item.Ratio = "0.0"
|
1413
|
} else {
|
1494
|
} else {
|
1414
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1495
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1415
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1496
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1423
|
selectContent = selectContent + " WHEN inspect_value =" + "'" + item + "'" + " THEN " + "'" + item + "'"
|
1504
|
selectContent = selectContent + " WHEN inspect_value =" + "'" + item + "'" + " THEN " + "'" + item + "'"
|
1424
|
|
1505
|
|
1425
|
}
|
1506
|
}
|
1426
|
- tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ?", user_org_id, start_time, end_time, project_id, item_id).
|
|
|
|
|
1507
|
+ tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND inspect_value <> '' ", user_org_id, start_time, end_time, project_id, item_id).
|
1427
|
Select(selectContent +
|
1508
|
Select(selectContent +
|
1428
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1509
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1429
|
).Group("name").Scan(&items).Error
|
1510
|
).Group("name").Scan(&items).Error
|
1430
|
|
1511
|
|
1431
|
for _, item := range items {
|
1512
|
for _, item := range items {
|
1432
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1513
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1433
|
- item.Ratio = "0"
|
|
|
|
|
1514
|
+ item.Ratio = "0.0"
|
1434
|
} else {
|
1515
|
} else {
|
1435
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1516
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1436
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1517
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1519
|
if range_value == "全部" {
|
1600
|
if range_value == "全部" {
|
1520
|
db := service.XTReadDB()
|
1601
|
db := service.XTReadDB()
|
1521
|
offset := (page - 1) * limit
|
1602
|
offset := (page - 1) * limit
|
1522
|
- err = db.Model(&Inspection{}).Where("org_id = ? AND status = 1 AND created_time >= ? AND created_time <= ? AND project_id = ? AND item_id = ? AND status = 1 ", user_org_id, start_time, end_time, project_id, item_id).Preload("Patient", func(db *gorm.DB) *gorm.DB {
|
|
|
|
|
1603
|
+ err = db.Model(&Inspection{}).Where("org_id = ? AND status = 1 AND created_time >= ? AND created_time <= ? AND project_id = ? AND item_id = ? AND status = 1 ", user_org_id, start_time, end_time, project_id, item_id).Preload("Patient", func(db *gorm.DB) *gorm.DB {
|
1523
|
return db.Where("status = 1 AND user_org_id = ?", user_org_id)
|
1604
|
return db.Where("status = 1 AND user_org_id = ?", user_org_id)
|
1524
|
}).Count(&total).Offset(offset).Limit(limit).Find(&datas).Error
|
1605
|
}).Count(&total).Offset(offset).Limit(limit).Find(&datas).Error
|
1525
|
return datas, total, err
|
1606
|
return datas, total, err
|
|
|
|
|
1562
|
range_value_arr := strings.Split(range_value, ",")
|
1643
|
range_value_arr := strings.Split(range_value, ",")
|
1563
|
var Total int64
|
1644
|
var Total int64
|
1564
|
|
1645
|
|
1565
|
- db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND patient_id = ?", user_org_id, start_time, end_time, project_id, item_id, patient_id).Count(&Total)
|
|
|
|
|
1646
|
+ db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND patient_id = ? AND inspect_value <> ''", user_org_id, start_time, end_time, project_id, item_id, patient_id).Count(&Total)
|
1566
|
|
1647
|
|
1567
|
if range_type == 1 {
|
1648
|
if range_type == 1 {
|
1568
|
- tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND patient_id = ?", user_org_id, start_time, end_time, project_id, item_id, patient_id).
|
|
|
|
|
1649
|
+ tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND project_id = ? AND item_id = ? AND patient_id = ? AND inspect_value <> ''", user_org_id, start_time, end_time, project_id, item_id, patient_id).
|
1569
|
Select("CASE WHEN inspect_value < " + range_value_arr[0] + " THEN " + "'" + "小于" + range_value_arr[0] + "'" +
|
1650
|
Select("CASE WHEN inspect_value < " + range_value_arr[0] + " THEN " + "'" + "小于" + range_value_arr[0] + "'" +
|
1570
|
" WHEN inspect_value >= " + range_value_arr[0] + " AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1651
|
" WHEN inspect_value >= " + range_value_arr[0] + " AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1571
|
" WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
1652
|
" WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
|
|
|
|
1615
|
|
1696
|
|
1616
|
for _, item := range items {
|
1697
|
for _, item := range items {
|
1617
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1698
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1618
|
- item.Ratio = "0"
|
|
|
|
|
1699
|
+ item.Ratio = "0.0"
|
1619
|
} else {
|
1700
|
} else {
|
1620
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1701
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1621
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1702
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
|
|
|
1629
|
for _, item := range range_value_arr {
|
1710
|
for _, item := range range_value_arr {
|
1630
|
selectContent = selectContent + " WHEN inspect_value =" + "'" + item + "'" + " THEN " + "'" + item + "'"
|
1711
|
selectContent = selectContent + " WHEN inspect_value =" + "'" + item + "'" + " THEN " + "'" + item + "'"
|
1631
|
}
|
1712
|
}
|
1632
|
- tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND patient_id = ?", user_org_id, start_time, end_time, patient_id).
|
|
|
|
|
1713
|
+ tempErr = db.Table("xt_inspection").Where("org_id=? and status=1 and created_time >= ? and created_time <= ? AND patient_id = ? AND inspect_value <> '' AND project_id = ? AND item_id = ?", user_org_id, start_time, end_time, patient_id, project_id, item_id).
|
1633
|
Select(selectContent +
|
1714
|
Select(selectContent +
|
1634
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1715
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1635
|
).Group("name").Scan(&items).Error
|
1716
|
).Group("name").Scan(&items).Error
|
1636
|
for _, item := range items {
|
1717
|
for _, item := range items {
|
1637
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1718
|
if math.IsNaN(float64(item.Total) / float64(Total)) {
|
1638
|
- item.Ratio = "0"
|
|
|
|
|
1719
|
+ item.Ratio = "0.0"
|
1639
|
} else {
|
1720
|
} else {
|
1640
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1721
|
float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
1641
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
1722
|
item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|