Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rf5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc -r93b33e09cf47fabffc3cf93d8693c2b445a90402 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision f5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 93b33e09cf47fabffc3cf93d8693c2b445a90402) @@ -1024,11 +1024,14 @@ ( CALC_ELAPSED_TREAT_TIME_IN_MIN() < treatmentTime ) && ( treatmentTime >= getMinTreatmentTimeInMinutes() ) ) { F32 uFVolume; - U32 dialVolume = getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ) * treatmentTime; // In mL + U32 dialVolume = getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ) * treatmentTime; // In mL + // The minimum treatment time is either in the range of the institutional record or the 1-minute treatment config has been requested which is an exception + BOOL isMinTxTimeValid = ( ( treatmentTime >= getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_TREATMENT_DURATION ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_ONE_MINUTE_TREATMENT ) ) ? TRUE : FALSE ); // Always adjust UF volume to accommodate treatment time change (not UF rate) uFVolume = ( (F32)( treatmentTime - CALC_ELAPSED_TREAT_TIME_IN_MIN() ) * presUFRate ) + getUltrafiltrationReferenceVolume(); - if ( ( treatmentTime >= getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_TREATMENT_DURATION ) ) && + if ( ( TRUE == isMinTxTimeValid ) && ( treatmentTime <= getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_TREATMENT_DURATION ) ) && ( dialVolume <= MAX_DIALYSATE_VOLUME_ML ) && ( uFVolume <= MAX_UF_VOLUME_ML ) )