Browse Source

Bug fixes.
Fix comma UI bug.
Fix rare case when statistics.json is run with empty glucose (not are how it can actually happen, but found it with simulator).

Jon Mårtensson 3 years ago
parent
commit
5532bacb94

+ 2 - 23
FreeAPS/Sources/APS/APSManager.swift

@@ -916,20 +916,17 @@ final class BaseAPSManager: APSManager, Injectable {
                 var bgArray_1_: [Double] = []
                 var bgArray_1_: [Double] = []
                 var bgArray_7_: [Double] = []
                 var bgArray_7_: [Double] = []
                 var bgArray_30_: [Double] = []
                 var bgArray_30_: [Double] = []
-                var bgArray_90_: [Double] = []
 
 
                 var bgArrayForTIR: [(bg_: Double, date_: Date)] = []
                 var bgArrayForTIR: [(bg_: Double, date_: Date)] = []
                 var bgArray_1: [(bg_: Double, date_: Date)] = []
                 var bgArray_1: [(bg_: Double, date_: Date)] = []
                 var bgArray_7: [(bg_: Double, date_: Date)] = []
                 var bgArray_7: [(bg_: Double, date_: Date)] = []
                 var bgArray_30: [(bg_: Double, date_: Date)] = []
                 var bgArray_30: [(bg_: Double, date_: Date)] = []
-                var bgArray_90: [(bg_: Double, date_: Date)] = []
 
 
                 var medianBG = 0.0
                 var medianBG = 0.0
                 var nr_bgs: Decimal = 0
                 var nr_bgs: Decimal = 0
                 var bg_1: Decimal = 0
                 var bg_1: Decimal = 0
                 var bg_7: Decimal = 0
                 var bg_7: Decimal = 0
                 var bg_30: Decimal = 0
                 var bg_30: Decimal = 0
-                var bg_90: Decimal = 0
                 var bg_total: Decimal = 0
                 var bg_total: Decimal = 0
                 var j = -1
                 var j = -1
                 var conversionFactor: Decimal = 1
                 var conversionFactor: Decimal = 1
@@ -957,7 +954,7 @@ final class BaseAPSManager: APSManager, Injectable {
                 numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4
                 numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4
 
 
                 // Make arrays for median calculations and calculate averages
                 // Make arrays for median calculations and calculate averages
-                if endIndex >= 0 {
+                if endIndex >= 0, (glucose.first?.glucose ?? 0) != 0 {
                     repeat {
                     repeat {
                         j += 1
                         j += 1
                         if glucose[j].glucose > 0 {
                         if glucose[j].glucose > 0 {
@@ -982,14 +979,9 @@ final class BaseAPSManager: APSManager, Injectable {
                                 bgArray_30 = bgArrayForTIR
                                 bgArray_30 = bgArrayForTIR
                                 bgArray_30_ = bgArray
                                 bgArray_30_ = bgArray
                             }
                             }
-                            if (firstElementTime - currentIndexTime).timeInterval <= 7.776E7 { // 90 days
-                                bg_90 = bg / nr_bgs
-                                bgArray_90 = bgArrayForTIR
-                                bgArray_90_ = bgArray
-                            }
                         }
                         }
                     } while j != glucose.count - 1
                     } while j != glucose.count - 1
-                }
+                } else { return }
 
 
                 if nr_bgs > 0 {
                 if nr_bgs > 0 {
                     // Up to 91 days
                     // Up to 91 days
@@ -1065,13 +1057,6 @@ final class BaseAPSManager: APSManager, Injectable {
                     NGSPa1CStatisticValue_30 = ((bg_30 / conversionFactor) + 46.7) / 28.7
                     NGSPa1CStatisticValue_30 = ((bg_30 / conversionFactor) + 46.7) / 28.7
                     IFCCa1CStatisticValue_30 = 10.929 * (NGSPa1CStatisticValue_30 - 2.152)
                     IFCCa1CStatisticValue_30 = 10.929 * (NGSPa1CStatisticValue_30 - 2.152)
                 }
                 }
-                // 90 days
-                var NGSPa1CStatisticValue_90: Decimal = 0.0
-                var IFCCa1CStatisticValue_90: Decimal = 0.0
-                if nr_bgs > 0 {
-                    NGSPa1CStatisticValue_90 = ((bg_90 / conversionFactor) + 46.7) / 28.7
-                    IFCCa1CStatisticValue_90 = 10.929 * (NGSPa1CStatisticValue_90 - 2.152)
-                }
                 // Total days
                 // Total days
                 var NGSPa1CStatisticValue_total: Decimal = 0.0
                 var NGSPa1CStatisticValue_total: Decimal = 0.0
                 var IFCCa1CStatisticValue_total: Decimal = 0.0
                 var IFCCa1CStatisticValue_total: Decimal = 0.0
@@ -1096,10 +1081,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveMedianToCoreData.median_1 = median.day as NSDecimalNumber
                 saveMedianToCoreData.median_1 = median.day as NSDecimalNumber
                 saveMedianToCoreData.median_7 = median.week as NSDecimalNumber
                 saveMedianToCoreData.median_7 = median.week as NSDecimalNumber
                 saveMedianToCoreData.median_30 = median.month as NSDecimalNumber
                 saveMedianToCoreData.median_30 = median.month as NSDecimalNumber
-                saveMedianToCoreData.median_90 = self.roundDecimal(
-                    Decimal(self.medianCalculation(array: bgArray_90_)),
-                    1
-                ) as NSDecimalNumber
 
 
                 try? self.coredataContext.save()
                 try? self.coredataContext.save()
 
 
@@ -1116,7 +1097,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveHbA1c.hba1c_1 = NGSPa1CStatisticValue as NSDecimalNumber
                 saveHbA1c.hba1c_1 = NGSPa1CStatisticValue as NSDecimalNumber
                 saveHbA1c.hba1c_7 = NGSPa1CStatisticValue_7 as NSDecimalNumber
                 saveHbA1c.hba1c_7 = NGSPa1CStatisticValue_7 as NSDecimalNumber
                 saveHbA1c.hba1c_30 = NGSPa1CStatisticValue_30 as NSDecimalNumber
                 saveHbA1c.hba1c_30 = NGSPa1CStatisticValue_30 as NSDecimalNumber
-                saveHbA1c.hba1c_90 = NGSPa1CStatisticValue_90 as NSDecimalNumber
 
 
                 try? self.coredataContext.save()
                 try? self.coredataContext.save()
 
 
@@ -1220,7 +1200,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveAverages.average_1 = bg_1 as NSDecimalNumber
                 saveAverages.average_1 = bg_1 as NSDecimalNumber
                 saveAverages.average_7 = bg_7 as NSDecimalNumber
                 saveAverages.average_7 = bg_7 as NSDecimalNumber
                 saveAverages.average_30 = bg_30 as NSDecimalNumber
                 saveAverages.average_30 = bg_30 as NSDecimalNumber
-                saveAverages.average_90 = bg_90 as NSDecimalNumber
                 try? self.coredataContext.save()
                 try? self.coredataContext.save()
 
 
                 let avg = Averages(Average: avgs, Median: median)
                 let avg = Averages(Average: avgs, Median: median)

+ 7 - 4
FreeAPS/Sources/Modules/Home/View/HomeRootView.swift

@@ -242,19 +242,22 @@ extension Home {
             var comma1 = ", "
             var comma1 = ", "
             var comma2 = comma1
             var comma2 = comma1
             var comma3 = comma1
             var comma3 = comma1
-            if targetString == "" { comma2 = "" }
-            if percentString == "" { comma1 = "" }
-            if indefinite, smbToggleString == "" { comma2 = "" }
+            if targetString == "" || percentString == "" { comma1 = "" }
+            if durationString == "" { comma2 = "" }
+            if smbToggleString == "" { comma3 = "" }
+
             if percentString == "", targetString == "" {
             if percentString == "", targetString == "" {
                 comma1 = ""
                 comma1 = ""
                 comma2 = ""
                 comma2 = ""
             }
             }
             if percentString == "", targetString == "", smbToggleString == "" {
             if percentString == "", targetString == "", smbToggleString == "" {
                 durationString = ""
                 durationString = ""
+                comma1 = ""
+                comma2 = ""
                 comma3 = ""
                 comma3 = ""
             }
             }
             if durationString == "" {
             if durationString == "" {
-                comma3 = ""
+                comma2 = ""
             }
             }
             if smbToggleString == "" {
             if smbToggleString == "" {
                 comma3 = ""
                 comma3 = ""