Index: firmware/App/Modes/ModeTreatmentParams.h =================================================================== diff -u -rd91a24c730aeb5cd7e3eba9ef4eca78e442911f8 -rb01542f8e4ef5a29e9b08fc0d465478de516bf02 --- firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision d91a24c730aeb5cd7e3eba9ef4eca78e442911f8) +++ firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision b01542f8e4ef5a29e9b08fc0d465478de516bf02) @@ -7,8 +7,8 @@ * * @file ModeTreatmentParams.h * -* @author (last) Sean Nash -* @date (last) 02-Sep-2020 +* @author (last) Dara Navaei +* @date (last) 05-Oct-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