Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -r38a2dea5f58e6124c74137d34081e7250f8fa79b -rba102c1313a02476bbc70e3d02317ebe12861407 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 38a2dea5f58e6124c74137d34081e7250f8fa79b) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision ba102c1313a02476bbc70e3d02317ebe12861407) @@ -964,54 +964,66 @@ ( nvInstRcrd->minBloodFlowMLPM <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_BLOOD_FLOW ].max.uInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxBloodFlowMLPM >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_BLOOD_FLOW ].min.uInt ) && ( nvInstRcrd->maxBloodFlowMLPM <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_BLOOD_FLOW ].max.uInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minBloodFlowMLPM <= nvInstRcrd->maxBloodFlowMLPM ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minDialysateFlowMLPM >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_FLOW ].min.uInt ) && ( nvInstRcrd->minDialysateFlowMLPM <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_FLOW ].max.uInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxDialysateFlowMLPM >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_FLOW ].min.uInt ) && ( nvInstRcrd->maxDialysateFlowMLPM <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_FLOW ].max.uInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minDialysateFlowMLPM <= nvInstRcrd->maxDialysateFlowMLPM ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minTxDurationMIN >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_TREATMENT_DURATION ].min.uInt ) && ( nvInstRcrd->minTxDurationMIN <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_TREATMENT_DURATION ].max.uInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxTxDurationMIN >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_TREATMENT_DURATION ].min.uInt ) && ( nvInstRcrd->maxTxDurationMIN <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_TREATMENT_DURATION ].max.uInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minTxDurationMIN <= nvInstRcrd->maxTxDurationMIN ) ? TRUE : FALSE ); #ifndef _VECTORCAST_ // The heparin stop time has been masked out from VectorCAST because the minimum time is 0 minutes while the variable is a U32 so it cannot be // tested in VectorCAST by setting the minimum to less than 0. result &= ( ( nvInstRcrd->minStopHeparinDispBeforeTxEndMIN >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ].min.uInt ) && ( nvInstRcrd->minStopHeparinDispBeforeTxEndMIN <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ].max.uInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxStopHeparinDispBeforeTxEndMIN >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ].min.uInt ) && ( nvInstRcrd->maxStopHeparinDispBeforeTxEndMIN <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ].max.uInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minStopHeparinDispBeforeTxEndMIN <= nvInstRcrd->maxStopHeparinDispBeforeTxEndMIN ) ? TRUE : FALSE ); #endif result &= ( ( nvInstRcrd->minSalineBolusVolumeML >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_SALINE_BOLUS_VOLUME ].min.uInt ) && ( nvInstRcrd->minSalineBolusVolumeML <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_SALINE_BOLUS_VOLUME ].max.uInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxSalineBolusVolumeML >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_SALINE_BOLUS_VOLUME ].min.uInt ) && ( nvInstRcrd->maxSalineBolusVolumeML <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_SALINE_BOLUS_VOLUME ].max.uInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minSalineBolusVolumeML <= nvInstRcrd->maxSalineBolusVolumeML ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minDialysateTempC >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_TEMPERATURE ].min.sFlt ) && ( nvInstRcrd->minDialysateTempC <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_TEMPERATURE ].max.sFlt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxDialysateTempC >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_TEMPERATURE ].min.sFlt ) && ( nvInstRcrd->maxDialysateTempC <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_DIALYSATE_TEMPERATURE ].max.sFlt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minDialysateTempC <= nvInstRcrd->maxDialysateTempC ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minArtPressLimitWindowMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ].min.sInt ) && ( nvInstRcrd->minArtPressLimitWindowMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ].max.sInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxArtPressLimitWindowMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ].min.sInt ) && ( nvInstRcrd->maxArtPressLimitWindowMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ].max.sInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minArtPressLimitWindowMMHG <= nvInstRcrd->maxArtPressLimitWindowMMHG ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minVenPressLimitWindowMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ].min.sInt ) && ( nvInstRcrd->minVenPressLimitWindowMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ].max.sInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxVenPressLimitWindowMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ].min.sInt ) && ( nvInstRcrd->maxVenPressLimitWindowMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ].max.sInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minVenPressLimitWindowMMHG <= nvInstRcrd->maxVenPressLimitWindowMMHG ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minVenAsymPressLimitMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ].min.sInt ) && ( nvInstRcrd->minVenAsymPressLimitMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ].max.sInt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxVenAsymPressLimitMMHG >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ].min.sInt ) && ( nvInstRcrd->maxVenAsymPressLimitMMHG <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ].max.sInt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minVenAsymPressLimitMMHG <= nvInstRcrd->maxVenAsymPressLimitMMHG ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minUFVolumeL >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_UF_VOLUME ].min.sFlt ) && ( nvInstRcrd->minUFVolumeL <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_UF_VOLUME ].max.sFlt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxUFVolumeL >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_UF_VOLUME ].min.sFlt ) && ( nvInstRcrd->maxUFVolumeL <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_UF_VOLUME ].max.sFlt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minUFVolumeL <= nvInstRcrd->maxUFVolumeL ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minHeparinDispRateMLPHR >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ].min.sFlt ) && ( nvInstRcrd->minHeparinDispRateMLPHR <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ].max.sFlt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxHeparinDispRateMLPHR >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ].min.sFlt ) && ( nvInstRcrd->maxHeparinDispRateMLPHR <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ].max.sFlt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minHeparinDispRateMLPHR <= nvInstRcrd->maxHeparinDispRateMLPHR ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->minHeparinBolusVolumeML >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ].min.sFlt ) && ( nvInstRcrd->minHeparinBolusVolumeML <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ].max.sFlt ) ? TRUE : FALSE ); result &= ( ( nvInstRcrd->maxHeparinBolusVolumeML >= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ].min.sFlt ) && ( nvInstRcrd->maxHeparinBolusVolumeML <= TREAT_PARAMS_PROPERTIES[ TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ].max.sFlt ) ? TRUE : FALSE ); + result &= ( ( nvInstRcrd->minHeparinBolusVolumeML <= nvInstRcrd->maxHeparinBolusVolumeML ) ? TRUE : FALSE ); return result; }