| 123456789101112131415161718192021222324252627282930313233343536373839 |
- // LoopFollow
- // GRIViewModel.swift
- import Combine
- import Foundation
- class GRIViewModel: ObservableObject {
- @Published var gri: Double?
- @Published var griHypoComponent: Double?
- @Published var griHyperComponent: Double?
- @Published var griDataPoints: [(date: Date, value: Double)] = []
- private let dataService: StatsDataService
- init(dataService: StatsDataService) {
- self.dataService = dataService
- calculateGRI()
- }
- func calculateGRI() {
- let bgData = dataService.getBGData()
- guard !bgData.isEmpty else { return }
- let result = GRICalculator.calculate(bgData: bgData)
- gri = result.gri
- griHypoComponent = result.hypoComponent
- griHyperComponent = result.hyperComponent
- griDataPoints = GRICalculator.calculateTimeSeries(bgData: bgData)
- }
- func clearStats() {
- gri = nil
- griHypoComponent = nil
- griHyperComponent = nil
- griDataPoints = []
- }
- }
|