@@ -50,41 +50,31 @@ extension LoopDataManager {
5050
5151 let sensitivity = try await settingsProvider. getInsulinSensitivityHistory ( startDate: sensitivityStart, endDate: end)
5252
53- var overrides = temporaryPresetsManager. overrideHistory. getOverrideHistory ( startDate: sensitivityStart, endDate: end)
53+ let overrides = temporaryPresetsManager. overrideHistory. getOverrideHistory ( startDate: sensitivityStart, endDate: end)
5454
5555 guard !sensitivity. isEmpty else {
5656 throw LoopError . configurationError ( . insulinSensitivitySchedule)
5757 }
5858
59- let sensitivityWithOverrides = overrides. apply ( over: sensitivity) { ( quantity, override) in
60- let value = quantity. doubleValue ( for: . milligramsPerDeciliter)
61- return HKQuantity (
62- unit: . milligramsPerDeciliter,
63- doubleValue: value / override. settings. effectiveInsulinNeedsScaleFactor
64- )
65- }
59+ let sensitivityWithOverrides = overrides. applySensitivity ( over: sensitivity)
6660
6761 guard !basal. isEmpty else {
6862 throw LoopError . configurationError ( . basalRateSchedule)
6963 }
70- let basalWithOverrides = overrides. apply ( over: basal) { ( value, override) in
71- value * override. settings. effectiveInsulinNeedsScaleFactor
72- }
64+ let basalWithOverrides = overrides. applyBasal ( over: basal)
7365
7466 guard !carbRatio. isEmpty else {
7567 throw LoopError . configurationError ( . carbRatioSchedule)
7668 }
77- let carbRatioWithOverrides = overrides. apply ( over: carbRatio) { ( value, override) in
78- value * override. settings. effectiveInsulinNeedsScaleFactor
79- }
69+ let carbRatioWithOverrides = overrides. applyCarbRatio ( over: carbRatio)
8070
8171 let carbModel : CarbAbsorptionModel = FeatureFlags . nonlinearCarbModelEnabled ? . piecewiseLinear : . linear
8272
8373 // Overlay basal history on basal doses, splitting doses to get amount delivered relative to basal
84- let annotatedDoses = doses. annotated ( with: basal )
74+ let annotatedDoses = doses. annotated ( with: basalWithOverrides )
8575
8676 let insulinEffects = annotatedDoses. glucoseEffects (
87- insulinSensitivityHistory: sensitivity ,
77+ insulinSensitivityHistory: sensitivityWithOverrides ,
8878 from: start. addingTimeInterval ( - CarbMath. maximumAbsorptionTimeInterval) . dateFlooredToTimeInterval ( GlucoseMath . defaultDelta) ,
8979 to: nil )
9080
@@ -94,15 +84,15 @@ extension LoopDataManager {
9484 // Carb Effects
9585 let carbStatus = carbEntries. map (
9686 to: insulinCounteractionEffects,
97- carbRatio: carbRatio ,
98- insulinSensitivity: sensitivity
87+ carbRatio: carbRatioWithOverrides ,
88+ insulinSensitivity: sensitivityWithOverrides
9989 )
10090
10191 let carbEffects = carbStatus. dynamicGlucoseEffects (
10292 from: end,
10393 to: end. addingTimeInterval ( InsulinMath . defaultInsulinActivityDuration) ,
104- carbRatios: carbRatio ,
105- insulinSensitivities: sensitivity ,
94+ carbRatios: carbRatioWithOverrides ,
95+ insulinSensitivities: sensitivityWithOverrides ,
10696 absorptionModel: carbModel. model
10797 )
10898
0 commit comments