Index: firmware/App/Modes/ModeTreatmentParams.h =================================================================== diff -u -rde169e7374f6c7a737995ac8c6c3953dc5c75aa7 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision de169e7374f6c7a737995ac8c6c3953dc5c75aa7) +++ firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2021 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) Sean Nash -* @date (last) 29-May-2020 +* @date (last) 01-Dec-2020 * * @author (original) Sean Nash * @date (original) 29-May-2020 @@ -32,57 +32,61 @@ // ********** public definitions ********** +#define MIN_PRESSURE_ALARM_LIMIT_DELTA_MMHG ( 30 ) ///< Minimum pressure alarm limit delta (in mmHg) + /// Record structure for a treatment parameters payload. typedef struct { - U32 bloodFlowRate_mL_min; - U32 dialysateFlowRate_mL_min; - U32 treatmentDuration_min; - U32 heparinPreStop_min; - U32 salineBolusVolume_mL; - U32 acidConcentrate; - U32 bicarbConcentrate; - U32 dialyzerType; - U32 bloodPressureMeasurementInterval_min; - U32 rinsebackFlowRate_mL_min; - S32 arterialPressureLowLimit_mmHg; - S32 arterialPressureHighLimit_mmHg; - S32 venousPressureLowLimit_mmHg; - S32 venousPressureHighLimit_mmHg; - F32 heparinDispenseRate_mL_hr; - F32 heparinBolusVolume_mL; - F32 dialysateTemperature_degC; + U32 bloodFlowRate_mL_min; ///< User set blood flow rate (in mL/min) + U32 dialysateFlowRate_mL_min; ///< User set dialysate flow rate (in mL/min) + U32 treatmentDuration_min; ///< User set treatment duration (in min) + U32 heparinPreStop_min; ///< User set heparin pre-stop time (in min) + U32 salineBolusVolume_mL; ///< User set saline bolus volume (in mL) + U32 acidConcentrate; ///< User set acid concentrate option + U32 bicarbConcentrate; ///< User set bicarbonate concentrate option + U32 dialyzerType; ///< User set dialyzer 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) + 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) } TREATMENT_PARAMS_DATA_PAYLOAD_T; /// Record structure for adjustable treatment parameters typedef struct { - U32 bloodFlowRate_mL_min; - U32 dialysateFlowRate_mL_min; - U32 treatmentDuration_min; - S32 arterialPressureLowLimit_mmHg; - S32 arterialPressureHighLimit_mmHg; - S32 venousPressureLowLimit_mmHg; - S32 venousPressureHighLimit_mmHg; - F32 uFVolume_L; + 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 + F32 uFVolume_L; ///< Original ultrafiltration volume (in L) set by user before treatment start } ADJ_TREATMENT_PARAMS_T; -// ********** public function prototypes ********** +// ********** Public function prototypes ********** -void initTreatParamsMode( void ); // initialize this module -void transitionToTreatParamsMode( void ); // prepares for transition to treatment parameters mode -U32 execTreatParamsMode( void ); // execute the treatment parameters mode state machine (call from OperationModes) +void initTreatParamsMode( void ); // initialize this module +void transitionToTreatParamsMode( void ); // prepares for transition to treatment parameters mode +U32 execTreatParamsMode( void ); // execute the treatment parameters mode state machine (call from OperationModes) -BOOL validateAndSetTreatmentParameters( TREATMENT_PARAMS_DATA_PAYLOAD_T params ); // user provided treatment params to be set and validated -BOOL signalUserConfirmationOfTreatmentParameters( void ); // User has confirmed treatment parameters -BOOL signalUserCancelTreatment( void ); // User has cancelled treatment +BOOL validateAndSetTreatmentParameters( TREATMENT_PARAMS_DATA_PAYLOAD_T params ); // user provided treatment params to be set and validated +BOOL signalUserConfirmationOfTreatmentParameters( void ); // User has confirmed treatment parameters +BOOL signalUserRejectionOfTreatmentParameters( void ); // User has rejected treatment parameters +BOOL signalUserCancelTreatment( void ); // User has cancelled treatment -BOOL setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ); // Set a specified unsigned integer treatment parameter value -BOOL setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ); // Set a specified signed integer treatment parameter value -BOOL setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ); // Set a specified floating point treatment parameter value -U32 getTreatmentParameterU32( TREATMENT_PARAM_T param ); // Get a specified unsigned integer treatment parameter -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 setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ); // Set a specified unsigned integer treatment parameter value +BOOL setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ); // Set a specified signed integer treatment parameter value +BOOL setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ); // Set a specified floating point treatment parameter value +U32 getTreatmentParameterU32( TREATMENT_PARAM_T param ); // Get a specified unsigned integer treatment parameter +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 BOOL testSetTreatmentParameter( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ); // Set a specific treatment parameter value