/************************************************************************** * * 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 "TDCommon.h" #include "TDDefs.h" /** * @defgroup Hemodiafiltration Hemodiafiltration * @brief Hemodiafiltration control unit. Performs hemodiafiltration functions via a state machine. * * @addtogroup Hemodiafiltration * @{ */ // ********** public definitions ********** /// hemodiafiltration data structure typedef struct { U32 hdfExecState; ///< Hemodiafiltration execution state F32 hdfRequestedRate; ///< Hemodiafiltration requested manual rate F32 hdfTargetTMP; ///< Hemodiafiltration requested target TMP F32 hdfCurrentRate; ///< Hemodiafiltration current set rate F32 hdfCurrentTMP; ///< Hemodiafiltration current TMP (trans-membrane pressure) F32 hdfRequestedVolume; ///< Hemodiafiltration requested maximum volume F32 hdfTotalVolume; ///< Hemodiafiltration total volume delivered U32 isHDFRequested; ///< Hemodiafiltration run or pause request } HDF_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 HDF_EXEC_STATE_T getCurrentHDFExecState( void ); // Get the current state of the hemodifiltration execution BOOL testTDHDFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the HDF data publish interval void setHemodiafiltrationParameters( F32 setHDFTMPTarget, F32 setHDFManualRate, F32 setHDFMaximumVolume); void StartHemodiafiltration( void ); void StopHemodiafiltration( void ); /**@}*/ #endif