Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rce37a70179e1f40711a24d171618c97112be2d4e -r909f86488558085c2ec1f08160759528c9df7d36 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision ce37a70179e1f40711a24d171618c97112be2d4e) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 909f86488558085c2ec1f08160759528c9df7d36) @@ -1286,14 +1286,16 @@ // Check if we are in treatment mode for settings change if ( MODE_TREA == currMode ) { - U32 dialVolume = dialRate * ( (U32)( (F32)presTreatmentTimeSecs / (F32)SEC_PER_MIN ) + 1 ); // In mL + F32 dialVolumeSoFar = (F32)( getTreatmentAvgDialysateFlowRate() * ( treatmentTimeMS / TREATMENT_PERIODIC_DATA_LOG_INTERVAL ) ) / (F32)( ML_PER_LITER * SEC_PER_MIN ); + F32 dialVolumeNowToEnd = (F32)( dialRate * CALC_TREAT_TIME_REMAINING_IN_SECS() ) / (F32)( ML_PER_LITER * SEC_PER_MIN ); + F32 dialVolume = dialVolumeSoFar + dialVolumeNowToEnd; // mL // Validate new rates if ( ( bloodRate >= getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_BLOOD_FLOW ) ) && ( bloodRate <= getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_BLOOD_FLOW ) ) && ( dialRate >= getU32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_DIALYSATE_FLOW ) ) && ( dialRate <= getU32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_DIALYSATE_FLOW ) ) && - ( dialVolume <= MAX_DIALYSATE_VOLUME_ML ) ) + ( dialVolume <= (F32)MAX_DIALYSATE_VOLUME_ML ) ) { result = TRUE; // handle blood pump flow rate change @@ -1545,17 +1547,20 @@ F32 const arterialPres = getFilteredArterialPressure(); F32 const venousPres = getFilteredVenousPressure(); + if ( ( TREATMENT_DIALYSIS_STATE == getTreatmentState() ) && ( getDialysisState() != DIALYSIS_SALINE_BOLUS_STATE ) ) + { + treatmentBloodFlowRateTotal_mL_min += getMeasuredBloodFlowRate(); + treatmentDialysateFlowRateTotal_mL_min += getMeasuredDialInFlowRate(); + treatmentDialysateTempTotal_degree_C += getDialysateTemperature(); + treatmentArterialPressureTotal_mmHg += arterialPres; + treatmentVenousPressureTotal_mmHg += venousPres; + } + lastTreatmentPeriodicDataCollectTimeStamp = treatmentTimeMS; bloodFlowRateSum_mL_min += getMeasuredBloodFlowRate(); dialysateFlowRateSum_mL_min += getMeasuredDialInFlowRate(); arterialPressureSum_mmHg += arterialPres; venousPressureSum_mmHg += venousPres; - - treatmentBloodFlowRateTotal_mL_min += getMeasuredBloodFlowRate(); - treatmentDialysateFlowRateTotal_mL_min += getMeasuredDialInFlowRate(); - treatmentDialysateTempTotal_degree_C += getDialysateTemperature(); - treatmentArterialPressureTotal_mmHg += arterialPres; - treatmentVenousPressureTotal_mmHg += venousPres; } if ( ( timeElapsedSinceLastPublish_ms >= TREATMENT_PERIODIC_DATA_PUB_INTERVAL ) || ( TRUE == sendLastTreatmentPeriodicData ) )