Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rbac52336ea9e23fc2dfb4a802afe49401dfb7057 -r828b61602a3c64b4a4ae9eb2bbbf7be77ceac54c --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision bac52336ea9e23fc2dfb4a802afe49401dfb7057) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 828b61602a3c64b4a4ae9eb2bbbf7be77ceac54c) @@ -788,10 +788,22 @@ U32 msSinceLast = calcTimeBetween( lastTreatmentTimeStamp, newTime ); DIALYSIS_STATE_T dialysisState = getDialysisState(); - // Update treatment time (unless delivering a saline bolus or is in blood leak zeroing state) - if ( ( dialysisState != DIALYSIS_SALINE_BOLUS_STATE ) && ( dialysisState != DIALYSIS_BLOOD_LEAK_ZEROING_STATE ) ) + // Update treatment time (unless delivering a saline bolus or is in blood leak zeroing state other than flush reservoir to DPi state) + switch ( dialysisState ) { - treatmentTimeMS += msSinceLast; + case DIALYSIS_START_STATE: + case DIALYSIS_UF_STATE: + treatmentTimeMS += msSinceLast; + break; + case DIALYSIS_BLOOD_LEAK_ZEROING_STATE: + if ( BLD_ZEROING_FLUSH_RSRVR_2_DPI_STATE == getBloodLeakZeroingState() ) + { + treatmentTimeMS += msSinceLast; + } + + default: + // Do not accumulate time + break; } lastTreatmentTimeStamp = newTime;