Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rea0ed778cde80abbb042a8a0a8ef56b3a434dfb2 -r90d3a2eb18cc8282c0c68a23e39677327448781a --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision ea0ed778cde80abbb042a8a0a8ef56b3a434dfb2) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 90d3a2eb18cc8282c0c68a23e39677327448781a) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2022 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ModePostTreat.c * -* @author (last) Quang Nguyen -* @date (last) 24-Aug-2021 +* @author (last) Behrouz NematiPour +* @date (last) 04-Jan-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -116,9 +116,9 @@ * post-treatment mode. * @details Inputs: none * @details Outputs: none - * @return none + * @return initial state *************************************************************************/ -void transitionToPostTreatmentMode( void ) +U32 transitionToPostTreatmentMode( void ) { initPostTreatmentMode(); @@ -144,6 +144,8 @@ signalDialInPumpHardStop(); collectTreatmentLogData(); + + return currentPostTreatmentState; } /*********************************************************************//** @@ -227,8 +229,13 @@ treatmentLogData.dialysateVolumeUsed_L = treatmentLogData.avgDialysateFlow_mL_min * treatmentLogData.actualTreatmentDur_sec / ( ML_PER_LITER * SEC_PER_MIN ); treatmentLogData.avgDialysateTemperature_degC = getTreatmentAvgDialysateTemp(); + // original UF Volume/Rate + treatmentLogData.originUFVolume_L = getUltrafiltrationVolumeOriginal(); + treatmentLogData.originUFRate_mL_min = getUltrafiltrationRateOriginal(); + // Target UF Volume/Rate treatmentLogData.targetUFVolume_L = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); - treatmentLogData.targetUFRate_mL_min = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ) * ML_PER_LITER * SEC_PER_MIN / treatmentLogData.treatmentDuration_sec; + treatmentLogData.targetUFRate_mL_min = ( ( treatmentLogData.targetUFVolume_L * ML_PER_LITER * SEC_PER_MIN ) / treatmentLogData.treatmentDuration_sec ); + // Actual UF Volume/Rate if ( treatmentLogData.actualTreatmentDur_sec > 0 ) { treatmentLogData.actualUFVolume_L = getUltrafiltrationVolumeCollected() / ML_PER_LITER; @@ -246,6 +253,7 @@ treatmentLogData.heparinDispenseRate_mL_hr = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE ); treatmentLogData.heparinPreStop_min = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME ); treatmentLogData.heparinDeliveredVolume_mL = getSyringePumpVolumeDelivered(); + treatmentLogData.heparinType = getTreatmentParameterU32( TREATMENT_PARAM_HEPARIN_TYPE ); treatmentLogData.avgArterialPressure_mmHg = getTreatmentAvgArterialPressure(); treatmentLogData.avgVenousPressure_mmHg = getTreatmentAvgVenousPressure(); @@ -359,7 +367,10 @@ if ( STATE_CLOSED == getFPGADoorState() ) { #ifdef SKIP_UI_INTERACTION - patientDisconnectionConfirmed = TRUE; + //if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_UI_INTERACTION ) != SW_CONFIG_ENABLE_VALUE ) + { + patientDisconnectionConfirmed = TRUE; + } #endif if ( TRUE == patientDisconnectionConfirmed ) { @@ -402,7 +413,10 @@ HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE; #ifdef SKIP_UI_INTERACTION - disposableRemovalConfirmed = TRUE; + //if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_UI_INTERACTION ) != SW_CONFIG_ENABLE_VALUE ) + { + disposableRemovalConfirmed = TRUE; + } #endif if ( TRUE == disposableRemovalConfirmed )