Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r3fa496b611a3a84c8aaa882a1b27762c6bc0024c -r03efe69734fc9539f4198ddba6f93614ea08ea7c --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 3fa496b611a3a84c8aaa882a1b27762c6bc0024c) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 03efe69734fc9539f4198ddba6f93614ea08ea7c) @@ -645,6 +645,8 @@ *************************************************************************/ BOOL startHeparinBolus( void ) { + F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); + // If valid to start a bolus, kick it off if ( FALSE == isSyringePumpHome() ) { @@ -655,8 +657,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 Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r3fa496b611a3a84c8aaa882a1b27762c6bc0024c -r03efe69734fc9539f4198ddba6f93614ea08ea7c --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 3fa496b611a3a84c8aaa882a1b27762c6bc0024c) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 03efe69734fc9539f4198ddba6f93614ea08ea7c) @@ -820,6 +820,7 @@ // Hard stop the pumps so they will ramp up from zero together on resume signalDialInPumpHardStop(); signalDialOutPumpHardStop(); + startHeparinBolus(); // Function will only start bolus if necessary if ( TRUE == getBloodIsPrimed() ) { Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r3fa496b611a3a84c8aaa882a1b27762c6bc0024c -r03efe69734fc9539f4198ddba6f93614ea08ea7c --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 3fa496b611a3a84c8aaa882a1b27762c6bc0024c) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 03efe69734fc9539f4198ddba6f93614ea08ea7c) @@ -1682,11 +1682,7 @@ setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); - // if user set a Heparin bolus volume, request bolus to be initiated now - if ( ( bolusVol > 0.0F ) && ( getSyringePumpVolumeDelivered() < bolusVol ) ) - { - startHeparinBolus(); // moved here from startHeparinPump() in Dialysis.c - } + startHeparinBolus(); // Function will only start bolus if necessary if ( TRUE == doesAlarmStatusIndicateStop() ) { @@ -2217,6 +2213,7 @@ selfTestStartTime = getMSTimerCount(); doorClosedRequired( TRUE, TRUE ); selfTestsResumeRequested = FALSE; + startHeparinBolus(); // Function will only start bolus if necessary switch( checkpointWetSelfTestsState ) {