Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r9e43275cfdf3f60042d69d9cbbfc6d74142fa5e5 -ra98f9ee6b2314f8d98764222a580a896840815f1 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 9e43275cfdf3f60042d69d9cbbfc6d74142fa5e5) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision a98f9ee6b2314f8d98764222a580a896840815f1) @@ -396,7 +396,7 @@ if ( MODE_TREA == getCurrentOperationMode() ) { - if ( ( TREATMENT_DIALYSIS_STATE == getTreatmentState() ) && ( getDialysisState() != DIALYSIS_SALINE_BOLUS_STATE ) ) + if ( ( TREATMENT_DIALYSIS_STATE == getTreatmentState() ) && ( getTreatmentState() != TREATMENT_SALINE_BOLUS_STATE ) ) { if ( HEPARIN_CMD_PAUSE == cmd ) { @@ -569,10 +569,14 @@ heparinDeliveryState = HEPARIN_STATE_STOPPED; } if ( ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && - ( TRUE == syringePumpPositionKnown ) && ( heparinDeliveryState != HEPARIN_STATE_OFF ) ) + ( TRUE == syringePumpPositionKnown ) ) { - syringePumpSetRate = SYRINGE_PUMP_SEEK_RATE; - syringePumpPreloadRequested = TRUE; + if( ( heparinDeliveryState != HEPARIN_STATE_OFF ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_SYRINGE_PUMP_TESTING ) ) ) + { + syringePumpSetRate = SYRINGE_PUMP_SEEK_RATE; + syringePumpPreloadRequested = TRUE; + } } return syringePumpPreloadRequested; @@ -592,10 +596,14 @@ heparinDeliveryState = HEPARIN_STATE_STOPPED; } if ( ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && ( TRUE == isSyringeDetected() ) && - ( TRUE == syringePumpPositionKnown ) && ( heparinDeliveryState != HEPARIN_STATE_OFF ) ) + ( TRUE == syringePumpPositionKnown ) ) { - syringePumpSetRate = SYRINGE_PUMP_SEEK_RATE; - syringePumpSeekRequested = TRUE; + if ( ( heparinDeliveryState != HEPARIN_STATE_OFF ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_SYRINGE_PUMP_TESTING ) ) ) + { + syringePumpSetRate = SYRINGE_PUMP_SEEK_RATE; + syringePumpSeekRequested = TRUE; + } } return syringePumpSeekRequested; @@ -615,12 +623,16 @@ heparinDeliveryState = HEPARIN_STATE_STOPPED; } if ( ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && ( TRUE == isSyringeDetected() ) && - ( heparinDeliveryState != HEPARIN_STATE_OFF ) && ( TRUE == syringePumpPlungerFound ) ) + ( TRUE == syringePumpPositionKnown ) ) { - forceAtEndOfSeek = getSyringePumpForceV(); // Get the force sensor reading when syringe pump prime has been requested (after seek) - syringePumpSetRate = SYRINGE_PUMP_PRIME_RATE; - syringePumpPrimeRequested = TRUE; - resetHeparinVolumeDelivered(); + if ( ( ( heparinDeliveryState != HEPARIN_STATE_OFF ) && ( TRUE == syringePumpPlungerFound ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_SYRINGE_PUMP_TESTING ) ) ) + { + forceAtEndOfSeek = getSyringePumpForceV(); // Get the force sensor reading when syringe pump prime has been requested (after seek) + syringePumpSetRate = SYRINGE_PUMP_PRIME_RATE; + syringePumpPrimeRequested = TRUE; + resetHeparinVolumeDelivered(); + } } return syringePumpPrimeRequested; @@ -659,14 +671,17 @@ { heparinDeliveryState = HEPARIN_STATE_STOPPED; } - if ( ( TRUE == isSyringeDetected() ) && ( TRUE == syringePumpPrimeCompleted ) && - ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && ( HEPARIN_STATE_STOPPED == heparinDeliveryState ) ) + if ( ( TRUE == isSyringeDetected() ) && ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) ) { - // if user set a Heparin bolus volume and not complete, start now - if ( ( bolusVol > 0.0F ) && ( getSyringePumpVolumeDelivered() < bolusVol ) ) + if ( ( ( TRUE == syringePumpPrimeCompleted ) && ( HEPARIN_STATE_STOPPED == heparinDeliveryState ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_SYRINGE_PUMP_TESTING ) ) ) { - 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; + } } } } @@ -700,11 +715,14 @@ { heparinDeliveryState = HEPARIN_STATE_STOPPED; } - if ( ( TRUE == isSyringeDetected() ) && ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) && - ( ( HEPARIN_STATE_STOPPED == heparinDeliveryState ) || ( HEPARIN_STATE_PAUSED == heparinDeliveryState ) ) ) + if ( ( TRUE == isSyringeDetected() ) && ( SYRINGE_PUMP_OFF_STATE == syringePumpState ) ) { - syringePumpSetRate = flowRate; - syringePumpContinuousRequested = TRUE; + if( ( ( HEPARIN_STATE_STOPPED == heparinDeliveryState ) || ( HEPARIN_STATE_PAUSED == heparinDeliveryState ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_SYRINGE_PUMP_TESTING ) ) ) + { + syringePumpSetRate = flowRate; + syringePumpContinuousRequested = TRUE; + } } } else @@ -1494,7 +1512,7 @@ S32 pos = getSyringePumpPosition(); F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); F32 contRate = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); - U32 preStop = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ); + U32 preStop = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_STOP_TIME ); U32 setTxDur = getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); F32 hepDurHr = ( (F32)( setTxDur - preStop ) / (F32)MIN_PER_HOUR ); F32 txVolumeReq = SYRINGE_PUMP_PRIME_VOLUME_ML + bolusVol + ( hepDurHr * contRate ); @@ -1550,7 +1568,7 @@ S32 pos = getSyringePumpPosition(); F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); F32 contRate = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); - U32 preStop = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ); + U32 preStop = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_STOP_TIME ); U32 setTxDur = getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); F32 hepDurHr = ( (F32)( setTxDur - preStop ) / (F32)MIN_PER_HOUR ); F32 txVolume = SYRINGE_PUMP_PRIME_VOLUME_ML + bolusVol + ( hepDurHr * contRate ); @@ -2238,9 +2256,11 @@ { BOOL result; UI_RESPONSE_PAYLOAD_T payload; + payload.accepted = accepted; payload.rejectionReason = rejReason; result = sendMessage( MSG_ID_TD_HEPARIN_PAUSE_RESUME_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&payload), sizeof( UI_RESPONSE_PAYLOAD_T ) ); + return result; }