| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // LoopFollow
- // MainViewController+updateStats.swift
- import Foundation
- extension MainViewController {
- func updateStats() {
- if bgData.count > 0 {
- var lastDayOfData = bgData
- let graphHours = 24 * Storage.shared.downloadDays.value
- // If we loaded more than 1 day of data, only use the last day for the stats
- if graphHours > 24 {
- let oneDayAgo = dateTimeUtils.getTimeIntervalNHoursAgo(N: 24)
- var startIndex = 0
- while startIndex < bgData.count, bgData[startIndex].date < oneDayAgo {
- startIndex += 1
- }
- lastDayOfData = Array(bgData.dropFirst(startIndex))
- }
- let stats = StatsData(bgData: lastDayOfData)
- statsDisplayModel.lowPercent = String(format: "%.1f%%", stats.percentLow)
- statsDisplayModel.inRangePercent = String(format: "%.1f%%", stats.percentRange)
- statsDisplayModel.highPercent = String(format: "%.1f%%", stats.percentHigh)
- statsDisplayModel.avgBG = Localizer.toDisplayUnits(String(format: "%.0f", stats.avgBG))
- statsDisplayModel.estA1CTitle = UnitSettingsStore.shared.glycemicMetricMode == .gmi ? "GMI:" : "Est. A1C:"
- if UnitSettingsStore.shared.glycemicOutputUnit == .mmolMol {
- statsDisplayModel.estA1C = String(format: "%.0f", stats.a1C)
- } else {
- statsDisplayModel.estA1C = String(format: "%.1f", stats.a1C)
- }
- if UnitSettingsStore.shared.variabilityMetricMode == .stdDeviation {
- statsDisplayModel.stdDevTitle = "Std Dev:"
- if UnitSettingsStore.shared.glucoseUnit == .mgdL {
- statsDisplayModel.stdDev = String(format: "%.0f", stats.stdDev)
- } else {
- statsDisplayModel.stdDev = String(format: "%.1f", stats.stdDev)
- }
- } else {
- statsDisplayModel.stdDevTitle = "CV:"
- statsDisplayModel.stdDev = String(format: "%.1f%%", stats.coefficientOfVariation)
- }
- statsDisplayModel.pieLow = Double(stats.percentLow)
- statsDisplayModel.pieRange = Double(stats.percentRange)
- statsDisplayModel.pieHigh = Double(stats.percentHigh)
- }
- }
- }
|