BloodGlucose.swift 912 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import Foundation
  2. struct BloodGlucose: JSON {
  3. enum Direction: String, JSON {
  4. case tripleUp = "TripleUp"
  5. case doubleUp = "DoubleUp"
  6. case singleUp = "SingleUp"
  7. case fortyFiveUp = "FortyFiveUp"
  8. case flat = "Flat"
  9. case fortyFiveDown = "FortyFiveDown"
  10. case singleDown = "SingleDown"
  11. case doubleDown = "DoubleDown"
  12. case tripleDown = "TripleDown"
  13. case none = "NONE"
  14. case notComputable = "NOT COMPUTABLE"
  15. case rateOutOfRange = "RATE OUT OF RANGE"
  16. }
  17. var sgv: Int?
  18. let direction: Direction?
  19. let date: UInt64
  20. let dateString: Date
  21. let filtered: Double?
  22. let noise: Int?
  23. var glucose: Int?
  24. var isStateValid: Bool { sgv ?? 0 >= 39 && noise ?? 1 != 4 }
  25. }
  26. enum GlucoseUnits: String, JSON {
  27. case mgdL = "mg/dL"
  28. case mmolL = "mmol/L"
  29. static let exchangeRate: Decimal = 0.0555
  30. }