|
@@ -33,33 +33,33 @@ func GetDialysisProcessIndexChartData(user_org_id int64, patient_id int64, start
|
33
|
33
|
db := service.XTReadDB()
|
34
|
34
|
switch statistics_type {
|
35
|
35
|
case 1:
|
36
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, weight_before as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
36
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, weight_before as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
37
|
37
|
break
|
38
|
38
|
case 2:
|
39
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, weight_after as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
39
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, weight_after as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
40
|
40
|
|
41
|
41
|
break
|
42
|
42
|
case 3:
|
43
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, systolic_blood_pressure as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
43
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, systolic_blood_pressure as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
44
|
44
|
|
45
|
45
|
break
|
46
|
46
|
case 4:
|
47
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, diastolic_blood_pressure as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
47
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, diastolic_blood_pressure as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
48
|
48
|
|
49
|
49
|
break
|
50
|
50
|
case 5:
|
51
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, pulse_frequency as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
51
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, pulse_frequency as value from xt_assessment_before_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
52
|
52
|
|
53
|
53
|
break
|
54
|
54
|
case 6:
|
55
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, systolic_blood_pressure as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
55
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, systolic_blood_pressure as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
56
|
56
|
break
|
57
|
57
|
case 7:
|
58
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, diastolic_blood_pressure as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
58
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, diastolic_blood_pressure as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
59
|
59
|
|
60
|
60
|
break
|
61
|
61
|
case 8:
|
62
|
|
- err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, pulse_frequency as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND created_time <= ? AND created_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
62
|
+ err = db.Raw("select from_unixtime(assessment_date,'%Y-%m-%d') as date, pulse_frequency as value from xt_assessment_after_dislysis Where status = 1 AND user_org_id = ? AND patient_id = ? AND assessment_date <= ? AND assessment_date >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
63
|
63
|
break
|
64
|
64
|
|
65
|
65
|
}
|
|
@@ -83,7 +83,7 @@ func GetDialysisProcessIndexOtherChartData(user_org_id int64, patient_id int64,
|
83
|
83
|
var total int64
|
84
|
84
|
switch statistics_type {
|
85
|
85
|
case 9:
|
86
|
|
- tempErr = db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? and p.status=1 and p.created_time >= ? and p.created_time <= ? AND p.patient_id = ? ", user_org_id, start_time, end_time, patient_id).
|
|
86
|
+ tempErr = db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? and p.status=1 and p.record_date >= ? and p.record_date <= ? AND p.patient_id = ? ", user_org_id, start_time, end_time, patient_id).
|
87
|
87
|
Select("CASE WHEN p.mode_id = 1 THEN 'HD'" +
|
88
|
88
|
" WHEN p.mode_id = 2 THEN 'HDF'" +
|
89
|
89
|
" WHEN p.mode_id = 3 THEN 'HD+HP'" +
|
|
@@ -112,7 +112,7 @@ func GetDialysisProcessIndexOtherChartData(user_org_id int64, patient_id int64,
|
112
|
112
|
|
113
|
113
|
}
|
114
|
114
|
fmt.Println(selectContent)
|
115
|
|
- tempErr = db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? and p.status=1 and p.created_time >= ? and p.created_time <= ? AND p.patient_id = ? ", user_org_id, start_time, end_time, patient_id).
|
|
115
|
+ tempErr = db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? and p.status=1 and p.record_date >= ? and p.record_date <= ? AND p.patient_id = ? ", user_org_id, start_time, end_time, patient_id).
|
116
|
116
|
Select(selectContent +
|
117
|
117
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
118
|
118
|
).Group("p.anticoagulant").Scan(&items).Error
|
|
@@ -120,7 +120,7 @@ func GetDialysisProcessIndexOtherChartData(user_org_id int64, patient_id int64,
|
120
|
120
|
break
|
121
|
121
|
}
|
122
|
122
|
|
123
|
|
- db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? AND p.status = 1 AND p.patient_id = ? AND p.created_time >= ? and p.created_time <= ? ", user_org_id, patient_id, start_time, end_time).Count(&total)
|
|
123
|
+ db.Table("xt_dialysis_prescription as p").Where("p.user_org_id=? AND p.status = 1 AND p.patient_id = ? AND p.record_date >= ? and p.record_date <= ? ", user_org_id, patient_id, start_time, end_time).Count(&total)
|
124
|
124
|
|
125
|
125
|
for _, item := range items {
|
126
|
126
|
if math.IsNaN(float64(item.Total) / float64(total)) {
|
|
@@ -193,12 +193,10 @@ func GetDialysisWatchChartData(user_org_id int64, patient_id int64, start_time i
|
193
|
193
|
case 2:
|
194
|
194
|
|
195
|
195
|
if patient_id == 0 {
|
196
|
|
- //err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.systolic_blood_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
197
|
196
|
|
198
|
197
|
err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.diastolic_blood_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
199
|
198
|
|
200
|
199
|
} else {
|
201
|
|
- //err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.systolic_blood_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND patient_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
202
|
200
|
|
203
|
201
|
err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.diastolic_blood_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND patient_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
204
|
202
|
|
|
@@ -264,6 +262,28 @@ func GetDialysisWatchChartData(user_org_id int64, patient_id int64, start_time i
|
264
|
262
|
}
|
265
|
263
|
break
|
266
|
264
|
case 9:
|
|
265
|
+ if patient_id == 0 {
|
|
266
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.transmembrane_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
|
267
|
+
|
|
268
|
+ } else {
|
|
269
|
+
|
|
270
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.transmembrane_pressure as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND patient_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
271
|
+
|
|
272
|
+ }
|
|
273
|
+
|
|
274
|
+ break
|
|
275
|
+ case 10:
|
|
276
|
+ if patient_id == 0 {
|
|
277
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.dialysate_temperature as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
|
278
|
+
|
|
279
|
+ } else {
|
|
280
|
+
|
|
281
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.dialysate_temperature as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND patient_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
282
|
+
|
|
283
|
+ }
|
|
284
|
+
|
|
285
|
+ break
|
|
286
|
+ case 11:
|
267
|
287
|
if patient_id == 0 {
|
268
|
288
|
err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.ultrafiltration_rate as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
269
|
289
|
|
|
@@ -273,8 +293,20 @@ func GetDialysisWatchChartData(user_org_id int64, patient_id int64, start_time i
|
273
|
293
|
|
274
|
294
|
}
|
275
|
295
|
|
|
296
|
+ break
|
|
297
|
+ case 12:
|
|
298
|
+ if patient_id == 0 {
|
|
299
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.ultrafiltration_volume as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, end_time, start_time).Scan(&datas).Error
|
|
300
|
+
|
|
301
|
+ } else {
|
|
302
|
+
|
|
303
|
+ err = db.Raw("select from_unixtime(monitor.operate_time,'%Y-%m-%d %H:%i') as date, monitor.ultrafiltration_volume as value from xt_monitoring_record as monitor Where status = 1 AND user_org_id = ? AND patient_id = ? AND operate_time <= ? AND operate_time >= ? ", user_org_id, patient_id, end_time, start_time).Scan(&datas).Error
|
|
304
|
+
|
|
305
|
+ }
|
|
306
|
+
|
276
|
307
|
break
|
277
|
308
|
}
|
|
309
|
+
|
278
|
310
|
if err != nil {
|
279
|
311
|
return nil, err
|
280
|
312
|
}
|
|
@@ -511,7 +543,7 @@ func GetDialysisWeightChartData(user_org_id int64, start_time int64, end_time in
|
511
|
543
|
}
|
512
|
544
|
var weights []*weight
|
513
|
545
|
var weightAdd []float64
|
514
|
|
- db.Raw("Select xt_assessment_after_dislysis.weight_after as weight_after ,xt_assessment_before_dislysis.weight_before as weight_before from `xt_assessment_before_dislysis` LEFT JOIN `xt_assessment_after_dislysis` On xt_assessment_before_dislysis.`patient_id` = xt_assessment_after_dislysis.`patient_id` AND xt_assessment_before_dislysis.assessment_date = xt_assessment_after_dislysis.assessment_date AND xt_assessment_after_dislysis.weight_after != 0 Where xt_assessment_before_dislysis.user_org_id = ? AND xt_assessment_before_dislysis.created_time >= ? AND xt_assessment_before_dislysis.created_time <= ? Order by xt_assessment_before_dislysis.assessment_date desc", user_org_id, start_time, end_time).Scan(&weights)
|
|
546
|
+ db.Raw("Select xt_assessment_after_dislysis.weight_after as weight_after ,xt_assessment_before_dislysis.weight_before as weight_before from `xt_assessment_before_dislysis` LEFT JOIN `xt_assessment_after_dislysis` On xt_assessment_before_dislysis.`patient_id` = xt_assessment_after_dislysis.`patient_id` AND xt_assessment_before_dislysis.assessment_date = xt_assessment_after_dislysis.assessment_date AND xt_assessment_after_dislysis.weight_after != 0 AND xt_assessment_after_dislysis.user_org_id = ? Where xt_assessment_before_dislysis.user_org_id = ? AND xt_assessment_before_dislysis.created_time >= ? AND xt_assessment_before_dislysis.created_time <= ? Order by xt_assessment_before_dislysis.assessment_date desc", user_org_id, user_org_id, start_time, end_time).Scan(&weights)
|
515
|
547
|
for index, _ := range weights {
|
516
|
548
|
if index+1 < len(weights) {
|
517
|
549
|
if weights[index+1].WeightAfter == 0 || weights[index].WeightBefore == 0 {
|
|
@@ -1328,9 +1360,9 @@ func GetInspectionChartData(user_org_id int64, start_time int64, end_time int64,
|
1328
|
1360
|
|
1329
|
1361
|
if range_type == 1 {
|
1330
|
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).
|
1331
|
|
- Select("CASE WHEN inspect_value < " + range_value_arr[0] + "THEN" + "'" + "小于" + range_value_arr[0] + "'" +
|
1332
|
|
- " WHEN inspect_value >= " + range_value_arr[0] + "AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1333
|
|
- " WHEN inspect_value > " + range_value_arr[1] + "THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
|
1363
|
+ 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] + "'" +
|
|
1365
|
+ " WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
1334
|
1366
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1335
|
1367
|
).Group("name").Scan(&items).Error
|
1336
|
1368
|
|
|
@@ -1528,12 +1560,15 @@ func GetPatientInspectionBarChartData(user_org_id int64, start_time int64, end_t
|
1528
|
1560
|
var tempErr error
|
1529
|
1561
|
selectContent := "CASE"
|
1530
|
1562
|
range_value_arr := strings.Split(range_value, ",")
|
|
1563
|
+ var Total int64
|
|
1564
|
+
|
|
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)
|
1531
|
1566
|
|
1532
|
1567
|
if range_type == 1 {
|
1533
|
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).
|
1534
|
|
- Select("CASE WHEN inspect_value < " + range_value_arr[0] + "THEN" + "'" + "小于" + range_value_arr[0] + "'" +
|
1535
|
|
- " WHEN inspect_value >= " + range_value_arr[0] + "AND inspect_value <= " + range_value_arr[1] + " THEN " + "'" + range_value_arr[0] + "~" + range_value_arr[1] + "'" +
|
1536
|
|
- " WHEN inspect_value > " + range_value_arr[1] + "THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
|
1569
|
+ 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] + "'" +
|
|
1571
|
+ " WHEN inspect_value > " + range_value_arr[1] + " THEN " + "'" + "大于" + range_value_arr[1] + "'" +
|
1537
|
1572
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1538
|
1573
|
).Group("name").Scan(&items).Error
|
1539
|
1574
|
|
|
@@ -1577,6 +1612,16 @@ func GetPatientInspectionBarChartData(user_org_id int64, start_time int64, end_t
|
1577
|
1612
|
}
|
1578
|
1613
|
items = append(items, newItem)
|
1579
|
1614
|
}
|
|
1615
|
+
|
|
1616
|
+ for _, item := range items {
|
|
1617
|
+ if math.IsNaN(float64(item.Total) / float64(Total)) {
|
|
1618
|
+ item.Ratio = "0"
|
|
1619
|
+ } else {
|
|
1620
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
|
1621
|
+ item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
1622
|
+ }
|
|
1623
|
+ }
|
|
1624
|
+
|
1580
|
1625
|
return items, tempErr
|
1581
|
1626
|
|
1582
|
1627
|
} else {
|
|
@@ -1588,6 +1633,14 @@ func GetPatientInspectionBarChartData(user_org_id int64, start_time int64, end_t
|
1588
|
1633
|
Select(selectContent +
|
1589
|
1634
|
" ELSE '未知' END AS name, COUNT(*) AS total",
|
1590
|
1635
|
).Group("name").Scan(&items).Error
|
|
1636
|
+ for _, item := range items {
|
|
1637
|
+ if math.IsNaN(float64(item.Total) / float64(Total)) {
|
|
1638
|
+ item.Ratio = "0"
|
|
1639
|
+ } else {
|
|
1640
|
+ float_value, _ := strconv.ParseFloat(fmt.Sprintf("%.1f", (float64(item.Total)/float64(Total))*100), 64)
|
|
1641
|
+ item.Ratio = strconv.FormatFloat(float_value, 'f', 1, 32)
|
|
1642
|
+ }
|
|
1643
|
+ }
|
1591
|
1644
|
return items, tempErr
|
1592
|
1645
|
}
|
1593
|
1646
|
|