diff --git a/LoopFollow/Controllers/Nightscout/Treatments.swift b/LoopFollow/Controllers/Nightscout/Treatments.swift index 8ff20df87..2996c59da 100644 --- a/LoopFollow/Controllers/Nightscout/Treatments.swift +++ b/LoopFollow/Controllers/Nightscout/Treatments.swift @@ -35,6 +35,13 @@ extension MainViewController { // Process and split out treatments to individual tasks func updateTreatments(entries: [[String: AnyObject]]) { + // Deduplicate entries by "id" field (Trio/Loop UUID) + var seenIDs = Set() + let uniqueEntries = entries.filter { entry in + guard let id = entry["id"] as? String else { return true } + return seenIDs.insert(id).inserted + } + var tempBasal: [[String: AnyObject]] = [] var bolus: [[String: AnyObject]] = [] var smb: [[String: AnyObject]] = [] @@ -49,7 +56,7 @@ extension MainViewController { var cgmSensorStart: [sageData] = [] var insulinCartridge: [iageData] = [] - for entry in entries { + for entry in uniqueEntries { guard let eventType = entry["eventType"] as? String else { continue }