/************************************************************************** * * Copyright (c) 2025-2026 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 StateTxIsolatedUF.h * * @author (last) Jashwant Gantyada * @date (last) 26-May-2026 * * @author (original) Jashwant Gantyada * @date (original) 18-May-2026 * ***************************************************************************/ #ifndef __STATE_TX_ISOLATED_UF_H__ #define __STATE_TX_ISOLATED_UF_H__ #include "MsgQueues.h" /** * @defgroup StateTxIsolatedUF StateTxIsolatedUF * @brief Treatment mode isolated ultrafiltration state unit. The isolated UF * sub-mode removes fluid from the patient with the dialyzer bypassed. Dialysate * generation depends on whether isolated UF is started mid-treatment (Qd at * treatment rate), post-treatment (Qd = 0), or as a standalone prescription (Qd = 0). * * @addtogroup StateTxIsolatedUF * @{ */ // ********** public definitions ********** /// Isolated ultrafiltration sub-state enumeration. typedef enum Isolated_UF_States { ISOLATED_UF_RUNNING_STATE = 0, ///< Isolated UF is running. ISOLATED_UF_PAUSED_STATE, ///< Isolated UF is paused (Quf = 0). NUM_OF_ISOLATED_UF_STATES ///< Number of isolated UF states. } ISOLATED_UF_STATE_T; // ********** public function prototypes ********** void initIsolatedUF( void ); // Initialize isolated UF unit void transitionToIsolatedUF( void ); // Prepares for transition to isolated UF void execIsolatedUF( void ); // Execute isolated UF state machine ISOLATED_UF_STATE_T getCurrentIsolatedUFState( void ); // Gets current isolated UF state BOOL isIsolatedUFCompleted( void ); // Determines whether isolated UF has completed void endIsolatedUFOnUserStop( void ); // Ends active isolated UF session F32 getIsolatedUFVolumeDrawn( void ); // Gets current isolated UF volume drawn from patient BOOL handleUFPauseResumeRequest( MESSAGE_T *message ); // Routes UI pause/resume UF to dialysis or isolated UF BOOL signalPauseResumeIsolatedUF( MESSAGE_T *message ); // Handles UI pause/resume UF request /**@}*/ #endif