Add Statistics page with aggregated data #487
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add Advanced Statistics View
Summary
This PR introduces a comprehensive statistics view that provides detailed glucose and treatment analytics across multiple time periods (1, 14, and 30 days).
Features Added
📊 Core Statistics
📈 Ambulatory Glucose Profile (AGP)
⏱️ Time in Range (TIR)
🎯 Glucose Risk Index (GRI)
Technical Implementation
New Components
AggregatedStatsView.swift- Main statistics containerAGPCalculator.swift,AGPView.swift,AGPViewModel.swift- AGP implementationTIRCalculator.swift,TIRView.swift,TIRViewModel.swift- TIR implementationGRICalculator.swift,GRIView.swift,GRIViewModel.swift- GRI implementationSimpleStatsViewModel.swift- Basic stats calculationsStatsDataService.swift- Data management serviceStatsDataFetcher.swift- Historical data fetching (up to 30 days)ChartContainerView.swift- Chart wrapper utilitiesData Management
MainViewController:statsBGData- Blood glucose readingsstatsBolusData- Bolus entriesstatsSMBData- SMB entriesstatsCarbData- Carb entriesstatsBasalData- Basal rate dataUser Preferences
Added new storage preferences:
showGMI- Toggle between GMI and eHbA1c displayshowStdDev- Toggle between Standard Deviation and CVshowTITR- Toggle between TIR (180 mg/dL) and TITR (140 mg/dL)UI Integration
Bug Fixes
MainViewController+updateStats.swift(removed duplicate%symbols in format strings)Changes to Existing Files
SettingsMenuView.swift- Added wrapper for accessing statisticsMoreMenuViewController.swift- Added statistics menu entryMainViewController.swift- Added stats data storage arraysStorage.swift- Added statistics display preferencesproject.pbxproj- Added Stats folder and file references