Index: firmware/App/Modes/ModeTreatmentParams.h =================================================================== diff -u -rb03a3ed91ebe15cfb419e34018f8fe600e744b4b -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision b03a3ed91ebe15cfb419e34018f8fe600e744b4b) +++ firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 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 ModeTreatmentParams.h * -* @author (last) Behrouz NematiPour -* @date (last) 09-Dec-2021 +* @author (last) Sean Nash +* @date (last) 05-Oct-2023 * * @author (original) Sean Nash * @date (original) 29-May-2020 @@ -33,7 +33,8 @@ // ********** public definitions ********** #define MIN_PRESSURE_ALARM_LIMIT_DELTA_MMHG ( 30 ) ///< Minimum pressure alarm limit delta (in mmHg) -#define MAX_UF_RATE_ML_MIN ( 2500.01 / (F32)MIN_PER_HOUR ) ///< Maximum ultrafiltration rate (in mL/min). Added small decimal to prevent float round off issues. +#define MAX_UF_RATE_ML_MIN ( 2000.01F / (F32)MIN_PER_HOUR ) ///< Maximum ultrafiltration rate (in mL/min). Added small decimal to prevent float round off issues. +#define MIN_UF_RATE_ML_MIN ( 0.0F ) ///< Minimum ultrafiltration rate (in mL/min). #define MAX_UF_VOLUME_ML ( 8 * ML_PER_LITER ) ///< Maximum ultrafiltration volume (in mL). /// Record structure for a treatment parameters payload. @@ -50,10 +51,9 @@ U32 heparinType; ///< User set heparin type option U32 bloodPressureMeasurementInterval_min; ///< User set blood pressure measurement interval (in min) U32 rinsebackFlowRate_mL_min; ///< User set rinseback flow rate (in mL/min) - S32 arterialPressureLowLimit_mmHg; ///< User set lower alarm limit for arterial pressure (in mmHg) - S32 arterialPressureHighLimit_mmHg; ///< User set upper alarm limit for arterial pressure (in mmHg) - S32 venousPressureLowLimit_mmHg; ///< User set lower alarm limit for venous pressure (in mmHg) - S32 venousPressureHighLimit_mmHg; ///< User set upper alarm limit for venous pressure (in mmHg) + S32 arterialPressureLimitWindow_mmHg; ///< User set alarm limit window for arterial pressure (in mmHg) + S32 venousPressureLimitWindow_mmHg; ///< User set alarm limit window for venous pressure (in mmHg) + S32 venousPressureLimitAsymmetric_mmHg; ///< User set alarm limit asymmetric for venous pressure (in mmHg) F32 heparinDispenseRate_mL_hr; ///< User set heparin dispense rate (in mL/hr) F32 heparinBolusVolume_mL; ///< User set heparin bolus volume (in mL) F32 dialysateTemperature_degC; ///< User set dialysate temperature (in deg C) @@ -65,13 +65,23 @@ U32 bloodFlowRate_mL_min; ///< Original blood flow rate (in mL/min) set by user before treatment start U32 dialysateFlowRate_mL_min; ///< Original dialysate flow rate (in mL/min) set by user before treatment start U32 treatmentDuration_min; ///< Original treatment duration (in min) set by user before treatment start - S32 arterialPressureLowLimit_mmHg; ///< Original lower alarm limit for arterial pressure (in mmHg) set by user before treatment start - S32 arterialPressureHighLimit_mmHg; ///< Original upper alarm limit for arterial pressure (in mmHg) set by user before treatment start - S32 venousPressureLowLimit_mmHg; ///< Original lower alarm limit for venous pressure (in mmHg) set by user before treatment start - S32 venousPressureHighLimit_mmHg; ///< Original upper alarm limit for venous pressure (in mmHg) set by user before treatment start + S32 arterialPressureLimitWindow_mmHg; ///< Original alarm limit window for arterial pressure (in mmHg) set by user before treatment start + S32 venousPressureLimitWindow_mmHg; ///< Original alarm limit window for venous pressure (in mmHg) set by user before treatment start + S32 venousPressureLimitAsymmetric_mmHg; ///< Original alarm limit asymmetric for venous pressure (in mmHg) set by user before treatment start F32 uFVolume_L; ///< Original ultrafiltration volume (in L) set by user before treatment start } ADJ_TREATMENT_PARAMS_T; + +/// Record structure for current treatment parameters +typedef struct +{ + U32 accepted; ///< Accepted or rejected based on if critical data has been set. + TREATMENT_PARAMS_DATA_PAYLOAD_T treatment_parameters; ///< Record structure of treatment parameters + F32 uFVolume_L; ///< Current ultrafiltration volume (in L). + +} CURRENT_TREATMENT_PARAMS_DATA_PAYLOAD_T; + + // ********** Public function prototypes ********** void initTreatParamsMode( void ); // Initialize this module @@ -93,10 +103,13 @@ S32 getTreatmentParameterS32( TREATMENT_PARAM_T param ); // Get a specified signed integer treatment parameter F32 getTreatmentParameterF32( TREATMENT_PARAM_T param ); // Get a specified floating point treatment parameter BOOL isTreatmentParamInRange( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ); // Check range for a proposed treatment parameter value +S32 getS32TreatmentParamLowerRangeLimit( TREATMENT_PARAM_T param ); // Get the lower range limit for a signed integer treatment parameter +S32 getS32TreatmentParamUpperRangeLimit( TREATMENT_PARAM_T param ); // Get the upper range limit for a signed integer treatment parameter F32 getUltrafiltrationVolumeOriginal( void ); // Get the original ultrafiltration volume, set in pre-treatment mode by user. F32 getUltrafiltrationRateOriginal( void ); // Get/calculate the original ultrafiltration rate, by ultrafiltration volume and treatment duration set in pre-treatment mode by user. BOOL testSetTreatmentParameter( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ); // Set a specific treatment parameter value +BOOL testSendCurrentTreatmentParameters(); // Update current treatment parameters /**@}*/