/************************************************************************** * * Copyright (c) 2025-2025 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 SalineBolus.h * * @author (last) Dara Navaei * @date (last) 13-Mar-2025 * * @author (original) Dara Navaei * @date (original) 13-Mar-2025 * ***************************************************************************/ #ifndef __SALINEBOLUS_H__ #define __SALINEBOLUS_H__ #include "HDCommon.h" #include "HDDefs.h" /** * @defgroup SalineBolus SalineBolus * @brief SalineBolus sub-mode of treatment mode. The SalineBolus sub-mode is where * saline bolus is administered. A saline bolus may be requested * by the user; however, dialysis and ultrafiltration would not be provided during * a saline bolus. * * @addtogroup SalineBolus * @{ */ // ********** public definitions ********** #pragma pack(push,1) /// Payload record structure for a saline bolus data broadcast message. typedef struct { U32 tgtSalineVolumeMl; ///< Target saline volume in mL. F32 cumSalineVolumeMl; ///< Cumulative saline volume in mL. F32 bolSalineVolumeMl; ///< Bolus saline volume in mL. F32 bloodLeakZeroingDPi2BLDFlushVolumeML; ///< Blood leak zeroing DPi to BLD flush volume in mL. F32 bloodLeakZeroingRsrvr2DPiFlushVolumeML; ///< Blood leak zeroing reservoir to DPi flush volume in mL. U32 bloodLeakZeroingNeededAfterRsrvrSwitch; ///< Blood leak zeroing needed after reservoir switch. } SALINE_BOLUS_DATA_PAYLOAD_T; #pragma pack(pop) // ********** public function prototypes ********** void initSalineBolus( void ); void resetSalineBolus( void ); SALINE_BOLUS_STATE_T execSalineBolus( void ); SALINE_BOLUS_STATE_T getSalineBolusState( void ); F32 getTotalSalineBolusVolumeDelivered( void ); BOOL isSalineBolusStartRequested( void ); void setSalineBolusStartRequestStatus( BOOL status ); void signalStartSalineBolus( void ); void signalAbortSalineBolus( void ); void publishSalineBolusData( F32 bloodLeakZeroingDPi2BLDFlushVolumeML, F32 bloodLeakZeroingRsrvr2DPiFlushVolumeML, U32 bloodLeakZeroingNeededAfterRsrvrSwitch ); /**@}*/ #endif