浏览代码

handle the case when insulin == 0 for a bolus

Sam King 1 年之前
父节点
当前提交
9d516833ce
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      Trio/Sources/APS/OpenAPSSwift/Iob/IobGenerator.swift

+ 2 - 1
Trio/Sources/APS/OpenAPSSwift/Iob/IobGenerator.swift

@@ -27,7 +27,8 @@ struct IobGenerator {
 
 
         // In Javascript it checks for `started_at` to separate tempBolus
         // In Javascript it checks for `started_at` to separate tempBolus
         // from bolus but we explicitly track tempBolus instead
         // from bolus but we explicitly track tempBolus instead
-        let lastBolusTime = treatments.filter({ $0.insulin != nil && $0.isTempBolus == false }).map(\.timestamp)
+        let lastBolusTime = treatments.filter({ $0.insulin != nil && $0.isTempBolus == false && $0.insulin != 0 })
+            .map(\.timestamp)
             .max() ?? Date(timeIntervalSince1970: 0)
             .max() ?? Date(timeIntervalSince1970: 0)
         let lastTemp = treatments.filter({ $0.rate != nil && ($0.duration ?? 0) > 0 }).sorted(by: { $0.timestamp < $1.timestamp })
         let lastTemp = treatments.filter({ $0.rate != nil && ($0.duration ?? 0) > 0 }).sorted(by: { $0.timestamp < $1.timestamp })
             .last
             .last