Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -rad4a8d997ddd84013b4a67904a6ecfada5834801 -r0aba18162f271555453e7f9266f990a7c22779a6 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision ad4a8d997ddd84013b4a67904a6ecfada5834801) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 0aba18162f271555453e7f9266f990a7c22779a6) @@ -642,9 +642,8 @@ break; case TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME: - result = ( ( value.uInt >= hdInstitutionalRecord.minStopHeparinDispBeforeTxEndMIN ) && - ( value.uInt <= hdInstitutionalRecord.maxStopHeparinDispBeforeTxEndMIN ) ? TRUE : FALSE ); - result |= ( 0 == value.uInt ? TRUE : FALSE ); // Even if the minimum is not 0, 0 is accepted meaning heparin can be turned off + result = ( ( value.uInt >= hdInstitutionalRecord.minStopHeparinDispBeforeTxEndMIN ) && + ( value.uInt <= hdInstitutionalRecord.maxStopHeparinDispBeforeTxEndMIN ) ? TRUE : FALSE ); break; case TREATMENT_PARAM_SALINE_BOLUS_VOLUME: @@ -1005,12 +1004,15 @@ result = isTreatmentParamInRange( param, integerData ); // Validate parameter - if ( ( param <= TREATMENT_PARAM_LAST_UINT ) && ( TRUE == result ) ) + if ( param <= TREATMENT_PARAM_LAST_UINT ) { - CRITICAL_DATAS_T data = treatmentParameters[ param ].data; + if ( TRUE == result ) + { + CRITICAL_DATAS_T data = treatmentParameters[ param ].data; - data.uInt = value; - result = setCriticalData( &treatmentParameters[ param ], data ); + data.uInt = value; + result = setCriticalData( &treatmentParameters[ param ], data ); + } } else { @@ -1039,12 +1041,15 @@ result = isTreatmentParamInRange( param, unsignedIntData ); // Validate parameter - if ( ( param >= TREATMENT_PARAM_FIRST_INT ) && ( param <= TREATMENT_PARAM_LAST_INT ) && ( TRUE == result ) ) + if ( ( param >= TREATMENT_PARAM_FIRST_INT ) && ( param <= TREATMENT_PARAM_LAST_INT ) ) { - CRITICAL_DATAS_T data = treatmentParameters[ param ].data; + if ( TRUE == result ) + { + CRITICAL_DATAS_T data = treatmentParameters[ param ].data; - data.sInt = value; - result = setCriticalData( &treatmentParameters[ param ], data ); + data.sInt = value; + result = setCriticalData( &treatmentParameters[ param ], data ); + } } else { @@ -1073,12 +1078,15 @@ result = isTreatmentParamInRange( param, floatData ); // Validate parameter - if ( ( param >= TREATMENT_PARAM_FIRST_F32 ) && ( param < NUM_OF_TREATMENT_PARAMS ) && ( TRUE == result ) ) + if ( ( param >= TREATMENT_PARAM_FIRST_F32 ) && ( param < NUM_OF_TREATMENT_PARAMS ) ) { - CRITICAL_DATAS_T data = treatmentParameters[ param ].data; + if ( TRUE == result ) + { + CRITICAL_DATAS_T data = treatmentParameters[ param ].data; - data.sFlt = value; - result = setCriticalData( &treatmentParameters[ param ], data ); + data.sFlt = value; + result = setCriticalData( &treatmentParameters[ param ], data ); + } } else {