Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r29465f0a7433debfde4f11acee16d2cd0d40bc42 -r83464d0f103745e998abdb187c9f52532b783647 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 29465f0a7433debfde4f11acee16d2cd0d40bc42) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 83464d0f103745e998abdb187c9f52532b783647) @@ -648,6 +648,8 @@ *************************************************************************/ BOOL startHeparinBolus( void ) { + F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); + // If valid to start a bolus, kick it off if ( FALSE == isSyringePumpHome() ) { @@ -658,8 +660,12 @@ if ( ( TRUE == isSyringeDetected() ) && ( TRUE == syringePumpPrimeCompleted ) && ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && ( HEPARIN_STATE_STOPPED == heparinDeliveryState ) ) { - syringePumpSetRate = getHeprinBolusTargetRate(); - syringePumpBolusRequested = TRUE; + // if user set a Heparin bolus volume and not complete, start now + if ( ( bolusVol > 0.0F ) && ( getSyringePumpVolumeDelivered() < bolusVol ) ) + { + syringePumpSetRate = getHeprinBolusTargetRate(); + syringePumpBolusRequested = TRUE; + } } } else