/************************************************************************** * * Copyright (c) 2019-2020 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 * * @author (original) Sean Nash * @date (original) 29-May-2020 * ***************************************************************************/ #ifndef __MODE_OP_PARAMS_H__ #define __MODE_OP_PARAMS_H__ #include "HDCommon.h" #include "HDDefs.h" /** * @defgroup HDTreatmentParamsMode HDTreatmentParamsMode * @brief Treatment parameters mode module. * * @addtogroup HDTreatmentParamsMode * @{ */ // ********** private definitions ********** /// Enumeration of treatment parameters. typedef enum Treatment_Params { TREATMENT_PARAM_BLOOD_FLOW = 0, ///< Blood flow rate (in mL/min) TREATMENT_PARAM_FIRST_U32 = TREATMENT_PARAM_BLOOD_FLOW, ///< First integer treatment parameter TREATMENT_PARAM_DIALYSATE_FLOW, ///< Dialysate flow rate (in mL/min) TREATMENT_PARAM_TREATMENT_DURATION, ///< Treatment duration (in minutes) TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME, ///< Heparin pre-stop time (in minutes) TREATMENT_PARAM_SALINE_BOLUS_VOLUME, ///< Saline bolus volume (in mL) TREATMENT_PARAM_ACID_CONCENTRATE, ///< Acid concentrate type (enum) TREATMENT_PARAM_BICARB_CONCENTRATE, ///< Bicarbonate concentrate type (enum) TREATMENT_PARAM_DIALYZER_TYPE, ///< Dialysate type (enum) TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT, ///< Arterial pressure low alarm limit (in mmHg) TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT, ///< Arterial pressure high alarm limit (in mmHg) TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT, ///< Venous pressure low alarm limit (in mmHg) TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT, ///< Venous pressure high alarm limit (in mmHg) TREATMENT_PARAM_BP_MEAS_INTERVAL, ///< Blood pressure measurement interval (in minutes) TREATMENT_PARAM_RINSEBACK_FLOW_RATE, ///< Rinseback flow rate (in mL/min) TREATMENT_PARAM_LAST_U32 = TREATMENT_PARAM_RINSEBACK_FLOW_RATE, ///< Last integer treatment parameter TREATMENT_PARAM_HEPARIN_DISPENSE_RATE, ///< Heparin dispense rate (in mL/hr) TREATMENT_PARAM_FIRST_F32 = TREATMENT_PARAM_HEPARIN_DISPENSE_RATE, ///< First floating point treatment parameter TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME, ///< Heparin bolus volume (in mL) TREATMENT_PARAM_DIALYSATE_TEMPERATURE, ///< Dialysate temperature (in degC) TREATMENT_PARAM_UF_VOLUME, ///< Ultrafiltration volume (in liters) NUM_OF_TREATMENT_PARAMS ///< Total number of treatment parameters } TREATMENT_PARAM_T; // ********** private 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 setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ); // Set a specified integer treatment parameter value void setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ); // Set a specified floating point treatment parameter value U32 getTreatmentParameterU32( TREATMENT_PARAM_T param ); // Get a specified integer treatment parameter F32 getTreatmentParameterF32( TREATMENT_PARAM_T param ); // Get a specified floating point treatment parameter U32 getOrigBloodFlowRate_mL_min( void ); // Get originally set (before treatment) blood flow rate (in mL/min). U32 getOrigDialysateFlowRate_mL_min( void ); // Get originally set (before treatment) dialysate flow rate (in mL/min). U32 getOrigTreatmentDuration_min( void ); // Get originally set (before treatment) treatment duration (in min). U32 getOrigArterialPressureLowLimit_mmHg( void ); // Get originally set (before treatment) arterial pressure lower alarm limit (in mmHg). U32 getOrigArterialPressureHighLimit_mmHg( void ); // Get originally set (before treatment) arterial pressure upper alarm limit (in mmHg). U32 getOrigVenousPressureLowLimit_mmHg( void ); // Get originally set (before treatment) venous pressure lower alarm limit (in mmHg). U32 getOrigVenousPressureHighLimit_mmHg( void ); // Get originally set (before treatment) venous pressure upper alarm limit (in mmHg). F32 getOrigUFVolume_L( void ); // Get originally set (before treatment) ultrafiltration volume (in liters). /**@}*/ #endif