Jon Mårtensson 3 rokov pred
rodič
commit
43aa4b5853
1 zmenil súbory, kde vykonal 34 pridanie a 33 odobranie
  1. 34 33
      FreeAPS/Sources/APS/APSManager.swift

+ 34 - 33
FreeAPS/Sources/APS/APSManager.swift

@@ -748,14 +748,9 @@ final class BaseAPSManager: APSManager, Injectable {
         let length = array.count
 
         if length % 2 == 0 {
-            if units == .mmolL {
-                return Double(((sorted[length / 2 - 1] + sorted[length / 2]) / 2).asMmolL)
-            } else { return (sorted[length / 2 - 1] + sorted[length / 2]) / 2 }
+            return (sorted[length / 2 - 1] + sorted[length / 2]) / 2
         }
-
-        if units == .mmolL {
-            return Double(sorted[length / 2].asMmolL)
-        } else { return sorted[length / 2] }
+        return sorted[length / 2]
     }
 
     // Add to statistics.JSON
@@ -1056,6 +1051,22 @@ final class BaseAPSManager: APSManager, Injectable {
                 (NGSPa1CStatisticValue_total - 2.152) // IFCC (mmol/mol)  A1C(mmol/mol) = 10.929 * (A1C(%) - 2.15)
         }
 
+        var median = Median(
+            oneDay: roundDecimal(Decimal(medianCalculation(array: bgArray_1.map(\.bg_))), 1),
+            week: roundDecimal(Decimal(medianCalculation(array: bgArray_7.map(\.bg_))), 1),
+            month: roundDecimal(Decimal(medianCalculation(array: bgArray_30.map(\.bg_))), 1),
+            ninetyDays: roundDecimal(Decimal(medianCalculation(array: bgArray_90.map(\.bg_))), 1),
+            total: roundDecimal(Decimal(medianBG), 1)
+        )
+
+        var hbs = Hbs(
+            oneDay: roundDecimal(NGSPa1CStatisticValue, 1),
+            week: roundDecimal(NGSPa1CStatisticValue_7, 1),
+            month: roundDecimal(NGSPa1CStatisticValue_30, 1),
+            ninetyDays: roundDecimal(NGSPa1CStatisticValue_90, 1),
+            total: roundDecimal(NGSPa1CStatisticValue_total, 1)
+        )
+
         // Convert to user-preferred unit
         if units == .mmolL {
             bg_1 = bg_1.asMmolL
@@ -1063,6 +1074,22 @@ final class BaseAPSManager: APSManager, Injectable {
             bg_30 = bg_30.asMmolL
             bg_90 = bg_90.asMmolL
             bg_total = bg_total.asMmolL
+
+            median = Median(
+                oneDay: roundDecimal(Decimal(medianCalculation(array: bgArray_1.map(\.bg_))).asMmolL, 1),
+                week: roundDecimal(Decimal(medianCalculation(array: bgArray_7.map(\.bg_))).asMmolL, 1),
+                month: roundDecimal(Decimal(medianCalculation(array: bgArray_30.map(\.bg_))).asMmolL, 1),
+                ninetyDays: roundDecimal(Decimal(medianCalculation(array: bgArray_90.map(\.bg_))).asMmolL, 1),
+                total: roundDecimal(Decimal(medianBG).asMmolL, 1)
+            )
+
+            hbs = Hbs(
+                oneDay: roundDecimal(IFCCa1CStatisticValue, 1),
+                week: roundDecimal(IFCCa1CStatisticValue_7, 1),
+                month: roundDecimal(IFCCa1CStatisticValue_30, 1),
+                ninetyDays: roundDecimal(IFCCa1CStatisticValue_90, 1),
+                total: roundDecimal(IFCCa1CStatisticValue_total, 1)
+            )
         }
 
         // round output values
@@ -1133,14 +1160,6 @@ final class BaseAPSManager: APSManager, Injectable {
 
         let TimeInRange = TIRs(TIR: [tir], Hypos: [hypo], Hypers: [hyper])
 
-        let median = Median(
-            oneDay: roundDecimal(Decimal(medianCalculation(array: bgArray_1.map(\.bg_))), 1),
-            week: roundDecimal(Decimal(medianCalculation(array: bgArray_7.map(\.bg_))), 1),
-            month: roundDecimal(Decimal(medianCalculation(array: bgArray_30.map(\.bg_))), 1),
-            ninetyDays: roundDecimal(Decimal(medianCalculation(array: bgArray_90.map(\.bg_))), 1),
-            total: roundDecimal(Decimal(medianBG), 1)
-        )
-
         let avgs = Average(
             oneDay: roundDecimal(bg_1, 1),
             week: roundDecimal(bg_7, 1),
@@ -1151,24 +1170,6 @@ final class BaseAPSManager: APSManager, Injectable {
 
         let avg = Averages(Average: [avgs], Median: [median])
 
-        var hbs = Hbs(
-            oneDay: roundDecimal(NGSPa1CStatisticValue, 1),
-            week: roundDecimal(NGSPa1CStatisticValue_7, 1),
-            month: roundDecimal(NGSPa1CStatisticValue_30, 1),
-            ninetyDays: roundDecimal(NGSPa1CStatisticValue_90, 1),
-            total: roundDecimal(NGSPa1CStatisticValue_total, 1)
-        )
-
-        if units == .mmolL {
-            hbs = Hbs(
-                oneDay: roundDecimal(IFCCa1CStatisticValue, 1),
-                week: roundDecimal(IFCCa1CStatisticValue_7, 1),
-                month: roundDecimal(IFCCa1CStatisticValue_30, 1),
-                ninetyDays: roundDecimal(IFCCa1CStatisticValue_90, 1),
-                total: roundDecimal(IFCCa1CStatisticValue_total, 1)
-            )
-        }
-
         let dailystat = Statistics(
             createdAt: Date(),
             iPhone: UIDevice.current.getDeviceId,