/************************************************************************** * * 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 FluidBolus.h * * @author (last) Praneeth Bunne * @date (last) 01-May-2026 * * @author (original) Praneeth Bunne * @date (original) 01-May-2026 * ***************************************************************************/ #ifndef __FLUID_BOLUS_H__ #define __FLUID_BOLUS_H__ #include "TDCommon.h" #include "TDDefs.h" /** * @defgroup FluidBolus, FluidBolus * @brief Fluid Bolus unit provides bolus service to the * Blood Prime, HD/HDF, ISO UF, End states of Treatment mode. * * @addtogroup FluidBolus * @{ */ // ********** public definitions ********** // Enumeration of fluid bolus medium types enum Fluid_Bolus_Medium { FLUID_BOLUS_MEDIUM_SALINE = 0, ///< Saline bolus (HD modality). FLUID_BOLUS_MEDIUM_SUBSTITUTE, ///< Substitution bolus (HDF / HD-online modality). NUM_OF_FLUID_BOLUS_MEDIUMS ///< Number of fluid bolus medium types. }; typedef enum Fluid_Bolus_Medium FLUID_BOLUS_MEDIUM_T; #pragma pack(push,1) /// Payload record structure for a fluid bolus data broadcast message. typedef struct { U32 tgtFluidVolumeMl; ///< Target Fluid volume in mL. F32 bolFluidVolumeMl; ///< Bolus Fluid volume in mL. F32 cumFluidVolumeMl; ///< Cumulative Fluid volume in mL. U32 fluidBolusState; ///< Current Fluid Bolus state. } FLUID_BOLUS_DATA_PAYLOAD_T; #pragma pack(pop) // ********** public definitions ********** void initFluidBolus( void ); void publishFluidBolusData( void ); FLUID_BOLUS_STATE_T execFluidBolus( void ); FLUID_BOLUS_STATE_T getFluidBolusState( void ); FLUID_BOLUS_MEDIUM_T getFluidBolusMedium( void ); BOOL isFluidBolusActive( void ); BOOL signalStartFluidBolus( void ); void signalAbortFluidBolus( void ); F32 getCurrentFluidBolusVolumeDelivered( void ); F32 getTotalFluidBolusVolumeDelivered( void ); BOOL areAllActiveAlarmsPermittedForBolus( void ); /**@}*/ #endif