Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -rf760ffc4b10556e5186e9ceb90294262063440ca -rdab84d4ac15ba54bb02784c5e359cdc527e9ed05 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision f760ffc4b10556e5186e9ceb90294262063440ca) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision dab84d4ac15ba54bb02784c5e359cdc527e9ed05) @@ -38,6 +38,8 @@ #define MAX_DIALYSATE_VOLUME_ML ( 150 * ML_PER_LITER ) ///< Maximum dialysate volume (in mL) +#define NO_HEPARIN_PRE_STOP_TIME_SET 0 ///< Zero value indicates no Heparin pre-stop time was set by user + /// Record for range and default of treatment parameters. typedef struct { @@ -570,6 +572,15 @@ result = FALSE; } + // Check Heparin pre-stop vs. no Heparin delivery + if ( ( stagedParams[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ].uInt > NO_HEPARIN_PRE_STOP_TIME_SET ) && + ( stagedParams[ TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ].sFlt < NEARLY_ZERO ) && + ( stagedParams[ TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ].sFlt < NEARLY_ZERO ) ) + { + reasons[ TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ] = REQUEST_REJECT_REASON_HEPARIN_PRESTOP_WITH_NO_DISPENSE; + result = FALSE; + } + // Check arterial alarm limits dependency if ( arterialPresLimitDelta < MIN_PRESSURE_ALARM_LIMIT_DELTA_MMHG ) {