Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r9353792f6dbd624a1d55cf1e87fa848e8fbaea71 -r59ba490fab6349216bafef4c8438b1b97aaaddcd --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 9353792f6dbd624a1d55cf1e87fa848e8fbaea71) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 59ba490fab6349216bafef4c8438b1b97aaaddcd) @@ -933,8 +933,17 @@ { TREATMENT_STATE_T result = TREATMENT_RECIRC_STATE; - // Execute treatment re-circ sub-mode - execTreatmentRecirc(); + // If user requests treatment end, end treatment + if ( TRUE == endTreatmentAlarmResponseRequest ) + { + sendLastTreatmentPeriodicData = TRUE; + requestNewOperationMode( MODE_POST ); + } + else + { + // Execute treatment re-circ sub-mode + execTreatmentRecirc(); + } // Handle signals from treatment re-circ sub-mode if ( TRUE == rinsebackToStoppedRequest ) Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r9353792f6dbd624a1d55cf1e87fa848e8fbaea71 -r59ba490fab6349216bafef4c8438b1b97aaaddcd --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 9353792f6dbd624a1d55cf1e87fa848e8fbaea71) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 59ba490fab6349216bafef4c8438b1b97aaaddcd) @@ -282,12 +282,6 @@ rinsebackTimerCtr++; - // Check for user confirmation of end treatment - if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) - { - endTreatmentRequested = TRUE; - } - switch ( rinsebackState ) { case RINSEBACK_STOP_INIT_STATE: @@ -484,6 +478,10 @@ setupForRinsebackDelivery( rinsebackRate_mL_min ); result = RINSEBACK_RUN_STATE; } + else if ( TRUE == endTreatmentRequested ) + { + signalEndTreatment(); + } // Has user requested to end rinseback? else if ( TRUE == endRinsebackRequested ) { Index: firmware/App/Modes/TreatmentEnd.c =================================================================== diff -u -r4f3b9e168915ab13dfcdc74462d7142115cc2d57 -r59ba490fab6349216bafef4c8438b1b97aaaddcd --- firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 4f3b9e168915ab13dfcdc74462d7142115cc2d57) +++ firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 59ba490fab6349216bafef4c8438b1b97aaaddcd) @@ -189,12 +189,6 @@ txEndTimerCtr++; - // Check for user confirmation of end treatment - if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) - { - txEndAlarmEndTreatmentRequested = TRUE; - } - switch ( treatmentEndState ) { case TREATMENT_END_WAIT_FOR_RINSEBACK_STATE: @@ -362,8 +356,7 @@ *************************************************************************/ void signalTreatmentEndAlarmEndTxUserAction( void ) { - // Send message to UI to get user confirmation to end treatment - action initiated only upon receipt of user confirmation from UI - addConfirmationRequest( GENERIC_CONFIRM_ID_TREATMENT_END, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0 ); + txEndAlarmEndTreatmentRequested = TRUE; } /*********************************************************************//** Index: firmware/App/Modes/TreatmentRecirc.c =================================================================== diff -u -r38355442b06187fe5d57deca647b3adf2fa26b89 -r59ba490fab6349216bafef4c8438b1b97aaaddcd --- firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 38355442b06187fe5d57deca647b3adf2fa26b89) +++ firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 59ba490fab6349216bafef4c8438b1b97aaaddcd) @@ -190,12 +190,6 @@ // Count time in this sub-mode recircTimerCtr++; - // Check for user confirmation of end treatment - if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) - { - recircEndTreatmentRequested = TRUE; - } - switch ( treatmentRecircState ) { case TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE: