/************************************************************************** * * 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 HemoDiaFiltration.h * * @author (last) Steve Jarpe * @date (last) 23-May-2026 * * @author (original) Steve Jarpe * @date (original) 23-May-2026 * ***************************************************************************/ #ifndef __HEMO_DIAFILTRATION_H__ #define ___HEMO_DIAFILTRATION_H__ #include "DDCommon.h" #include "DDDefs.h" /** * @defgroup Hemodiafiltration Hemodiafiltration * @brief Hemodiafiltration control unit. Performs hemodiafiltration functions via a state machine. * * @addtogroup Hemodiafiltration * @{ */ // ********** public definitions ********** /// ultrafiltration data structure typedef struct { U32 hdfExecState; ///< Hemodiafiltration execution state F32 hdfRequestedVolume; ///< Hemodiafiltration volume from TD F32 hdfRequestedRate; ///< Hemodiafiltration rate from TD F32 hdfRequestedTMP; ///< Hemodiafiltration TMP target from TD F32 hdfCurrentVolume; ///< Current hemodiafiltration volume F32 hdfCurrentRate; ///< Current HDF rate U32 isHDFRequested; ///< Hemodiafiltration run or pause request } UF_DATA_T; // ********** public function prototypes ********** void initHemodiafiltration( void ); // Initialize hemodiafiltration unit void transitionToHemodiafiltration( void ); // Prepares for transition to hemodiafiltration execution U32 execHDFControl( void ); // Execute the hemodiafiltration state machine UF_EXEC_STATE_T getCurrentHDFExecState( void ); // Get the current state of the hemodifiltration execution void signalHDFRateUpdate( void ); // Update HDF rate when there is a change in rate BOOL testDDHDFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the HDF data publish interval /**@}*/ #endif