Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -raffb34c0722058c3e1ac79c2882c925ee7de49d6 -r5153afc318dad6b9a469aaba20b8746994f5c70d --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision affb34c0722058c3e1ac79c2882c925ee7de49d6) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 5153afc318dad6b9a469aaba20b8746994f5c70d) @@ -236,6 +236,9 @@ treatmentLogData.heparinPreStop_min = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ); treatmentLogData.heparinDeliveredVolume_mL = getSyringePumpVolumeDelivered(); + treatmentLogData.avgArterialPressure_mmHg = getTreatmentAvgArterialPressure(); + treatmentLogData.avgVenousPressure_mmHg = getTreatmentAvgVenousPressure(); + treatmentLogData.waterSampleTestResult = (U32)getSampleWaterResult(); } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r6f2218c22e666aec059afbd60f3d0d268b305ad0 -r5153afc318dad6b9a469aaba20b8746994f5c70d --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 6f2218c22e666aec059afbd60f3d0d268b305ad0) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 5153afc318dad6b9a469aaba20b8746994f5c70d) @@ -117,6 +117,8 @@ static F32 treatmentBloodFlowRateTotal_mL_min; ///< Blood flow rate total per treatment logged every second. static F32 treatmentDialysateFlowRateTotal_mL_min; ///< Dialysate flow rate total per treatment logged every second. static F32 treatmentDialysateTempTotal_degree_C; ///< Dialysate temperature total per treatment logged every second. +static F32 treatmentArterialPressureTotal_mmHg; ///< Arterial pressure total per treatment logged every second. +static F32 treatmentVenousPressureTotal_mmHg; ///< Venous pressure total per treatment logged every second. static BOOL sendLastTreatmentPeriodicData; ///< Flag determines if HD needs to send the last treatment periodic data. static U32 treatmentStartTimeStamp; ///< Treatment start timestampt for logging purpose. @@ -181,6 +183,8 @@ treatmentBloodFlowRateTotal_mL_min = 0.0; treatmentDialysateFlowRateTotal_mL_min = 0.0; treatmentDialysateTempTotal_degree_C = 0.0; + treatmentArterialPressureTotal_mmHg = 0.0; + treatmentVenousPressureTotal_mmHg = 0.0; sendLastTreatmentPeriodicData = FALSE; treatmentStartTimeStamp = getRTCTimestamp(); @@ -414,6 +418,48 @@ /*********************************************************************//** * @brief + * The getTreatmentAvgArterialPressure function returns the average arterial + * pressure collected through out the treatment. + * @details Inputs: treatmentTimeMS, treatmentArterialPressureTotal_mmHg + * @details Outputs: none + * @return the average arterial pressure + *************************************************************************/ +F32 getTreatmentAvgArterialPressure( void ) +{ + U32 const numberOfDataPoint = ( treatmentTimeMS / TREATMENT_PERIODIC_DATA_LOG_INTERVAL ); + F32 result = 0.0; + + if ( numberOfDataPoint > 0 ) + { + result = ( treatmentArterialPressureTotal_mmHg / numberOfDataPoint ); + } + + return result; +} + +/*********************************************************************//** + * @brief + * The getTreatmentAvgVenousPressure function returns the average venous + * pressure collected through out the treatment. + * @details Inputs: treatmentTimeMS, treatmentVenousPressureTotal_mmHg + * @details Outputs: none + * @return the average venous pressure + *************************************************************************/ +F32 getTreatmentAvgVenousPressure( void ) +{ + U32 const numberOfDataPoint = ( treatmentTimeMS / TREATMENT_PERIODIC_DATA_LOG_INTERVAL ); + F32 result = 0.0; + + if ( numberOfDataPoint > 0 ) + { + result = ( treatmentVenousPressureTotal_mmHg / numberOfDataPoint ); + } + + return result; +} + +/*********************************************************************//** + * @brief * The getTreatmentStartTimeStamp function returns the treatment start * time stamp. * @details Inputs: treatmentStartTimeStamp @@ -1391,15 +1437,20 @@ if ( timeElapsedSinceLastCollect_ms >= TREATMENT_PERIODIC_DATA_LOG_INTERVAL ) { + F32 const arterialPres = getMeasuredArterialPressure(); + F32 const venousPres = getMeasuredArterialPressure(); + lastTreatmentPeriodicDataCollectTimeStamp = treatmentTimeMS; bloodFlowRateSum_mL_min += getMeasuredBloodFlowRate(); dialysateFlowRateSum_mL_min += getMeasuredDialInFlowRate(); - arterialPressureSum_mmHg += getMeasuredArterialPressure(); - venousPressureSum_mmHg += getMeasuredVenousPressure(); + 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 ) ) Index: firmware/App/Modes/ModeTreatment.h =================================================================== diff -u -r6f2218c22e666aec059afbd60f3d0d268b305ad0 -r5153afc318dad6b9a469aaba20b8746994f5c70d --- firmware/App/Modes/ModeTreatment.h (.../ModeTreatment.h) (revision 6f2218c22e666aec059afbd60f3d0d268b305ad0) +++ firmware/App/Modes/ModeTreatment.h (.../ModeTreatment.h) (revision 5153afc318dad6b9a469aaba20b8746994f5c70d) @@ -111,9 +111,13 @@ void setRinsebackIsCompleted( BOOL flag ); // Set whether a rinseback has been completed (T blocks rinseback option) BOOL getBloodIsPrimed( void ); // Determine whether the blood-side circuit of the dialyzer has been primed with blood void setBloodIsPrimed( BOOL flag ); // Set whether the blood-side circuit of the dialyzer has been primed with blood (F causes Tx start/resume to do blood prime first) -F32 getTreatmentAvgBloodFlowRate( void ); // Get the treatment average blood flow rate during treatment -F32 getTreatmentAvgDialysateFlowRate( void ); // Get the treatment average dialysate flow rate during treatment -F32 getTreatmentAvgDialysateTemp( void ); // Get the treatment average dialysate temperature during treatment + +F32 getTreatmentAvgBloodFlowRate( void ); // Get the average blood flow rate during treatment +F32 getTreatmentAvgDialysateFlowRate( void ); // Get the average dialysate flow rate during treatment +F32 getTreatmentAvgDialysateTemp( void ); // Get the average dialysate temperature during treatment +F32 getTreatmentAvgArterialPressure( void ); // Get the average arterial pressure during treatment +F32 getTreatmentAvgVenousPressure( void ); // Get the average venous pressure during treatment + U32 getTreatmentStartTimeStamp( void ); // Get the treatment start time stamp U32 getTreatmentEndTimeStamp( void ); // Get the treatment end time stamp