Index: AlarmDefs.h =================================================================== diff -u --- AlarmDefs.h (revision 0) +++ AlarmDefs.h (revision 0f593e2fb2a531ba49fd776b053bee014aceef92) @@ -0,0 +1,1498 @@ +/************************************************************************** +* +* Copyright (c) 2024-2024 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 AlarmDefs.h +* +* @author (last) Sean +* @date (last) 30-Jul-2024 +* +* @author (original) Sean +* @date (original) 30-Jul-2024 +* +***************************************************************************/ + +#ifndef __ALARM_DEFINITIONS_H__ +#define __ALARM_DEFINITIONS_H__ + +// ********** public definitions ********** + +/** + * @addtogroup AlarmManagement + * @{ + */ + +#define ALM_ESC_1_MIN (1 * 60000) ///< Number of ms in 1 minute. +#define ALM_ESC_4_MIN (4 * 60000) ///< Number of ms in 4 minutes. +#define ALM_ESC_5_MIN (5 * 60000) ///< Number of ms in 5 minutes. +#define ALM_ESC_10_MIN (10 * 60000) ///< Number of ms in 10 minutes. +#define ALM_ESC_30_MIN (30 * 60000) ///< Number of ms in 30 minutes. +#define ALM_ESC_90_MIN (90 * 60000) ///< Number of ms in 90 minutes. + +/// Enumeration of alarm IDs. +enum Alarm_List +{ + ALARM_ID_NO_ALARM = 0, ///< Indication for when no alarms is a possible situation + ALARM_ID_HD_STUCK_BUTTON_TEST_FAILED = 1, ///< HD stuck button POST failure. Stop or Off button detected to be pressed for at least 1 second during test shortly after power up + ALARM_ID_HD_FPGA_POST_TEST_FAILED = 2, ///< HD FPGA POST failure + ALARM_ID_DG_FPGA_POST_TEST_FAILED = 3, ///< DG FPGA POST failure + ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED = 4, ///< HD Watchdog POST failure + ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED = 5, ///< DG Watchdog POST failure + ALARM_ID_HD_UI_COMM_POST_FAILED = 6, ///< HD UI communication POST failure. UI failed to communicate within a reasonable time after power up + ALARM_ID_HD_RTC_BATTERY_LOW = 7, ///< HD RTC battery low + ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE = 8, ///< HD accelerometer failed POST + ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE = 9, ///< DG accelerometer failed POST + ALARM_ID_HD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE = 10, ///< HD blood leak sensor setting embedded mode failure. + ALARM_ID_HD_DIALYSATE_TEMP_BELOW_TARGET_TEMP = 11, ///< HD dialysate temperature below target temperature or below safety temp + ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED = 12, ///< HD firmware image integrity POST test failed + ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED = 13, ///< DG firmware image integrity POST test failed + ALARM_ID_DG_INVALID_USAGE_RECORD_CRC = 14, ///< DG invalid usage record CRC + ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP = 15, ///< HD dialysate temperature above high safety. + ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE = 16, ///< HD alarm audio failed POST + ALARM_ID_HD_UI_POST_TIMEOUT = 17, ///< HD UI POST failed + ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_DG = 18, ///< HD didn't get ACK on message to DG that required acknowledgment + ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP = 19, ///< HD dialysate temperature above target temperature. + ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD = 20, ///< DG conductivity sensors invalid calibration record + ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD = 21, ///< DG drain line volume invalid calibration record + ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD = 22, ///< DG reservoirs invalid calibration record + ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD = 23, ///< DG acid concentrate calibration record + ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD = 24, ///< DG bicarb concentrate calibration record + ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD = 25, ///< DG accelerometer invalid calibration record + ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD = 26, ///< HD accelerometer invalid calibration record + ALARM_ID_HD_BLOOD_LEAK_SENSOR_ZERO_SEQUENCE_FAILED = 27, ///< HD blood leak sensor zero and self test sequence failed + ALARM_ID_DG_TWO_WIRE_SENSORS_FPGA_FAULT = 28, ///< DG two wire sensors FPGA fault + ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD = 29, ///< HD heparin force sensor invalid calibration record + ALARM_ID_TD_SOFTWARE_FAULT = 30, ///< TD Software fault. Software found itself in an unexpected state + ALARM_ID_HD_BLOOD_PUMP_MC_CURRENT_CHECK = 31, ///< HD blood pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running + ALARM_ID_HD_BLOOD_PUMP_OFF_CHECK = 32, ///< HD blood pump failed motor off check. Measured speed while commanded off + ALARM_ID_HD_BLOOD_PUMP_MC_DIRECTION_CHECK = 33, ///< HD blood pump failed motor direction check. Measured vs. commanded + ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_CHECK = 34, ///< HD blood pump failed rotor speed check. Mismatch with rotor and motor speeds + ALARM_ID_HD_DIAL_IN_PUMP_MC_CURRENT_CHECK = 35, ///< HD dialysis inlet pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running + ALARM_ID_HD_DIAL_IN_PUMP_OFF_CHECK = 36, ///< HD dialysis inlet pump failed motor off check. Measured speed while commanded off + ALARM_ID_HD_DIAL_IN_PUMP_MC_DIRECTION_CHECK = 37, ///< HD dialysis inlet pump failed motor direction check. Measured vs. commanded + ALARM_ID_HD_DIAL_IN_PUMP_ROTOR_SPEED_CHECK = 38, ///< HD dialysis inlet pump failed rotor speed check. Mismatch with rotor and motor speeds + ALARM_ID_HD_DIAL_OUT_PUMP_MC_CURRENT_CHECK = 39, ///< HD dialysis outlet pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running + ALARM_ID_HD_DIAL_OUT_PUMP_OFF_CHECK = 40, ///< HD dialysis outlet pump failed motor off check. Measured speed while commanded off + ALARM_ID_HD_DIAL_OUT_PUMP_MC_DIRECTION_CHECK = 41, ///< HD dialysis outlet pump failed motor direction check. Measured vs. commanded + ALARM_ID_HD_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK = 42, ///< HD dialysis outlet pump failed rotor speed check. Mismatch with rotor and motor speeds + ALARM_ID_DG_MAIN_PRIMARY_HEATER_FPGA_FAULT = 43, ///< DG main primary heater FPGA fault + ALARM_ID_HD_UI_COMM_TIMEOUT = 44, ///< HD UI communication timeout + ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS = 45, ///< HD too many bad communications CRC + ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI = 46, ///< HD didn't get ACK on message to UI that required acknowledgment + ALARM_ID_DG_MAX_RO_PUMP_PWM_EXCEEDED = 47, ///< DG maximum RO Pump PWM exceeded + ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR = 48, ///< HD ultrafiltration volume accuracy error during treatment + ALARM_ID_HD_FPGA_COMM_TIMEOUT = 49, ///< HD FPGA communication down for too long + ALARM_ID_DG_VALVE_CONTROL_FAILURE = 50, ///< DG FPGA not accepting commanded valve states + ALARM_ID_HD_BLOOD_PUMP_MOTOR_SPEED_CHECK = 51, ///< HD blood pump failed motor speed check. Measured vs. commanded + ALARM_ID_HD_DIAL_IN_PUMP_MOTOR_SPEED_CHECK = 52, ///< HD dialysate inlet pump failed motor speed check. Measured vs. commanded + ALARM_ID_HD_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK = 53, ///< HD dialysate outlet pump failed motor speed check. Measured vs. commanded + ALARM_ID_HD_CRITICAL_DATA_ERROR = 54, ///< HD critical data integrity check failed + ALARM_ID_DG_CRITICAL_DATA_ERROR = 55, ///< DG critical data integrity check failed + ALARM_ID_HD_ACCELEROMETER_FAILURE = 56, ///< HD accelerometer error (no readings or FPGA reports error) + ALARM_ID_DG_ACCELEROMETER_FAILURE = 57, ///< DG accelerometer error (no readings or FPGA reports error) + ALARM_ID_HD_VALVE_HOMING_FAILED = 58, ///< HD valve homing failed + ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT = 59, ///< HD valve transition time out + ALARM_ID_HD_VALVE_NOT_FUNCTIONAL = 60, ///< HD valve not functional + ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE = 61, ///< HD valve current out of range + ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE = 62, ///< HD valve position out of target + ALARM_ID_HD_SYRINGE_PUMP_PRIME_TIMEOUT = 63, ///< HD syringe pump prime timeout + ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE = 64, ///< DG barometric pressure sensor out of range + ALARM_ID_HD_DG_COMMAND_INVALID_PARAMETER_FAULT = 65, ///< HD DG requests DG command with invalid parameter fault + ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE = 66, ///< HD blood leak sensor set point set failure + ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE = 67, ///< HD blood pump occlusion self-test failure alarm + ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE = 68, ///< HD active reservoir recirculation out of range + ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD = 69, ///< HD blood leak sensor invalid calibration record + ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE = 70, ///< HD arterial pressure self-test failure alarm + ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE = 71, ///< HD venous pressure self-test failure alarm + ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE = 72, ///< HD No load cell data message receive at least once every 2 seconds + ALARM_ID_HD_NEW_DIALYSATE_TEMP_DATA_MESSAGE_NOT_RECEIVE = 73, ///< HD No dialysate temperature data message receive at least once every 2 seconds + ALARM_ID_DG_INLET_UV_REACTOR_ON_WITH_NO_FLOW = 74, ///< DG inlet UV reactor is on with no flow + ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE = 75, ///< HD syringe pump self-test failure alarm + ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE = 76, ///< HD monitored voltage is out of range + ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE = 77, ///< DG monitored voltage is out of range + ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR = 78, ///< HD syringe pump direction (from encoder) error + ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR = 79, ///< HD syringe pump direction (from controller) error + ALARM_ID_HD_SYRINGE_PUMP_FAULT = 80, ///< HD syringe pump fault reported by FPGA + ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR = 81, ///< HD syringe pump over travel error + ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR = 82, ///< HD syringe pump DAC write failure + ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR = 83, ///< HD syringe pump is running while the BP is off + ALARM_ID_DG_SET_RTC_YEAR_INVALID = 84, ///< DG set RTC year is invalid + ALARM_ID_HD_PUMP_TRACK_LATCH_OPENED = 85, ///< HD pump track latch opened alarm + ALARM_ID_HD_SET_RTC_YEAR_INVALID = 86, ///< HD set RTC year is invalid + ALARM_ID_DG_HEATING_INVALID_CAL_RECORD = 87, ///< DG heating invalid calibration record + ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE = 88, ///< DG concentrate pumps hall sensor out of range + ALARM_ID_DG_OUTLET_UV_REACTOR_ON_WITH_NO_FLOW = 89, ///< DG outlet UV reactor on with no flow + ALARM_ID_DG_LOAD_CELL_A1_B1_FPGA_FAULT = 90, ///< DG load cells A1/B1 FPGA fault + ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE = 91, ///< HD No dialysate flow data receive in the last 3 seconds + ALARM_ID_DG_TEMPERATURE_SENSORS_INVALID_CAL_RECORD = 92, ///< DG temperature sensors invalid calibration record + ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE = 93, ///< DG outlet primary conductivity out of range + ALARM_ID_DG_PRESSURE_OUT_OF_RANGE = 94, ///< DG pressure out of range + ALARM_ID_DD_WATCHDOG_EXPIRED = 95, ///< DD watchdog expired + ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE = 96, ///< DG inlet water temperature in high range + ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE = 97, ///< DG fill conductivity out of range + ALARM_ID_HD_BATTERY_COMM_FAULT = 98, ///< HD battery communication fault + ALARM_ID_HD_SYRINGE_PUMP_STALL = 99, ///< HD syringe pump stall alarm + ALARM_ID_DG_COND_SENSORS_INVALID_TEMP_COMP_CAL_RECORD = 100, ///< DG conductivity sensors invalid temperature compensation calibration record + ALARM_ID_UI_POST_HD_COMM = 101, ///< UI POST HD communication failure + ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE = 102, ///< DG heat disinfect temperature gradient out of range + ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID = 103, ///< HD invalid calibration CRC + ALARM_ID_HD_AIR_TRAP_ILLEGAL_LEVELS = 104, ///< HD air trap level sensors reporting illegal combination of air/fluid + ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID = 105, ///< DG invalid calibration CRC + ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD = 106, ///< DG dialysate flow sensor invalid calibration record + ALARM_ID_HD_DG_RESTARTED_FAULT = 107, ///< HD reports DG restarted fault + ALARM_ID_HD_SYRINGE_PUMP_FPGA_ADC_FAULT = 108, ///< HD syringe pump ADC FPGA fault + ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR = 109, ///< HD syringe pump volume check error + ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR = 110, ///< HD syringe pump speed check error + ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR = 111, ///< HD syringe pump not stopped in off state error + ALARM_ID_DG_LOAD_CELL_A2_B2_FPGA_FAULT = 112, ///< DG load cells A1/B1 FPGA fault + ALARM_ID_DG_DRAIN_PUMP_CURRENT_OUT_OF_RANGE = 113, ///< DG Drain pump current out of range + ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE = 114, ///< HD venous air bubble detector self-test failure + ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE = 115, ///< DG temperature sensor out of range + ALARM_ID_HD_UI_SDCARD_FAILURE = 116, ///< HD UI SD card failure + ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED = 117, ///< DG CAN message not acked + ALARM_ID_DG_RTC_CONFIG_ERROR = 118, ///< DG RTC config error + ALARM_ID_DG_RTC_BATTERY_LOW = 119, ///< DG RTC battery low error + ALARM_ID_HD_PRE_TREATMENT_WET_PRIME_TEST_FAILURE = 120, ///< HD pre-treatment mode wet self-test prime check failure + ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE = 121, ///< DG main primary heater voltage out of range + ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE = 122, ///< DG small primary heater voltage out of range + ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE = 123, ///< DG trimmer heater voltage out of range + ALARM_ID_HD_END_OF_TREATMENT_HIGH = 124, ///< HD end of treatment alarm (high priority - user still not acting to end treatment) + ALARM_ID_HD_TREATMENT_STOPPED_NO_RINSEBACK = 125, ///< HD blood sitting too long after treatment stopped by user alarm (>5 min) + ALARM_ID_HD_BLOOD_LEAK_DETECTED = 126, ///< HD blood leak detected alarm + ALARM_ID_HD_VENOUS_PRESSURE_LOW = 127, ///< HD venous pressure too low during treatment + ALARM_ID_HD_VENOUS_BUBBLE_DETECTED = 128, ///< HD venous air bubble detected alarm + ALARM_ID_HD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT = 129, ///< HD blood leak recovering please wait + ALARM_ID_HD_VENOUS_PRESSURE_HIGH = 130, ///< HD venous pressure too high during treatment + ALARM_ID_HD_ARTERIAL_PRESSURE_LOW = 131, ///< HD arterial pressure too low during treatment + ALARM_ID_HD_ARTERIAL_PRESSURE_HIGH = 132, ///< HD arterial pressure too high during treatment + ALARM_ID_DG_FLUID_LEAK_DETECTED = 133, ///< DG fluid leak detected alarm + ALARM_ID_HD_FLUID_LEAK_DETECTED = 134, ///< HD fluid leak detected alarm + ALARM_ID_HD_SHOCK = 135, ///< HD experienced large acceleration + ALARM_ID_DG_SHOCK = 136, ///< DG experienced large acceleration + ALARM_ID_HD_EXCESSIVE_TILT = 137, ///< HD tilt exceeds maximum + ALARM_ID_DG_EXCESSIVE_TILT = 138, ///< DG tilt exceeds maximum + ALARM_ID_HD_AC_POWER_LOST = 139, ///< HD AC power lost alarm + ALARM_ID_HD_DG_COMM_TIMEOUT = 140, ///< HD DG communication timeout + ALARM_ID_HD_AIR_TRAP_FILL_DURING_TREATMENT = 141, ///< HD air trap fill timeout during treatment + ALARM_ID_HD_OCCLUSION_BLOOD_PUMP = 142, ///< HD blood pump occlusion detected + ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE = 143, ///< DG dialysate temperature sensors out of range + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH = 144, ///< DG cleaning mode inlet water conductivity out of high range. + ALARM_ID_DG_ACID_CONDUCTIVITY_OUT_OF_RANGE = 145, ///< DG concentrate conductivity after adding acid out of range alarm + ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE = 146, ///< DG RTC or timer accuracy failure. + ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT = 147, ///< DG wait for the DG to produce dialysate + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH = 148, ///< DG Cleaning mode inlet water temperature too high + ALARM_ID_TD_WATCHDOG_EXPIRED = 149, ///< TD watchdog expired + ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE = 150, ///< DG inlet water conductivity in high range + ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE = 151, ///< DG inlet water conductivity in low range + ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE = 152, ///< DG inlet water pressure in low range + ALARM_ID_HD_PRIME_COMPLETED_HIGH = 153, ///< HD prime completed high priority alarm + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW = 154, ///< DG cleaning mode inlet water conductivity out of low range. + ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE = 155, ///< HD No reservoirs data message receive at least once every 2 seconds + ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE = 156, ///< HD No DG operation mode message receive at least once every 2 seconds + ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT = 157, ///< DG chemical disinfect prime acid line timeout. + ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_LOW_RANGE = 158, ///< DG inlet water temperature is in the low range + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID = 159, ///< DG chemical disinfect flush remove acid and close the concentrate cap. + ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH = 160, ///< HD blood pump rotor speed too high + ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS = 161, ///< DG comm too many bad CRCs + ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE = 162, ///< DG FPGA clock speed check failure. + ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM = 163, ///< HD sees primary load cell for reservoir 1 change too much too fast + ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM = 164, ///< HD sees primary load cell for reservoir 2 change too much too fast + ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_ALARM = 165, ///< HD in treatment rinseback operation timeout + ALARM_ID_TEST_ALARM_NO_BLOOD_RECIRC_CLR_TOP_ONLY = 166, ///< Test alarm - No blood recirculation, clear top only + ALARM_ID_HD_CARTRIDGE_DOOR_OPENED = 167, ///< HD cartridge door opened alarm + ALARM_ID_TEST_ALARM_NO_DIAL_RECIRC_CLR_TOP_ONLY = 168, ///< Test alarm - No dialysate recirculation, clear top only + ALARM_ID_DG_DIALYSATE_FLOW_RATE_OUT_OF_MAX_RANGE = 169, ///< DG Dialysate flow rate out of maximum range + ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY = 170, ///< HD syringe empty alarm + ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION = 171, ///< HD syringe pump occlusion alarm + ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM = 172, ///< HD syringe pump not enough Heparin alarm + ALARM_ID_HD_RTC_CONFIG_ERROR = 173, ///< HD RTC configuration error + ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE = 174, ///< HD RTC or timer accuracy failure + ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR = 175, ///< HD pump direction status error + ALARM_ID_TEST_ALARM_NO_RECIRC_CLR_TOP_ONLY = 176, ///< Test alarm - No blood or dialysate recirculation, clear top only + ALARM_ID_DD_SOFTWARE_FAULT = 177, ///< DD software fault. Software found itself in an unexpected state + ALARM_ID_HD_COMM_TIMEOUT = 178, ///< HD communication timeout + ALARM_ID_DG_FPGA_COMM_TIMEOUT = 179, ///< DG FPGA communication down for too long + ALARM_ID_DG_RO_FLOW_RATE_OUT_OF_MAX_RANGE = 180, ///< DG RO flow out of maximum range + ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE = 181, ///< DG load cells weight out of range for tare + ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD = 182, ///< DG load cells invalid calibration + ALARM_ID_DG_INVALID_LOAD_CELL_VALUE = 183, ///< DG invalid load cell value + ALARM_ID_DG_INLET_UV_REACTOR_NOT_HEALTHY = 184, ///< DG inlet UV reactor not healthy + ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE = 185, ///< DG fan RPM out of range + ALARM_ID_DG_CONCENTRATE_PUMP_FAULT = 186, ///< DG concentrate pump fault + ALARM_ID_DG_CP1_SPEED_CONTROL_ERROR = 187, ///< DG concentrate pump CP1 speed control error + ALARM_ID_DG_CP2_SPEED_CONTROL_ERROR = 188, ///< DG concentrate pump CP2 speed control error + ALARM_ID_DG_DRAIN_PUMP_RPM_OUT_OF_RANGE = 189, ///< DG drain pump RPM out of range + ALARM_ID_DG_DRAIN_PUMP_OFF_FAULT = 190, ///< DG drain pump off fault + ALARM_ID_DG_FLOW_RATE_OUT_OF_UPPER_RANGE = 191, ///< DG flow rate out of upper range + ALARM_ID_DG_FLOW_RATE_OUT_OF_LOWER_RANGE = 192, ///< DG flow rate out of lower range + ALARM_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP = 193, ///< HD blood pump partial occlusion detected. + ALARM_ID_DG_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE = 194, ///< DG RO pump duty cycle out of range + ALARM_ID_DG_RO_PUMP_PRESSURE_OUT_OF_RANGE = 195, ///< DG RO pump pressure out of range + ALARM_ID_DG_CPI_CPO_SENSORS_FPGA_FAULT = 196, ///< DG CPi/CPo sensors FPGA fault + ALARM_ID_DG_CD1_CD2_SENSORS_FPGA_FAULT = 197, ///< DG CD1/CD2 sensors FPGA fault + ALARM_ID_DG_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON = 198, ///< DG RO flow too low while primary heater is on + ALARM_ID_DG_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON = 199, ///< DG Dialysate flow too low while trimmer heater is on + ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE = 200, ///< DG thermistors/sensors temperature out of range + ALARM_ID_HD_PRE_TREATMENT_WET_FLOW_TEST_FAILURE = 201, ///< HD pre-treatment mode wet self-test lc vs FMD failure + ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE = 202, ///< HD pre-treatment mode dry pressure normal self-test failure + ALARM_ID_DG_FILL_CONDUCTIVITIES_INVALID_CAL_RECORD = 203, ///< DG fill conductivities acid/bicarb invalid calibration record + ALARM_ID_DG_RO_REJECTION_RATIO_OUT_OF_RANGE = 204, ///< DG RO rejection ratio out of range + ALARM_ID_DG_CONDUCTIVITY_SENSOR_FAULT = 205, ///< DG conductivity sensor fault + ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME = 206, ///< DG dialysate fill runs out of time + ALARM_ID_DG_FLOW_METER_CHECK_FAILURE = 207, ///< DG flow meter check failure alarm + ALARM_ID_HD_VENOUS_LINE_OCCLUSION = 208, ///< HD venous pressure occlusion alarm + ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT = 209, ///< DG drain circulation line timeout + ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED = 210, ///< HD battery pack detected an error + ALARM_ID_HD_BLOOD_SITTING_WARNING = 211, ///< HD blood sitting too long warning (>4 min) + ALARM_ID_HD_END_OF_TREATMENT_ALARM = 212, ///< HD end of treatment alarm (user not acting to end treatment) + ALARM_ID_HD_PRIME_COMPLETED_MEDIUM = 213, ///< HD prime completed medium priority alarm + ALARM_ID_AVAILABLE_30 = 214, ///< Available for use + ALARM_ID_AVAILABLE_31 = 215, ///< Available for use + ALARM_ID_HD_END_TREATMENT_TIMEOUT_ALARM = 216, ///< HD end treatment sub-mode timeout alarm + ALARM_ID_AVAILABLE_32 = 217, ///< Available for use + ALARM_ID_HD_SYRINGE_DETECTED = 218, ///< HD syringe detected alarm + ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED = 219, ///< HD syringe pump syringe removed alarm + ALARM_ID_DG_THD_SENSORS_FPGA_FAULT = 220, ///< DG THd sensors FPGA fault + ALARM_ID_HD_EMPTY_SALINE_BAG = 221, ///< HD Saline bag is empty + ALARM_ID_HD_OCCLUSION_SENSOR_FPGA_FAULT = 222, ///< HD occlusion sensor FPGA fault + ALARM_ID_HD_ARTERIAL_SENSOR_FPGA_FAULT = 223, ///< HD arterial sensor FPGA fault + ALARM_ID_HD_TREATMENT_STOPPED_BY_USER = 224, ///< HD treatment stopped by user action - pressed stop button + ALARM_ID_HD_END_OF_TREATMENT_WARNING = 225, ///< HD end of treatment warning + ALARM_ID_HD_PRIME_COMPLETED_LOW_PRIORITY = 226, ///< HD prime completed low priority alarm + ALARM_ID_AVAILABLE_15 = 227, ///< Available for use + ALARM_ID_HD_PRIME_SALINE_PURGE_AIR_TIME_OUT = 228, ///< HD time out on prime saline purge air state. + ALARM_ID_HD_PRIME_DIALYSATE_DIALYZER_TIME_OUT = 229, ///< HD prime dialysate dialyzer time out alarm + ALARM_ID_HD_PRIME_DIALYSATE_BYPASS_TIME_OUT = 230, ///< HD prime dialysate bypass time out alarm + ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE = 231, ///< HD pre-treatment mode dry pressure self-test failure + ALARM_ID_HD_PRE_TREATMENT_WET_LC_TEST_FAILURE = 232, ///< HD pre-treatment mode wet self-test LC vs. LC failure + ALARM_ID_DG_BAROMETRIC_SENSOR_COEFFS_BAD_CRC = 233, ///< DG barometric sensor coefficients bad CRC + ALARM_ID_DG_INLET_WATER_PRESSURE_IN_HIGH_RANGE = 234, ///< DG inlet water pressure in high range. + ALARM_ID_HD_TREATMENT_STOPPED_AFTER_RINSEBACK = 235, ///< HD in treatment stopped sub-mode after rinseback completed (no escalation) + ALARM_ID_HD_INSTALL_NEW_CARTRIDGE = 236, ///< HD needs new cartridge to be installed + ALARM_ID_AVAILABLE_13 = 237, ///< Available for use + ALARM_ID_HD_NO_CARTRIDGE_LOADED = 238, ///< HD no cartridge loaded or installed improperly alarm + ALARM_ID_HD_CARTRIDGE_REMOVAL_FAILURE = 239, ///< HD fail to remove cartridge alarm + ALARM_ID_DG_BICARB_CONDUCTIVITY_OUT_OF_RANGE = 240, ///< DG bicarb conductivity out of range during bicarb pump check alarm + ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT = 241, ///< DG reservoir drain time out + ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT = 242, ///< DG reservoir fill time out + ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT = 243, ///< DG reservoir leak time out + ALARM_ID_DG_CLEANING_MODE_TEMP_SENSORS_DIFF_OUT_OF_RANGE = 244, ///< DG cleaning mode temperature sensors difference out of range + ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT = 245, ///< DG heat disinfect target temperature time out (could not reach to temperature) + ALARM_ID_DG_CLEANING_MODE_COND_SENSORS_OUT_OF_RANGE = 246, ///< DG cleaning mode conductivity sensors out of range + ALARM_ID_AVAILABLE_7 = 247, ///< Alarm Id available + ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE = 248, ///< DG chemical disinfect could not reach to target temperature out of range + ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE = 249, ///< DG chemical disinfect target conductivity out of range + ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID = 250, ///< DG chemical disinfect insert acid and remove the concentrate cap + ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC = 251, ///< HD invalid system record + ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC = 252, ///< HD invalid service record + ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC = 253, ///< DG invalid system record + ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC = 254, ///< DG invalid service record + ALARM_ID_HD_UI_COMPATIBILITY_ERROR = 255, ///< HD and UI software builds are not compatible + ALARM_ID_HD_DISINFECT_CHEM_FLUSH = 256, ///< HD processor is in Disinfect Chemical Flush mode + ALARM_ID_HD_INVALID_INSTITUTIONAL_RECORD_CRC = 257, ///< HD invalid institutional record + ALARM_ID_HD_UI_POST_FAILURE_OS_VERSION = 258, ///< HD UI POST OS version compatibility failure + ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE = 259, ///< HD temperatures out of range + ALARM_ID_HD_UI_POST_FAILURE_SHASUM = 260, ///< HD UI POST Application Integrity (Sha256Sum) failure + ALARM_ID_HD_UI_POST_FAILURE_CANBUS = 261, ///< HD UI POST CANBus failure + ALARM_ID_HD_UI_POST_FAILURE_DISPLAY = 262, ///< Alarm Id available TODO remove + ALARM_ID_HD_UI_POST_FAILURE_TOUCH = 263, ///< HD UI POST Touch failure + ALARM_ID_HD_UI_POST_FAILURE_SDCARD = 264, ///< HD UI POST SD-Card failure + ALARM_ID_HD_UI_POST_FAILURE_RTC = 265, ///< HD UI POST RTC failure + ALARM_ID_HD_UI_POST_FAILURE_WIFI = 266, ///< HD UI POST WiFi failure + ALARM_ID_HD_UI_POST_FAILURE_BLUETOOTH = 267, ///< HD UI POST Bluetooth failure + ALARM_ID_HD_UI_POST_FAILURE_ETHERNET = 268, ///< HD UI POST Ethernet failure + ALARM_ID_HD_UI_POST_FAILURE_SOUND = 269, ///< HD UI POST Sound failure + ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED = 270, ///< HD POST Safety Shutdown failure + ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED = 271, ///< DG POST Safety Shutdown failure + ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE = 272, ///< HD Fan RPM out of range + ALARM_ID_AVAILABLE_10 = 273, ///< Available for use + ALARM_ID_DG_INACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE = 274, ///< DG inactive reservoir weight out of range + ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE = 275, ///< HD arterial pressure sensor is reading out of range + ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE = 276, ///< HD venous pressure sensor is reading out of range + ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE = 277, ///< HD BP occlusion sensor is reading out of range + ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE = 278, ///< HD active reservoir weight out of range. + ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT = 279, ///< DG dialysate drain time out + ALARM_ID_DG_DRAIN_PUMP_DIRECTION_INVALID = 280, ///< DG drain pump direction invalid + ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME = 281, ///< Acid concentration bottle low volume alarm + ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME = 282, ///< Bicarbonate concentration bottle low volume alarm + ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE = 283, ///< DG load cells weight out of range + ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE = 284, ///< DG load cells primary/back up drift out of range + ALARM_ID_HD_RO_PERMEATE_SAMPLE = 285, ///< HD processor is in RO permeate sample mode + ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION = 286, ///< DG concentrate cap not in proper position + ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE = 287, ///< HD processor clock speed checks against FPGA clock failure + ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE = 288, ///< HD load cells primary/back up drift out of range + ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION = 289, ///< DG dialysate cap not closed + ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT = 290, ///< HD venous pressure sensor FPGA fault + ALARM_ID_HD_DISINFECT_FLUSH = 291, ///< HD processor is in Disinfect Flush mode + ALARM_ID_HD_DISINFECT_HEAT = 292, ///< HD processor is in Disinfect Heat mode + ALARM_ID_HD_DISINFECT_CHEM = 293, ///< HD processor is in Disinfect Chemical mode + ALARM_ID_HD_DISINFECT_HEAT_COOL = 294, ///< HD processor is in Disinfect active cool mode + ALARM_ID_HD_UI_POST_FAILURE_CLOUDSYNC = 295, ///< HD UI POST CloudSync failure + ALARM_ID_DG_TDI_SENSORS_FPGA_FAULT = 296, ///< DG TDi sensors FPGA fault + ALARM_ID_DG_TRO_SENSORS_FPGA_FAULT = 297, ///< DG TRo sensors FPGA fault + ALARM_ID_DG_BARO_SENSOR_FPGA_FAULT = 298, ///< DG baro sensor FPGA fault + ALARM_ID_DG_INVALID_SERIAL_NUMBER = 299, ///< DG invalid serial number + ALARM_ID_HD_INVALID_SERIAL_NUMBER = 300, ///< HD invalid serial number + ALARM_ID_DG_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP = 301, ///< DG RO permeate sample remove the dialysate cap + ALARM_ID_DG_CPU_RAM_ERROR = 302, ///< DG processor RAM error + ALARM_ID_DG_DRAIN_PUMP_DIRECTION_FPGA_FAULT = 303, ///< DG drain pump direction FPGA fault + ALARM_ID_HD_INVALID_USAGE_RECORD_CRC = 304, ///< HD invalid usage record + ALARM_ID_HD_CPU_RAM_ERROR = 305, ///< HD processor RAM error + ALARM_ID_AVAILABLE_50 = 306, ///< Alarm ID available + ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT = 307, ///< HD AC power lost second alarm + ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR = 308, ///< DG CPi conductivity sensor invalid character received + ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR = 309, ///< DG CPo conductivity sensor invalid character received + ALARM_ID_DG_CD1_COND_SENSOR_INVALID_CHAR = 310, ///< DG CD1 conductivity sensor invalid character received + ALARM_ID_DG_CD2_COND_SENSOR_INVALID_CHAR = 311, ///< DG CD2 conductivity sensor invalid character received + ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE = 312, ///< HD Dialysate In flow rate to too low. + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW = 313, ///< DG cleaning mode inlet water temperature too low. + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH = 314, ///< DG cleaning mode inlet water pressure too high. + ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW = 315, ///< DG cleaning mode inlet water pressure too low. + ALARM_ID_AVAILABLE_20 = 316, ///< Alarm available + ALARM_ID_AVAILABLE_21 = 317, ///< Alarm available. + ALARM_ID_AVAILABLE_2 = 318, ///< Alarm available for use + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE = 319, ///< DG chemical disinfect flush flush sample. + ALARM_ID_DG_CHEM_DISINFECT_FLUSH_SAMPLE_TIMEOUT = 320, ///< DG chemical disinfect flush sample timeout. + ALARM_ID_DG_OUTLET_UV_REACTOR_NOT_HEALTHY = 321, ///< DG outlet UV reactor not healthy + ALARM_ID_HD_UI_POST_FAILURE_INVALID_YEAR = 322, ///< HD UI POST Year check failure + ALARM_ID_HD_UI_POST_FAILURE_SETTINGS_BAD = 323, ///< HD UI POST Configuration check failure + NUM_OF_ALARM_IDS ///< Total number of alarms +}; +typedef enum Alarm_List ALARM_ID_T; ///< Type for alarm list enumeration + + +/// Enumeration of alarm priorities. +enum Alarm_Priorities +{ + ALARM_PRIORITY_NONE = 0, ///< Indicates not an alarm or no alarms active at this time + ALARM_PRIORITY_LOW = 1, ///< Low priority alarm + ALARM_PRIORITY_MEDIUM = 2, ///< Medium priority alarm + ALARM_PRIORITY_HIGH = 3, ///< High priority alarm + NUM_OF_ALARM_PRIORITIES ///< Total number of alarm priorities +}; +typedef enum Alarm_Priorities ALARM_PRIORITY_T; ///< Type for alarm priorities enumeration + +/// Alarm data types list. +enum Alarm_Data_Types +{ + ALARM_DATA_TYPE_NONE = 0, ///< No data given. + ALARM_DATA_TYPE_U32 = 1, ///< Alarm data is unsigned 32-bit integer type. + ALARM_DATA_TYPE_S32 = 2, ///< Alarm data is signed 32-bit integer type. + ALARM_DATA_TYPE_F32 = 3, ///< Alarm data is 32-bit floating point type. + ALARM_DATA_TYPE_BOOL = 4, ///< Alarm data is 32-bit boolean type. + NUM_OF_ALARM_DATA_TYPES ///< Total number of alarm data types. +}; +typedef enum Alarm_Data_Types ALARM_DATA_TYPES_T; ///< Type for data type of triggered alarm. + +/// Enumeration of alarm silence commands. +enum Alarm_Silence_Commands +{ + ALARM_SILENCE_CMD_CANCEL = 0, ///< Cancel alarm silence command. + ALARM_SILENCE_CMD_START = 1, ///< Start alarm silence command. + NUM_OF_ALARM_SILENCE_CMDS ///< Total number of alarm silence commands. +}; +typedef enum Alarm_Silence_Commands ALARM_SILENCE_CMD_T; ///< Type for alarm silence commands + +/// Enumeration of alarm sources. +enum Alarm_Sources +{ + ALARM_SOURCE_UI = 0, ///< User interface alarm source + ALARM_SOURCE_HD, ///< HD firmware alarm source + ALARM_SOURCE_DG, ///< DG firmware alarm source + NUMBER_OF_ALARM_SOURCES ///< Number of alarm sources +}; +typedef enum Alarm_Sources ALARM_SOURCE_T; ///< Type for alarm sources enumeration + +/// Enumeration of alarm user actions. +enum Alarm_User_Actions +{ + ALARM_USER_ACTION_RESUME = 0, ///< User selected resume from alarm recovery options + ALARM_USER_ACTION_RINSEBACK, ///< User selected rinseback from alarm recovery options + ALARM_USER_ACTION_END_TREATMENT, ///< User selected end treatment from alarm recovery options + ALARM_USER_ACTION_ACK, ///< User selected acknowledge (ok) from alarm recovery options + NUMBER_OF_ALARM_USER_ACTIONS ///< Number of alarm user actions +}; +typedef enum Alarm_User_Actions ALARM_USER_ACTION_T; ///< Type for alarm user actions enumeration + +/// Enumeration of alarm state flags bit positions in periodic broadcast +enum Alarm_State_Flag_Bit_Positions +{ + ALARM_STATE_FLAG_BIT_POS_SYSTEM_FAULT = 0, ///< One or more system faults has been triggered + ALARM_STATE_FLAG_BIT_POS_STOP = 1, ///< Alarm(s) have stopped treatment/activity and placed system in a safe state + ALARM_STATE_FLAG_BIT_POS_NO_CLEAR = 2, ///< One or more active alarms is not recoverable + ALARM_STATE_FLAG_BIT_POS_NO_RESUME = 3, ///< The "resume" user recovery option is disabled + ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK = 4, ///< The "rinseback" user recovery option is disabled + ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT = 5, ///< The "end treatment" user recovery option is disabled + ALARM_STATE_FLAG_BIT_POS____AVAILABLE = 6, ///< Not used - available for use + ALARM_STATE_FLAG_BIT_POS_OK_BUTTON_ONLY = 7, ///< The "ok" user recovery option is enabled + ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE = 8, ///< One or more active alarms will escalate in time + ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED = 9, ///< Alarms have been temporarily silenced by user + ALARM_STATE_FLAG_BIT_POS_LAMP_ON = 10, ///< Alarm lamp is currently on (for syncing to UI) + ALARM_STATE_FLAG_BIT_POS_NO_RETRIGGER = 11, ///< Alarm block re-trigger flag is set + ALARM_STATE_FLAG_BIT_POS_BLOOD_RECIRC = 12, ///< Blood recirculation is disabled + ALARM_STATE_FLAG_BIT_POS_DIALYSATE_RECIRC = 13, ///< Dialysate recirculation is disabled + ALARM_STATE_FLAG_BIT_POS_NO_MINIMIZE = 14, ///< Prevent user from minimizing alarm window + ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION = 15, ///< The top alarm's condition is still being detected + NUM_OF_ALARM_STATE_FLAG_BIT_POS = 16 ///< The number of alarm state flag bit positions +}; +typedef enum Alarm_State_Flag_Bit_Positions ALARM_STATE_FLAG_BIT_POSITIONS_T; + +/// Record defining the properties of each individual alarm. +struct AlarmsStateRecord +{ + ALARM_PRIORITY_T alarmPriority; ///< Priority of alarm + U32 alarmSubRank; ///< Alarm's rank within it's priority + BOOL alarmIsFault; ///< Alarm is a system fault? + BOOL alarmIsDGFault; ///< Alarm is a fault for DG + BOOL alarmStops; ///< Alarm activation should cause a controlled stop + BOOL alarmConditionClearImmed; ///< Alarm condition is cleared immediately (does not persist after alarm triggered) + BOOL alarmNoClear; ///< Alarm cannot be cleared (unrecoverable)? + BOOL alarmNoResume; ///< Alarm prevents treatment resume + BOOL alarmNoRinseback; ///< Alarm prevents rinseback + BOOL alarmNoEndTreatment; ///< Alarm prevents ending treatment + BOOL alarmBlockRinseback; ///< Alarm should not trigger while in rinseback states + BOOL alarmBlockEndTx; ///< Alarm should not trigger while in post-treatment mode + BOOL alarmNoRetrigOnRB; ///< Alarm prevents re-trigger of alarm upon user selecting rinseback until return to treatment or back to standby + BOOL alarmNoRetrigOnEndTx; ///< Alarm prevents re-trigger of alarm upon user selecting end tx until back to standby + BOOL alarmNoBloodRecirc; ///< Alarm prevents blood re-circulation + BOOL alarmNoDialysateRecirc; ///< Alarm prevents dialysate re-circulation + BOOL alarmClearOnly; ///< Clear only this alarm on user acknowledgment + BOOL alarmTreatmentLog; ///< Log alarm to treatment log if active during treatment + ALARM_ID_T alarmID; ///< Alarm ID +}; +typedef struct AlarmsStateRecord ALARM_T; + +/// Record defining the ranking of each individual alarm. +struct AlarmsRankRecord +{ + U32 alarmSubRank; ///< Alarm's rank within it's priority + ALARM_ID_T alarmID; ///< Alarm ID +}; +typedef struct AlarmsRankRecord ALARM_RANK_T; + +#ifdef __ALARM_MGMT_C__ + +/// Table of alarms and their static properties. +const ALARM_T ALARM_TABLE[] = +{ // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_NONE, 999, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_NO_ALARM }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_STUCK_BUTTON_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_FPGA_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FPGA_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_COMM_POST_FAILED }, + { ALARM_PRIORITY_LOW, 850, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_RTC_BATTERY_LOW }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 402, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_HD_DIALYSATE_TEMP_BELOW_TARGET_TEMP }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INVALID_USAGE_RECORD_CRC }, + { ALARM_PRIORITY_MEDIUM, 401, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_DG }, + { ALARM_PRIORITY_MEDIUM, 401, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_LOW, 725, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_BLOOD_LEAK_SENSOR_ZERO_SEQUENCE_FAILED }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TWO_WIRE_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_TD_SOFTWARE_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_MC_CURRENT_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_OFF_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_MC_DIRECTION_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_PUMP_MC_CURRENT_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_PUMP_OFF_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_PUMP_MC_DIRECTION_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_PUMP_ROTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_OUT_PUMP_MC_CURRENT_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_OUT_PUMP_OFF_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_OUT_PUMP_MC_DIRECTION_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_MAIN_PRIMARY_HEATER_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_COMM_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_DG_MAX_RO_PUMP_PWM_EXCEEDED }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_FPGA_COMM_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_VALVE_CONTROL_FAILURE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_MOTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_PUMP_MOTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_CRITICAL_DATA_ERROR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CRITICAL_DATA_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ACCELEROMETER_FAILURE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_ACCELEROMETER_FAILURE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VALVE_HOMING_FAILED }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VALVE_NOT_FUNCTIONAL }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_PRIME_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_DG_COMMAND_INVALID_PARAMETER_FAULT }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE }, + { ALARM_PRIORITY_LOW, 700, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 421, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_LOW, 700, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_LOW, 700, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_NEW_DIALYSATE_TEMP_DATA_MESSAGE_NOT_RECEIVE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INLET_UV_REACTOR_ON_WITH_NO_FLOW }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_SET_RTC_YEAR_INVALID }, + { ALARM_PRIORITY_HIGH, 209, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_PUMP_TRACK_LATCH_OPENED }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SET_RTC_YEAR_INVALID }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_HEATING_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_OUTLET_UV_REACTOR_ON_WITH_NO_FLOW }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELL_A1_B1_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TEMPERATURE_SENSORS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_PRESSURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DD_WATCHDOG_EXPIRED }, + { ALARM_PRIORITY_MEDIUM, 432, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE }, + { ALARM_PRIORITY_MEDIUM, 420, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 850, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_BATTERY_COMM_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_STALL }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_COND_SENSORS_INVALID_TEMP_COMP_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 0, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_UI_POST_HD_COMM }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_AIR_TRAP_ILLEGAL_LEVELS }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 110, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_DG_RESTARTED_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_FPGA_ADC_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELL_A2_B2_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_PUMP_CURRENT_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 725, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 850, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_UI_SDCARD_FAILURE }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RTC_CONFIG_ERROR }, + { ALARM_PRIORITY_LOW, 851, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_RTC_BATTERY_LOW }, + { ALARM_PRIORITY_LOW, 725, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRE_TREATMENT_WET_PRIME_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 11, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_END_OF_TREATMENT_HIGH }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 11, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_TREATMENT_STOPPED_NO_RINSEBACK }, + { ALARM_PRIORITY_HIGH, 150, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , ALARM_ID_HD_BLOOD_LEAK_DETECTED }, + { ALARM_PRIORITY_HIGH, 200, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_VENOUS_PRESSURE_LOW }, + { ALARM_PRIORITY_HIGH, 12, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , ALARM_ID_HD_VENOUS_BUBBLE_DETECTED, }, + { ALARM_PRIORITY_MEDIUM, 301, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, ALARM_ID_HD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT, }, + { ALARM_PRIORITY_HIGH, 201, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_VENOUS_PRESSURE_HIGH }, + { ALARM_PRIORITY_HIGH, 202, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_ARTERIAL_PRESSURE_LOW }, + { ALARM_PRIORITY_HIGH, 203, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_ARTERIAL_PRESSURE_HIGH }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, TRUE , ALARM_ID_DG_FLUID_LEAK_DETECTED }, + { ALARM_PRIORITY_HIGH, 208, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , ALARM_ID_HD_FLUID_LEAK_DETECTED }, + { ALARM_PRIORITY_HIGH, 220, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SHOCK }, + { ALARM_PRIORITY_MEDIUM, 440, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_SHOCK }, + { ALARM_PRIORITY_HIGH, 221, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_EXCESSIVE_TILT }, + { ALARM_PRIORITY_MEDIUM, 441, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_EXCESSIVE_TILT }, + { ALARM_PRIORITY_LOW , 852, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_AC_POWER_LOST }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, TRUE , ALARM_ID_HD_DG_COMM_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 13, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , ALARM_ID_HD_AIR_TRAP_FILL_DURING_TREATMENT }, + { ALARM_PRIORITY_HIGH, 205, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_OCCLUSION_BLOOD_PUMP }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, TRUE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 603, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH }, + { ALARM_PRIORITY_MEDIUM, 410, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , ALARM_ID_DG_ACID_CONDUCTIVITY_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 421, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT }, + { ALARM_PRIORITY_MEDIUM, 601, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_TD_WATCHDOG_EXPIRED }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_MEDIUM, 434, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE }, + { ALARM_PRIORITY_MEDIUM, 435, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE }, + { ALARM_PRIORITY_MEDIUM, 431, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE }, + { ALARM_PRIORITY_HIGH, 292, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_PRIME_COMPLETED_HIGH }, + { ALARM_PRIORITY_MEDIUM, 604, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE }, + { ALARM_PRIORITY_HIGH, 111, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT }, + { ALARM_PRIORITY_MEDIUM, 433, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_LOW_RANGE }, + { ALARM_PRIORITY_LOW, 751, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 442, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM }, + { ALARM_PRIORITY_MEDIUM, 442, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM }, + { ALARM_PRIORITY_HIGH, 11, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_ALARM }, + { ALARM_PRIORITY_HIGH, 200, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, TRUE , FALSE, ALARM_ID_TEST_ALARM_NO_BLOOD_RECIRC_CLR_TOP_ONLY }, + { ALARM_PRIORITY_HIGH, 210, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_CARTRIDGE_DOOR_OPENED }, + { ALARM_PRIORITY_HIGH, 110, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, ALARM_ID_TEST_ALARM_NO_DIAL_RECIRC_CLR_TOP_ONLY }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_FLOW_RATE_OUT_OF_MAX_RANGE }, + { ALARM_PRIORITY_LOW, 730, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY }, + { ALARM_PRIORITY_LOW, 716, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION }, + { ALARM_PRIORITY_LOW, 715, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_RTC_CONFIG_ERROR }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR }, + { ALARM_PRIORITY_HIGH, 200, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , TRUE , FALSE, ALARM_ID_TEST_ALARM_NO_RECIRC_CLR_TOP_ONLY }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DD_SOFTWARE_FAULT }, + { ALARM_PRIORITY_HIGH, 0, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_COMM_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FPGA_COMM_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RO_FLOW_RATE_OUT_OF_MAX_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_INVALID_LOAD_CELL_VALUE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INLET_UV_REACTOR_NOT_HEALTHY }, + { ALARM_PRIORITY_LOW, 851, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CONCENTRATE_PUMP_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CP1_SPEED_CONTROL_ERROR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CP2_SPEED_CONTROL_ERROR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_PUMP_RPM_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_PUMP_OFF_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FLOW_RATE_OUT_OF_UPPER_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FLOW_RATE_OUT_OF_LOWER_RANGE }, + { ALARM_PRIORITY_HIGH, 206, FALSE, FALSE, TRUE , TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE, ALARM_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RO_PUMP_PRESSURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CPI_CPO_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CD1_CD2_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON}, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 725, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRE_TREATMENT_WET_FLOW_TEST_FAILURE }, + { ALARM_PRIORITY_LOW, 710, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FILL_CONDUCTIVITIES_INVALID_CAL_RECORD }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_RO_REJECTION_RATIO_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CONDUCTIVITY_SENSOR_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_FLOW_METER_CHECK_FAILURE }, + { ALARM_PRIORITY_HIGH, 201, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , ALARM_ID_HD_VENOUS_LINE_OCCLUSION }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT }, + { ALARM_PRIORITY_LOW, 850, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED }, + { ALARM_PRIORITY_HIGH, 290, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_BLOOD_SITTING_WARNING }, + { ALARM_PRIORITY_HIGH, 290, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_END_OF_TREATMENT_ALARM }, + { ALARM_PRIORITY_MEDIUM, 590, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_PRIME_COMPLETED_MEDIUM }, + { ALARM_PRIORITY_LOW, 999, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_30 }, + { ALARM_PRIORITY_LOW, 999, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_31 }, + { ALARM_PRIORITY_HIGH, 291, FALSE, FALSE, FALSE, TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_END_TREATMENT_TIMEOUT_ALARM }, + { ALARM_PRIORITY_LOW, 999, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_32 }, + { ALARM_PRIORITY_LOW, 745, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_SYRINGE_DETECTED }, + { ALARM_PRIORITY_HIGH, 207, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_THD_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 204, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, ALARM_ID_HD_EMPTY_SALINE_BAG }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_OCCLUSION_SENSOR_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ARTERIAL_SENSOR_FPGA_FAULT }, + { ALARM_PRIORITY_MEDIUM, 300, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_TREATMENT_STOPPED_BY_USER }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_LOW, 739, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_END_OF_TREATMENT_WARNING }, + { ALARM_PRIORITY_LOW, 729, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_PRIME_COMPLETED_LOW_PRIORITY }, + { ALARM_PRIORITY_LOW, 999, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_AVAILABLE_15 }, + { ALARM_PRIORITY_LOW, 720, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRIME_SALINE_PURGE_AIR_TIME_OUT }, + { ALARM_PRIORITY_LOW, 720, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRIME_DIALYSATE_DIALYZER_TIME_OUT }, + { ALARM_PRIORITY_LOW, 720, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRIME_DIALYSATE_BYPASS_TIME_OUT }, + { ALARM_PRIORITY_LOW, 710, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE }, + { ALARM_PRIORITY_LOW, 725, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_PRE_TREATMENT_WET_LC_TEST_FAILURE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_BAROMETRIC_SENSOR_COEFFS_BAD_CRC }, + { ALARM_PRIORITY_MEDIUM, 430, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, TRUE , ALARM_ID_DG_INLET_WATER_PRESSURE_IN_HIGH_RANGE }, + { ALARM_PRIORITY_LOW, 738, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, ALARM_ID_HD_TREATMENT_STOPPED_AFTER_RINSEBACK }, + { ALARM_PRIORITY_LOW, 710, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_INSTALL_NEW_CARTRIDGE }, + { ALARM_PRIORITY_LOW, 999, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_AVAILABLE_13 }, + { ALARM_PRIORITY_LOW, 710, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_NO_CARTRIDGE_LOADED }, + { ALARM_PRIORITY_LOW, 746, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_CARTRIDGE_REMOVAL_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 411, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , ALARM_ID_DG_BICARB_CONDUCTIVITY_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_TEMP_SENSORS_DIFF_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_COND_SENSORS_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 999, FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_7 }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 750, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_COMPATIBILITY_ERROR }, + { ALARM_PRIORITY_LOW, 843, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_DISINFECT_CHEM_FLUSH }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INVALID_INSTITUTIONAL_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_OS_VERSION }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_SHASUM }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_CANBUS }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_DISPLAY }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_TOUCH }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_SDCARD }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_RTC }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_WIFI }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_BLUETOOTH }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_ETHERNET }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_SOUND }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED }, + { ALARM_PRIORITY_LOW, 850, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_10 }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 421, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_PUMP_DIRECTION_INVALID }, + { ALARM_PRIORITY_MEDIUM, 412, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME }, + { ALARM_PRIORITY_MEDIUM, 413, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE }, + { ALARM_PRIORITY_LOW, 845, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_RO_PERMEATE_SAMPLE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE }, + { ALARM_PRIORITY_HIGH, 110, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT }, + { ALARM_PRIORITY_LOW, 840, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_DISINFECT_FLUSH }, + { ALARM_PRIORITY_LOW, 841, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_DISINFECT_HEAT }, + { ALARM_PRIORITY_LOW, 842, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_DISINFECT_CHEM }, + { ALARM_PRIORITY_LOW, 844, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, ALARM_ID_HD_DISINFECT_HEAT_COOL }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_CLOUDSYNC }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TDI_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_TRO_SENSORS_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_BARO_SENSOR_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 2, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_INVALID_SERIAL_NUMBER }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INVALID_SERIAL_NUMBER }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_LOW, 753, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CPU_RAM_ERROR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_DRAIN_PUMP_DIRECTION_FPGA_FAULT }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_INVALID_USAGE_RECORD_CRC }, + { ALARM_PRIORITY_HIGH, 10, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_CPU_RAM_ERROR }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_50 }, + { ALARM_PRIORITY_HIGH, 100, FALSE, FALSE, TRUE , FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CD1_COND_SENSOR_INVALID_CHAR }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_CD2_COND_SENSOR_INVALID_CHAR }, + { ALARM_PRIORITY_MEDIUM, 400, FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE }, + { ALARM_PRIORITY_MEDIUM, 602, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW }, + { ALARM_PRIORITY_MEDIUM, 605, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH }, + { ALARM_PRIORITY_MEDIUM, 606, FALSE, FALSE, TRUE , TRUE , FALSE, TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_20 }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_21 }, + { ALARM_PRIORITY_LOW, 999, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_AVAILABLE_2 }, + { ALARM_PRIORITY_LOW, 752, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE }, + { ALARM_PRIORITY_MEDIUM, 600, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_SAMPLE_TIMEOUT }, + { ALARM_PRIORITY_HIGH, 110, FALSE, TRUE , TRUE , TRUE , FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE , FALSE, FALSE, ALARM_ID_DG_OUTLET_UV_REACTOR_NOT_HEALTHY }, + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_INVALID_YEAR }, + // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + { ALARM_PRIORITY_HIGH, 1, TRUE , FALSE, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE, FALSE, TRUE , TRUE , FALSE, FALSE, ALARM_ID_HD_UI_POST_FAILURE_SETTINGS_BAD }, +}; // Priority Rank Fault DGFault Stops ClrIm NoClr NoRes NoRin NoEnd BlkRB BlkET NoBRcr NoDRcr ClrOnly TxLog ID + +/// Table of alarms and their rank. +const ALARM_RANK_T ALARM_RANK_TABLE[] = +{ + { 0, ALARM_ID_HD_COMM_TIMEOUT }, + { 0, ALARM_ID_UI_POST_HD_COMM }, + { 1, ALARM_ID_HD_STUCK_BUTTON_TEST_FAILED }, + { 1, ALARM_ID_HD_FPGA_POST_TEST_FAILED }, + { 1, ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED }, + { 1, ALARM_ID_HD_UI_COMM_POST_FAILED }, + { 1, ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE }, + { 1, ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED }, + { 1, ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE }, + { 1, ALARM_ID_HD_UI_POST_TIMEOUT }, + { 1, ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD }, + { 1, ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD }, + { 1, ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_OS_VERSION }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_SHASUM }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_CANBUS }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_TOUCH }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_SDCARD }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_INVALID_YEAR }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_SETTINGS_BAD}, + { 1, ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID }, + { 1, ALARM_ID_HD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE }, + { 1, ALARM_ID_HD_INVALID_SERIAL_NUMBER }, + { 1, ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_RTC }, + { 1, ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD }, + { 1, ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE }, + { 1, ALARM_ID_HD_INVALID_USAGE_RECORD_CRC }, + { 1, ALARM_ID_HD_SET_RTC_YEAR_INVALID }, + { 1, ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC }, + { 1, ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC }, + { 1, ALARM_ID_HD_UI_COMPATIBILITY_ERROR }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_WIFI }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_BLUETOOTH }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_CLOUDSYNC }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_ETHERNET }, + { 1, ALARM_ID_HD_UI_POST_FAILURE_SOUND }, + { 1, ALARM_ID_HD_INVALID_INSTITUTIONAL_RECORD_CRC }, + { 2, ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED }, + { 2, ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE }, + { 2, ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED }, + { 2, ALARM_ID_DG_INVALID_USAGE_RECORD_CRC }, + { 2, ALARM_ID_DG_FPGA_POST_TEST_FAILED }, + { 2, ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED }, + { 2, ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID }, + { 2, ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC }, + { 2, ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC }, + { 2, ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_SET_RTC_YEAR_INVALID }, + { 2, ALARM_ID_DG_HEATING_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_INVALID_SERIAL_NUMBER }, + { 2, ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE }, + { 2, ALARM_ID_DG_TEMPERATURE_SENSORS_INVALID_CAL_RECORD }, + { 2, ALARM_ID_DG_COND_SENSORS_INVALID_TEMP_COMP_CAL_RECORD }, + { 2, ALARM_ID_DG_FILL_CONDUCTIVITIES_INVALID_CAL_RECORD }, + { 10, ALARM_ID_TD_SOFTWARE_FAULT }, + { 10, ALARM_ID_HD_BLOOD_PUMP_MC_CURRENT_CHECK }, + { 10, ALARM_ID_HD_BLOOD_PUMP_OFF_CHECK }, + { 10, ALARM_ID_HD_BLOOD_PUMP_MC_DIRECTION_CHECK }, + { 10, ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_DIAL_IN_PUMP_MC_CURRENT_CHECK }, + { 10, ALARM_ID_HD_DIAL_IN_PUMP_OFF_CHECK }, + { 10, ALARM_ID_HD_DIAL_IN_PUMP_MC_DIRECTION_CHECK }, + { 10, ALARM_ID_HD_DIAL_IN_PUMP_ROTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_OCCLUSION_SENSOR_FPGA_FAULT }, + { 10, ALARM_ID_HD_DIAL_OUT_PUMP_MC_CURRENT_CHECK }, + { 10, ALARM_ID_HD_DIAL_OUT_PUMP_OFF_CHECK }, + { 10, ALARM_ID_HD_DIAL_OUT_PUMP_MC_DIRECTION_CHECK }, + { 10, ALARM_ID_HD_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_UI_COMM_TIMEOUT }, + { 10, ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS }, + { 10, ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI }, + { 10, ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR }, + { 10, ALARM_ID_HD_FPGA_COMM_TIMEOUT }, + { 10, ALARM_ID_HD_BLOOD_PUMP_MOTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_DIAL_IN_PUMP_MOTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK }, + { 10, ALARM_ID_HD_CRITICAL_DATA_ERROR }, + { 10, ALARM_ID_HD_ACCELEROMETER_FAILURE }, + { 10, ALARM_ID_HD_VALVE_HOMING_FAILED }, + { 10, ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT }, + { 10, ALARM_ID_HD_VALVE_NOT_FUNCTIONAL }, + { 10, ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE }, + { 10, ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_STALL }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_PRIME_TIMEOUT }, + { 10, ALARM_ID_HD_AIR_TRAP_ILLEGAL_LEVELS }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_FPGA_ADC_FAULT }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_FAULT }, + { 10, ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR }, + { 10, ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR }, + { 10, ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR }, + { 10, ALARM_ID_HD_CPU_RAM_ERROR }, + { 10, ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT }, + { 10, ALARM_ID_HD_ARTERIAL_SENSOR_FPGA_FAULT }, + { 10, ALARM_ID_TD_WATCHDOG_EXPIRED }, + { 10, ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR }, + { 10, ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH }, + { 10, ALARM_ID_HD_RTC_CONFIG_ERROR }, + { 11, ALARM_ID_HD_END_OF_TREATMENT_HIGH }, + { 11, ALARM_ID_HD_TREATMENT_STOPPED_NO_RINSEBACK }, + { 11, ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_ALARM }, + { 12, ALARM_ID_HD_VENOUS_BUBBLE_DETECTED }, + { 13, ALARM_ID_HD_AIR_TRAP_FILL_DURING_TREATMENT }, + { 100, ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT }, + { 110, ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_VALVE_CONTROL_FAILURE }, + { 110, ALARM_ID_DG_CRITICAL_DATA_ERROR }, + { 110, ALARM_ID_DG_ACCELEROMETER_FAILURE }, + { 110, ALARM_ID_DG_THD_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_MAIN_PRIMARY_HEATER_FPGA_FAULT }, + { 110, ALARM_ID_DG_INLET_UV_REACTOR_ON_WITH_NO_FLOW }, + { 110, ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_OUTLET_UV_REACTOR_ON_WITH_NO_FLOW }, + { 110, ALARM_ID_DG_LOAD_CELL_A1_B1_FPGA_FAULT }, + { 110, ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_PRESSURE_OUT_OF_RANGE }, + { 110, ALARM_ID_DD_WATCHDOG_EXPIRED }, + { 110, ALARM_ID_HD_DG_RESTARTED_FAULT }, + { 110, ALARM_ID_DG_LOAD_CELL_A2_B2_FPGA_FAULT }, + { 110, ALARM_ID_DG_TDI_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_DG_TRO_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_DG_BARO_SENSOR_FPGA_FAULT }, + { 110, ALARM_ID_DG_CPU_RAM_ERROR }, + { 110, ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR }, + { 110, ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR }, + { 110, ALARM_ID_DG_CD1_COND_SENSOR_INVALID_CHAR }, + { 110, ALARM_ID_DG_CD2_COND_SENSOR_INVALID_CHAR }, + { 110, ALARM_ID_DG_DRAIN_PUMP_DIRECTION_FPGA_FAULT }, + { 110, ALARM_ID_DG_RTC_CONFIG_ERROR }, + { 110, ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_DRAIN_PUMP_CURRENT_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT }, + { 110, ALARM_ID_DG_DRAIN_PUMP_DIRECTION_INVALID }, + { 110, ALARM_ID_DG_BAROMETRIC_SENSOR_COEFFS_BAD_CRC }, + { 110, ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_TWO_WIRE_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_OUTLET_UV_REACTOR_NOT_HEALTHY }, + { 110, ALARM_ID_DG_FLOW_METER_CHECK_FAILURE }, + { 110, ALARM_ID_DG_RO_REJECTION_RATIO_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME }, + { 110, ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_DIALYSATE_FLOW_RATE_OUT_OF_MAX_RANGE }, + { 110, ALARM_ID_DG_FLOW_RATE_OUT_OF_UPPER_RANGE }, + { 110, ALARM_ID_DG_FLOW_RATE_OUT_OF_LOWER_RANGE }, + { 110, ALARM_ID_DG_DRAIN_PUMP_RPM_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_DRAIN_PUMP_OFF_FAULT }, + { 110, ALARM_ID_DG_INLET_UV_REACTOR_NOT_HEALTHY }, + { 110, ALARM_ID_DG_CD1_CD2_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_DG_CPI_CPO_SENSORS_FPGA_FAULT }, + { 110, ALARM_ID_DG_RO_FLOW_RATE_OUT_OF_MAX_RANGE }, + { 110, ALARM_ID_DG_FPGA_COMM_TIMEOUT }, + { 110, ALARM_ID_DG_CONDUCTIVITY_SENSOR_FAULT }, + { 110, ALARM_ID_DG_CONCENTRATE_PUMP_FAULT }, + { 110, ALARM_ID_DG_CP1_SPEED_CONTROL_ERROR }, + { 110, ALARM_ID_DG_CP2_SPEED_CONTROL_ERROR }, + { 110, ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS }, + { 110, ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE }, + { 110, ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE }, + { 110, ALARM_ID_DG_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON }, + { 110, ALARM_ID_DG_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON }, + { 110, ALARM_ID_DG_FLUID_LEAK_DETECTED }, + { 110, ALARM_ID_DD_SOFTWARE_FAULT }, + { 110, ALARM_ID_DG_RO_PUMP_PRESSURE_OUT_OF_RANGE }, + { 110, ALARM_ID_TEST_ALARM_NO_DIAL_RECIRC_CLR_TOP_ONLY }, + { 110, ALARM_ID_DG_MAX_RO_PUMP_PWM_EXCEEDED }, + { 110, ALARM_ID_DG_INACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE }, + { 111, ALARM_ID_HD_DG_COMM_TIMEOUT }, + { 111, ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE }, + { 111, ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE }, + { 111, ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED }, + { 111, ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE }, + { 111, ALARM_ID_HD_DG_COMMAND_INVALID_PARAMETER_FAULT }, + { 111, ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE }, + { 111, ALARM_ID_HD_NEW_DIALYSATE_TEMP_DATA_MESSAGE_NOT_RECEIVE }, + { 111, ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_DG }, + { 150, ALARM_ID_HD_BLOOD_LEAK_DETECTED }, + { 200, ALARM_ID_HD_VENOUS_PRESSURE_LOW }, + { 200, ALARM_ID_TEST_ALARM_NO_BLOOD_RECIRC_CLR_TOP_ONLY }, + { 200, ALARM_ID_TEST_ALARM_NO_RECIRC_CLR_TOP_ONLY }, + { 201, ALARM_ID_HD_VENOUS_PRESSURE_HIGH }, + { 201, ALARM_ID_HD_VENOUS_LINE_OCCLUSION }, + { 202, ALARM_ID_HD_ARTERIAL_PRESSURE_LOW }, + { 203, ALARM_ID_HD_ARTERIAL_PRESSURE_HIGH }, + { 204, ALARM_ID_HD_EMPTY_SALINE_BAG }, + { 205, ALARM_ID_HD_OCCLUSION_BLOOD_PUMP }, + { 206, ALARM_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP }, + { 207, ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED }, + { 208, ALARM_ID_HD_FLUID_LEAK_DETECTED }, + { 209, ALARM_ID_HD_PUMP_TRACK_LATCH_OPENED }, + { 210, ALARM_ID_HD_CARTRIDGE_DOOR_OPENED }, + { 220, ALARM_ID_HD_SHOCK }, + { 221, ALARM_ID_HD_EXCESSIVE_TILT }, + { 290, ALARM_ID_HD_BLOOD_SITTING_WARNING }, + { 290, ALARM_ID_HD_END_OF_TREATMENT_ALARM }, + { 291, ALARM_ID_HD_END_TREATMENT_TIMEOUT_ALARM }, + { 292, ALARM_ID_HD_PRIME_COMPLETED_HIGH }, + { 300, ALARM_ID_HD_TREATMENT_STOPPED_BY_USER }, + { 301, ALARM_ID_HD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT }, + { 400, ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE }, + { 401, ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP }, + { 401, ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP }, + { 402, ALARM_ID_HD_DIALYSATE_TEMP_BELOW_TARGET_TEMP }, + { 410, ALARM_ID_DG_ACID_CONDUCTIVITY_OUT_OF_RANGE }, + { 411, ALARM_ID_DG_BICARB_CONDUCTIVITY_OUT_OF_RANGE }, + { 412, ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME }, + { 413, ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME }, + { 420, ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE }, + { 421, ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE }, + { 421, ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE }, + { 421, ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT }, + { 430, ALARM_ID_DG_INLET_WATER_PRESSURE_IN_HIGH_RANGE }, + { 431, ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE }, + { 432, ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE }, + { 433, ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_LOW_RANGE }, + { 434, ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE }, + { 435, ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE }, + { 440, ALARM_ID_DG_SHOCK }, + { 441, ALARM_ID_DG_EXCESSIVE_TILT }, + { 442, ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM }, + { 442, ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM }, + { 590, ALARM_ID_HD_PRIME_COMPLETED_MEDIUM }, + { 600, ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE }, + { 600, ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE }, + { 600, ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT }, + { 600, ALARM_ID_DG_CLEANING_MODE_TEMP_SENSORS_DIFF_OUT_OF_RANGE }, + { 600, ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT }, + { 600, ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT }, + { 600, ALARM_ID_DG_CLEANING_MODE_COND_SENSORS_OUT_OF_RANGE }, + { 600, ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE }, + { 600, ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT }, + { 600, ALARM_ID_DG_INVALID_LOAD_CELL_VALUE }, + { 600, ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT }, + { 600, ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT }, + { 600, ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION }, + { 600, ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION }, + { 600, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_SAMPLE_TIMEOUT }, + { 601, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH }, + { 602, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW }, + { 603, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH }, + { 604, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW }, + { 605, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH }, + { 606, ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW }, + { 700, ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE }, + { 700, ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE }, + { 700, ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE }, + { 710, ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE }, + { 710, ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE }, + { 710, ALARM_ID_HD_INSTALL_NEW_CARTRIDGE }, + { 710, ALARM_ID_HD_NO_CARTRIDGE_LOADED }, + { 715, ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM }, + { 716, ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION }, + { 720, ALARM_ID_HD_PRIME_SALINE_PURGE_AIR_TIME_OUT }, + { 720, ALARM_ID_HD_PRIME_DIALYSATE_DIALYZER_TIME_OUT }, + { 720, ALARM_ID_HD_PRIME_DIALYSATE_BYPASS_TIME_OUT }, + { 725, ALARM_ID_HD_BLOOD_LEAK_SENSOR_ZERO_SEQUENCE_FAILED }, + { 725, ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE }, + { 725, ALARM_ID_HD_PRE_TREATMENT_WET_PRIME_TEST_FAILURE }, + { 725, ALARM_ID_HD_PRE_TREATMENT_WET_LC_TEST_FAILURE }, + { 725, ALARM_ID_HD_PRE_TREATMENT_WET_FLOW_TEST_FAILURE }, + { 729, ALARM_ID_HD_PRIME_COMPLETED_LOW_PRIORITY }, + { 730, ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY }, + { 738, ALARM_ID_HD_TREATMENT_STOPPED_AFTER_RINSEBACK }, + { 739, ALARM_ID_HD_END_OF_TREATMENT_WARNING }, + { 745, ALARM_ID_HD_SYRINGE_DETECTED }, + { 746, ALARM_ID_HD_CARTRIDGE_REMOVAL_FAILURE }, + { 750, ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID }, + { 751, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID }, + { 752, ALARM_ID_DG_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE }, + { 753, ALARM_ID_DG_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP }, + { 840, ALARM_ID_HD_DISINFECT_FLUSH }, + { 841, ALARM_ID_HD_DISINFECT_HEAT }, + { 842, ALARM_ID_HD_DISINFECT_CHEM }, + { 843, ALARM_ID_HD_DISINFECT_CHEM_FLUSH }, + { 844, ALARM_ID_HD_DISINFECT_HEAT_COOL }, + { 845, ALARM_ID_HD_RO_PERMEATE_SAMPLE }, + { 850, ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED }, + { 850, ALARM_ID_HD_BATTERY_COMM_FAULT }, + { 850, ALARM_ID_HD_RTC_BATTERY_LOW }, + { 850, ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE }, + { 850, ALARM_ID_HD_UI_SDCARD_FAILURE }, + { 851, ALARM_ID_DG_RTC_BATTERY_LOW }, + { 851, ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE }, + { 852, ALARM_ID_HD_AC_POWER_LOST }, + { 999, ALARM_ID_HD_UI_POST_FAILURE_DISPLAY }, + { 999, ALARM_ID_AVAILABLE_2 }, + { 999, ALARM_ID_AVAILABLE_7 }, + { 999, ALARM_ID_AVAILABLE_10 }, + { 999, ALARM_ID_AVAILABLE_13 }, + { 999, ALARM_ID_AVAILABLE_15 }, + { 999, ALARM_ID_AVAILABLE_20 }, + { 999, ALARM_ID_AVAILABLE_21 }, + { 999, ALARM_ID_AVAILABLE_30 }, + { 999, ALARM_ID_AVAILABLE_31 }, + { 999, ALARM_ID_AVAILABLE_32 }, + { 999, ALARM_ID_AVAILABLE_50 }, + { 999, ALARM_ID_NO_ALARM }, +}; + +#endif // included by AlarmMgmt.c + +#ifdef __MANUAL_ALARMS__ +// Manual alarm table. These fields must be filled by a user even if we have to get the data from other departments +// This part is only compiled when the checkAlarms.sh creates a .c file to check the alarm tables. This code is not used in the firmware. +// The character fields are separated by | instead of , so the parser script can distinguish the end of each field column from the other it does not +// get confused with the , in the text. +struct AlarmsManualRecord +{ + U32 alarmNumber; ///< Alarm number + ALARM_ID_T alarmID; ///< Alarm ID + char field[9000]; ///< Alarm text field +}; +typedef struct AlarmsManualRecord ALARM_MANUAL_T; + +const ALARM_MANUAL_T ALARM_MANUAL_TABLE[] = +{ + // Num Alarm ID Device Display Title Instructions Alarm List Title Description Trigger Condition + { 0 , ALARM_ID_NO_ALARM , "N/A | | | | Indication for when no alarms is a possible situation | N/A | "}, + { 1 , ALARM_ID_HD_STUCK_BUTTON_TEST_FAILED , "HD | Stuck Button | A button was pressed during start up and appears stuck. \n- Press and release the power and stop buttons on the\nfront of the device.\n- Turn device off, then back on.\n- If problem continues, call service to schedule a repair. | HD POST: Stuck Button | Stuck button POST failure. Stop or Off button detected to be pressed for at least 1 second during test shortly after power up | Stop or Off button are pressed for more than 1 sec during POST. | "}, + { 2 , ALARM_ID_HD_FPGA_POST_TEST_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: FPGA Compatibility | HD FPGA POST failure | Minimum HD FPGA major revision is not compatible with this version of HD firmware or the FPGA Id is not correct. | "}, + { 3 , ALARM_ID_DG_FPGA_POST_TEST_FAILED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: FPGA Compatibility | DG FPGA POST failure | Minimum DG FPGA major and minor revision are not equal to the FPGA major and minor revision in FPGA header | "}, + { 4 , ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: WD Safestate | HD Watchdog POST failure | If the following are not observed after 500ms of not petting the WD: 1. WD exp pin=low 2. 24V <= 5V 3. audio current >= 200mA If the following are not observed after 500ms of resumed WD petting at proper timing: 1. WD exp pin=high 2. 24V >= 22.6V 3. audio current <= 10 mA | "}, + { 5 , ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: WD Safestate | DG Watchdog POST failure | If the following are not observed after 500ms of not petting the WD: 1. WD exp pin=low 2. 24V <= 5V If the following are not observed after 750ms of resumed WD petting at proper timing: 1. WD exp pin=high 2. 24V >= 22.6V | "}, + { 6 , ALARM_ID_HD_UI_COMM_POST_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Proc- UI Comm | UI communication POST failure. UI failed to communicate within a reasonable time after power up | If the UI failed to checkin via the CAN bus within 40 seconds | "}, + { 7 , ALARM_ID_HD_RTC_BATTERY_LOW , "HD | Service Required: Hemodialysis Device | A non- critical problem was detected with the hemodialysis\n device.\n- Call service to report the issue and schedule a repair. | HD Alarm (Low): RTC Bat Low | Real-time clock configuration error | If the RTC is not functional as indicated by the bits in the first 3 control registers. | "}, + { 8 , ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Acc Vector | HD accelerometer failed POST | If the calculated vector length of the accelerometer x, y, z is not the nominal length. | "}, + { 9 , ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Acc Vector | DG accelerometer failed POST | If the calculated vector length of the accelerometer x, y, z is not the nominal length. | "}, + { 10 , ALARM_ID_HD_BLOOD_LEAK_SENSOR_EMBEDDED_MODE_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: BLD Config Emb Mode | HD blood leak sensor embedded mode communication failed | If the blood leak sensor embedded mode is unresponsive. | "}, + { 11 , ALARM_ID_HD_DIALYSATE_TEMP_BELOW_TARGET_TEMP , "HD | Low Dialysate Temperature | Dialysate temperature is low. \n- Treatment is currently paused.\n- When dialysate temperature is within target range,\n treatment will need to be resumed. | Dial. Gen: Dialysate Temp Low | Dialysate temperature is below the target temperature | If the dialysate temperature is below the target temperature for a certain period of time. | "}, + { 12 , ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: HD Image | HD firmware image integrity POST test failed | If the calculated CRC of the HD image does not match the expected CRC. | "}, + { 13 , ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: DG Image | DG firmware image integrity POST test failed | If the calculated CRC of the DG firmware image does not matched the expected CRC | "}, + { 14 , ALARM_ID_DG_INVALID_USAGE_RECORD_CRC , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Usage Rec NVRAM CRC | DG non-volatile usage information group invalid record CRC | If the DG usage information record's CRC does not match the calculated CRC in POST. | "}, + { 15 , ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_SAFETY_TEMP , "HD | High Dialysate Temperature | Dialysate temperature is high. \n- Treatment is currently paused.\n- When dialysate temperature is within target range,\n treatment will need to be resumed. | Dial. Gen: Dialysate Temp High | Dialysate temperature is out of high safety range | If the dialysate temperature is > 46 C for a certain period of time. | "}, + { 16 , ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Primary Alarm Current | HD alarm audio failed POST | If alarm audio current is NOT in expected range for than 1 second while alarm tone is being output | "}, + { 17 , ALARM_ID_HD_UI_POST_TIMEOUT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI POST Not Complete | HD UI POST failed | If UI reports POST failed but did not trigger fault OR UI has not sent POST results within 2 seconds. | "}, + { 18 , ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_DG , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (DG ACK) | HD to DG comm error. | HD message to DG that requires acknowledge was not acknowledged within a certain time. | "}, + { 19 , ALARM_ID_HD_DIALYSATE_TEMP_ABOVE_TARGET_TEMP , "HD | High Dialysate Temperature | Dialysate temperature is high. \n- Treatment is currently paused.\n- When dialysate temperature is within target range,\n treatment will need to be resumed. | Dial. Gen: Dialysate Temp High | Dialysate temperature is above the target temperature | If the dialysate temperature is above the target temperature for a certain period of time. | "}, + { 20 , ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Conductivity Cal | DG conductivity sensors invalid calibration record | If the calibration data that was received from NVDataMgmt is NOT legitimate | "}, + { 21 , ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Drain Line Vol Cal | DG drain line volume invalid calibration record | If the calibration data that was received from NVDataMgmt is NOT legitimate | "}, + { 22 , ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Reservoir Vol Cal | DG reservoirs invalid calibration record | If the calibration data that was received from NVDataMgmt is NOT legitimate | "}, + { 23 , ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Acid Conc Cal | DG acid concentrate calibration record | If the non-volatile data is valid and if not raise the alarm | "}, + { 24 , ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Bicarb Conc Cal | DG bicarb concentrate calibration record | If the non-volatile data is valid and if not raise the alarm | "}, + { 25 , ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Acc Cal | DG accelerometer invalid calibration record | If the calibration data that was received from NVDataMgmt is NOT legitimate | "}, + { 26 , ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Acc Cal | HD accelerometer invalid calibration record | If the accel calibration data that was received from NVDataMgmt is NOT legitimate. | "}, + { 27 , ALARM_ID_HD_BLOOD_LEAK_SENSOR_ZERO_SEQUENCE_FAILED , "HD | Self Test: Blood Leak | A problem has been detected with the blood leak sensor.\n- Confirm cartridge is properly installed.\n- If problem persists, terminate treatment preparation and \n begin again using a new cartridge. | Process: Pre- Tx Wet Self- Test | HD BLD sensor failed zero sequence | BLD fails to complete zero sequence. | "}, + { 28 , ALARM_ID_DG_TWO_WIRE_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Conductivity RTD Comm | DG two wire sensors FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 29 , ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: SP DAC Cal | HD heparin force sensor invalid calibration record | If the heparin force sensor calibration data that was received from NVDataMgmt is NOT legitimate. | "}, + { 30 , ALARM_ID_TD_SOFTWARE_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: SW Invalid State | HD Software fault. Software found itself in an unexpected state | If the specific software faults listed in alarm management SW faults has been detected | "}, + { 31 , ALARM_ID_HD_BLOOD_PUMP_MC_CURRENT_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Current | Blood pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running | If the measured MC current is not greater than BP_MAX_CURR_WHEN_STOPPED_MA or is not greater than BP_MAX_CURR_WHEN_RUNNING_MA. | "}, + { 32 , ALARM_ID_HD_BLOOD_PUMP_OFF_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Speed | Blood pump failed motor off check. Measured speed while commanded off | If the measured motor speed is greater than BP_MAX_MOTOR_SPEED_WHILE_OFF_RPM | "}, + { 33 , ALARM_ID_HD_BLOOD_PUMP_MC_DIRECTION_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Direction | Blood pump failed motor direction check. Measured vs. commanded | If the set direction versus hall sensors direction versus sign of motor speed DOES NOT agree. | "}, + { 34 , ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_CHECK , "HD | Blood Pump Error | A problem has been detected with the blood pump.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue. | HD Fault: BP Rotor | Blood pump failed rotor speed check. Mismatch with rotor and motor speeds | If the delta of the measured motor speed and the commanded motor speed is not within tolerance. | "}, + { 35 , ALARM_ID_HD_DIAL_IN_PUMP_MC_CURRENT_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPi Current | Dialysis inlet pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running | If the Motor Controller measured DPi pump current > 150.0 mA for more than 250.0 msec. | "}, + { 36 , ALARM_ID_HD_DIAL_IN_PUMP_OFF_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPi Speed | Dialysis inlet pump failed motor off check. Measured speed while commanded off | If during command off state, the DPi pump motor speed is measured > 100.0 RMP. | "}, + { 37 , ALARM_ID_HD_DIAL_IN_PUMP_MC_DIRECTION_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPi Direction | Dialysis inlet pump failed motor direction check. Measured vs. commanded | If the set direction versus hall sensors direction DO NOT agree for more than 250.0 msec. | "}, + { 38 , ALARM_ID_HD_DIAL_IN_PUMP_ROTOR_SPEED_CHECK , "HD | Dialysate Pump Error | A problem has been detected with the dialysate pump.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue. | HD Fault: DPi Rotor | Dialysis inlet pump failed rotor speed check. Mismatch with rotor and motor speeds | If the measured motor speed versus the measured motor speed while controlling the target > 5.0 for more than 12 seconds. | "}, + { 39 , ALARM_ID_HD_DIAL_OUT_PUMP_MC_CURRENT_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPo Current | Dialysis outlet pump failed motor controller current check. Too high when pump should be off or out of range when pump should be running | If the DPo pump current > 150.0 mA while stopped or Dpo current > 2000.0 mA for more than 2 seconds while running. | "}, + { 40 , ALARM_ID_HD_DIAL_OUT_PUMP_OFF_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPo Speed | Dialysis outlet pump failed motor off check. Measured speed while commanded off | If the Dpo pump current > 100.0 RPM while commanded off for more than 5000 msec. | "}, + { 41 , ALARM_ID_HD_DIAL_OUT_PUMP_MC_DIRECTION_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPo Direction | Dialysis outlet pump failed motor direction check. Measured vs. commanded | If the DPo pump set direction does not agree with hall sensors or set direction does not agree with the sign of the motor speed for more than 25 msec. | "}, + { 42 , ALARM_ID_HD_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK , "HD | Dialysate Pump Error | A problem has been detected with the dialysate pump.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue. | HD Fault: DPo Rotor | Dialysis outlet pump failed rotor speed check. Mismatch with rotor and motor speeds | If DPo pump measured rotor speed does not agreed with the measured/commanded motor speed | "}, + { 43 , ALARM_ID_DG_MAIN_PRIMARY_HEATER_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Iso ADC Comm | Main primary heater FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 44 , ALARM_ID_HD_UI_COMM_TIMEOUT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: UI Comm | User interface communication timeout | If the sub-system communication timeout has occurred. UI is 5 seconds. DG is 2 seconds. | "}, + { 45 , ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: CAN CRC Com | Too many bad CRCs detected on received system messages | If too many bad messages CRCs are received within a set period of time | "}, + { 46 , ALARM_ID_HD_CAN_MESSAGE_NOT_ACKED_BY_UI , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: CAN ACK UI Com | System message that required acknowledgment was not acknowledged | If no retries left in the pending acknowlegement list. | "}, + { 47 , ALARM_ID_DG_MAX_RO_PUMP_PWM_EXCEEDED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Pump High | DG RO pump out of upper range | If the RO pump > 95% PWM for 12 secs. | "}, + { 48 , ALARM_ID_HD_UF_VOLUME_ACCURACY_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: UF Rate Tare Err | Ultrafiltration volume accuracy error during treatment | If the UF volume (refUFvolume - measureVolume) > 100.0 mL. | "}, + { 49 , ALARM_ID_HD_FPGA_COMM_TIMEOUT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: FPGA Com | HD FPGA communication down for too long | If there are more than 3 comm errors in a 1 min period. | "}, + { 50 , ALARM_ID_DG_VALVE_CONTROL_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Valve Control | DG FPGA not accepting commanded valve states | If the read back FPGA valve states does not match the commanded valve states for a certain amount of time. | "}, + { 51 , ALARM_ID_HD_BLOOD_PUMP_MOTOR_SPEED_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Speed | Blood pump failed motor speed check. Measured vs. commanded | If measured motor speed versus commanded rotor speed exceeded limits. | "}, + { 52 , ALARM_ID_HD_DIAL_IN_PUMP_MOTOR_SPEED_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPi Speed | Dialysate inlet pump failed motor speed check. Measured vs. commanded | If measured motor speed versus commanded motor speed exceeded limits for more than 5 secs. | "}, + { 53 , ALARM_ID_HD_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: DPo Speed | Dialysate outlet pump failed motor speed check. Measured vs. commanded | If measured motor speed versus commanded motor speed exceeded limits for more than 5 secs. | "}, + { 54 , ALARM_ID_HD_CRITICAL_DATA_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Critical Data Err | HD critical data integrity check failed | If the critical data failed range check. | "}, + { 55 , ALARM_ID_DG_CRITICAL_DATA_ERROR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Critical Data Err | DG critical data integrity check failed | If the critical data failed range check. | "}, + { 56 , ALARM_ID_HD_ACCELEROMETER_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Acc Com | HD accelerometer error (no readings or FPGA reports error) | If no fresh sample of accelerometer data has been detected for more than 100 msec. | "}, + { 57 , ALARM_ID_DG_ACCELEROMETER_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Acc Com | DG accelerometer error (no readings or FPGA reports error) | If no fresh sample of accelerometer data has been detected for more than 100 msec. | "}, + { 58 , ALARM_ID_HD_VALVE_HOMING_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Valve Home | HD valve homing failed | If the number of failed homing > = 3 counts. | "}, + { 59 , ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Valve Transition Err | HD valve transition time out | if the valve's transition time has timed out (3000msec) | "}, + { 60 , ALARM_ID_HD_VALVE_NOT_FUNCTIONAL , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Valve Control | HD valve not functional | If the valve bit masks are not as expected in different valve control mode. | "}, + { 61 , ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Valve Current | HD valve current out of range | If the valve current is over the threshold of 1.0 A for 1000 msec. | "}, + { 62 , ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Valve Position | HD valve position out of target | If the current position has deviated from the expected position for more than 1 second. | "}, + { 63 , ALARM_ID_HD_SYRINGE_PUMP_PRIME_TIMEOUT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Pre- Tx Hep. Pump Timeout. | HD syringe pump timeout alarm | If the syringe pump priming > 5 seconds | "}, + { 64 , ALARM_ID_DG_BARO_PRESSURE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Baro Range | Barometric pressure is out of range | If the barometric pressure is > 10.1 psi or < 15.4 psi for a certain period of time. | "}, + { 65 , ALARM_ID_HD_DG_COMMAND_INVALID_PARAMETER_FAULT , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (Reject) | HD requests DG command with invalid parameter fault | If the latest DG command response indicated invalid parameter | "}, + { 66 , ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: BLD Config Set Point | HD blood leak sensor set point set failure | If the set point of the blood leak sensor does not match the set point in the calibration record. | "}, + { 67 , ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE , "HD | Self Test: Cartridge | A cartridge has been detected during self- test.\n- Open door\n- Remove cartridge\n- Close door\n- Press Resume/OK | Process: Pre- Tx Remove Cartridge | HD blood pump occlusion self-test failure alarm | If the blood pump pressure > 5000 | "}, + { 68 , ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE , "HD | Dialysate Generation Error | A problem has been detected with dialysate generation. \n- Treatment is paused and will need to be resumed when \ndialysate is ready for use. | Dial. Gen: Dialysate not ready | HD active reservoir recirculation out of range | If the recirculation level has exceeded the max allowed | "}, + { 69 , ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: BLD Cal | HD blood leak sensor invalid calibration record | If the BLD data that was received from NVDataMgmt is NOT legitimate. | "}, + { 70 , ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE , "HD | Self Test: Cartridge | A cartridge has been detected during self- test.\n- Open door\n- Remove cartridge\n- Close door\n- Press Resume/OK | Process: Pre- Tx Remove Cartridge | HD arterial pressure self-test failure alarm | If arterial pressure < -300 or > 100 mmHg | "}, + { 71 , ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE , "HD | Self Test: Cartridge | A cartridge was detected during self- test.\n- Open door\n- Remove cartridge\n- Close door\n- Press Resume/OK | Process: Pre- Tx Remove Cartridge | HD venous pressure self-test failure alarm | If the venous pressure < -100 or > 600 mmHg | "}, + { 72 , ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (LC) | HD No load cell data message receive at least once every 2 seconds | No new load cell data for 2 seconds. | "}, + { 73 , ALARM_ID_HD_NEW_DIALYSATE_TEMP_DATA_MESSAGE_NOT_RECEIVE , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (TDI/TRO) | HD No dialysate temperature data message received at least once every 2 seconds | No new dialysate temperature data for 2 seconds. | "}, + { 74 , ALARM_ID_DG_INLET_UV_REACTOR_ON_WITH_NO_FLOW , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: UVi On No Flow | DG inlet UV reactor is on while there is no flow | If the inlet UV reactor is on while VPi is closed for a certain period of time. | "}, + { 75 , ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe DAC | HD syringe pump self-test failure alarm | If the calibration data that was received from NVDataMgmt and the DAC voltage with syringe retracted are not within tol. | "}, + { 76 , ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Voltage Monitor | HD monitored voltage is out of range | If the HD monitored voltages are out of range for a certain period of time. | "}, + { 77 , ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Voltage Monitor | DG monitored voltage is out of range | If the DG monitored voltages are out of range for a certain period of time. | "}, + { 78 , ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Enc Dir | HD syringe pump direction (from encoder) error | If the measured encoder direction of the syringe pump does not agree with the expected direction | "}, + { 79 , ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Drv Dir | HD syringe pump direction (from controller) error | If the measured direction of the syringe pump motor controller does not agree with the expected direction | "}, + { 80 , ALARM_ID_HD_SYRINGE_PUMP_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Driver | HD syringe pump fault reported by FPGA | If the FPGA reported the syringe pump fault | "}, + { 81 , ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump OT | HD syringe pump over travel error | If the syringe pump position is deemed to have overtraveled | "}, + { 82 , ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump DAC Err | HD syringe pump DAC write failure | If the syringe pump DAC write error is reported by the FPGA | "}, + { 83 , ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump On Err | HD syringe pump is running while the BP is off | If the syringe pump is on while the blood pump is off | "}, + { 84 , ALARM_ID_DG_SET_RTC_YEAR_INVALID , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: DG RTC Time | DG RTC set year is invalid | If DG RTC set year is < 2021. | "}, + { 85 , ALARM_ID_HD_PUMP_TRACK_LATCH_OPENED , "HD | Cartridge Lever is Open | A problem has been detected with the cartridge.\n- Open the device door and push lever all the way down.\n- Close the device door.\n- Press Resume/OK button to continue. | Blood Stop: Cartridge Lever Open | HD pump track lever is not fully latched | If the pump track lever is detected as unlatched when it should be. | "}, + { 86 , ALARM_ID_HD_SET_RTC_YEAR_INVALID , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: HD RTC Time | HD RTC set year is invalid | If HD RTC set year is < 2021. | "}, + { 87 , ALARM_ID_DG_HEATING_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Heat Cal | DG heating parameters invalid calibration record | If the heating paramters' non-volatile record's CRC does not match the calculated CRC. | "}, + { 88 , ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CP1 CP2 Speed Range | DG concentrate pump hall sensor out of range. | Hall sensor pulse to pulse timing is < 1ms (speed too fast). | "}, + { 89 , ALARM_ID_DG_OUTLET_UV_REACTOR_ON_WITH_NO_FLOW , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: UVo On No Flow | DG outlet UV reactor is on while there is no flow | If the outlet UV reactor is on while the RO flow is less than 200 mL/min. | "}, + { 90 , ALARM_ID_DG_LOAD_CELL_A1_B1_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: LC A1/B1 Comm | DG load cells A1/B1 FPGA fault | If the FPGA does not report fresh data for a certain period of time. | "}, + { 91 , ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (FMD) | HD No dialysate flow data received in the last 3 seconds | If not receiving new dialysate flow readings in expected interval (3 seconds) | "}, + { 92 , ALARM_ID_DG_TEMPERATURE_SENSORS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Temp Snsr Cal | DG temperature sensors invalid calibration | If the calibration date of the temperature sensors is 0. | "}, + { 93 , ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Permeate Cond High | DG outlet primary conductivity sensor out of range | If the outlet primary conductivity sensor, CPo is greater than 30 uS/cm for a certain period of time. | "}, + { 94 , ALARM_ID_DG_PRESSURE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Pressure Sensor Range | DG pressure sensor out of range | If either of the pressure sensors is < 0 psia or > 200 psia for DG pressure sensors. | "}, + { 95 , ALARM_ID_DD_WATCHDOG_EXPIRED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: WD Error | DG watchdog expired | If the watchdog signal is low while not in POST. | "}, + { 96 , ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE , "DG | Incoming Water Temperature High | Incoming water temperature is high.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the temperature is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Temp High | DG inlet water temperature out of range | If the inlet water temperature is > 37 C. | "}, + { 97 , ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE , "DG | Conductivity Out of Range | Treatment is currently paused.\n- Confirm that acid and bicarbonate concentrates\nare securely connected.\n- If empty, replace. \n- Treatment will need to be resumed when conductivity\nis within target range. | Dial. Gen: Dialysate Cond. | DG fill conductivity out of range | If the average acid or bicard conductivity is > 5% of the normal acid and bicarb conductivity values. | "}, + { 98 , ALARM_ID_HD_BATTERY_COMM_FAULT , "HD | Service Required: Hemodialysis Device | A non- critical problem was detected with the hemodialysis\n device.\n- Call service to report the issue and schedule a repair. | HD Alarm (Low): Battery Com | HD battery or battery charger communication fault | If battery I2C communication fault persistence count > 5. | "}, + { 99 , ALARM_ID_HD_SYRINGE_PUMP_STALL , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Stall | HD syringe pump stall alarm | If syringe pump measured rate < stall speed threshold (0.05) and the ramp up has been restarted 3 times after stall has been detected. | "}, + { 100 , ALARM_ID_DG_COND_SENSORS_INVALID_TEMP_COMP_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Conductivity Cal | DG conductivity sensors temperatrue compensation invalid calibration record | If the calibration data that was received from NVDataMgmt is NOT legitimate | "}, + { 101 , ALARM_ID_UI_POST_HD_COMM , "UI | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI- Proc Comm | UI POST FW Communication failure | If the HD is not communicating with the UI during POST. | "}, + { 102 , ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANGE , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Tpo THD Temp Delta | DG heat disinfection temperature gradient out of range | If temperature gradient between Tpo and Thd exceeds maximum 15°C. | "}, + { 103 , ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Cal NVRAM CRC | HD non-volatile calibration group invalid record CRC | If the computed CRC of the calibration group record is not equal to the record CRC. | "}, + { 104 , ALARM_ID_HD_AIR_TRAP_ILLEGAL_LEVELS , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Air Trap Sensor | Air trap level sensors reporting illegal combination of air/fluid | If the air trap level readings are not valid for more than 2 seconds. | "}, + { 105 , ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Cal NVRAM CRC | DG non-volatile system group invalid record CRC | If the DG NVDATAMGMT CAL group calculated CRC does not matched the expected CRC. | "}, + { 106 , ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Flow Sensor Cal | DG flow sensors calibration error | If the calculated CRC of the flow sensors calibration record does not match the calibration records' CRC. | "}, + { 107 , ALARM_ID_HD_DG_RESTARTED_FAULT , "HD | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DG Restarted | HD reports DG restarted fault | If DG reports being in any mode other than idle, drain, fill or fault during pre-tx, tx, or post-tx modes - means DG restarted unexpectedly and is no longer in sync w/ HD. | "}, + { 108 , ALARM_ID_HD_SYRINGE_PUMP_FPGA_ADC_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump ADC Com | HD syringe pump ADC error | If the ADC read is not fresh after POST init and the ADC read counter has not changed. | "}, + { 109 , ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Vol | HD syringe pump volume check error | If the volume delivered is off by more than 5% or 0.1mL. | "}, + { 110 , ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Speed | HD syringe pump speed check error | If the syringe measured rate is off by more than 5% or 0.1mL. | "}, + { 111 , ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Syringe Pump Speed | HD syringe pump not stopped in off state error | If the syringe pump position is not equal to its last position. | "}, + { 112 , ALARM_ID_DG_LOAD_CELL_A2_B2_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: LC A2/B2 Comm | DG load cells A2/B2 FPGA fault | If the FPGA does not report fresh data for a certain period of time. | "}, + { 113 , ALARM_ID_DG_DRAIN_PUMP_CURRENT_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DRP Current | DG drain pump current out of range | If the DG drain pump current > 2.2 A when it is in open loop or if the current > 0.1 A when it is off. | "}, + { 114 , ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE , "HD | Self Test: Venous Air Detector | A problem has been detected with the venous air detector.\n- Check cartridge installation.\n- If problem persists, terminate treatment preparation and \n begin again using a new cartridge. | Process: Pre- Tx Wet Self- Test | HD venous air bubble detector self-test failure | If the venous air bubble self test did not detect bubble for more than 500 msec. | "}, + { 115 , ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Temp Sensor Range | DG temperature sensor out of range | If the measured temperature < 0 C or > 80 C for the non-fluid inline sensors and > 120 C for the fluid sensors. | "}, + { 116 , ALARM_ID_HD_UI_SDCARD_FAILURE , "UI HD | Service Required: Dialysate Device | A non- critical problem was detected with the hemodialysis\n device.\n- Call service to report the issue and schedule a repair. | HD Alarm (Low): SD- Card Error | SD card is non-operational | SD card is non-operational | "}, + { 117 , ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED , "DG | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of HD Comm (HD ACK) | System message that required acknowledgment was not acknowledged | If no retries left in the pending acknowlegement list. | "}, + { 118 , ALARM_ID_DG_RTC_CONFIG_ERROR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RTC Config | DG RTC configuration error | If the RTC configuration registers report an error. | "}, + { 119 , ALARM_ID_DG_RTC_BATTERY_LOW , "DG | Service Required: Dialysate Device | A non- critical problem was detected with the dialysate device.\n- Call service to report the issue and schedule a repair. | DG Alarm (Low): RTC Bat Low | DG RTC battery low | If the RTC battery bit report a low alarm. | "}, + { 120 , ALARM_ID_HD_PRE_TREATMENT_WET_PRIME_TEST_FAILURE , "HD | Self Test: Venous Air Detector | A problem has been detected with the venous air detector\n- Check cartridge installation.\n- If problem persists, terminate treatment preparation and \n start over using a new cartridge. | Process: Pre- Tx Wet Self- Test | HD pre-treatment wet prime test failure | If the HD pre-treatment wet self test failed. | "}, + { 121 , ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Prim Heater Lg Control | DG main primary heater voltage out of range | If the main primary heater's voltage is out of range. | "}, + { 122 , ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Prim Heater Sm Control | DG small primary heater voltage out of range | If the small primary heater's voltage is out of range. | "}, + { 123 , ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Trimmer Heater Control | DG trimmer heater voltage out of range | If the trimmer voltage is out of range. | "}, + { 124 , ALARM_ID_HD_END_OF_TREATMENT_HIGH , "HD | Blood Pump Stop Time Exceeded | The blood pump has been off for too long.\n- Treatment must be terminated without rinseback. | Blood Stop: Blood Clot Risk | HD end of treatment alarm (high priority - user still not acting to end treatment) | In treatment end paused state for > 5 minutes. | "}, + { 125 , ALARM_ID_HD_TREATMENT_STOPPED_NO_RINSEBACK , "HD | Blood Pump Stop Time Exceeded | The blood pump has been off for too long.\n- Treatment must be terminated without rinseback. | Blood Stop: Blood Clot Risk | Blood sitting too long after treatment stopped by user alarm (> 5 min) | If in treatment stop sub mode when blood is in the tubing, the blood sitting counter exceeded 5 minutes. | "}, + { 126 , ALARM_ID_HD_BLOOD_LEAK_DETECTED , "HD | Blood Leak | A blood leak has been detected. \n- Visually inspect dialysate return line for blood.\n- Press Resume/OK to proceed to the next step. Dialysate will\n remain in bypass. | Blood Stop: Dialyzer Blood Leak | HD blood leak detected alarm | If the blood leak is detected based on the blood leak status reported by the sensor. | "}, + { 127 , ALARM_ID_HD_VENOUS_PRESSURE_LOW , "HD | Low Venous Pressure | Venous pressure is low.\n- Ensure venous access connections are properly secured.\n- Check needle placement and resolve access issues, \nif applicable.\n- Check air trap for foam and that transducers are secured.\n- Inspect transducer for moisture and change, if applicable.\n- Inspect dialyzer for clots. If clots are present, follow\n facility policy to end treatment.\n- Press Resume/OK to continue treatment. | Blood Stop: Venous Pres. Low | Venous pressure too low during treatment | If the venous pressure < TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT. Or expanded pressure limits based on mode of operation. | "}, + { 128 , ALARM_ID_HD_VENOUS_BUBBLE_DETECTED , "HD | Venous Air Detected | Air detected in the venous air trap.\n- Confirm arterial access placement and confirm\nconnections are secure.\n- Treatment must be terminated without rinseback. | Blood Stop: Venous Air Bubble | HD venous air bubble detected alarm | If bubbles are detected during the treatment. | "}, + { 129 , ALARM_ID_HD_BLOOD_LEAK_RECOVERING_PLEASE_WAIT , "HD | Blood Leak: Bypass | The device is currently in bypass due to a potential blood leak.\n- If blood is present upon visual inspection, press\n END TREATMENT to terminate treatment without rinseback.\n- If blood is not visualized, check dialysate for blood using\n test strip.\n- Follow facility policy to Resume/OK or END TREATMENT. | Blood Stop: Dialyzer Blood Leak Bypass | HD blood leak detected and it is in the process of attempting to remove the bubbles/foam | If the blood leak is detected in treatment, the HD device transitions to treatment stop and runs in bypass until there is no blood detected. The user can hit end treatment anytime. | "}, + { 130 , ALARM_ID_HD_VENOUS_PRESSURE_HIGH , "HD | High Venous Pressure | Venous pressure is high. \n- Check venous bloodlines for kinks or clamps.\n- Check needle placement and/or access position.\n- Resolve access issues, if applicable.\n- Check air trap for foam and that transducers are secured.\n- Inspect transducer for moisture and change, if applicable.\n- If clots are present, end treatment without rinseback.\n- Press Resume/OK to continue treatment. | Blood Stop: Venous Pres. High | Venous pressure too high during treatment | If the venous pressure > TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT. Or expanded pressure limits based on mode of operation. | "}, + { 131 , ALARM_ID_HD_ARTERIAL_PRESSURE_LOW , "HD | Low Arterial Pressure | Arterial pressure is low.\n- Inspect arterial bloodlines for kinks or clamps.\n- Check needle placement or access position.\n- Resolve access issues, if applicable.\n- Check to ensure transducers are securely connected.\n- Inspect transducer for moisture and change if applicable.\n- If clots are present, end treatment without rinseback. | Blood Stop: Arterial Pres. Low | Arterial pressure too low during treatment | If the arterial pressure < TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT. Or expanded pressure limits based on mode of operation. | "}, + { 132 , ALARM_ID_HD_ARTERIAL_PRESSURE_HIGH , "HD | High Arterial Pressure | Arterial pressure is high.\n- Check venous bloodlines for kinks or clamps.\n- Check needle placement and/or access position.\n- Resolve access issues if applicable.\n- Check to ensure transducers are securely connected.\n- Inspect transducer for moisture and change if applicable.\n- If clots are present, end treatment without rinseback. | Blood Stop: Arterial Pres. High | Arterial pressure too high during treatment | If the arterial pressure > TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT. Or expanded pressure limits based on mode of operation. | "}, + { 133 , ALARM_ID_DG_FLUID_LEAK_DETECTED , "DG | Dialysate Device Fluid Leak | Fluid leak detected in the dialysate device.\n- Treatment must be terminated.\n- Turn off water source. \n- Disconnect water and electrical connections from the device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Fluid Leak in DG | DG fluid leak detected alarm | If the fluid leak is detected as reported by the fluid leak detector. | "}, + { 134 , ALARM_ID_HD_FLUID_LEAK_DETECTED , "HD | Fluid Leak | Fluid leak detected in hemodialysis device.\n- If in treatment, blood pump is off.\n- Identify and correct the cause of the fluid leak.\n- Clean up fluid and dry leak sensor.\n- Once fluid has been cleaned up, Resume/OK treatment. | Blood Stop: Fluid Leak in HD | HD fluid leak detected alarm | If the fluid leak is detected as reported by the fluid leak detector. | "}, + { 135 , ALARM_ID_HD_SHOCK , "HD | Blood Pump Stopped: Excessive Movement | Excessive movement of the hemodialysis device has been\ndetected. \n- Treatment is currently paused. \n- When system movement has stablized, \ntreatment will need to be resumed.\n- To resume treatment, press Resume/OK. | Blood Stop: HD Shock Detected | HD experienced large acceleration | If the system experienced excessive shock > 2.5 g. | "}, + { 136 , ALARM_ID_DG_SHOCK , "DG | Dialysate Device: Excessive Movement | Excessive movement of the dialysate device has been\ndetected. \n- Treatment is currently paused. \n- When system movement has stablized, \ntreatment will need to be resumed.\n- To resume treatment, press Resume/OK. | Dial. Gen: Shock- Vibration | DG experienced large acceleration | If the system experienced excessive shock > 2.5 g. | "}, + { 137 , ALARM_ID_HD_EXCESSIVE_TILT , "HD | Blood Pump Stopped: Excessive Tilt | Excessive tilt of the hemodialysis device has been detected. \n- Treatment is currently paused. \n- When the device is stationary and level, \ntreatment will need to be resumed.\n- To resume treatment, press Resume/OK. | Blood Stop: HD Tilted | HD tilt exceeds maximum | If the system experienced excessive tilt x and y axis angle > 3 deg for more than 1 sec. | "}, + { 138 , ALARM_ID_DG_EXCESSIVE_TILT , "DG | Dialysate Device: Excessive Tilt | Excessive tilt of the dialysate device has been detected.\n- Treatment is paused.\n- Confirm the device is stationary and level before continuing. | Dial. Gen: Tilt | DG tilt exceeds maximum | If the system experienced excessive tilt x and y axis angle > 3 deg for more than 1 sec. | "}, + { 139 , ALARM_ID_HD_AC_POWER_LOST , "HD | Power Loss | AC Power has been lost.\n- Check all electrical connections.\n- Press Resume/OK to return to welcome screen. | Loss of AC Power | HD AC power lost alarm | The HD Software shall trigger an alarm if an AC power loss is detected while the HD system is in standby, service, or treatment parameters mode. | "}, + { 140 , ALARM_ID_HD_DG_COMM_TIMEOUT , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (Timeout) | Dialysate generator communication timeout | If DG communication timeout is detected for more than 2 seconds. | "}, + { 141 , ALARM_ID_HD_AIR_TRAP_FILL_DURING_TREATMENT , "HD | Blood Pump Stopped: Venous Air Detector | A problem was detected with the venous air detector.\n- Confirm arterial access placement and ensure\nconnections are secure.\n- Treatment must be terminated without rinseback. | Blood Stop: Air Trap Fill | Air trap fill timeout during treatment | If the air trap fill timeout during treatment. | "}, + { 142 , ALARM_ID_HD_OCCLUSION_BLOOD_PUMP , "HD | Blood Pump Stopped: Occlusion | Occlusion detected after the blood pump.\n- Inspect bloodlines for kinks or clamps.\n- Check needle placement or access position.\n- Resolve access issues, if applicable.\n- If clots are present, end treatment without rinseback. | Blood Stop: Blood Pump Occlusion | Blood pump occlusion detected | If blood occlusion is detected > OCCLUSION_THRESHOLD_OFFSET + bloodPumpOcclusionAfterCartridgeInstall | "}, + { 143 , ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: TRo TDi Delta | DG dialysate temperature sensors drift timeout. | If TDi and TRo have drifted for more 1 C for a certain period of time. | "}, + { 144 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_HIGH , "DG | Disinfection: Water Conductivity High | Incoming water conductivity is too high.\n- Disinfection has been terminated.\n- Check incoming water before initiating disinfection again. | Cleaning: Inlet Water Cond High | DG cleaning mode inlet water conductivity out of high range | Inlet water conductivity > 2000 uS/cm. Inlet water conductivity > 100 uS/cm (PURE WATER MODE). In cleaning mode | "}, + { 145 , ALARM_ID_DG_ACID_CONDUCTIVITY_OUT_OF_RANGE , "DG | Conductivity Error During Prime | Conductivity out of range during prime.\n- Confirm that acid and bicarbonate concentrates\nare securely connected.\n- If empty, replace. \n- Treatment will need to be resumed when conductivity\nis within target range. | Dial. Gen: Acid Conc. Cond. | DG Concentrate conductivity after adding acid out of range alarm | If the conductivity value for the acid concentrate is out of range for more than 45 secs. | "}, + { 146 , ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: DG RTC Timer | DG RTC vs. Timer accuracy error | If RTC and timer are not aligned on 1 second elapsed time. | "}, + { 147 , ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT , "DG | Dialysate Generation Error | A problem has been detected with dialysate generation. \n- Treatment is paused and will need to be resumed when \nthe dialysate is ready for use. | Dial. Gen: Dialysate not ready | DG dialysate generation conductivity fault alarm | If dialysate conductivity is not with 5% of the TCD | "}, + { 148 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_HIGH , "DG | Disinfection: Water Temperature High | Incoming water temperature is too high.\n- Disinfection has been terminated.\n- Check incoming water before initiating disinfection again. | Cleaning: Inlet Water Temp High | Cleaning Mode Inlet water temperature too high | Inlet temperature > 37 C. | "}, + { 149 , ALARM_ID_TD_WATCHDOG_EXPIRED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: WD Error | HD watchdog expired | If the watchdog signal is low while not in POST. | "}, + { 150 , ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE , "DG | Incoming Water Conductivity High | Conductivity of incoming water is high.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the conductivity is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Cond High | Inlet water conductivity too high | Inlet water conductivity > 2000 uS/cm. Inlet water conductivity > 100 uS/cm (PURE WATER MODE). | "}, + { 151 , ALARM_ID_DG_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE , "DG | Incoming Water Conductivity Low | Conductivity of incoming water is low.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the conductivity is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Cond Low | Inlet water conductivity too low | Inlet water conductivity < 200 uS/cm. Inlet water conductivity low disabled (PURE WATER MODE). | "}, + { 152 , ALARM_ID_DG_INLET_WATER_PRESSURE_IN_LOW_RANGE , "DG | Incoming Water Pressure Low | Water pressure of incoming water is low.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the pressure is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Pres Low | Inlet water pressure too low | Inlet water pressure < 25 PSI. | "}, + { 153 , ALARM_ID_HD_PRIME_COMPLETED_HIGH , "HD | Pre-Treatment Process Terminated | The pre- treatment process has been terminated because \ntreatment did not begin within two hours of priming. \n- Press Resume/OK for continue with next steps to remove \ncartridge from the device. | Process: Pre- Tx Terminated | HD prime completed high priority alarm | In Pre-Treatment Recirculation for 120 minutes (escalation of alarm 213) | "}, + { 154 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_COND_TOO_LOW , "DG | Disinfection: Water Conductivity Low | Incoming water conductivity is too low.\n- Disinfection has been terminated.\n- Check incoming water before initiating disinfection again. | Cleaning: Inlet Water Cond Low | Cleaning mode inlet water conductivity too low | Inlet water conductivity < 200 uS/cm. Inlet water conductivity low disabled (PURE WATER MODE). In cleaning mode | "}, + { 155 , ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (Reservoir) | HD No reservoir data message receive at least once every 2 seconds | No new reservoir data for 2 seconds. | "}, + { 156 , ALARM_ID_HD_DG_NEW_OPERATION_MODE_MESSAGE_NOT_RECEIVE , "HD | Communication Error | A communication problem has been detected.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | Loss of DG Comm (Op Mode) | HD No DG op mode message receive at least once every 2 seconds | No DG op mode for 2 seconds. | "}, + { 157 , ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT , "DG | Chemical Disinfectant Not Detected | Unable to sense proper chemical disinfectant.\n- Disinfection process has terminated.\n- Confirm chemical disinfectant is connected to the\nconcentrate inlet. \n- Confirm chemical disinfectant container is not empty.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Chem Disinf PAA Prime | Chemical disinfect priming the acid line timeout | If the disinfectant acid line is not primed within a certain period of time. | "}, + { 158 , ALARM_ID_DG_INLET_WATER_TEMPERATURE_IN_LOW_RANGE , "DG | Incoming Water Temperature Low | Incoming water temperature is low.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the temperature is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Temp Low | Inlet water temperature low | Inlet temperature < 24 °C for 5 seconds. | "}, + { 159 , ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID , "DG | Remove Chemical Disinfectant | The chemical disinfectant is no longer needed. \n- Disconnect chemical disinfectant from the device. \n- Place the concentrate connection cap on the device.\n- Keep dialysate cap on the device. | Cleaning: Chem Disinf Connect Cap | Close concentrate line be able to flush it | Start of chemical disinfect flush. | "}, + { 160 , ALARM_ID_HD_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Rotor Max Speed | Blood pump rotor speed too high | If blood pump motor speed exceeded 100.0 RPM. | "}, + { 161 , ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: HD- DG Comm | Too many bad CRCs detected on received system messages | If >= 5 bad CRCs detected on received CAN messages within 10 minutes. | "}, + { 162 , ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Proc- FPGA Clock | FPGA clock speed failure | If the FPGA clock speed is relatively close to the processor clock for a certain period of time. | "}, + { 163 , ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM , "HD | Ultrafiltration Error | A problem was detected with the dialysate device. \n- Confirm the device is level with minimal movement. \n- Resume/OK treatment. \n- If problem persists, call service to report the issue and\nschedule a repair. | Dial. Gen: UF Rate Check | HD sees primary load cell for reservoir 1 change too much too fast | If the delta volume of the active reservoir exceeded 50.0 g (MAX_ACTIVE_LOAD_CELL_CHANGE_G). | "}, + { 164 , ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM , "HD | Ultrafiltration Error | A problem was detected with the dialysate device. \n- Confirm the device is level with minimal movement. \n- Resume/OK treatment. \n- If problem persists, call service to report the issue and\nschedule a repair. | Dial. Gen: UF Rate Check | HD sees primary load cell for reservoir 2 change too much too fast | If the delta volume of the active reservoir exceeded 50.0 g (MAX_ACTIVE_LOAD_CELL_CHANGE_G). | "}, + { 165 , ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_ALARM , "HD | Blood Pump Stop Time Exceeded | The blood pump has been off for too long.\n- Treatment must be terminated without rinseback. | Blood Stop: Blood Clot Risk | HD in treatment rinseback operation timeout | If the maximum time inrinseback operation has been exceeded. | "}, + { 166 , ALARM_ID_TEST_ALARM_NO_BLOOD_RECIRC_CLR_TOP_ONLY , " | Test Alarm - Alarm 166 | | | | | "}, + { 167 , ALARM_ID_HD_CARTRIDGE_DOOR_OPENED , "HD | Blood Pump Stopped: Door Open | The device door is open.\n Close the device door. \n- Press Resume/OK to continue. | Blood Stop: Door Open | HD cartridge door opened alarm | If the cartridge door is opened as reported by the FPGA. | "}, + { 168 , ALARM_ID_TEST_ALARM_NO_DIAL_RECIRC_CLR_TOP_ONLY , " | Test Alarm - Alarm 168 | | | | | "}, + { 169 , ALARM_ID_DG_DIALYSATE_FLOW_RATE_OUT_OF_MAX_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Dialysate Flow Sens Rg | Dialysate flow rate out of range | If the dialysate flow rate > 2.00 L/min. | "}, + { 170 , ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY , "HD | Heparin Syringe Empty | Heparin syringe is empty.\n- Treatment will continue without heparin.\n- Refer to facility policy if additional heparin is needed to\ncomplete treatment. | Heparin Syringe Empty | HD syringe empty alarm | If the syringe pump position is near empty position. | "}, + { 171 , ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION , "HD | Heparin Pump Occlusion | A problem has been detected with the heparin pump.\n- Ensure heparin line is not kinked or clamped. | Process: Pre- Tx Hep. Pump Occ. | HD syringe pump occlusion alarm | If the pressure sensor voltage reading > SYRINGE_FORCE_OCCLUSION_THRESHOLD_V. | "}, + { 172 , ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM , "HD | Not Enough Heparin | There is not enough heparin available for treatment.\n- Ensure the syringe pump is touching the syringe plunger.\n- If the syringe pump is touching the syringe plunger,\nend treatment.\n- If syringe pump is not touching the syringe plunger, \nensure the correct amount of heparin has been drawn and\nreload the syringe. | Process: Pre- Tx Not Enough Hep. | HD syringe pump not enough Heparin alarm | If the estimated syringe volume needed for treatment is not sufficient | "}, + { 173 , ALARM_ID_HD_RTC_CONFIG_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: RTC Config | HD RTC configuration error | If the RTC configuration registers report an error. | "}, + { 174 , ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: HD RTC Timer | HD RTC vs. Timer accuracy error | If RTC and timer are not aligned on 1 second elapsed time. | "}, + { 175 , ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Pump Commutation Err | HD pump commutation error | If the set pump direction does not agree with the hall sensor direction. | "}, + { 176 , ALARM_ID_TEST_ALARM_NO_RECIRC_CLR_TOP_ONLY , " | Test Alarm - Alarm 176 | | | | | "}, + { 177 , ALARM_ID_DD_SOFTWARE_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Software Invalid State | DG software fault. Software found itself in an unexpected state | If the specific software faults listed in alarm management SW faults has been detected | "}, + { 178 , ALARM_ID_HD_COMM_TIMEOUT , "UI | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: UI- Proc Comm | HD communication timeout | If the HD stops communicating with the UI. | "}, + { 179 , ALARM_ID_DG_FPGA_COMM_TIMEOUT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: FPGA Com | DG FPGA communication down for too long | If retries for commands exceeds limit or FPGA reports comm error. | "}, + { 180 , ALARM_ID_DG_RO_FLOW_RATE_OUT_OF_MAX_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Flow Sensor Range | RO flow rate out of range | If the RO flow rate > 2.00 L/min. | "}, + { 181 , ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Tare Out of Range | DG load cells weight out of range for tare | If the load cell weight is out of range for tare. | "}, + { 182 , ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: LC Cal | DG load cells invalid calibration | If the CRC of load cells calibration data does not match the calculated CRC. | "}, + { 183 , ALARM_ID_DG_INVALID_LOAD_CELL_VALUE , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Invalid Resv Transfer | DG invalid load cell value | If the half full reservoir is filled prior to filling the reservoir that is supposed to overflow to the half full reservoir. | "}, + { 184 , ALARM_ID_DG_INLET_UV_REACTOR_NOT_HEALTHY , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: UVi Error | Inlet reactor not healthy | If the inlet reactor are not healthy. | "}, + { 185 , ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A non- critical problem was detected with the dialysate device.\n- Call service to report the issue and schedule a repair. | DG Alarm (Low): Fan Speed | DG fan RPM out of range | If the fan RPM is out of Min/Max range. | "}, + { 186 , ALARM_ID_DG_CONCENTRATE_PUMP_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CP1/CP2 Fault | DG concentrate pump fault | If the concentrate pumps fault is reported by the FPGA. | "}, + { 187 , ALARM_ID_DG_CP1_SPEED_CONTROL_ERROR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CP1 Speed Fault | DG concentrate pump CP1 speed control error | If the concentrate pump CP1 speed > 0.02 tolerance for a certain period of time. | "}, + { 188 , ALARM_ID_DG_CP2_SPEED_CONTROL_ERROR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CP2 Speed Fault | DG concentrate pump CP2 speed control error | If the concentrate pump CP1 speed > 0.02 tolerance for a certain period of time. | "}, + { 189 , ALARM_ID_DG_DRAIN_PUMP_RPM_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DRP Speed Fault | DG drain pump RPM out of range | If the drain pump RPM > 100.0 of the target RPM. | "}, + { 190 , ALARM_ID_DG_DRAIN_PUMP_OFF_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DRP Speed Not Off | DG drain pump off fault | If the pump is in off state and the RPM is greater than the minimum RPM of 300.0 RPM. | "}, + { 191 , ALARM_ID_DG_FLOW_RATE_OUT_OF_UPPER_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Flow High | DG flow rate out of upper range | If the RO flow rate > 10% from the target flow rate. | "}, + { 192 , ALARM_ID_DG_FLOW_RATE_OUT_OF_LOWER_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Flow Low | DG flow rate out of lower range | If the RO flow rate < 10% from the target flow rate. | "}, + { 193 , ALARM_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP , "HD | Blood Pump Stopped: Partial Occlusion | Partial occlusion detected after the blood pump.\n- Inspect bloodlines for kinks or clamps.\n- Check needle placement or access position.\n- Resolve access issues, if applicable.\n- Inspect dialyzer for clots. If clots are present, follow\n facility policy to end treatment. | Blood Stop: Blood Pump Partial Occlusion | Blood pump partial occlusion detected | If blood occlusion is detected > PARTIAL_OCCLUSION_THRESHOLD_OFFSET + bloodPumpOcclusionDuringTreatement | "}, + { 194 , ALARM_ID_DG_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Driver Feedback | DG RO pump duty cycle out of range | If the DG RO pump duty cycle is out of range by 5% of the target duty cycle for a certain period of time. | "}, + { 195 , ALARM_ID_DG_RO_PUMP_PRESSURE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Pump High Pressure | DG RO pump pressure out of range | If the DG RO pump pressure > 135 psi for a certain period of time. | "}, + { 196 , ALARM_ID_DG_CPI_CPO_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CPi/CPo Comm | DG CPi/CPo conductivity sensors FPGA fault | If the FPGA reports error for a certain period of time. | "}, + { 197 , ALARM_ID_DG_CD1_CD2_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CD1/CD2 Comm | DG CD1/CD2 conductivity sensors FPGA fault | If the FPGA reports error for a certain period of time. | "}, + { 198 , ALARM_ID_DG_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: HP On With No Flow | DG primary heater while RO flow is low | If the RO flow is < 0.2 L/min for a certain period of time. | "}, + { 199 , ALARM_ID_DG_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: HR On With No Flow | DG trimmer heater while dialysate flow is low | If the FMD flow is ≤ 0 mL/min (raw) for a certain period of time. | "}, + { 200 , ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Thermistor Range | DG thermistor or temperature sensor out of range | If thermistor > 80.0 C or < 0.0 C. | "}, + { 201 , ALARM_ID_HD_PRE_TREATMENT_WET_FLOW_TEST_FAILURE , "HD | Self Test: Dialysate Flow Rate | A problem has been detected when measuring dialysate flow.\n- Confirm cartridge is properly installed and primed.\n- If problem persists, terminate treatment preparation and \n start over using a new cartridge. | Process: Pre- Tx Wet Self- Test | HD pre-treatment wet flow test failure | If the pre-treatment wet flow test has failed. | "}, + { 202 , ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE , "HD | Self Test: Pressure | A problem has been detected during self- test. \n- Confirm the cartridge is properly installed. \n- Ensure arterial and venous pressure sensor lines are\nnot kinked.\n- Press Resume/OK to resume. \n- If problem persists, install a new cartridge. | Process: Pre- Tx Dry Self- Test | HD pre-treatment dry pressure normal test failure | If the pre-treatment dry pressure normal test failed. | "}, + { 203 , ALARM_ID_DG_FILL_CONDUCTIVITIES_INVALID_CAL_RECORD , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Fill Cond Cal | DG fill acid/bicarb invalid calibration record | If the fill target acid/bicarb conductivities' non-volatile record's calibration time is not 0. | "}, + { 204 , ALARM_ID_DG_RO_REJECTION_RATIO_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: RO Rejection | RO rejection ratio out of range | If RO rejection ratio > 0.1 | "}, + { 205 , ALARM_ID_DG_CONDUCTIVITY_SENSOR_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Cond Sensors Error | Conductivity sensor fault | If conductivity sensor reports 0x11 for more than 2 consecutive reads. | "}, + { 206 , ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Reservoir Fill Timeout | DG dialysate fill runs out of time | If DG dialysate fill > 5 minutes. | "}, + { 207 , ALARM_ID_DG_FLOW_METER_CHECK_FAILURE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: FMP Flow Rate Error | DG flow meter check failure alarm | If integrated Volume To Load Cell Reading Percent > 0.1. | "}, + { 208 , ALARM_ID_HD_VENOUS_LINE_OCCLUSION , "HD | High Venous Pressure | Venous pressure is high. \n- Check venous bloodlines for kinks or clamps.\n- Check needle placement and/or access position.\n- Resolve access issues, if applicable.\n- If clots are present, end treatment without rinseback. | Blood Stop: Venous Pres. High | HD venous line occlusion fault | If the venous pressure is > set limit + 50 mmHg if HD is in treatment or pre-treatment mode. | "}, + { 209 , ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Flush Circ Error | DG drain circulation line timeout | If the integrated volume < 0.1 for more than 60 secs. | "}, + { 210 , ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED , "HD | Service Required: Hemodialysis Device | A non- critical problem was detected with the hemodialysis\n device.\n- Call service to report the issue and schedule a repair. | HD Alarm (Low): Battery Fault | HD battery pack detected an error | If the battery pack status error is detected from the slave device I2C address 0x0B. | "}, + { 211 , ALARM_ID_HD_BLOOD_SITTING_WARNING , "HD | Approaching MAX Blood Pump Stop Time | The blood has been stopped for nearly 5 minutes.\n- You must resume treatment before the blood pump stop time\ntimer expires.\n- If treatment is not resumed before the timer expires,\ntreatment will be terminated without rinseback. | Blood Stopped: Warning | Blood sitting too long warning (> 4 min) | During treatment stop sub-mode, if the blood is in the line for more than 4 minutes. | "}, + { 212 , ALARM_ID_HD_END_OF_TREATMENT_ALARM , "HD | Approaching MAX Blood Pump Stop Time | The blood has been stopped for nearly 5 minutes.\n- You must Resume/OK treatment before the blood pump stop \ntime timer expires.\n- If treatment is not Resume/OK before the timer expires,\ntreatment will be terminated without rinseback. | Blood Stopped: Warning | Blood sitting too long warning (> 4 min) | During treatment end paused state, if the blood is in the line for more than 4 minutes. | "}, + { 213 , ALARM_ID_HD_PRIME_COMPLETED_MEDIUM , "HD | Prime Complete - 30 MIN WARNING | The priming process completed 90 minutes ago. \n- Treatment must begin within 30 minutes or the\npre- treatment process will be terminated.\n- Press Resume/OK to continue. | Process: Pre- Tx Prime Complete | HD prime completed medium priority alarm | In Pre-Treatment Recirculation for 90 minutes (escalation of alarm 226) | "}, + { 214 , ALARM_ID_AVAILABLE_30 , " | | | | | | "}, + { 215 , ALARM_ID_AVAILABLE_31 , " | | | | | | "}, + { 216 , ALARM_ID_HD_END_TREATMENT_TIMEOUT_ALARM , "HD | Treatment Complete | Dialysis treatment is complete.\n- Press RINSEBACK to end treatment and rinseback. | Process: End of Dialysis Tx | HD end treatment sub-mode timeout alarm | If the treatment ended successfully. | "}, + { 217 , ALARM_ID_AVAILABLE_32 , " | | | | | | "}, + { 218 , ALARM_ID_HD_SYRINGE_DETECTED , "HD | Syringe Detected | Heparin syringe was not removed from device.\n- Remove heparin syringe.\n- Press Resume/OK to continue. | Process: Remove Syringe | HD syringe detected alarm | If the syringe detection switch > 2.0 volts. | "}, + { 219 , ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED , "HD | Blood Stopped: Syringe Not Detected | There is a problem detecting a syringe in the heparin pump.\n- Confirm the heparin syringe is properly installed. \n- Press Resume/OK to resume treatment. | Blood Stop: Syringe Not Detected | HD syringe pump syringe removed alarm | If the syringe detection switch < 2.0 volts. | "}, + { 220 , ALARM_ID_DG_THD_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: THD RTD Comm | DG THd sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 221 , ALARM_ID_HD_EMPTY_SALINE_BAG , "HD | Blood Pump Stopped: Saline Bag Empty | The saline bag appears empty.\n- Check the saline bag and replace if empty. | Blood Stop: Saline Bag Empty | HD Saline bag is empty | If the measured arterial pressure < -300.0 mmHg for more than 250 msec. | "}, + { 222 , ALARM_ID_HD_OCCLUSION_SENSOR_FPGA_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: BP Occ Com | HD occlusion sensor FPGA fault | If the FPGA does not report fresh data or indicates an error for a certain period of time. | "}, + { 223 , ALARM_ID_HD_ARTERIAL_SENSOR_FPGA_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Art. Pres. Com | HD arterial sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 224 , ALARM_ID_HD_TREATMENT_STOPPED_BY_USER , "HD | Blood Pump Stopped: Treatment Paused | Treatment has been stopped by user.\n- Press Resume/OK to resume treatment. \n- If treatment is not resumed within five minutes,\ntreatment will be terminated without rinseback. | Blood Stopped: Treatment Pause | Treatment stopped by user action - pressed stop button | If the user has pressed the stop button. | "}, + { 225 , ALARM_ID_HD_END_OF_TREATMENT_WARNING , "HD | Treatment Complete | Dialysis treatment is complete.\n- If blood sampling is required, draw blood at\n the arterial sample port\n- Press RINSEBACK to end treatment and rinseback. | Process: End of Treatment | HD end of treatment warning | If the treatment duration has exceeded the prescribed treatment time entered by the user. | "}, + { 226 , ALARM_ID_HD_PRIME_COMPLETED_LOW_PRIORITY , "HD | Priming Complete | Priming is complete. \n- Treatment must begin within 120 minutes \nor the pre- treatment process will be terminated.\n- Press Resume/OK to continue. | Process: Pre- Tx Priming Complete | HD prime completed low priority alarm | Start of Pre-Treatment Recirculation - notifiy user to proceed to patient connection | "}, + { 227 , ALARM_ID_AVAILABLE_15 , " | | | | | | "}, + { 228 , ALARM_ID_HD_PRIME_SALINE_PURGE_AIR_TIME_OUT , "HD | Priming Error | A problem has been detected during prime. \n- Prime was unable to complete. \n - Check blood and dialysate lines for clamps, kinks or leaks. | Process: Pre- Tx Prime Timeout | HD time out on prime sub-mode purge air state. | During the pre-treatment prime state, if the prime saline purge air state exceeded 60 secs. | "}, + { 229 , ALARM_ID_HD_PRIME_DIALYSATE_DIALYZER_TIME_OUT , "HD | Priming Error | A problem has been detected during prime. \n- Prime was unable to complete. \n - Check blood and dialysate lines for clamps, kinks or leaks. | Process: Pre- Tx Prime Timeout | HD prime dialysate dialyzer time out alarm | If the priming of the dialyzer dialysate flow path has exceeded the time limit. | "}, + { 230 , ALARM_ID_HD_PRIME_DIALYSATE_BYPASS_TIME_OUT , "HD | Priming Error | A problem has been detected during prime. \n- Prime was unable to complete. \n - Check blood and dialysate lines for clamps, kinks or leaks. | Process: Pre- Tx Prime Timeout | HD prime dialysate bypass time out alarm | If the priming of the dialyzer bypass flow path has exceeded the time limit. | "}, + { 231 , ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE , "HD | Self Test: Cartridge Check | A problem has been detected during self- test. \n- Confirm cartridge is properly installed without kinks or clamps.\n- Ensure all connections are secure. \n- Press Resume/OK to resume. \n- If problem persists, install a new cartridge. | Process: Pre- Tx Dry Self- Test | HD pre-treatment mode dry self-tests failure | If the following dry self tests have failed: 1. handleDrySelfTestPressureSensorsState 2. handleDrySelfTestPressureSensorsNormalState | "}, + { 232 , ALARM_ID_HD_PRE_TREATMENT_WET_LC_TEST_FAILURE , "HD | Self Test: Dialysate Flow Rate | A problem has been detected when measuring dialysate flow.\n- Confirm cartridge is properly installed and primed.\n- If problem persists, terminate treatment preparation and \n start over using a new cartridge. | Process: Pre- Tx Wet Self- Test | HD pre-treatment mode wet self-tests failure | If the following wet self tests have failed: 1. handleWetSelfTestPrimeCheckState 2. handleWetSelfTestFirstDisplacementVerifyState 3. handleWetSelfTestSecondDisplacementVerifyState | "}, + { 233 , ALARM_ID_DG_BAROMETRIC_SENSOR_COEFFS_BAD_CRC , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Baro Cal CRC | DG barometric pressure sensor bad coefficients CRC | If the following happens: 1. The stored CRC in the sensor does not match the calculated CRC. 2. The CRC and coefficients have not been received from the sensor after 20 seconds from the power up. | "}, + { 234 , ALARM_ID_DG_INLET_WATER_PRESSURE_IN_HIGH_RANGE , "DG | Incoming Water Pressure High | Incoming water pressure is high.\n- Treatment is currently paused.\n- Check the incoming water supply.\n- When the pressure is within target range\nResume/OK button will be available.\n- Press Resume/OK to continue treatment. | Dial. Gen: Inlet Water Pres High | DG inlet water pressure is too high | If the inlet water pressure is > 80 psig. | "}, + { 235 , ALARM_ID_HD_TREATMENT_STOPPED_AFTER_RINSEBACK , "HD | Rinseback Complete | Rinseback is complete. \n- Follow facililty policy prior to disconnecting patient. \n- Press Resume/OK to continue. | Process: Rinseback Complete | HD in treatment stopped sub-mode after rinseback completed (no escalation) | If there is no active alarm and rinseback has completed. | "}, + { 236 , ALARM_ID_HD_INSTALL_NEW_CARTRIDGE , "HD | Self Test: Fluid Present | A problem has been detected during self- test. \n- Cartridges are single- use only and fluid is present.\n- Install new cartridge to resume. | Process: Pre- Tx Dry Self- Test | HD needs new cartridge to be installed | If the air trap sensor reported AIR and bubble sensor detected bubbles. | "}, + { 237 , ALARM_ID_AVAILABLE_13 , " | | | | | | "}, + { 238 , ALARM_ID_HD_NO_CARTRIDGE_LOADED , "HD | Cartridge Not Detected | A problem has been detected during self- test. \n- Cartridge is not detected.\n- Confirm cartridge is properly installed. | Process: Pre- Tx Dry Self- Test | HD no cartridge loaded or installed improperly alarm | If the measured blood pump occlucsion pressure reading is < 5000 or > 24500. | "}, + { 239 , ALARM_ID_HD_CARTRIDGE_REMOVAL_FAILURE , "HD | Cartridge Still Detected | A problem has been detected during self- test. \n- Cartridge is still present or was unloaded incorrectly.\n- Confirm the cartridge has been fully removed. | Process: Post- Tx Remove Cartridge | HD fail to remove cartridge alarm | In the post treatment state, if the cartridge has not been removed. | "}, + { 240 , ALARM_ID_DG_BICARB_CONDUCTIVITY_OUT_OF_RANGE , "DG | Conductivity Error During Prime | Conductivity out of range during prime.\n- Confirm that acid and bicarbonate concentrates\nare securely connected.\n- If empty, replace. \n- Treatment will need to be resumed when conductivity\nis within target range. | Dial. Gen: Bicarb Conc. Cond. | Bicarb conductivity out of range during bicarb pump check alarm | If the conductivity value for bicarbonate concentrate is out of range for more than 45 secs. | "}, + { 241 , ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Resv Drain Timeout | DG reservoir drain time out | If the DG reservoir drain is not complete in 120 secs. | "}, + { 242 , ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Resv Fill Timeout | DG reservoir fill time out | If the DG reservoir fill is not complete in 120 secs. | "}, + { 243 , ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Fluid Loss Detected | DG reservoir leak time out | If the reservoir level is drifted by 100 mL for more than 30 seconds. | "}, + { 244 , ALARM_ID_DG_CLEANING_MODE_TEMP_SENSORS_DIFF_OUT_OF_RANGE , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Temp Sensor Check | DG temperature sensors difference out of range | If any of the temperature sensors are out of the average of the sensors by more than 3 C. | "}, + { 245 , ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Heat Disinfect Temp TO | DG heat disinfect target temperature time out (could not reach to temperature) | If heating up to minimum temperature for heat disinfect failed after 4 hours. | "}, + { 246 , ALARM_ID_DG_CLEANING_MODE_COND_SENSORS_OUT_OF_RANGE , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: RO Water Cond Error | DG chemical disinfect inlet conducitivty out of range | If CPo and CD2 conductivity values are above 100 uS/cm. | "}, + { 247 , ALARM_ID_AVAILABLE_7 , " | | | | | | "}, + { 248 , ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_OUT_OF_RANGE , "DG | Disinfection Interrupted | Disinfection terminated unexpectedly.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Chem Disinfect Proc | DG chemical disinfect out of target temperature | If TPo > 50 C after 1 second. | "}, + { 249 , ALARM_ID_DG_CHEM_DISINFECT_TARGET_COND_OUT_OF_RANGE , "DG | Chemical Disinfectant Not Detected | Unable to sense proper chemical disinfectant.\n- Disinfection process has terminated.\n- Confirm chemical disinfectant is connected to the\nconcentrate inlet.\n- Confirm chemical disinfectant container is not empty.\n- Restart disinfection.\n- If problem persists, call service to schedule a repair. | Cleaning: Chem Disinf PAA Cond | DG chemical disinfect out of target conductivity | If CD2 < 150 uS/cm or CD2 > 650 uS/cm after 10 seconds. | "}, + { 250 , ALARM_ID_DG_CHEM_DISINFECT_INSERT_ACID , "DG | Connect Chemical Disinfectant | Connect chemical disinfectant to the device. \n- Remove concentrate cap.\n- Keep dialysate cap on the device.\n- Place disinfectant straw in the disinfectant bottle. \n- Attach straw to concentrate connection and ensure\nconnection is secure.\n- Press Resume/OK to continue. | Cleaning: Chem Disinf Connect PAA | Insert the acid to start chemical disinfect | Start of chemical disinfect | "}, + { 251 , ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Sys Rec NVRAM CRC | HD invalid system record | If the calculated CRC of the HD system record image does not match the expected CRC. | "}, + { 252 , ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Serv Rec NVRAM CRC | HD invalid service record | If the calculated CRC of the HD service record image does not match the expected CRC. | "}, + { 253 , ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Sys Rec NVRAM CRC | DG invalid system record | If the calculated CRC of the DG system record image does not match the expected CRC. | "}, + { 254 , ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Serv Rec NVRAM CRC | DG invalid service record | If the calculated CRC of the DG service record image does not match the expected CRC. | "}, + { 255 , ALARM_ID_HD_UI_COMPATIBILITY_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Compatibility | HD and UI software builds are not compatible | If the compatibility revision field of the UI is not equal to SW_COMPATIBILITY_REV. | "}, + { 256 , ALARM_ID_HD_DISINFECT_CHEM_FLUSH , "HD | Chemical Flush in Progress | Chemical flush in progress.\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: Chem Flush In Progress | DG flush started | If DG flush successfully started from the UI. | "}, + { 257 , ALARM_ID_HD_INVALID_INSTITUTIONAL_RECORD_CRC , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Institutional Rec NVRAM CRC | HD invalid institutional record | If the calculated CRC of the HD institutional record image does not match the expected CRC. | "}, + { 258 , ALARM_ID_HD_UI_POST_FAILURE_OS_VERSION , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: OS Version | UI POST OS Version compatibility failure | If the UI POST reports the OS Version compatibility failure. | "}, + { 259 , ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Temp Sensors Error | HD temperatures out of range | If thermistor reports temperature > 80.0 C or < 0.0 C for a certain period of time. | "}, + { 260 , ALARM_ID_HD_UI_POST_FAILURE_SHASUM , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Image | UI POST Application Integrity (Sha256Sum) failure | If the UI POST reports a shasum failure. | "}, + { 261 , ALARM_ID_HD_UI_POST_FAILURE_CANBUS , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI CAN Driver | UI POST CANBus failure | If the UI POST reports a can bus failure. | "}, + { 262 , ALARM_ID_HD_UI_POST_FAILURE_DISPLAY , " | | | | UI POST Display failure | If the UI POST reports a display failure. | "}, + { 263 , ALARM_ID_HD_UI_POST_FAILURE_TOUCH , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Touch Driver | UI POST Touch failure | If the UI POST reports a touch failure. | "}, + { 264 , ALARM_ID_HD_UI_POST_FAILURE_SDCARD , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI SD- Card | UI POST SD-Card failure | If the UI POST reports SD card failure. | "}, + { 265 , ALARM_ID_HD_UI_POST_FAILURE_RTC , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI RTC | UI POST RTC failure | If the UI POST reports RTC failure. | "}, + { 266 , ALARM_ID_HD_UI_POST_FAILURE_WIFI , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI WiFi | UI POST WiFi failure | If the UI POST reports WiFi failure. | "}, + { 267 , ALARM_ID_HD_UI_POST_FAILURE_BLUETOOTH , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Bluetooth | UI POST Bluetooth failure | If the UI POST reports bluetooth failure. | "}, + { 268 , ALARM_ID_HD_UI_POST_FAILURE_ETHERNET , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Ethernet | UI POST Ethernet failure | If the UI POST reports ethernet failure. | "}, + { 269 , ALARM_ID_HD_UI_POST_FAILURE_SOUND , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI Sound | UI POST Sound failure | If the UI POST reports sound failure. | "}, + { 270 , ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Proc Safestate | HD POST Safety Shutdown failure | If the 24 volts power source is greater than 5.0 volts during safety shutdown self test state. If the 24 volts power source is less than 22.6 volts during safety shutdown self test recover state. | "}, + { 271 , ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Proc Safestate | DG POST Safety Shutdown failure | If the 24 volts power source is greater than 5.0 volts during safety shutdown self test state. If the 24 volts power source is less than 22.6 volts during safety shutdown self test recover state. | "}, + { 272 , ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A non- critical problem was detected with the hemodialysis\n device.\n- Call service to report the issue and schedule a repair. | HD Alarm (Low): Fan Speed | HD Fan RPM out of range | If the fan RPM is out of Min/Max range. | "}, + { 273 , ALARM_ID_AVAILABLE_10 , " | | | | | | "}, + { 274 , ALARM_ID_DG_INACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Reservoir Fault | DG idle reservoir weight out of range | If the reservoir weight > 200.0 of the target mL. | "}, + { 275 , ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Arterial Press Range | HD arterial pressure sensor is reading out of range | If the arterial pressure > 2000.0 mmHg or < -1500.0 mmHg. | "}, + { 276 , ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Venous Press Range | HD venous pressure sensor is reading out of range | If the venous pressure > 2000.0 mmHg or < -1500.0 mmHg. | "}, + { 277 , ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Occlusion Sens Range | HD BP occlusion sensor is reading out of range | If the blood pump occlusion count is < 2000. | "}, + { 278 , ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE , "HD | Dialysate Reservoir Error | A problem has been detected with dialysate generation. \n- Treatment is paused and will need to be resumed when \ndialysate is ready for use. | Dial. Gen: Reservoir Overfill | HD active reservoir weight out of range. | If the active reservoir weight is > 1900.0 g. | "}, + { 279 , ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Reservoir Drain | DG dialysate drain time out | If the DG dialysate drain exceeded 120 seconds. | "}, + { 280 , ALARM_ID_DG_DRAIN_PUMP_DIRECTION_INVALID , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DRP Direction Fault | DG drain pump invalid direction | If the drain pump's direction is not 1 when draining. | "}, + { 281 , ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME , "DG | Acid Concentrate Low | The acid concentrate is low.\n- Replace acid concentrate container. | Dial. Gen: Acid Conc. Low | DG Acid concentration bottle low volume alarm | If the acid concentration bottle volume > 3240 (3340 - 100). | "}, + { 282 , ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME , "DG | Bicarb Concentrate Low | Bicarbonate concentrate is low.\n- Replace the bicarbonate concentrate container. | Dial. Gen: Bicarb Conc. Low | DG Bicarbonate concentration bottle low volume alarm | If the bicarbonate concentration bottle volume > 3680 (3780 - 100). | "}, + { 283 , ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: LC Range | DG load cells weight out of range | If the weight of the DG load cells > 4500.0 g or < 0.0 g. | "}, + { 284 , ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Redundant LC Check | DG load cells primary/back up drift out of range | If redundant load cells deviate by more than 60g after tare for 5 seconds. | "}, + { 285 , ALARM_ID_HD_RO_PERMEATE_SAMPLE , "HD | RO Permeate Sample in Progress | RO Permeate Sample is in progress.\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: RO Permeate Sample In Progress | DG RO permeate sample started | If DG RO permeate sample successfully started from UI. | "}, + { 286 , ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION , "DG | Concentrate Connection Cap Removed | The concentrate connection cap was removed from the \ndialysate device during disinfection.\n- Disinfection terminated.\n- Replace cap before attempting disinfection again. | Cleaning: Conc Cap Removed | DG cap in wrong state | If the concentrate cap is not in the right position in the cleaning modes. | "}, + { 287 , ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Proc- FPGA Clock | HD processor clock speed checks against FPGA clock failure | If during initialization mode, the difference between the processor clock speed and the FPGA clock speed > 1. | "}, + { 288 , ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE , "HD | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: LC Drift Check | HD load cell inconsistency | If redundant load cells deviate from start to end of a reservoir use during treatment by more than 10g. | "}, + { 289 , ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION , "DG | Dialysate Connection Cap Removed | The dialysate connection cap was removed from the\ndialysate device during disinfection.\n- Disinfection terminated.\n- Replace cap before attempting disinfection again. | Cleaning: Dialysate Cap Removed | DG cap in wrong state | If the dialysate cap is not in the right position in the cleaning modes. | "}, + { 290 , ALARM_ID_HD_VENOUS_SENSOR_FPGA_FAULT , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Ven. Pres. Com | HD venous sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 291 , ALARM_ID_HD_DISINFECT_FLUSH , "HD | Flush In Progress | System flush is in progress\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: Flush In Progress | DG flush started | If DG flush successfully started from the UI. | "}, + { 292 , ALARM_ID_HD_DISINFECT_HEAT , "HD | Heat Disinfection in Progress | Heat disinfection is in progress.\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: Heat Disinf In Progress | DG heat disinfect started | If DG heat disinfect successfully started from the UI. | "}, + { 293 , ALARM_ID_HD_DISINFECT_CHEM , "HD | Chemical Disinfection in Progress | Chemical disinfection in progress.\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: Chem Disinfect In Progress | DG chem disinfect started | If DG flush successfully started from the UI. | "}, + { 294 , ALARM_ID_HD_DISINFECT_HEAT_COOL , "HD | Active Cool in Progress | Active Cool is in progress.\n- Please wait for the process to complete. \n- You will not be able to create a treatment until the process\nis finished.\n- To end this process, press STOP on the front of the device. | Cleaning: Active Cool In Progress | DG active cool started | If DG active cool successfully started. | "}, + { 295 , ALARM_ID_HD_UI_POST_FAILURE_CLOUDSYNC , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: UI CloudSync | UI cloud sync POST failure | If the UI POST reports cloud sync failure. | "}, + { 296 , ALARM_ID_DG_TDI_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: TDi RTD Comm | DG TDi sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 297 , ALARM_ID_DG_TRO_SENSORS_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: TRo RTD Comm | DG TRo sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 298 , ALARM_ID_DG_BARO_SENSOR_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Baro Pres Comm | DG barometric sensor FPGA fault | If the FPGA does not report fresh data for a certain period of time | "}, + { 299 , ALARM_ID_DG_INVALID_SERIAL_NUMBER , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG POST: Serial Number Check | DG invalid serial number | If the DG serial number is empty and does not have any characters. | "}, + { 300 , ALARM_ID_HD_INVALID_SERIAL_NUMBER , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Serial Number Check | HD invalid serial number | If the HD serial number is empty and does not have any characters. | "}, + { 301 , ALARM_ID_DG_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP , "DG | Remove Dialysate Cap | Remove the dialysate cap\n - Place the concentrate connection cap on the device.\n- Keep dialysate cap on the device. | Cleaning: RO Permeate Sample Connect Cap | Open dialysate cap to be able to collecte the dispensing fluid | RO permeate sample collection state | "}, + { 302 , ALARM_ID_DG_CPU_RAM_ERROR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: Processor RAM error | DG_CPU RAM error | If the RAM status indicates any of the following: Double bit error, Address decode failure, Address decode logic element failure, Read address parity failure, Write address parity failure. | "}, + { 303 , ALARM_ID_DG_DRAIN_PUMP_DIRECTION_FPGA_FAULT , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: DRP Hall Commutation | DG drain pump direction FPGA fault | If the FPGA indicates an error for a certain period of time. | "}, + { 304 , ALARM_ID_HD_INVALID_USAGE_RECORD_CRC , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST: Usage Rec NVRAM CRC | HD invalid usage reocord | If the CRC of the HD usage record does not match the calculated CRC. | "}, + { 305 , ALARM_ID_HD_CPU_RAM_ERROR , "HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD Fault: Processor RAM error | HD_CPU RAM error | If the RAM status indicates any of the following: Double bit error, Address decode failure, Address decode logic element failure, Read address parity failure, Write address parity failure. | "}, + { 306 , ALARM_ID_AVAILABLE_50 , " | | | | | | "}, + { 307 , ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT , "HD | Power Loss | Treatment must be terminated due to a power loss.\n- Follow clinic instructions on when to initiate manual rinseback.\n- Check all electrical connections.\n- If power returns within 5 minutes of outage, \n- rinseback will be allowed. | Blood Stop: Loss of AC Power | HD AC power lost alarm | The HD Software shall trigger an alarm if an AC power loss is detected while the HD system is in pre-treatment, treatment, or post-treatment mode. | "}, + { 308 , ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CPi Comm | DG CPi conductivity sensor transmits invalid characters | If the CPi conductivity sensor transmits invalid characters for a certain period of time. | "}, + { 309 , ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CPo Comm | DG CPo conductivity sensor transmits invalid characters | If the CPo conductivity sensor transmits invalid characters for a certain period of time. | "}, + { 310 , ALARM_ID_DG_CD1_COND_SENSOR_INVALID_CHAR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CD1 Comm | DG CD1 conductivity sensor transmits invalid characters | If the CD1 conductivity sensor transmits invalid characters for a certain period of time. | "}, + { 311 , ALARM_ID_DG_CD2_COND_SENSOR_INVALID_CHAR , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: CD2 Comm | DG CD2 conductivity sensor transmits invalid characters | If the CD2 conductivity sensor transmits invalid characters for a certain period of time. | "}, + { 312 , ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE , "HD | Low Dialysate Flow | Dialysate flow rate is low. \n- Confirm dialysate concentrate connections are secure. \n- When the flow rates are within target range \nResume/OK button will be available.\n- Press Resume/OK to continue. | Dial. Gen: Dialysate In Flow | The dialysate inlet flow is too low. | If the dialysate inlet flow < 10 mL/min (raw) while in treatment mode or pre-treatment mode after prime and DPi is running. | "}, + { 313 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_TEMP_TOO_LOW , "DG | Disinfection: Water Temperature Low | Incoming water temperature is too low.\n- Disinfection has been terminated.\n- Check incoming water before initiating disinfection again. | Cleaning: Inlet Water Temp Low | DG cleaning mode inlet water temperature too low | If inlet water temperature is < 24 C. | "}, + { 314 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_HIGH , "DG | Disinfection: Water Pressure High | Incoming water pressure is too high. \n- Disinfection has been terminated.\n- Check incoming water before initiating disinfection again. | Cleaning: Inlet Water Press High | DG cleaning mode inlet water pressure too high | If inlet water temperature is > 80 psig. | "}, + { 315 , ALARM_ID_DG_CLEANING_MODE_INLET_WATER_PRESSURE_TOO_LOW , "DG | Disinfection: Water Pressure Low | Incoming water pressure is too low. \n- Disinfection has been terminated.\n- Check incoming water pressure\n before initiating disinfection again. | Cleaning: Inlet Water Press Low | DG cleaning mode inlet water pressure too low | If inlet water pressure is < 14 psig. | "}, + { 316 , ALARM_ID_AVAILABLE_20 , " | | | | | | "}, + { 317 , ALARM_ID_AVAILABLE_21 , " | | | | | | "}, + { 318 , ALARM_ID_AVAILABLE_2 , " | | | | | | "}, + { 319 , ALARM_ID_DG_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE , "DG | Residual Chemical Sampling | A water sample is needed to confirm the \nabsence of residual chemical following disinfection. \n- Test sample according to facility policy. \n- Confirm absence of residual chemical disinfectant. | Cleaning: Chem Residual Sampling | Collect sample to check the chemical disinfectant acid | Chemical disinfect flush sample alarm is prompted. | "}, + { 320 , ALARM_ID_DG_CHEM_DISINFECT_FLUSH_SAMPLE_TIMEOUT , "DG | Chemical Residual Timeout | A chemical residual sample was not collected \n- within 30min of chemical flush.\n- To collect a sample for chemical residual,\nyou must repeat the chemical flush. | Cleaning: Chem Residual Timeout | The user did not proceed with collecting chemical disinfect flush sample for more than 30 minutes | Chemical disinfect flush sample was not collected form more than 30 minutes. | "}, + { 321 , ALARM_ID_DG_OUTLET_UV_REACTOR_NOT_HEALTHY , "DG | Service Required: Dialysate Device | A problem was detected with the dialysate device. \n- Treatment must be terminated.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | DG Fault: UVo Error | Outlet reactor not healthy | If the outlet reactor are not healthy. | "}, + { 322 , ALARM_ID_HD_UI_POST_FAILURE_INVALID_YEAR , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST Alarm: UI Invalid Year | UI POST Invalid Year | If the UI POST reports a invalid year. | "}, + { 323 , ALARM_ID_HD_UI_POST_FAILURE_SETTINGS_BAD , "UI HD | Service Required: Hemodialysis Device | A problem was detected with the hemodialysis device.\n- Locate the ID code found in the bottom left corner\nof the alarm screen.\n- Call service to report the issue and schedule a repair. | HD POST Alarm: UI Bad Settings | UI POST Bad Settings | If the UI POST reports a bad settings. (e.g. no settings read, empty settings file, invalid/empty parms, CRC failure) | "}, + // Num Alarm ID Device Display Title Instructions Alarm List Title Description Trigger Condition +}; + +#endif // manual alarms + +/**@}*/ + +#endif Index: Compatible.h =================================================================== diff -u --- Compatible.h (revision 0) +++ Compatible.h (revision 0f593e2fb2a531ba49fd776b053bee014aceef92) @@ -0,0 +1,34 @@ +/************************************************************************** +* +* Copyright (c) 2024-2024 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 Compatible.h +* +* @author (last) Sean +* @date (last) 30-Jul-2024 +* +* @author (original) Sean +* @date (original) 30-Jul-2024 +* +***************************************************************************/ + +#ifndef __COMPATIBLE_H__ +#define __COMPATIBLE_H__ + +// ********** public definitions ********** + +/** + * @addtogroup Compatibility + * @{ + */ + +#define SW_COMPATIBILITY_REV 13 ///< Compatibility revision for all system software stacks (HD and DG and UI). +#define HD_FPGA_COMPATIBILITY_REV 1 ///< Compatibility revision for HD firmware with HD FPGA. +#define DG_FPGA_COMPATIBILITY_REV 2 ///< Compatibility revision for DG firmware with DG FPGA. + +/**@}*/ + +#endif Index: DDDefs.h =================================================================== diff -u --- DDDefs.h (revision 0) +++ DDDefs.h (revision 0f593e2fb2a531ba49fd776b053bee014aceef92) @@ -0,0 +1,680 @@ +/************************************************************************** +* +* Copyright (c) 2024-2024 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 DGDefs.h +* +* @author (last) Sean +* @date (last) 30-Jul-2024 +* +* @author (original) Sean +* @date (original) 30-Jul-2024 +* +***************************************************************************/ + +#ifndef __DG_DEFS_H__ +#define __DG_DEFS_H__ + +// ********** public definitions ********** + +/** + * @addtogroup DGOperationModes + * @{ + */ + +/// Enumeration of operation modes. These are in order of priority (highest to lowest). +enum DG_Op_Modes +{ + DG_MODE_FAUL = 0, ///< Fault mode + DG_MODE_SERV, ///< Service mode + DG_MODE_INIT, ///< Initialization & POST mode + DG_MODE_STAN, ///< Standby mode - connected to HD + DG_MODE_SOLO, ///< Standby Solo mode - no HD connected + DG_MODE_GENE, ///< Generation idle mode + DG_MODE_FILL, ///< Fill mode + DG_MODE_DRAI, ///< Drain mode + DG_MODE_FLUS, ///< Flush mode + DG_MODE_HEAT, ///< Heat Disinfect mode + DG_MODE_CHEM, ///< Chemical Disinfect mode + DG_MODE_CHFL, ///< Chemical Disinfect Flush mode + DG_MODE_HCOL, ///< Heat disinfect cooling mode + DG_MODE_ROPS, ///< RO permeate sample mode + DG_MODE_NLEG, ///< Not legal - an illegal mode transition occurred + NUM_OF_DG_MODES ///< Number of DG operation modes +}; +typedef enum DG_Op_Modes DG_OP_MODE_T; ///< Type for DG operation modes enumeration + +/**@}*/ + +/** + * @addtogroup DGInitAndPOSTMode + * @{ + */ + +/// Enumeration of init & POST mode states. +enum DG_POST_States +{ + DG_POST_STATE_START = 0, ///< Start initialize & POST mode state + DG_POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state + DG_POST_STATE_FW_INTEGRITY, ///< Run firmware image integrity test state + DG_POST_STATE_FPGA, ///< FPGA POST test state + DG_POST_STATE_RTC, ///< RTC POST test state + DG_POST_STATE_NVDATAMGMT, ///< Non-volatile data management POST state + DG_POST_STATE_TEMPERATURE_SENSORS, ///< Temperature Sensors POST state + DG_POST_STATE_ACCELEROMETER, ///< Accelerometer POST state + DG_POST_STATE_PRESSURES, ///< Pressure sensors POST state + DG_POST_STATE_DRAIN_PUMP, ///< Drain pump POST state + DG_POST_STATE_CONCENTRATE_PUMPS, ///< Concentrate pumps POST state + DG_POST_STATE_CONDUCTIVITY_SENSORS, ///< Conductivity sensors POST state + DG_POST_STATE_RESERVOIRS, ///< Reservoirs POST state + DG_POST_STATE_UV_REACTORS, ///< UV reactors POST state + DG_POST_STATE_THERMISTORS, ///< Thermistors POST state + DG_POST_STATE_FANS, ///< Fans POST state + DG_POST_STATE_FLOW_SENSORS, ///< Flow sensors POST state + DG_POST_STATE_WATCHDOG, ///< Watchdog POST test state + DG_POST_STATE_SAFETY_SHUTDOWN, ///< Safety shutdown POST test state + DG_POST_STATE_LOAD_CELL, ///< Load cells POST state + DG_POST_STATE_COMPLETED, ///< POST completed successfully state + DG_POST_STATE_FAILED, ///< POST failed state + NUM_OF_DG_POST_STATES ///< Number of initialize & POST mode states +}; +typedef enum DG_POST_States DG_POST_STATE_T; ///< Type for DG POST states enumeration + +/**@}*/ + +/** + * @addtogroup DGFaultMode + * @{ + */ + +/// Enumeration of fault mode states. +enum DG_Fault_States +{ + DG_FAULT_STATE_START = 0, ///< DG fault start state + DG_FAULT_STATE_RUN_NV_POSTS, ///< DG fault run RTC and NV data management posts + DG_FAULT_STATE_COMPLETE, ///< DG fault complete + NUM_OF_DG_FAULT_STATES ///< Number of fault mode states +}; +typedef enum DG_Fault_States DG_FAULT_STATE_T; ///< Type for DG fault states enumeration + +/**@}*/ + +/** + * @addtogroup DGSoloStandbyMode + * @{ + */ + +/// Enumeration of solo standby mode states. +enum DG_Solo_States +{ + DG_SOLO_STANDBY_STATE_START = 0, ///< Start solo standby mode state + DG_SOLO_IDLE_STATE, ///< Idle solo standby mode state + NUM_OF_DG_SOLO_STANDBY_STATES ///< Number of solo standby mode states +}; +typedef enum DG_Solo_States DG_SOLO_STANDBY_STATE_T; ///< Type for DG solo mode states enumeration + +/**@}*/ + +/** + * @addtogroup DGStandbyMode + * @{ + */ + +/// Enumeration of standby mode states. +enum DG_Standby_Mode_States +{ + DG_STANDBY_MODE_STATE_IDLE = 0, ///< Idle standby mode state + DG_STANDBY_MODE_STATE_FLUSH_FILTER, ///< Sample water flush filter state + DG_STANDBY_MODE_STATE_FLUSH_FILTER_IDLE, ///< Sample water flush filter idle state + DG_STANDBY_MODE_STATE_SAMPLE_WATER, ///< Sample water state + DG_STANDBY_MODE_STATE_PAUSE, ///< Pause state + NUM_OF_DG_STANDBY_MODE_STATES ///< Number of standby mode states +}; +typedef enum DG_Standby_Mode_States DG_STANDBY_MODE_STATE_T; ///< Type for DG standby mode states enumeration + +/**@}*/ + +/** + * @addtogroup DGRecirculateMode + * @{ + */ + +/// Enumeration of generation idle mode states. +enum DG_Generation_Idle_Mode_States +{ + DG_GEN_IDLE_MODE_STATE_START = 0, ///< Start generation idle mode state + DG_GEN_IDLE_MODE_STATE_FLUSH_WATER, /// Handle normal fill state (idle 0.0) + DG_GEN_IDLE_MODE_STATE_HANDLE_BAD_FILL, ///< Handle bad fill state (idle 1.0) + NUM_OF_DG_GEN_IDLE_MODE_STATES ///< Number of idle mode states +}; +typedef enum DG_Generation_Idle_Mode_States DG_GEN_IDLE_MODE_STATE_T; ///< Type for DG generation idle mode states enumeration + +/// Enumeration of generation idle mode states. +enum DG_Generation_Idle_Mode_Bad_Fill_Substates +{ + DG_HANDLE_BAD_FILL_STATE_START = 0, ///< Bad fill start state + DG_HANDLE_BAD_FILL_STATE_FIRST_DRAIN, ///< First drain the dialysate + DG_HANDLE_BAD_FILL_STATE_FLUSH_FILL, ///< Flush then fill the dialysate + DG_HANDLE_BAD_FILL_STATE_SECOND_DRAIN, ///< Second drain the dialysate + DG_HANDLE_BAD_FILL_STATE_REFILL, ///< Refill the dialysate + NUM_OF_DG_HANDLE_BAD_FILL_STATES ///< Number of bad fill states +}; +typedef enum DG_Generation_Idle_Mode_Bad_Fill_Substates DG_GEN_IDLE_MODE_BAD_FILL_STATE_T; ///< Type for DG generation idle mode bad fill sub-states enumeration + +/**@}*/ + +/** + * @addtogroup DGFillMode + * @{ + */ + +/// Enumeration of fill mode states. +enum DG_Fill_Mode_States +{ + DG_FILL_MODE_STATE_TEST_INLET_WATER = 0, ///< Test inlet water quality state + DG_FILL_MODE_STATE_PRIME_CONCENTRATE_LINES, ///< Prime the acid and bicarb concentrate lines + DG_FILL_MODE_STATE_FLUSH_BUBBLES, ///< Flush the bubbles in the lines state + DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY, ///< Test the conductivity range of the bicarb concentrate state + DG_FILL_MODE_STATE_TEST_ACID_CONDUCTIVITY, ///< Test the conductivity range of the acid concentrate state + DG_FILL_MODE_STATE_PRODUCE_DIALYSATE, ///< Dialysate production state + DG_FILL_MODE_STATE_DELIVER_DIALYSATE, ///< Dialysate deliver state + DG_FILL_MODE_STATE_PAUSED, ///< Dialysate generation pause state + NUM_OF_DG_FILL_MODE_STATES ///< Number of fill mode states +}; +typedef enum DG_Fill_Mode_States DG_FILL_MODE_STATE_T; ///< Type for DG fill mode states enumeration + +/**@}*/ + +/** + * @addtogroup DGDrainMode + * @{ + */ + +/// Enumeration of drain mode states. +enum DG_Drain_States +{ + DG_DRAIN_STATE_START = 0, ///< Start drain mode state + DG_DRAIN_STATE_DRAIN, ///< Drain drain mode state + DG_DRAIN_STATE_TARE, ///< Tare drain mode state + DG_DRAIN_STATE_RINSE, ///< Rinse concentrate lines drain mode state + NUM_OF_DG_DRAIN_STATES ///< Number of drain mode states +}; +typedef enum DG_Drain_States DG_DRAIN_STATE_T; ///< Type for DG drain mode states enumeration + +/**@}*/ + +/** + * @addtogroup HDDisinfectStates + * @{ + */ + +/// Sub-mode states while in standby mode disinfect +enum DG_Disinfect_States +{ + DG_DISINFECT_FLUSH_STATE = 0, ///< DG disinfect flush + DG_DISINFECT_HEAT_STATE, ///< DG disinfect heat + DG_DISINFECT_CHEM_STATE, ///< DG disinfect chemical + DG_DISINFECT_CHEM_FLUSH_STATE, ///< DG disinfect chemical flush + DG_DISINFECT_RO_PERMEATE_SAMPLE_STATE, ///< DG disinfect RO permeate sample + DG_DISINFECT_NOT_RUNNING_STATE, ///< DG disinfect not running + NUM_OF_DG_DISINFECT_STATES ///< Number of DG disinfect states +}; +typedef enum DG_Disinfect_States DG_DISINFECT_STATE_T; ///< Type for DG disinfect states that are broadcast to UI + +/**@}*/ + +/** + * @addtogroup DGFlushMode + * @{ + */ + +/// Enumeration of flush mode states. +enum DG_Flush_States +{ + DG_FLUSH_STATE_START = 0, ///< Flush, start mode state + DG_FLUSH_STATE_DRAIN_R1, ///< Flush, drain reservoir 1 state + DG_FLUSH_STATE_DRAIN_R2, ///< Flush, drain reservoir 2 state + DG_FLUSH_STATE_FLUSH_DRAIN, ///< Flush, flush drain state + DG_FLUSH_STATE_FLUSH_DIALYSATE, ///< Flush, flush dialysate state + DG_FLUSH_STATE_FLUSH_CONCENTRATE_STRAWS, ///< Flush, flush concentrate straws state + DG_FLUSH_STATE_FLUSH_R1_TO_R2, ///< Flush, flush reservoir 1 to reservoir 2 state + DG_FLUSH_STATE_FLUSH_R2_AND_DRAIN_R1, ///< Flush, flush reservoir 2 and drain reservoir 1 state + DG_FLUSH_STATE_FLUSH_CIRCULATION_DRAIN_LINE, ///< Flush, flush circulation drain line state + DG_FLUSH_STATE_FLUSH_CIRCULATION, ///< Flush, flush circulation state + DG_FLUSH_STATE_FLUSH_WITH_FRESH_WATER, ///< Flush, flush with fresh water + DG_FLUSH_STATE_CANCEL_BASIC_PATH, ///< Flush, cancel basic path state + DG_FLUSH_STATE_CANCEL_WATER_PATH, ///< Flush, cancel water path state + DG_FLUSH_STATE_COMPLETE, ///< Flush, complete mode state + NUM_OF_DG_FLUSH_STATES ///< Number of flush mode states +}; +typedef enum DG_Flush_States DG_FLUSH_STATE_T; ///< Type for DG flush mode states enumeration + +/// Enumeration of flush mode UI states. +enum DG_Flush_UI_States +{ + FLUSH_UI_STATE_NOT_RUNNING = 0, ///< Flush UI, not running state + FLUSH_UI_STATE_DRAIN_DEVICE, ///< Flush UI, drain device state + FLUSH_UI_STATE_FLUSH_RESERVOIRS, ///< Flush UI, flush reservoirs + FLUSH_UI_STATE_DRAIN_RESERVOIRS, ///< Flush UI, drain reservoirs + FLUSH_UI_STATE_FLUSH_RECIRCULATION_PATH, ///< Flush UI, flush recirculation path + FLUSH_UI_STATE_CANCEL_FLUSH, ///< Flush UI, cancel flush state + FLUSH_UI_STATE_COMPLETE, ///< Flush UI, complete state + NUM_OF_FLUSH_UI_STATES ///< Number of flush UI states +}; +typedef enum DG_Flush_UI_States DG_FLUSH_UI_STATE_T; ///< Type for DG flush mode UI states enumeration + +#if defined(_HD_) || defined(_DG_) +/// Flush mode data publish struct +typedef struct +{ + U32 flushState; ///< Flush state. + U32 overallElapsedTime; ///< Overall elapsed time in flush mode. + U32 stateElapsedTime; ///< Current flush elapsed time. + F32 drainLineVolume; ///< Drain line volume. + U32 flushUIState; ///< Flush UI state. +} MODE_FLUSH_DATA_T; +#endif + +/**@}*/ + +/** + * @addtogroup DGHeatDisinfectMode + * @{ + */ + +/// Enumeration of heat disinfect mode states. +enum DG_Heat_States +{ + DG_HEAT_DISINFECT_STATE_START = 0, ///< Heat disinfect, start mode state + DG_HEAT_DISINFECT_STATE_DRAIN_R1, ///< Heat disinfect, drain R1 state + DG_HEAT_DISINFECT_STATE_DRAIN_R2, ///< Heat disinfect, drain R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN, ///< Heat disinfect, flush drain state + DG_HEAT_DISINFECT_STATE_FLUSH_CIRCULATION, ///< Heat disinfect, flush circulation state + DG_HEAT_DISINFECT_STATE_FLUSH_R1_AND_R2, ///< Heat disinfect, flush R1 and R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_R2_AND_DRAIN_R1, ///< Heat disinfect, flush R2 and drain R1 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R2, ///< Heat disinfect, flush drain R2 state + DG_HEAT_DISINFECT_STATE_FLUSH_DRAIN_R1, ///< Heat disinfect, flush drain R1 state + DG_HEAT_DISINFECT_STATE_FILL_WITH_WATER, ///< Heat disinfect, fill with water state + DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2, ///< Heat disinfect, disinfect R1 to R2 state + DG_HEAT_DISINFECT_STATE_PREPARE_FOR_HOT_WATER_TRANSITION, ///< Heat disinfect, prepare for hot water transition + DG_HEAT_DISINFECT_STATE_FILL_R2_WITH_HOT_WATER, ///< Heat disinfect, fill R2 with hot water state + DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1, ///< Heat disinfect, disinfect R2 to R1 state + DG_HEAT_DISINFECT_STATE_COOL_DOWN_HEATERS, ///< Heat disinfect, cool down heaters state + DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R1, ///< Heat disinfect, mix drain R1 state + DG_HEAT_DISINFECT_STATE_MIX_DRAIN_R2, ///< Heat disinfect, mix drain R2 state + DG_HEAT_DISINFECT_STATE_CANCEL_BASIC_PATH, ///< Heat disinfect, cancel mode basic path state + DG_HEAT_DISINFECT_STATE_CANCEL_WATER_PATH, ///< Heat disinfect, cancel mode water path state + DG_HEAT_DISINFECT_STATE_COMPLETE, ///< Heat disinfect, complete state +#ifndef _RELEASE_ + DG_NELSON_HEAT_DISINFECT_STATE_FILL_R1_WITH_WATER, +#endif + NUM_OF_DG_HEAT_DISINFECT_STATES ///< Number of heat disinfect mode states +}; +typedef enum DG_Heat_States DG_HEAT_DISINFECT_STATE_T; ///< Type for DG heat disinfect states enumeration + +/// Enumeration of heat disinfect mode states. +enum DG_Heat_UI_States +{ + HEAT_DISINFECT_UI_STATE_NOT_RUNNING = 0, ///< Heat disinfect UI, not running state + HEAT_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT, ///< Heat disinfect UI, flush before disinfect state + HEAT_DISINFECT_UI_STATE_HEAT_UP_WATER, ///< Heat disinfect UI, heat up water state + HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_1, ///< Heat disinfect UI, disinfect reservoir 1 state + HEAT_DISINFECT_UI_STATE_TRANSITION_HOT_WATER, ///< Heat disinfect UI, transition hot water state + HEAT_DISINFECT_UI_STATE_DISINFECT_RESERVOIR_2, ///< Heat disinfect UI, disinfect reservoir 2 state + HEAT_DISINFECT_UI_STATE_COOL_DOWN_DEVICE, ///< Heat disinfect UI, cool down device state + HEAT_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Heat disinfect UI, flush after disinfect state + HEAT_DISINFECT_UI_STATE_CANCEL_DISINFECT, ///< Heat disinfect UI, cancel disinfect state + HEAT_DISINFECT_UI_STATE_COMPLETE, ///< Heat disinfect UI, complete state + NUM_OF_HEAT_DISINFECT_UI_STATES ///< Number of heat disinfect mode UI states +}; +typedef enum DG_Heat_UI_States DG_HEAT_DISINFECT_UI_STATE_T; ///< Type for DG heat disinfect UI states enumeration + +#if defined(_HD_) || defined(_DG_) +/// Heat disinfect data publish struct +typedef struct +{ + U32 heatDisinfectState; ///< Heat disinfect state. + U32 overallElapsedTime; ///< Overall elapsed time in heat disinfect mode. + U32 stateElapsedTime; ///< Current heat disinfect elapsed time. + U32 cancellationMode; ///< Heat disinfect cancellation mode. + F32 R1FillLevel; ///< Reservoir 1 level upon starting the heat disinfect. + F32 R2FillLevel; ///< Reservoir 2 level upon starting the heat disinfect. + U32 heatDisinfectUIState; ///< Heat disinfect UI state. +} MODE_HEAT_DISINFECT_DATA_T; +#endif + +/// Cancellation paths +typedef enum Cancellation_modes +{ + CANCELLATION_MODE_NONE = 0, ///< Cancellation mode none. + CANCELLATION_MODE_BASIC, ///< Cancellation mode basic. + CANCELLATION_MODE_HOT, ///< Cancellation mode hot. + CANCELLATION_MODE_COLD, ///< Cancellation mode cold. + CANCELLATION_MODE_CHEMICAL, ///< Cancellation mode chemical. + CANCELLATION_MODE_WATER, ///< Cancellation mode water. + NUM_OF_CANCELLATION_MODES ///< Number of cancellation modes. +} CANCELLATION_MODE_T; + +/**@}*/ + +/** + * @addtogroup DGHeatDisinfectActiveCoolMode + * @{ + */ + +/// Enumeration of heat disinfect active cool mode states. +enum DG_Heat_Cool_States +{ + DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_START = 0, ///< Heat disinfect active cool, start mode state. + DG_HEAT_DISINFECT_ACITVE_COOL_MIX_DRAIN_R1_STATE, ///< Heat disinfect active cool, mix drain R1 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_MIX_DRAIN_R2_STATE, ///< Heat disinfect active cool, mix drain R2 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R1_STATE, ///< Heat disinfect active cool, fill R1 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_FILL_R2_STATE, ///< Heat disinfect active cool, fill R2 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_FILL_R1_TO_R2_STATE, ///< Heat disinfect active cool, drain R2 fill R1 to R2 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_FILL_R2_TO_R1_STATE, ///< Heat disinfect active cool, drain R1 fill R2 to R1 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R1_STATE, ///< Heat disinfect active cool, drain R1 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_DRAIN_R2_STATE, ///< Heat disinfect active cool, drain R2 state. + DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE, ///< Heat disinfect active cool, cancel water path state. + DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_BASIC_PATH_STATE, ///< Heat disinfect active cool, cancel basic path state. + DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_COMPLETE, ///< Heat disinfect active cool, complete state. + NUM_OF_DG_HEAT_DISINFECT_ACTIVE_COOL_STATES ///< Number of heat disinfect mode states. +}; +typedef enum DG_Heat_Cool_States DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_T; ///< Type for DG heat disinfect active cool states enumeration + +/**@}*/ + +/** + * @addtogroup DGChemicalDisinfectMode + * @{ + */ + +/// Enumeration of chemical disinfect mode states. +enum DG_Chem_States +{ + DG_CHEM_DISINFECT_STATE_START = 0, ///< Chemical disinfect, start state + DG_CHEM_DISINFECT_STATE_DRAIN_R1, ///< Chemical disinfect, drain R1 state + DG_CHEM_DISINFECT_STATE_DRAIN_R2, ///< Chemical disinfect, drain R2 state + DG_CHEM_DISINFECT_STATE_FLUSH_DRAIN, ///< Chemical disinfect, flush drain state + DG_CHEM_DISINFECT_STATE_DEPRIME_ACID_LINE, ///< Chemical disinfect, de-prime acid line state + DG_CHEM_DISINFECT_STATE_FLUSH_CIRCULATION, ///< Chemical disinfect, flush circulation state + DG_CHEM_DISINFECT_STATE_PRIME_DISINFECTANT, ///< Chemical disinfect, prime disinfectant state + DG_CHEM_DISINFECT_STATE_DISINFECTANT_FLUSH, ///< Chemical disinfect, disinfectant flush state + DG_CHEM_DISINFECT_STATE_FILL_WITH_DISINFECTANT, ///< Chemical disinfect, fill with disinfectant state + DG_CHEM_DISINFECT_STATE_DISINFECT_R1_TO_R2, ///< Chemical disinfect, fill R1 with disinfectant, overflow to R2 + DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R1_FILL_R2_TO_R1, ///< Chemical disinfect, fill R2 with disinfectant, partial drain R1 + DG_CHEM_DISINFECT_STATE_DISINFECT_R2_TO_R1, ///< Chemical disinfect, fill R2 with disinfectant, overflow to R1 + DG_CHEM_DISINFECT_STATE_PARTIAL_DRAIN_R2_FILL_R1_TO_R2, ///< Chemical disinfect, fill R1 with disinfectant, partial drain R2 + DG_CHEM_DISINFECT_STATE_CANCEL_BASIC_PATH, ///< Chemical disinfect, cancel basic path state + DG_CHEM_DISINFECT_STATE_CANCEL_WATER_PATH, ///< Chemical disinfect, cancel water path state + DG_CHEM_DISINFECT_STATE_COMPLETE, ///< Chemical disinfect, complete state + NUM_OF_DG_CHEM_DISINFECT_STATES ///< Number of chemical disinfect mode states +}; +typedef enum DG_Chem_States DG_CHEM_DISINFECT_STATE_T; ///< Type for DG chemical disinfect states enumeration + +/// Enumeration of chemical disinfect mode UI states +enum DG_Chem_UI_States +{ + CHEM_DISINFECT_UI_STATE_NOT_RUNNING = 0, ///< Chemical disinfect UI, not running state + CHEM_DISINFECT_UI_STATE_FLUSH_BEFORE_DISINFECT, ///< Chemical disinfect UI, flush before disinfect state + CHEM_DISINFECT_UI_STATE_MIX_WATER_AND_ACID, ///< Chemical disinfect UI, mix water and acid state + CHEM_DISINFECT_UI_STATE_REMOVE_ACID, ///< Chemical disinfect UI, remove acid state + CHEM_DISINFECT_UI_STATE_DISINFECT_DEVICE, ///< Chemical disinfect UI, disinfect device state + CHEM_DISINFECT_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Chemical disinfect UI, flush after disinfect state + CHEM_DISINFECT_UI_STATE_CANCEL_DISINFECT, ///< Chemical disinfect UI, cancel disinfect state + CHEM_DISINFECT_UI_STATE_COMPLETE, ///< Chemical disinfect UI, complete state + NUM_OF_CHEM_DISINFECT_UI_STATES ///< Number of chemical disinfect UI states +}; +typedef enum DG_Chem_UI_States DG_CHEM_DISINFECT_UI_STATE_T; ///< Type for DG chemical disinfect UI states enumeration + +#if defined(_HD_) || defined(_DG_) +/// Chemical disinfect data +typedef struct +{ + U32 chemDisinfectState; ///< Chemical disinfect state. + U32 overallElapsedTime; ///< Overall elapsed time in chemical disinfect mode. + U32 stateElapsedTime; ///< Current chemical disinfect elapsed time. + U32 cancellationMode; ///< Chemical disinfect cancellation mode. + F32 R1FillLevel; ///< Reservoir 1 level upon starting the chemical disinfect. + F32 R2FillLevel; ///< Reservoir 2 level upon starting the chemical disinfect. + F32 acidAvgCondUSPCM; ///< Acid average conductivity in uS/cm. +} MODE_CHEMICAL_DISINFECT_DATA_T; +#endif + +/**@}*/ + +/** + * @addtogroup DGChemicalDisinfectFlushMode + * @{ + */ + +/// Enumeration of chemical disinfect flush mode states. +enum DG_Chem_Flush_States +{ + DG_CHEM_DISINFECT_FLUSH_STATE_START = 0, ///< Chemical disinfect flush, start state + DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R1, ///< Chemical disinfect flush, drain R1 state + DG_CHEM_DISINFECT_FLUSH_STATE_DRAIN_R2, ///< Chemical disinfect flush, drain R2 state + DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DRAIN, ///< Chemical disinfect flush, flush drain state + DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_DISINFECTANT_LINE, ///< Chemical disinfect flush, flush disinfectant line state + DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_UF, ///< Chemical disinfect flush, flush UF state + DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R2_TO_R1_DRAIN_R1, ///< Chemical disinfect flush, flush R2 to R1 drain R1 state + DG_CHEM_DISINFECT_FLUSH_STATE_FLUSH_R1_TO_R2_DRAIN_R2, ///< Chemical disinfect flush, flush R1 to R2 drain R2 state + DG_CHEM_DISINFECT_FLUSH_STATE_SAMPLE_FLUSH_R1_TO_R2_DRAIN_R2, ///< Chemical disinfect flush, sample flush R1 to R2 drain R2 state + DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_BASIC_PATH, ///< Chemical disinfect flush, cancel basic path state + DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH, ///< Chemical disinfect flush, cancel water path state + DG_CHEM_DISINFECT_FLUSH_STATE_COMPLETE, ///< Chemical disinfect flush, complete state + NUM_OF_DG_CHEM_DISINFECT_FLUSH_STATES ///< Number of chemical disinfect flush mode states +}; +typedef enum DG_Chem_Flush_States DG_CHEM_DISINFECT_FLUSH_STATE_T; ///< Type for DG chemical disinfect flush states enumeration + +/// Enumeration of chemical disinfect flush mode UI states +enum DG_Chem_Flush_UI_States +{ + CHEM_DISINFECT_FLUSH_UI_STATE_NOT_RUNNING = 0, ///< Chemical disinfect flush UI, not running state + CHEM_DISINFECT_FLUSH_UI_STATE_FLUSH_AFTER_DISINFECT, ///< Chemical disinfect flush UI, flush after disinfect state + CHEM_DISINFECT_FLUSH_UI_STATE_CANCEL_FLUSH, ///< Chemical disinfect flush UI, cancel disinfect state + CHEM_DISINFECT_FLUSH_UI_STATE_COMPLETE, ///< Chemical disinfect flush UI, complete state + NUM_OF_CHEM_DISINFECT_FLUSH_UI_STATES ///< Number of chemical disinfect flush UI states +}; +typedef enum DG_Chem_Flush_UI_States DG_CHEM_DISINFECT_FLUSH_UI_STATE_T; ///< Type for DG chemical disinfect UI states enumeration + +#if defined(_HD_) || defined(_DG_) +/// Chemical disinfect flush data +typedef struct +{ + U32 chemDisinfectFlushState; ///< Chemical disinfect flush state. + U32 overallElapsedTime; ///< Overall elapsed time in chemical disinfect flush mode. + U32 stateElapsedTime; ///< Current chemical disinfect flush elapsed time. + U32 cancellationMode; ///< Chemical disinfect flush cancellation mode. + U32 postDisinfectCurrentRinseCount; ///< Current post disinfect rinse count. + U32 chemDisinfectFlushUIState; ///< Chemical disinfect flush UI state. +} MODE_CHEMICAL_DISINFECT_FLUSH_DATA_T; +#endif + +/**@}*/ + +/** + * @addtogroup DGROPermeateSampleMode + * @{ + */ + +/// Enumeration of RO permeate mode. +enum DG_RO_Permeate_States +{ + DG_RO_PERM_SAMPLE_STATE_START = 0, ///< RO Permeate Sample, start mode state + DG_RO_PERM_SAMPLE_STATE_DRAIN_R1, ///< RO Permeate Sample, drain reservoir 1 state + DG_RO_PERM_SAMPLE_STATE_DRAIN_R2, ///< RO Permeate Sample, drain reservoir 2 state + DG_RO_PERM_SAMPLE_STATE_FLUSH_DRAIN, ///< RO Permeate Sample, flush drain state + DG_RO_PERM_SAMPLE_STATE_FLUSH_DIALYSATE, ///< RO Permeate Sample, flush dialysate state + DG_RO_PERM_SAMPLE_STATE_FLUSH_CONCENTRATE_STRAWS, ///< RO Permeate Sample, flush concentrate straws state + DG_RO_PERM_SAMPLE_STATE_FLUSH_R2_TO_R1_AND_DRAIN_R1, ///< RO Permeate Sample, flush R2 to R1 and drain R1 state + DG_RO_PERM_SAMPLE_STATE_COLLECT_SAMPLE, ///< RO Permeate Sample, collect sample state + DG_RO_PERM_SAMPLE_STATE_CANCEL_BASIC_PATH, ///< RO Permeate Sample, cancel basic path state + DG_RO_PERM_SAMPLE_STATE_CANCEL_WATER_PATH, ///< RO Permeate Sample, cancel water path state + DG_RO_PERM_SAMPLE_STATE_COMPLETE, ///< RO Permeate Sample, complete mode state + NUM_OF_DG_RO_PERM_STATES ///< Number of RO permeate mode states +}; +typedef enum DG_RO_Permeate_States DG_RO_PERM_STATE_T; ///< Type for DG RO Permeate states enumeration + +/**@}*/ + +/** + * @addtogroup DGServiceMode + * @{ + */ + +/// Enumeration of service mode states. +enum DG_Service_States +{ + DG_SERVICE_STATE_START = 0, ///< Start service mode state + NUM_OF_DG_SERVICE_STATES ///< Number of service mode states +}; +typedef enum DG_Service_States DG_SERVICE_STATE_T; ///< Type for DG service states enumeration + +/**@}*/ + +/** + * @addtogroup DGInterface + * @{ + */ + +/// Enumeration of available DG commands. +enum DG_Command +{ + DG_CMD_NONE = 0, ///< Not a command + DG_CMD_SWITCH_RESERVOIR = 1, ///< Command to request DG switch reservoirs + DG_CMD_START_DRAIN = 2, ///< Command to request DG to start drain + DG_CMD_STOP_DRAIN = 3, ///< Command to request DG to stop drain + DG_CMD_START_FILL = 4, ///< Command to request DG to start fill + DG_CMD_STOP_FILL = 5, ///< Command to request DG to stop fill + DG_CMD_START_TRIMMER_HEATER = 6, ///< Command to request DG to start trimmer heater + DG_CMD_STOP_TRIMMER_HEATER = 7, ///< Command to request DG to stop trimmer heater + DG_CMD_VALVE_SETTING = 8, ///< Command to request DG to change valve settings + DG_CMD_SAMPLE_WATER = 9, ///< Command to request DG to sample water + DG_CMD_START_FLUSH = 10, ///< Command to request DG to start flush + DG_CMD_STOP_FLUSH = 11, ///< Command to request DG to stop flush + DG_CMD_START_HEAT_DISINFECT = 12, ///< Command to request DG to start heat disinfect + DG_CMD_STOP_HEAT_DISINFECT = 13, ///< Command to request DG to stop heat disinfect + DG_CMD_START_CHEM_DISINFECT = 14, ///< Command to request DG to start chemical disinfect + DG_CMD_STOP_CHEM_DISINFECT = 15, ///< Command to request DG to stop chemical disinfect + DG_CMD_REQUEST_CONC_MIXING_RATIOS = 16, ///< Command to request DG to send the concentrate pumps mixing ratios + DG_CMD_START_CHEM_DISINFECT_FLUSH = 17, ///< Command to request DG to start chemical disinfect + DG_CMD_STOP_CHEM_DISINFECT_FLUSH = 18, ///< Command to request DG to stop chemical disinfect + DG_CMD_START_RO_PERMEATE_SAMPLE = 19, ///< Command to request DG to start RO permeate sample mode + DG_CMD_STOP_RO_PERMEATE_SAMPLE = 20, ///< Command to request DG to stop RO permeate sample mode + DG_CMD_STOP_ACTIVE_COOL = 21, ///< Command to request DG to stop active cool mode + DG_CMD_PARK_CONCENTRATE_PUMPS = 22, ///< Command to request DG to park concentrate pumps + NUM_OF_DG_COMMANDS ///< Number of DG commands +}; +typedef enum DG_Command DG_COMMAND_T; ///< Type for DG commands enumeration + +/// Enumeration of sample water command parameters. +enum Sample_Water_Commands +{ + SAMPLE_WATER_CMD_STOP = 0, ///< Stop sample water command + SAMPLE_WATER_CMD_START, ///< Start sample water command + SAMPLE_WATER_CMD_FLUSH, ///< Flush the filter sample water command + SAMPLE_WATER_CMD_END, ///< End sample water command + NUM_OF_SAMPLE_WATER_CMDS ///< Number of sample water command parameters +}; +typedef enum Sample_Water_Commands SAMPLE_WATER_CMD_T; ///< Type for sample water enum. + +/// Enumeration of sample water command parameters. +enum DG_General_Commands +{ + DG_CMD_STOP = 0, ///< DG general stop command + DG_CMD_START = 1, ///< DG general start command + NUM_OF_DG_CMDS ///< Number of DG general commands +}; +typedef enum DG_General_Commands DG_GENERAL_COMMAND_T; ///< Type for DG general command enum. + +/**@}*/ + +/** + * @addtogroup LoadCells + * @{ + */ + +/// Enumeration of DG load cell sensors. +typedef enum Load_Cells +{ + LOAD_CELL_FIRST = 0, ///< First load cell to scan + LOAD_CELL_RESERVOIR_1_PRIMARY = LOAD_CELL_FIRST, ///< Primary load cell for reservoir 1. + LOAD_CELL_RESERVOIR_1_BACKUP, ///< Backup load cell for reservoir 1. + LOAD_CELL_RESERVOIR_2_PRIMARY, ///< Primary load cell for reservoir 2. + LOAD_CELL_RESERVOIR_2_BACKUP, ///< Backup load cell for reservoir 2. + NUM_OF_LOAD_CELLS ///< Number of load cell sensors. +} LOAD_CELL_ID_T; + +/**@}*/ + +/** + * @addtogroup CommonHeader + * @{ + */ + +/// Enumeration of DG event IDs. +enum DG_Event_List +{ + DG_EVENT_STARTUP = 0, ///< DG startup event + DG_EVENT_OP_MODE_CHANGE, ///< DG Op mode change event + DG_EVENT_SUB_MODE_CHANGE, ///< DG Op sub-mode change event + DG_EVENT_CONCENTRATE_CAP_SWITCH_CHANGE, ///< DG concentrate cap switch change + DG_EVENT_DIALYSATE_CAP_SWITCH_CHANGE, ///< DG dialysate cap switch change + DG_EVENT_CPU_RAM_ERROR_STATUS, ///< DG processor RAM error + DG_EVENT_CAL_RECORD_UPDATE, ///< DG new calibration record updated + DG_EVENT_SYSTEM_RECORD_UPDATE, ///< DG new system record has been updated + DG_EVENT_SERVICE_UPDATE, ///< DG new service record has been updated + DG_EVENT_USAGE_INFO_UPDATE, ///< DG new usage information has been updated + DG_EVENT_SW_CONFIG_UPDATE, ///< DG new software configuration has been updated + DG_EVENT_SCHEDULED_RUNS_UPDATE, ///< DG new scheduled runs information has been updated + DG_EVENT_HEATERS_INFO_UPDATE, ///< DG new heaters information has been updated + DG_EVENT_AVG_DIALYSATE_FILL_COND_VALUES, ///< DG average dialysate fill conductivity values + DG_EVENT_RESERVOIR_FILL_VALUES, ///< DG reservoir fill values + DG_EVENT_OPERATION_STATUS, ///< DG operation status event + DG_EVENT_TEMPERATURE_DRIFT, ///< DG temperature drift event + DG_EVENT_BICARB_CHECK_RESULT, ///< DG bicarb check result + DG_EVENT_ACID_CHECK_RESULT, ///< DG acid check result + DG_EVENT_COND1_VS_COND2_DIFF_RESULT, ///< DG CD1 (acid) vs. CD2 (bicarb) different result + NUM_OF_DG_EVENT_IDS ///< Total number of DG events +}; +typedef enum DG_Event_List DG_EVENT_ID_T; ///< Type for DG event list enumeration + +/**@}*/ + +/** + * @addtogroup HeatersState + * @{ + */ + +/// Heaters exec states +typedef enum Heaters_Exec_States +{ + HEATER_EXEC_STATE_OFF = 0, ///< Heater exec state off. + HEATER_EXEC_STATE_PRIMARY_RAMP_TO_TARGET, ///< Heater exec state primary ramp to target. + HEATER_EXEC_STATE_PRIMARY_CONTROL_TO_TARGET, ///< Heater exec state primary control to target. + HEATER_EXEC_STATE_CONTROL_TO_DISINFECT_TARGET, ///< Heater exec state control to disinfect (heat or chemical) target. + HEATER_EXEC_STATE_TRIMMER_RAMP_TO_TARGET, ///< Heater exec state trimmer ramp to target. + HEATER_EXEC_STATE_TRIMMER_CONTROL_TO_TARGET, ///< Heater exec state trimmer control to target. + NUM_OF_HEATERS_STATE, ///< Number of heaters state. +} HEATERS_STATE_T; + +/**@}*/ + +#ifndef _RELEASE_ +// Nelson lab disinfect efficacy support +typedef enum Nelson_States +{ + NELSON_NONE = 0, // Nelson none. + NELSON_INOCULATE, // Nelson inoculate. + NELSON_HEAT_DISINFECT, // Nelson heat disinfect. + NELSON_POS_CONTROL_HEAT_DISINFECT, // Nelson positive control heat disinfect. + NELSON_CHEM_DISINFECT, // Nelson chemical disinfect. + NELSON_DRAIN_SAMPLES, // Nelson drain sample. + NUM_OF_NELSON_SUPPORT // Number of Nelson supports. +} NELSON_SUPPORT_T; +#endif + +#endif Index: MsgDefs.h =================================================================== diff -u --- MsgDefs.h (revision 0) +++ MsgDefs.h (revision 0f593e2fb2a531ba49fd776b053bee014aceef92) @@ -0,0 +1,618 @@ + +/************************************************************************** +* +* Copyright (c) 2024-2024 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 MsgDefs.h +* +* @author (last) Sean +* @date (last) 30-Jul-2024 +* +* @author (original) Sean +* @date (original) 30-Jul-2024 +* +***************************************************************************/ + +#ifndef __MESSAGE_DEFINITIONS_H__ +#define __MESSAGE_DEFINITIONS_H__ + +// ********** public definitions ********** + +/** + * @addtogroup SystemCommMessages + * @{ + */ + +/// Enumeration of system message IDs +enum Msg_IDs +{ // normal CAN messages + MSG_ID_UNUSED = 0x0, ///< Zero is an undefined (un-used) message ID) + MSG_ID_OFF_BUTTON_PRESS_REQUEST = 0x1, ///< UI to HD off button request + MSG_ID_ALARM_STATUS_DATA = 0x2, ///< HD broadcast of system alarm state information + MSG_ID_ALARM_TRIGGERED = 0x3, ///< Alarm triggered event + MSG_ID_ALARM_CLEARED = 0x4, ///< Alarm cleared event + MSG_ID_BLOOD_FLOW_DATA = 0x5, ///< HD broadcast of blood flow/pump data + MSG_ID_UI_POST_TX_NEXT_REQUEST = 0x6, ///< UI next screen request in post treatment mode + MSG_ID_UI_CHECK_IN = 0x7, ///< UI check-in with HD + MSG_ID_DIALYSATE_FLOW_DATA = 0x8, ///< HD broadcast of dialysate inlet flow/pump data + MSG_ID_PRESSURE_OCCLUSION_DATA = 0x9, ///< HD broadcast of pressure/occlusion data + MSG_ID_RTC_EPOCH_DATA = 0xA, ///< HD broadcast of current date and time from clock + MSG_ID_DIALYSATE_OUT_FLOW_DATA = 0xB, ///< HD broadcast of dialysate outlet flow/pump/load cell data + MSG_ID_LOAD_CELL_READINGS_DATA = 0xC, ///< DG broadcast of load cell weights + MSG_ID_TREATMENT_TIME_DATA = 0xD, ///< HD broadcast of treatment time + MSG_ID_POWER_OFF_WARNING = 0xE, ///< HD broadcast power off warning - system power down is imminent + MSG_ID_TREATMENT_STATE_DATA = 0xF, ///< HD broadcast of treatment state + MSG_ID_USER_UF_PAUSE_RESUME_REQUEST = 0x10, ///< User request to pause or resume ultrafiltration + MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST = 0x11, ///< User request to change ultrafiltration settings + MSG_ID_USER_SALINE_BOLUS_REQUEST = 0x12, ///< User request for a saline bolus + MSG_ID_USER_UF_SETTINGS_CHANGE_RESPONSE = 0x13, ///< HD response to user request to change ultrafiltration settings + MSG_ID_USER_SALINE_BOLUS_RESPONSE = 0x14, ///< HD response to user saline bolus request + MSG_ID_USER_CONFIRM_UF_SETTINGS_CHANGE_REQUEST = 0x15, ///< User confirmation of ultrafiltration settings change + MSG_ID_USER_TREATMENT_TIME_CHANGE_REQUEST = 0x16, ///< User request to change treatment duration + MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST = 0x17, ///< User request to change blood and dialysate rates + MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_RESPONSE = 0x18, ///< HD response to user request to change blood and dialysate rates + MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS = 0x19, ///< HD provides DG with dialysate temperature set points + MSG_ID_TREATMENT_PARAM_CHANGE_RANGES_DATA = 0x1A, ///< HD provides several parameter change ranges as they evolve over treatment duration + MSG_ID_USER_TREATMENT_TIME_CHANGE_RESPONSE = 0x1B, ///< HD response to user request to change treatment duration + MSG_ID_FW_VERSIONS_REQUEST = 0x1C, ///< UI request for f/w versions + MSG_ID_HD_VERSION_REPONSE = 0x1D, ///< HD f/w version response + MSG_ID_DG_VERSION_REPONSE = 0x1E, ///< DG f/w version response + MSG_ID_RO_PUMP_DATA = 0x1F, ///< DG broadcast of RO pump data + MSG_ID_DG_PRESSURES_DATA = 0x20, ///< DG broadcast of pressure sensors data + MSG_ID_DG_SWITCH_RESERVOIR_CMD_REQUEST = 0x21, ///< HD request to DG to switch reservoirs (A->B or B->A) + MSG_ID_DG_FILL_CMD_REQUEST = 0x22, ///< HD request to DG to fill inactive reservoir + MSG_ID_DG_DRAIN_CMD_REQUEST = 0x23, ///< HD request to DG to drain inactive reservoir + MSG_ID_DRAIN_PUMP_DATA = 0x24, ///< DG broadcast of drain pump data + MSG_ID_HD_OP_MODE_DATA = 0x25, ///< HD broadcast current operating mode + MSG_ID_STARTING_STOPPING_TREATMENT_CMD_REQUEST = 0x26, ///< HD request to DG to move in/out of standby mode due to treatment start/stop + MSG_ID_DG_OP_MODE_DATA = 0x27, ///< DG broadcast current operating mode + MSG_ID_DG_RESERVOIRS_DATA = 0x28, ///< DG broadcast reservoirs data + MSG_ID_DG_SAMPLE_WATER_CMD_REQUEST = 0x29, ///< HD request to DG to allow user to get a water sample + MSG_ID_DG_VALVES_STATES_DATA = 0x2A, ///< DG broadcast valve states + MSG_ID_HD_START_STOP_TRIMMER_HEATER_CMD_REQUEST = 0x2B, ///< HD request to DG to start/stop trimmer heater + MSG_ID_DG_HEATERS_DATA = 0x2C, ///< DG broadcast of the heaters data + MSG_ID_DG_TEMPERATURE_DATA = 0x2D, ///< DG broadcast of the temperature sensors data + MSG_ID_USER_UF_SETTINGS_CHANGE_CONFIRMATION_RESPONSE = 0x2E, ///< HD response to user selection of ultrafiltration settings change option selection + MSG_ID_SALINE_BOLUS_DATA = 0x2F, ///< HD broadcast of saline bolus data + MSG_ID_DG_START_STOP_HEAT_DISINFECT_CMD_REQUEST = 0x30, ///< HD request to start or stop DG heat disinfection + MSG_ID_DG_CONDUCTIVITY_DATA = 0x31, ///< DG broadcast of the conductivity sensors data + MSG_ID_USER_ALARM_SILENCE_REQUEST = 0x32, ///< UI request alarm silence (or cancel) + MSG_ID_HD_ACCELEROMETER_DATA = 0x33, ///< HD broadcast of accelerometer data + MSG_ID_DG_ACCELEROMETER_DATA = 0x34, ///< DG broadcast of accelerometer data + MSG_ID_UI_NEW_TREATMENT_PARAMS_REQUEST = 0x35, ///< UI request to validate new treatment parameter set + MSG_ID_HD_NEW_TREATMENT_PARAMS_RESPONSE = 0x36, ///< HD response to new treatment parameters set + MSG_ID_DG_HEAT_DISINFECT_DATA = 0x37, ///< DG heat disinfect publish data + MSG_ID_UI_INITIATE_TREATMENT_REQUEST = 0x38, ///< UI user request to initiate a treatment + MSG_ID_HD_INITIATE_TREATMENT_RESPONSE = 0x39, ///< HD response to user request to initiate a treatment + MSG_ID_HD_VALVES_DATA = 0x3A, ///< HD broadcast of valves data + MSG_ID_UI_USER_CONFIRM_TREATMENT_PARAMS_REQUEST = 0x3B, ///< UI user confirmation of treatment parameters + MSG_ID_UI_START_PRIME_REQUEST = 0x3C, ///< UI user has requested to start priming + MSG_ID_HD_START_PRIME_RESPONSE = 0x3D, ///< HD response to user request to start priming + MSG_ID_HD_AIR_TRAP_DATA = 0x3E, ///< HD broadcast of air trap data + MSG_ID_ALARM_CONDITION_CLEARED = 0x3F, ///< Alarm condition cleared event + MSG_ID_UI_ALARM_USER_ACTION_REQUEST = 0x40, ///< UI user has requested an alarm action + MSG_ID_USER_UF_PAUSE_RESUME_RESPONSE = 0x41, ///< HD response to user request to pause or resume ultrafiltration + MSG_ID_DG_CONCENTRATE_PUMP_DATA = 0x42, ///< DG broadcast of concentrate pump data + MSG_ID_HD_PRIMING_STATUS_DATA = 0x43, ///< HD priming status during cartridge prime + MSG_ID_DG_UV_REACTORS_DATA = 0x44, ///< DG broadcast UV reactors data + MSG_ID_DG_THERMISTORS_DATA = 0x45, ///< DG broadcast thermistors data + MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST = 0x46, ///< UI request to change pressure limits + MSG_ID_HD_PRESSURE_LIMITS_CHANGE_RESPONSE = 0x47, ///< HD response to change pressure limits request + MSG_ID_DG_FANS_DATA = 0x48, ///< DG broadcast fans data + MSG_ID_HD_TREATMENT_STOP_TIMER_DATA = 0x49, ///< HD broadcast of treatment stop timer (countdown to treatment stop - no rinseback alarm) + MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM_REQUEST = 0x4A, ///< UI patient disconnection confirm + MSG_ID_UI_HEPARIN_PAUSE_RESUME_REQUEST = 0x4B, ///< UI request to pause/resume Heparin delivery + MSG_ID_HD_HEPARIN_PAUSE_RESUME_RESPONSE = 0x4C, ///< HD response to pause/resume Heparing delivery request + MSG_ID_HD_HEPARIN_DATA = 0x4D, ///< HD broadcast of Heparin delivery data + MSG_ID_UI_SET_ALARM_AUDIO_VOLUME_LEVEL_CMD_REQUEST = 0x4E, ///< UI command to set alarm audio volume level + MSG_ID_UI_SET_UF_VOLUME_PARAMETER_REQUEST = 0x4F, ///< UI request to validate new ultrafiltration volume treatment parameter + MSG_ID_HD_SET_UF_VOLUME_PARAMETER_RESPONSE = 0x50, ///< HD response to new treatment parameters set + MSG_ID_DG_COMMAND_RESPONSE = 0x51, ///< DG response to command from HD + MSG_ID_UI_RINSEBACK_CMD_REQUEST = 0x52, ///< UI rinseback sub-mode user request + MSG_ID_HD_RINSEBACK_CMD_RESPONSE = 0x53, ///< HD rinseback sub-mode user request response + MSG_ID_UI_RECIRC_CMD_REQUEST = 0x54, ///< UI re-circ sub-mode user request + MSG_ID_HD_RECIRC_CMD_RESPONSE = 0x55, ///< HD re-circ sub-mode request response + MSG_ID_HD_RINSEBACK_PROGRESS = 0x56, ///< HD broadcast of rinseback progress + MSG_ID_UI_TX_END_CMD_REQUEST = 0x57, ///< UI end treatment sub-mode user request + MSG_ID_HD_TX_END_CMD_RESPONSE = 0x58, ///< HD end treatment sub-mode user request response + MSG_ID_HD_BLOOD_PRIME_PROGRESS_DATA = 0x59, ///< HD broadcast of blood prime progress + MSG_ID_HD_RECIRC_PROGRESS_DATA = 0x5A, ///< HD broadcast of treatment re-circulate progress + MSG_ID_DG_CHANGE_VALVE_SETTING_CMD_REQUEST = 0x5B, ///< HD request to DG to change valve setting + MSG_ID_PRE_TREATMENT_STATE_DATA = 0x5C, ///< HD broadcast of pre-treatment state + MSG_ID_UI_SAMPLE_WATER_CMD_REQUEST = 0x5D, ///< UI sample water sub-mode user request + MSG_ID_HD_SAMPLE_WATER_CMD_RESPONSE = 0x5E, ///< HD sample water sub-mode request response + MSG_ID_UI_SAMPLE_WATER_RESULT = 0x5F, ///< UI sample water result message + MSG_ID_DG_FILTER_FLUSH_PROGRESS_DATA = 0x60, ///< DG broadcast of filter flush progress + MSG_ID_HD_NO_CART_SELF_TEST_PROGRESS_DATA = 0x61, ///< HD broadcast of no cartridge self-tests progress + MSG_ID_UI_INSTALLATION_CONFIRM_REQUEST = 0x62, ///< UI disposable installation user confirmation + MSG_ID_HD_DRY_SELF_TEST_PROGRESS_DATA = 0x63, ///< HD broadcast of dry self-tests progress + MSG_ID_UI_PATIENT_CONNECTION_BEGIN_REQUEST = 0x64, ///< UI user has requested to begin patient connection + MSG_ID_HD_PATIENT_CONNECTION_BEGIN_RESPONSE = 0x65, ///< HD response to user request to begin patient connection + MSG_ID_UI_PATIENT_CONNECTION_CONFIRM_REQUEST = 0x66, ///< UI user has confirmed patient connection completed + MSG_ID_HD_PATIENT_CONNECTION_CONFIRM_RESPONSE = 0x67, ///< HD response to user confirmation of patient connection + MSG_ID_UI_CONSUMABLE_INSTALL_CONFIRM_REQUEST = 0x68, ///< UI user has confirmed consumable install + MSG_ID_HD_SYRINGE_PUMP_DATA = 0x69, ///< HD broadcast of syringe pump data + MSG_ID_HD_FLUID_LEAK_STATE_DATA = 0x6A, ///< HD broadcast of fluid leak state + MSG_ID_DG_FLUID_LEAK_STATE_DATA = 0x6B, ///< DG broadcast of fluid leak state + MSG_ID_HD_BLOOD_LEAK_DATA = 0x6C, ///< HD broadcast of blood leak data + MSG_ID_UI_HD_SET_RTC_REQUEST = 0x6D, ///< UI requests HD to set RTC + MSG_ID_HD_UI_SET_RTC_RESPONSE = 0x6E, ///< HD response for RTC set request + MSG_ID_UI_DG_SET_RTC_REQUEST = 0x6F, ///< UI requests DG to set RTC + MSG_ID_DG_UI_SET_RTC_RESPONSE = 0x70, ///< DG response for RTC set request + MSG_ID_UI_START_TREATMENT_REQUEST = 0x71, ///< UI user has requested to start treatment + MSG_ID_HD_START_TREATMENT_RESPONSE = 0x72, ///< HD response to user request to start treatment + MSG_ID_UI_DISPOSABLE_REMOVAL_CONFIRM_REQUEST = 0x73, ///< UI user has confirmed disposable removal + MSG_ID_HD_DISPOSABLE_REMOVAL_CONFIRM_RESPONSE = 0x74, ///< HD response to user confirmation of disposable removal + MSG_ID_UI_TREATMENT_LOG_DATA_REQUEST = 0x75, ///< UI request treatment log data message + MSG_ID_HD_TREATMENT_LOG_DATA_RESPONSE = 0x76, ///< HD response to UI treatment log data request + MSG_ID_HD_POST_TREATMENT_STATE_DATA = 0x77, ///< HD broadcast of post-treatment state + MSG_ID_DG_START_STOP_CHEM_DISINFECT = 0x78, ///< DG start/stop chemical disinfection + MSG_ID_DG_START_STOP_FLUSH_CMD_REQUEST = 0x79, ///< DG start/stop flush mode + MSG_ID_DG_FLUSH_DATA = 0x7A, ///< DG flush data publish + MSG_ID_HD_VOLTAGES_DATA = 0x7B, ///< HD voltages data publish + MSG_ID_HD_ALARM_AUDIO_VOLUME_SET_RESPONSE = 0x7C, ///< HD response to UI set alarm audio volume request + MSG_ID_HD_ALARM_INFORMATION_DATA = 0x7D, ///< HD alarm information broadcast message + MSG_ID_HD_POST_TX_NEXT_CMD_RESPONSE = 0x7E, ///< HD next screen request in post treatment mode response + MSG_ID_UI_DISINFECT_REQUEST = 0x7F, ///< UI disinfection selection + MSG_ID_HD_DISINFECT_RESPONSE = 0x80, ///< HD response to disinfection selection + MSG_ID_DG_SEND_SERVICE_SCHEDULE_DATA_TO_HD = 0x81, ///< DG send service schedule data to HD + MSG_ID_HD_REQUEST_SERVICE_RECORD_FROM_HD = 0x82, ///< HD request service schedule data from HD + MSG_ID_DG_PARK_CONCENTRATE_PUMPS_CMD_REQUEST = 0x83, ///< HD request DG to park concentrate pumps + MSG_ID_DG_HEAT_DISINFECT_TIME_DATA = 0x84, ///< DG broadcast of heat disinfection mode time data + MSG_ID_DG_CHEM_DISINFECT_TIME_DATA = 0x85, ///< DG broadcast of chemical disinfection mode time data + MSG_ID_DG_VOLTAGES_DATA = 0x86, ///< DG voltages data publish + MSG_ID_DG_CHEM_DISINFECT_DATA = 0x87, ///< DG chemical disinfect data publish + MSG_ID_DG_SERIAL_NUMBER_RESPONSE = 0x88, ///< DG serial number + MSG_ID_UI_SERVICE_INFO_REQUEST = 0x89, ///< UI request for service schedule information + MSG_ID_HD_SERVICE_SCHEDULE_DATA = 0x8A, ///< HD service schedule data + MSG_ID_HD_USAGE_DATA = 0x8B, ///< HD usage data + MSG_ID_DG_SERVICE_SCHEDULE_DATA_TO_UI = 0x8C, ///< DG service schedule data to UI + MSG_ID_DG_USAGE_DATA = 0x8D, ///< DG usage data + MSG_ID_HD_POST_SINGLE_TEST_RESULT = 0x8E, ///< HD POST single test result + MSG_ID_HD_POST_FINAL_TEST_RESULT = 0x8F, ///< HD POST final test result + MSG_ID_DG_POST_SINGLE_TEST_RESULT = 0x90, ///< DG POST single test result + MSG_ID_DG_POST_FINAL_TEST_RESULT = 0x91, ///< DG POST final test result + MSG_ID_UI_POST_FINAL_TEST_RESULT = 0x92, ///< UI POST final test result + MSG_ID_HD_BUBBLES_DATA = 0x93, ///< HD broadcast of air bubble detectors data + MSG_ID_HD_TREATMENT_LOG_PERIODIC_DATA = 0x94, ///< HD broadcast of treatment log period data + MSG_ID_HD_TREATMENT_LOG_ALARM_EVENT = 0x95, ///< HD treatment log alarm event + MSG_ID_HD_TREATMENT_LOG_EVENT = 0x96, ///< HD treatment log event + MSG_ID_UI_ACTIVE_ALARMS_LIST_REQUEST = 0x97, ///< UI active alarms list request + MSG_ID_HD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE = 0x98, ///< HD active alarms list request response + MSG_ID_HD_SERIAL_NUMBER_RESPONSE = 0x99, ///< HD serial number + MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_REQUEST = 0x9A, ///< HD set standby disinfect submode request + MSG_ID_HD_SET_STANDBY_DISINFECT_SUB_MODE_RESPONSE = 0x9B, ///< HD set standby disinfect submode response + MSG_ID_HD_DG_POST_RESULT_REQUEST = 0x9C, ///< HD request for DG POST final result (reported back on msg 0x91) + MSG_ID_HD_TEMPERATURES_DATA = 0x9D, ///< HD temperatures data + MSG_ID_HD_UI_VERSION_INFO_REQUEST = 0x9E, ///< HD request for UI version information + MSG_ID_UI_VERSION_INFO_RESPONSE = 0x9F, ///< UI response to HD request for version information + MSG_ID_HD_USAGE_INFO_REQUEST = 0xA0, ///< HD request usage information + MSG_ID_DG_SWITCHES_DATA = 0xA1, ///< DG switches data publish + MSG_ID_HD_SWITCHES_DATA = 0xA2, ///< HD switches data publish + MSG_ID_HD_FANS_DATA = 0xA3, ///< HD fans data publish + MSG_ID_HD_EVENT = 0xA4, ///< HD general event + MSG_ID_DG_EVENT = 0xA5, ///< DG general event + MSG_ID_HD_SET_SERVICE_TIME_REQUEST = 0xA6, ///< HD set service time + MSG_ID_DG_ALARM_INFO_DATA = 0xA7, ///< DG alarm information data publish + MSG_ID_HD_RESERVOIRS_DATA = 0xA8, ///< HD reservoirs data publish + MSG_ID_HD_DG_CONCENTRATE_MIXING_RATIOS_REQUEST = 0xA9, ///< HD request DG concentrate ratios + MSG_ID_DG_CONCENTRATE_MIXING_RATIOS_DATA = 0xAA, ///< DG concentrate mixing ratios data + MSG_ID_DG_SCHEDULED_RUNS_DATA = 0xAB, ///< DG scheduled runs data + MSG_ID_DG_SET_SERVICE_TIME_REQUEST = 0xAC, ///< DG set service time + MSG_ID_UI_INSTALLATION_CONFIRM_RESPONSE = 0xAD, ///< HD Confirm installation response + MSG_ID_DG_FILL_MODE_DATA = 0xAE, ///< DG broadcast of fill mode data such as used acid & bicarb volume + MSG_ID_DG_GEN_IDLE_DATA = 0xAF, ///< DG broadcast of Gen idle mode sub-state + MSG_ID_UI_SERVICE_MODE_REQUEST = 0xB0, ///< UI request to HD to go to service mode + MSG_ID_HD_RESPONSE_SERVICE_MODE_REQUEST = 0xB1, ///< HD response to UI request to go to service mode + MSG_ID_HD_REQUEST_UI_FINAL_POST_RESULT = 0xB2, ///< HD request to UI for final POST result + MSG_ID_DG_FLOW_SENSORS_DATA = 0xB3, ///< DG flow sensors data publish + MSG_ID_DG_RESPONSE_SERVICE_MODE_REQUEST = 0xB4, ///< DG response to HD request to go to service mode + MSG_ID_HD_DG_ALARMS_REQUEST = 0xB5, ///< HD request for DG to re-send trigger messages for each active alarm + MSG_ID_HD_DG_SERVICE_MODE_REQUEST = 0xB6, ///< HD request for DG to to go to service mode + MSG_ID_DG_RTC_EPOCH_DATA = 0xB7, ///< DG RTC epoch broadcast message + MSG_ID_HD_DG_USAGE_INFO_REQUEST = 0xB8, ///< HD request DG usage info + MSG_ID_UI_HD_RESET_IN_SERVICE_MODE_REQUEST = 0xB9, ///< UI HD reset in service mode request + MSG_ID_HD_UI_CONFIRMATION_REQUEST = 0xBA, ///< HD request UI confirmation + MSG_ID_UI_CONFIRMATION_RESULT_RESPONSE = 0xBB, ///< UI confirmation result response + MSG_ID_UI_SET_DG_RO_MODE = 0xBC, ///< UI set DG RO mode + MSG_ID_DG_CPLD_STATUS_DATA = 0xBD, ///< DG CPLD Status + MSG_ID_HD_BATTERY_MANAGEMENT_DATA = 0xBE, ///< HD battery management logging data + MSG_ID_HD_BATTERY_STATUS_DATA = 0xBF, ///< HD battery status logging data + MSG_ID_DG_CHEM_DISINFECT_FLUSH_DATA = 0xC0, ///< DG chemical disinfect flush logging data + MSG_ID_DG_CHEM_DISINFECT_FLUSH_TIME_DATA = 0xC1, ///< DG broadcast of chemical disinfect flush mode time data + MSG_ID_DG_START_STOP_CHEM_DISINFECT_FLUSH = 0xC2, ///< DG start/stop chemical disinfect flush + MSG_ID_DG_RO_ONLY_MODE_STATUS_REQUEST = 0xC3, ///< DG RO only mode status request + MSG_ID_DG_RO_ONLY_MODE_STATUS_RESPONSE = 0xC4, ///< DG RO only mode status response + MSG_ID_DG_HEAT_DISINFECT_ACTIVE_COOL_DATA = 0xC5, ///< DG heat disinfect active cool data broadcast + MSG_ID_DG_START_STOP_HEAT_DISINFECT_ACTIVE_COOL = 0xC6, ///< DG heat disinfect active cool start/stop command + MSG_ID_HD_AIR_PUMP_DATA = 0xC7, ///< HD air pump data publish + MSG_ID_HD_SEND_CHEM_FLUSH_SAMPLE_PASS_FAIL_TO_DG = 0xC8, ///< HD send chemical disinfect flush sample pass/fail to DG + MSG_ID_DG_START_STOP_RO_PERMEATE_SAMPLE_MODE_CMD_REQUEST = 0xC9, ///< DG start/stop RO permeate sample mode command request + MSG_ID_DG_RO_PERMEATE_SAMPLE_DATA = 0xCA, ///< DG RO permeate sample mode data broadcast + MSG_ID_HD_SEND_RO_PERMEATE_SAMPLE_DISPENSE_REQUEST_TO_DG = 0xCB, ///< HD send RO permeate sample dispense request to DG + MSG_ID_DG_SEND_RO_PERMEATE_SAMPLE_DISPENSE_READY_TO_HD = 0xCD, ///< DG send RO permeate sample dispense ready to HD + MSG_ID_DG_DRAIN_MODE_DATA = 0xCE, ///< DG drain mode data broadcast message + MSG_ID_UI_INSTITUTIONAL_RECORD_REQUEST = 0xCF, ///< UI request institutional record request + MSG_ID_HD_INSTITUTIONAL_RECORD_RESPONSE = 0xD0, ///< HD institutional record response + +#ifdef EMC_TEST_BUILD + MSG_ID_CAN_ERROR_COUNT = 0x999, // test code in support of EMC testing +#endif + + // service/test CAN messages + MSG_ID_FIRST_TESTER_MESSAGE = 0x8000, ///< First HD test message ID + MSG_ID_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_TESTER_MESSAGE, ///< HD tester log-in + MSG_ID_DIAL_OUT_FLOW_SET_PT_OVERRIDE = 0x8001, ///< Dialysate outlet flow set point override request + MSG_ID_OFF_BUTTON_STATE_OVERRIDE = 0x8002, ///< Off button override request + MSG_ID_STOP_BUTTON_STATE_OVERRIDE = 0x8003, ///< Stop button override request + MSG_ID_ALARM_LAMP_PATTERN_OVERRIDE = 0x8004, ///< Alarm lamp pattern override request + MSG_ID_WATCHDOG_TASK_CHECKIN_OVERRIDE = 0x8005, ///< Watchdog task check-in override request + MSG_ID_ALARM_STATE_OVERRIDE = 0x8006, ///< Alarm state override request + MSG_ID_ALARM_TIME_OVERRIDE = 0x8007, ///< Alarm time override request + MSG_ID_BLOOD_FLOW_SET_PT_OVERRIDE = 0x8008, ///< Blood flow set point override request + MSG_ID_BLOOD_FLOW_MEAS_OVERRIDE = 0x8009, ///< Blood flow measured override request + MSG_ID_BLOOD_PUMP_MC_MEAS_SPEED_OVERRIDE = 0x800A, ///< Blood pump motor controller speed override request + MSG_ID_BLOOD_PUMP_MC_MEAS_CURR_OVERRIDE = 0x800B, ///< Blood pump motor controller current override request + MSG_ID_BLOOD_FLOW_SEND_INTERVAL_OVERRIDE = 0x800C, ///< Blood flow broadcast interval override request + MSG_ID_TREATMENT_TIME_REMAINING_OVERRIDE = 0x800D, ///< Treatment time remaining override request + MSG_ID_BLOOD_PUMP_MEAS_SPEED_OVERRIDE = 0x800E, ///< Blood pump measured motor speed override request + MSG_ID_BLOOD_PUMP_MEAS_ROTOR_SPEED_OVERRIDE = 0x800F, ///< Blood pump measured rotor speed override request + MSG_ID_DIAL_IN_FLOW_SET_PT_OVERRIDE = 0x8010, ///< Dialysate inlet flow set point override request + MSG_ID_DIAL_IN_FLOW_MEAS_OVERRIDE = 0x8011, ///< Dialysate inlet flow measured override request + MSG_ID_DIAL_IN_PUMP_MC_MEAS_SPEED_OVERRIDE = 0x8012, ///< Dialysate inlet pump motor controller speed override request + MSG_ID_DIAL_IN_PUMP_MC_MEAS_CURR_OVERRIDE = 0x8013, ///< Dialysate inlet pump motor controller current override request + MSG_ID_DIAL_IN_FLOW_SEND_INTERVAL_OVERRIDE = 0x8014, ///< Dialysate inlet flow broadcast interval override request + MSG_ID_DIAL_IN_PUMP_MEAS_SPEED_OVERRIDE = 0x8015, ///< Dialysate inlet pump measured motor speed override request + MSG_ID_DIAL_IN_PUMP_MEAS_ROTOR_SPEED_OVERRIDE = 0x8016, ///< Dialysate inlet pump measured rotor speed override request + MSG_ID_PRESSURE_ARTERIAL_OVERRIDE = 0x8017, ///< Arterial pressure measured override request + MSG_ID_PRESSURE_VENOUS_OVERRIDE = 0x8018, ///< Venous pressure measured override request + MSG_ID_OCCLUSION_BLOOD_PUMP_OVERRIDE = 0x8019, ///< Blood pump occlusion pressure measured override request + MSG_ID_BLOOD_ROTOR_COUNT_OVERRIDE = 0x801A, ///< Blood pump rotor count override request + MSG_ID_HD_AIR_PUMP_SET_STATE = 0x801B, ///< HD set air pump state. + MSG_ID_PRES_OCCL_SEND_INTERVAL_OVERRIDE = 0x801C, ///< Pressure and occlusion broadcast interval override request + MSG_ID_SET_RTC_DATE_TIME = 0x801D, ///< RTC set date/time request + MSG_ID_DIAL_OUT_FLOW_SEND_INTERVAL_OVERRIDE = 0x801E, ///< Dialysate outlet flow broadcast interval override request + MSG_ID_DIAL_OUT_UF_REF_VOLUME_OVERRIDE = 0x801F, ///< Dialysate outlet - ultrafiltration reference volume override request + MSG_ID_DIAL_OUT_UF_MEAS_VOLUME_OVERRIDE = 0x8020, ///< Dialysate outlet - ultrafiltration measured volume override request + MSG_ID_DIAL_OUT_PUMP_MC_MEAS_SPEED_OVERRIDE = 0x8021, ///< Dialysate outlet pump motor controller speed override request + MSG_ID_DIAL_OUT_PUMP_MC_MEAS_CURR_OVERRIDE = 0x8022, ///< Dialysate outlet pump motor controller current override request + MSG_ID_DIAL_OUT_PUMP_MEAS_SPEED_OVERRIDE = 0x8023, ///< Dialysate outlet pump measured motor speed override request + MSG_ID_DIAL_OUT_PUMP_MEAS_ROTOR_SPEED_OVERRIDE = 0x8024, ///< Dialysate outlet pump measured rotor speed override request + MSG_ID_DIAL_OUT_LOAD_CELL_WEIGHT_OVERRIDE = 0x8025, ///< Load cell measured weight override request + MSG_ID_HD_SAFETY_SHUTDOWN_OVERRIDE = 0x8026, ///< HD safety shutdown override request + MSG_ID_HD_ACCEL_OVERRIDE = 0x8027, ///< HD accelerometer sensor override request + MSG_ID_HD_ACCEL_MAX_OVERRIDE = 0x8028, ///< HD accelerometer sensor max. override request + MSG_ID_HD_ACCEL_SEND_INTERVAL_OVERRIDE = 0x8029, ///< HD accelerometer data broadcast interval override request + MSG_ID_HD_SYRINGE_PUMP_SEND_INTERVAL_OVERRIDE = 0x802A, ///< HD syringe pump data broadcast interval override request + MSG_ID_HD_SYRINGE_PUMP_OPERATION_REQUEST = 0x802B, ///< HD syringe pump operation request + MSG_ID_HD_SYRINGE_PUMP_MEASURED_RATE_OVERRIDE = 0x802C, ///< HD syringe pump measured rate override request + MSG_ID_HD_SET_PARAMETER_TREATMENT_PARAMETER = 0x802D, ///< Set a treatment parameter (will change actual setting, not an override) + MSG_ID_HD_VALVES_HOME = 0x802E, ///< Home an HD Valve + MSG_ID_HD_VALVES_POSITION_OVERRIDE = 0x802F, ///< Set an HD valve to a position in counts + MSG_ID_HD_VALVES_SET_AIR_TRAP_VALVE = 0x8030, ///< Set the HD air trap valve status + MSG_ID_HD_VALVES_SET_PWM_OVERRIDE = 0x8031, ///< Set an HD valve PWM + MSG_ID_HD_AIR_TRAP_SEND_INTERVAL_OVERRIDE = 0x8032, ///< HD air trap data broadcast interval override request + MSG_ID_HD_AIR_TRAP_LEVEL_SENSOR_OVERRIDE = 0x8033, ///< HD air trap level sensor override request + MSG_ID_HD_SOFTWARE_RESET_REQUEST = 0x8034, ///< HD reset request + MSG_ID_HD_GET_SW_CONFIG_RECORD = 0x8035, ///< HD get software configuration record. + MSG_ID_HD_SET_SW_CONFIG_RECORD = 0x8036, ///< HD set software configuration record. + MSG_ID_BLOOD_PUMP_HOME_CMD = 0x8037, ///< Blood pump home command + MSG_ID_DIAL_IN_PUMP_HOME_CMD = 0x8038, ///< Dialysate inlet pump home command + MSG_ID_DIAL_OUT_PUMP_HOME_CMD = 0x8039, ///< Dialysate outlet pump home command + MSG_ID_SUPER_CLEAR_ALARMS_CMD = 0x803A, ///< Clears all alarms (even if non-recoverable or fault) + MSG_ID_HD_SYRINGE_PUMP_MEASURED_FORCE_OVERRIDE = 0x803B, ///< HD syringe pump measured force override request + MSG_ID_HD_SYRINGE_PUMP_SYRINGE_DETECT_OVERRIDE = 0x803C, ///< HD syringe pump measured syringe detection override request + MSG_ID_HD_SET_CALIBRATION_RECORD = 0x803D, ///< HD set calibration record that is received from Dialin + MSG_ID_HD_GET_CALIBRATION_RECORD = 0x803E, ///< HD get calibration record that is requested from Dialin + MSG_ID_HD_SEND_CALIBRATION_RECORD = 0x803F, ///< HD send calibration record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_HD_SET_SYSTEM_RECORD = 0x8040, ///< HD set system record that is received from Dialin + MSG_ID_HD_GET_SYSTEM_RECORD = 0x8041, ///< HD get system record that is requested from Dialin + MSG_ID_HD_SEND_SYSTEM_RECORD = 0x8042, ///< HD send system record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_HD_GET_SERVICE_RECORD = 0x8043, ///< HD get service record that is requested from Dialin + MSG_ID_HD_SET_SERVICE_RECORD = 0x8044, ///< HD set service record that is received from Dialin + MSG_ID_HD_SEND_SERVICE_RECORD = 0x8045, ///< HD send service record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_HD_SET_OP_MODE_REQUEST = 0x8046, ///< HD set operation mode request + MSG_ID_HD_FLUID_LEAK_SEND_INTERVAL_OVERRIDE = 0x8047, ///< HD fluid leak state broadcast interval override request + MSG_ID_HD_FLUID_LEAK_STATE_OVERRIDE = 0x8048, ///< HD fluid leak state override request + MSG_ID_HD_SYRINGE_PUMP_MEASURED_HOME_OVERRIDE = 0x8049, ///< HD syringe pump measured home override request + MSG_ID_HD_SYRINGE_PUMP_MEASURED_POSITION_OVERRIDE = 0x804A, ///< HD syringe pump measured position override request + MSG_ID_HD_SYRINGE_PUMP_MEASURED_VOLUME_OVERRIDE = 0x804B, ///< HD syringe pump measured volume delivered override request + MSG_ID_HD_BLOOD_LEAK_DATA_SEND_INTERVAL_OVERRIDE = 0x804C, ///< HD blood leak detector data broadcast interval override request + MSG_ID_HD_BLOOD_LEAK_STATUS_OVERRIDE = 0x804D, ///< HD blood leak detector status override request + MSG_ID_HD_BLOOD_LEAK_ZERO_REQUEST = 0x804E, ///< HD blood leak detector zero request + MSG_ID_HD_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE = 0x8050, ///< HD monitored voltages publish interval override request + MSG_ID_HD_MONITORED_VOLTAGES_OVERRIDE = 0x8051, ///< HD monitored voltage override request + MSG_ID_HD_ALARM_INFO_SEND_INTERVAL_OVERRIDE = 0x8052, ///< HD alarm information broadcast interval override request + MSG_ID_HD_ALARM_AUDIO_VOLUME_LEVEL_OVERRIDE = 0x8053, ///< HD alarm audio volume level override request + MSG_ID_HD_ALARM_AUDIO_CURRENT_HG_OVERRIDE = 0x8054, ///< HD primary alarm audio (high gain) current override request + MSG_ID_HD_ALARM_AUDIO_CURRENT_LG_OVERRIDE = 0x8055, ///< HD primary alarm audio (low gain) current override request + MSG_ID_HD_ALARM_BACKUP_AUDIO_CURRENT_OVERRIDE = 0x8056, ///< HD backup alarm audio current override request + MSG_ID_HD_VALVES_CURRENT_OVERRIDE = 0x8057, ///< HD valves current override request + MSG_ID_HD_VALVES_POSITION_COUNT_OVERRIDE = 0x8058, ///< HD valves position counts override request + MSG_ID_HD_SYRINGE_PUMP_STATUS_OVERRIDE = 0x8059, ///< HD syringe pump status override request + MSG_ID_HD_SYRINGE_PUMP_ENCODER_STATUS_OVERRIDE = 0x805A, ///< HD syringe pump encoder status override request + MSG_ID_HD_SYRINGE_PUMP_ADC_DAC_STATUS_OVERRIDE = 0x805B, ///< HD syringe pump ADC and DAC status override request + MSG_ID_HD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE = 0x805C, ///< HD syringe pump ADC read counter override request + MSG_ID_HD_BUBBLES_DATA_SEND_INTERVAL_OVERRIDE = 0x805D, ///< HD air bubble detectors data broadcast interval override request + MSG_ID_HD_BUBBLE_STATUS_OVERRIDE = 0x805E, ///< HD air bubble detector status override request + MSG_ID_HD_BLOOD_PRIME_VOLUME_OVERRIDE = 0x805F, ///< HD blood prime volume override request + MSG_ID_HD_BUBBLE_SELF_TEST_REQUEST = 0x8060, ///< HD air bubble detector self-test request + MSG_ID_HD_AIR_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0x8061, ///< HD air pump publish interval override + MSG_ID_HD_SWITCHES_STATUS_OVERRIDE = 0x8062, ///< HD switches status override request + MSG_ID_HD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE = 0x8063, ///< HD switches data publish override request + MSG_ID_HD_BATTERY_REMAINING_CAP_MWH_OVERRIDE = 0x8064, ///< HD battery remaining capacity (in mWh) override request + MSG_ID_HD_TEMPERATURES_VALUE_OVERRIDE = 0x8065, ///< HD temperatures value override request + MSG_ID_HD_TEMPERATURES_PUBLISH_INTERVAL_OVERRIDE = 0x8066, ///< HD temperatures data publish override request + MSG_ID_HD_FANS_PUBLISH_INTERVAL_OVERRIDE = 0x8067, ///< HD fans data publish override request + MSG_ID_HD_FANS_RPM_OVERRIDE = 0x8068, ///< HD fans RPM override request + MSG_ID_HD_RINSEBACK_VOLUME_OVERRIDE = 0x8069, ///< HD rinseback volume override request + MSG_ID_HD_SEND_SW_CONFIG_RECORD = 0x806A, ///< HD send software configuration record. + MSG_ID_HD_ALARM_STATUS_PUBLISH_INTERVAL_OVERRIDE = 0x806B, ///< HD alarm status publish interval override request + MSG_ID_HD_TREATMENT_TIME_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x806C, ///< HD treatment time data publish interval override request + MSG_ID_HD_TREATMENT_RANGES_PUBLISH_INTERVAL_OVERRIDE = 0x806D, ///< HD treatment param adjustment ranges publish interval override request + MSG_ID_HD_TREATMENT_STOP_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x806E, ///< HD treatment stop sub-mode data publish interval override request + MSG_ID_HD_BLOOD_PRIME_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x806F, ///< HD treatment blood prime sub-mode data publish interval override request + MSG_ID_HD_RINSEBACK_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8070, ///< HD treatment rinseback sub-mode data publish interval override request + MSG_ID_HD_STANDBY_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8071, ///< HD standby mode data publish interval override request + MSG_ID_HD_OP_MODE_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8072, ///< HD operation mode data publish interval override request + MSG_ID_HD_PRE_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8073, ///< HD pre-treatment mode data publish interval override request + MSG_ID_HD_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8074, ///< HD treatment mode data publish interval override request + MSG_ID_HD_POST_TREATMENT_DATA_PUBLISH_INTERVAL_OVERRIDE = 0x8075, ///< HD post treatment mode data publish interval override request + MSG_ID_HD_BLOCK_MESSAGE_TRANSMISSION = 0x8076, ///< HD prevent transmission of given message(s) + MSG_ID_HD_SYRINGE_PUMP_FORCE_SENSOR_DAC_CALIBRATE = 0x8077, ///< HD set syringe pump force sensor DAC calibration + MSG_ID_HD_STOP_RTC_CLOCK = 0x8078, ///< HD stop RTC clock + MSG_ID_HD_FANS_DUTY_CYCLE_OVERRIDE = 0x8079, ///< HD fans duty cycle override request + MSG_ID_HD_SYRINGE_PUMP_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE = 0x807A, ///< HD heparin bolus target rate override request + MSG_ID_HD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x807B, ///< HD request current treatment parameters + MSG_ID_HD_RES_CURRENT_TREATMENT_PARAMETERS = 0x807C, ///< HD current treatment paramaters response + MSG_ID_HD_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0x807D, ///< HD set fans RPM alarm start time offset + MSG_ID_HD_GET_USAGE_INFO_RECORD = 0x807E, ///< HD get usage information record + MSG_ID_HD_SET_USAGE_INFO_RECORD = 0x807F, ///< HD set usage information record + MSG_ID_HD_SEND_USAGE_INFO_RECORD = 0x8080, ///< HD send usage information record + MSG_ID_HD_SET_BLOOD_LEAK_2_EMB_MODE = 0x8081, ///< HD set blood leak sensor to embedded mode + MSG_ID_HD_SET_BLOOD_LEAK_EMB_MODE_COMMAND = 0x8082, ///< HD set blood leak embedded mode command + MSG_ID_HD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE = 0x8083, ///< HD send blood leak embedded mode response + MSG_ID_HD_SEND_ALARMS_COMMAND = 0x8084, ///< HD re-send trigger messages for all active alarms request + MSG_ID_HD_BLOOD_PUMP_SET_PWM = 0x8085, ///< HD set blood pump to specific PWM duty cycle request + MSG_ID_HD_DIAL_IN_SET_PWM = 0x8086, ///< HD set dialysate inlet pump to specific PWM duty cycle request + MSG_ID_HD_DIAL_OUT_SET_PWM = 0x8087, ///< HD set dialysate outlet pump to specific PWM duty cycle request + MSG_ID_HD_DIALYSATE_INLET_PUMP_ROTOR_COUNT_OVERRIDE = 0x8088, ///< HD dialysate inlet pump rotor count override request + MSG_ID_HD_NV_RECORD_CRC_OVERRIDE = 0x8089, ///< HD non-volatile record CRC override + MSD_ID_HD_RTC_CTL_REG1_STATUS_OVERRIDE = 0x808A, ///< HD RTC control register 1 status override + MSD_ID_HD_RTC_CTL_REG3_STATUS_OVERRIDE = 0x808B, ///< HD RTC control register 3 status override + MSG_ID_HD_BATTERY_STATUS_OVERRIDE = 0x808C, ///< HD Battery status override + MSG_ID_HD_BATTERY_CHARGER_STATUS_OVERRIDE = 0x808D, ///< HD Battery charger status override + MSG_ID_HD_BATTERY_COMM_STATUS_OVERRIDE = 0x808E, ///< HD Battery comm status override + MSG_ID_HD_DIAL_IN_PUMP_HARD_STOP = 0x808F, ///< HD dialysate inlet pump hard stop command + MSG_ID_HD_DIAL_OUT_PUMP_HARD_STOP = 0x8090, ///< HD dialysate outlet pump hard stop command + MSG_ID_HD_BLOOD_PUMP_HARD_STOP = 0x8091, ///< HD blood pump hard stop command + MSG_ID_HD_DIALIN_CHECK_IN = 0x8092, ///< HD dialin check in + MSG_ID_HD_ENABLE_VENOUS_BUBBLE_ALARM_DETECTION = 0x8093, ///< HD enable venous bubble alarm detection + MSG_ID_HD_GET_TEST_CONFIGURATION = 0x8094, ///< HD get test configuration + MSG_ID_HD_SEND_TEST_CONFIGURATION = 0x8095, ///< HD send test configuration + MSG_ID_HD_RESET_ALL_TEST_CONFIGURATIONS = 0x8096, ///< HD reset all the configurations + MSG_ID_HD_SET_TEST_CONFIGURATION = 0x8097, ///< HD set test configuration + MSG_ID_HD_SIGNAL_RECOVER_FROM_FAULT_MODE = 0x8098, ///< HD signal recover from fault mode + MSG_ID_HD_RAM_STATUS_OVERRIDE = 0x8099, ///< HD RAM status bit override + MSG_ID_HD_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE = 0x809A, ///< HD Valve data broadcast interval override request + MSG_ID_HD_CAN_RECEIVE_ACK_MESSAGE_OVERRIDE = 0x809B, ///< HD CAN message acknowledgment override request + MSG_ID_HD_RECIRULATION_PCT_OVERRIDE = 0x809C, ///< HD recirulation percentage override request + MSG_ID_HD_RAW_AIR_TRAP_LEVEL_SENSOR_OVERRIDE = 0x809D, ///< HD raw air trap level sensor override request + MSG_ID_HD_GET_INSTITUTIONAL_RECORD = 0x809E, ///< HD get institutional record + MSG_ID_HD_SET_INSTITUTIONAL_RECORD = 0x809F, ///< HD set institutional record + MSG_ID_HD_SEND_INSTITUTIONAL_RECORD = 0x80A0, ///< HD send institutional record + MSG_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP_OVERRIDE = 0x80A1, ///< HD Partial Blood pump occlusion pressure measured override request + MSG_ID_HD_PARTIAL_OCCL_BLOOD_PUMP_BASELINE_OVERRIDE = 0x80A2, ///< HD Partial Blood pump occlusion baseline override request + + MSG_ID_FIRST_DG_TESTER_MESSAGE = 0xA000, ///< First DG test message ID + MSG_ID_DG_TESTER_LOGIN_REQUEST = MSG_ID_FIRST_DG_TESTER_MESSAGE, ///< DG tester log-in + MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001, ///< DG alarm state override message ID + MSG_ID_DG_WATCHDOG_TASK_CHECKIN_OVERRIDE = 0xA002, ///< Watchdog check-in override request + MSG_ID_DG_SET_RTC_DATE_TIME = 0xA004, ///< DG RTC set date/time + MSG_ID_LOAD_CELL_OVERRIDE = 0xA005, ///< Load cell sensor override request + MSG_ID_PRESSURE_OVERRIDE = 0xA006, ///< Pressure sensor override request + MSG_ID_PRESSURE_SEND_INTERVAL_OVERRIDE = 0xA007, ///< Pressure data broadcast interval override request + MSG_ID_DG_HD_COMMUNICATION_STATUS_OVERRIDE = 0xA008, ///< DG HD Communication Status override + MSG_ID_DG_SET_PRIMARY_AND_TRIMMER_HEATERS_TARGET_TEMP = 0xA009, ///< DG set primary and trimmer heater target temperature + MSG_ID_RO_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00A, ///< RO pump data broadcast interval override request + MSG_ID_DRAIN_PUMP_SET_RPM = 0xA00B, ///< Drain pump set RPM override request + MSG_ID_DRAIN_PUMP_SEND_INTERVAL_OVERRIDE = 0xA00C, ///< Drain pump data broadcast interval override request + MSG_ID_LOAD_CELL_SEND_INTERVAL_OVERRIDE = 0xA00D, ///< Load cell data broadcast interval override request + MSG_ID_VALVE_STATE_OVERRIDE = 0xA00E, ///< Valve state override request + MSG_ID_DG_VALVES_STATES_PUBLISH_INTERVAL_OVERRIDE = 0xA00F, ///< DG Valve data broadcast interval override request + MSG_ID_TEMPERATURE_SENSORS_VALUE_OVERRIDE = 0xA010, ///< Temperature sensor override request + MSG_ID_START_STOP_PRIMARY_HEATER = 0xA011, ///< Start/stop primary heaters + MSG_ID_TEMPERATURE_SENSORS_PUBLISH_INTERVAL_OVERRIDE = 0xA012, ///< Temperature sensors data publish override + MSG_ID_HEATERS_PUBLISH_INTERVAL_ORVERRIDE = 0xA013, ///< Heaters data publish override + MSG_ID_DG_SAFETY_SHUTDOWN_OVERRIDE = 0xA014, ///< DG safety shutdown override request + MSG_ID_CONDUCTIVITY_OVERRIDE = 0xA015, ///< Conductivity sensor override request + MSG_ID_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE = 0xA016, ///< Conductivity sensors data publish override + MSG_ID_DG_ACCEL_OVERRIDE = 0xA017, ///< DG accelerometer sensor override request + MSG_ID_DG_ACCEL_MAX_OVERRIDE = 0xA018, ///< DG accelerometer sensor max. override request + MSG_ID_DG_ACCEL_SEND_INTERVAL_OVERRIDE = 0xA019, ///< DG accelerometer data broadcast interval override request + MSG_ID_DG_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE = 0xA01A, ///< DG monitored voltages publish interval override request + MSG_ID_DG_MONITORED_VOLTAGES_OVERRIDE = 0xA01B, ///< DG monitored voltage override request + MSG_ID_DRAIN_PUMP_TARGET_OUTLET_FLOW = 0xA01C, ///< Drain pump target outlet flow. + MSG_ID_DG_SWITCHES_STATUS_OVERRIDE = 0xA01D, ///< DG switches status override + MSG_ID_DG_SWITCHES_PUBLISH_INTERVAL_OVERRIDE = 0xA01E, ///< DG switches data publish interval override + MSG_ID_DG_OP_MODE_PUBLISH_INTERVAL_OVERRIDE = 0xA01F, ///< DG operation mode publish interval override + MSG_ID_DG_BLOCK_MESSAGE_TRANSMISSION = 0xA020, ///< HD prevent transmission of given message(s) + MSG_ID_MEASURED_FLOW_SENSORS_OVERRIDE = 0xA021, ///< DG measured flow rate override request + MSG_ID_DG_SOFTWARE_RESET_REQUEST = 0xA022, ///< DG reset request + MSG_ID_DG_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE = 0xA023, ///< DG concentrate pump measured speed override request + MSG_ID_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE = 0xA024, ///< Concentrate pumps' target speed override request + MSG_ID_UV_REACTORS_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA025, ///< UV reactors data publish interval override + MSG_ID_CONCENTRATE_PUMP_STATE_CHANGE_REQUEST = 0xA026, ///< Concentrate pumps' state change request (on / off) + MSG_ID_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE = 0xA027, ///< Concentrate pumps' data publish interval override request + MSG_ID_DG_START_STOP_UV_REACTORS = 0xA028, ///< DG start/stop UV reactors + MSG_ID_DG_REQUEST_CALIBRATION_DATA = 0xA029, ///< Requests calibration data from DG + MSG_ID_DG_FANS_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA02A, ///< DG fans data publish interval override request + MSG_ID_DG_UV_REACTORS_HEALTH_OVERRIDE = 0xA02C, ///< DG UV reactors health override request + MSG_ID_DG_THERMISTORS_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA02D, ///< DG thermistors data publish interval override + MSG_ID_DG_THERMISTORS_VALUE_OVERRIDE = 0xA02E, ///< DG thermistors value override + MSG_ID_DG_RO_PUMP_DUTY_CYCLE_OVERRIDE = 0xA02F, ///< DG RO pump duty cycle override + MSG_ID_DG_VALVES_SENSED_STATE_OVERRIDE = 0xA030, ///< DG valves sensed state override + MSG_ID_DG_SET_RO_PUMP_TARGET_FLOW = 0xA031, ///< DG set RO pump target flow rate + MSG_ID_DG_RO_PUMP_TARGET_PRESSURE_OVERRIDE = 0xA032, ///< DG RO pump target pressure override + MSG_ID_DG_SET_CALIBRATION_RECORD = 0xA033, ///< DG set calibration record that is received from Dialin + MSG_ID_DG_GET_CALIBRATION_RECORD = 0xA034, ///< DG get calibration record that is requested from Dialin + MSG_ID_DG_SEND_CALIBRATION_RECORD = 0xA035, ///< DG send calibration record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_DG_SET_SYSTEM_RECORD = 0xA036, ///< DG set system record that is received from Dialin + MSG_ID_DG_GET_SYSTEM_RECORD = 0xA037, ///< DG get system record that is requested from Dialin + MSG_ID_DG_SEND_SYSTEM_RECORD = 0xA038, ///< DG send system record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_DG_GET_SERVICE_RECORD = 0xA039, ///< DG get service record that is requested from Dialin + MSG_ID_DG_SET_SERVICE_RECORD = 0xA03A, ///< DG set service record that is received from Dialin + MSG_ID_DG_SEND_SERVICE_RECORD = 0xA03B, ///< DG send service record to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD = 0xA03C, ///< DG get scheduled runs that is requested from Dialin + MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD = 0xA03D, ///< DG set scheduled runs that is received from Dialin + MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD = 0xA03E, ///< DG send scheduled runs to CAN bus to be received in Dialin (equivalent to publish) + MSG_ID_DG_FLUID_LEAK_SEND_INTERVAL_OVERRIDE = 0xA03F, ///< DG fluid leak state broadcast interval override request + MSG_ID_DG_FLUID_LEAK_STATE_DETECTOR_OVERRIDE = 0xA040, ///< DG fluid leak state detector override request + MSG_ID_DG_RUN_MODE_FILL_FOR_CAL_CHECK = 0xA041, ///< DG run mode fill for calibration check + MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE = 0xA042, ///< DG filter flush time period override + MSG_ID_DG_FANS_RPM_OVERRIDE = 0xA043, ///< DG fans RPM override + MSG_ID_FLOW_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA044, ///< Flow data broadcast interval override request + MSG_ID_DG_STOP_RTC_CLOCK = 0xA045, ///< DG stop RTC clock + MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE = 0xA046, ///< DG drain pump measured RPM override + MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD = 0xA047, ///< Clears all DG alarms (even if non-recoverable or fault) + MSG_ID_DG_ALARM_INFO_SEND_INTERVAL_OVERRIDE = 0xA048, ///< DG alarm information broadcast interval override request + MSG_ID_DG_START_STOP_TRIMMER_HEATER_CMD = 0xA049, ///< DG start/stop trimmer heater command + MSG_ID_DG_GET_SW_CONFIG_RECORD = 0xA04A, ///< DG get software configuration record request + MSG_ID_DG_SET_SW_CONFIG_RECORD = 0xA04B, ///< DG set software configuration record + MSG_ID_DG_SEND_SW_CONFIG_RECORD = 0xA04C, ///< DG send software configuration record + MSG_ID_DG_FANS_DUTY_CYCLE_OVERRIDE = 0xA04D, ///< DG fans duty cycle override request + MSG_ID_DG_USED_ACID_VOLUME_ML_OVERRIDE = 0xA04E, ///< DG used acid volume override in mL + MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0xA04F, ///< DG set fans RPM alarm start time offset + MSG_ID_DG_USED_BICARB_VOLUME_ML_OVERRIDE = 0xA050, ///< DG used bicarb volume override in mL + MSG_ID_FILL_MODE_DATA_PUBLISH_INTERVAL_OVERRIDE = 0xA051, ///< DG used fill publish interval override request + MSG_ID_DG_GEN_IDLE_PUBLISH_INTERVAL_OVERRIDE = 0xA052, ///< DG gen idle sub-states publish interval override request + MSG_ID_DG_GET_USAGE_INFO_RECORD = 0xA053, ///< DG get usage information record + MSG_ID_DG_SET_USAGE_INFO_RECORD = 0xA054, ///< DG set usage information record + MSG_ID_DG_SEND_USAGE_INFO_RECORD = 0xA055, ///< DG send usage information record + MSG_ID_DG_SET_OP_MODE_REQUEST = 0xA056, ///< DG set operation mode request + MSG_ID_DG_RESERVOIR_TARE_REQUEST = 0xA057, ///< DG reservoir tare request + MSG_ID_MSG_AVAILABLE_10 = 0xA058, ///< DG message ID available + MSG_ID_DG_DRAIN_PUMP_CURRENT_OVERRIDE = 0xA059, ///< DG drain pump current override request + MSG_ID_DG_DRAIN_PUMP_DIRECTION_OVERRIDE = 0xA05A, ///< DG drain pump direction override request + MSG_ID_DG_RO_FEEDBACK_VOLTAGE_OVERRIDE = 0xA05B, ///< DG RO feedback voltage override + MSG_ID_DG_DIALYSATE_FILL_INTEGRATED_VOLUME_OVERRIDE = 0xA05C, ///< DG dialysate fill integrated volume override + MSG_ID_DG_NV_RECORD_CRC_OVERRIDE = 0xA05D, ///< DG non-volatile record CRC override + MSG_ID_DG_CONC_PUMP_PARK_STATUS_OVERRIDE = 0xA05E, ///< DG concentrate pump parked status override + MSG_ID_DG_CONC_PUMP_PARK_FAULT_STATUS_OVERRIDE = 0xA05F, ///< DG concentrate pump park fault status override + MSG_ID_DG_CONC_PUMP_PARK_COMMAND = 0xA060, ///< DG concentrate pump park command + MSG_ID_DG_HEATERS_DUTY_CYCLE_OVERRIDE = 0xA061, ///< DG heaters duty cycle override request + MSD_ID_DG_RTC_CTL_REG1_STATUS_OVERRIDE = 0xA062, ///< DG RTC control register 1 status override + MSD_ID_DG_RTC_CTL_REG3_STATUS_OVERRIDE = 0xA063, ///< DG RTC control register 3 status override + MSG_ID_DG_NELSON_DISINFECT_SUPPORT = 0xA064, ///< DG Nelson labs disinfect support message + MSG_ID_DG_SET_DIALYSATE_MIXING_RATIOS = 0xA065, ///< DG set dialysate mixing ratios + MSG_ID_DG_SET_TEST_CONFIGURATION = 0xA066, ///< DG set test configuration + MSG_ID_DG_GET_TEST_CONFIGURATION = 0xA067, ///< DG get test configuration + MSG_ID_DG_SEND_TEST_CONFIGURATION = 0xA068, ///< DG send test configuration + MSG_ID_DG_RESET_ALL_TEST_CONFIGURATIONS = 0xA069, ///< DG reset all the configurations + MSG_ID_DG_DIALIN_CHECK_IN = 0xA06A, ///< DG Dialin check in + MSG_ID_DG_GET_LOAD_CELLS_TARE_VALUES = 0xA06B, ///< DG get load cells tare values + MSG_ID_DG_SET_LOAD_CELLS_TARE_VALUES = 0xA06C, ///< DG set load cells tare values + MSG_ID_DG_SEND_LOAD_CELLS_TARE_VALUES = 0xA06D, ///< DG send load cells tare values to dialin + MSG_ID_DG_SET_COND_SENSOR_CAL_TABLE = 0xA06E, ///< DG set conductivity sensor's calibration table + MSG_ID_DG_SIGNAL_RECOVER_FROM_FAULT_MODE = 0xA06F, ///< DG signal recover from fault mode + MSG_ID_DG_DRAIN_MODE_BROADCAST_INTERVAL_OVERRIDE = 0xA070, ///< DG drain mode broadcast interval override + MSG_ID_DG_DIALIN_RO_ONLY_MODE_STATUS_REQUEST = 0xA071, ///< DG dialin ro only mode status request + MSG_ID_DG_RAM_STATUS_OVERRIDE = 0xA072, ///< DG RAM status bit override + MSG_ID_DG_CAN_RECEIVE_ACK_MESSAGE_OVERRIDE = 0xA073, ///< DG CAN message acknowledgment override request + MSG_ID_DG_RESERVOIR_BROADCAST_INTERVAL_OVERRIDE = 0xA074, ///< DG reservoir broadcast interval override + MSG_ID_DG_STATE_TIMER_77C_OVERRIDE = 0xA075, ///< DG heat disinfection state timer at 77C override + MSG_ID_DG_STATE_TIMER_82C_OVERRIDE = 0xA076, ///< DG heat disinfection state timer at 82C override + MSG_ID_DG_CHEM_DISINFECT_ACID_OVERRIDE = 0xA077, ///< DG chem disinfection acid moving average override. + + MSG_ID_HD_DEBUG_EVENT = 0xFFF1, ///< HD debug event text to be logged in event log + MSG_ID_DG_DEBUG_EVENT = 0xFFF2, ///< DG debug event text to be logged in event log + + MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK = 0xFFFF, ///< Acknowledgment of message that requires acknowledgment + + END_OF_MSG_IDS ///< End of system message IDs +}; +typedef enum Msg_IDs MSG_ID_T; ///< Type for message IDs enumeration + +/// Enumeration of settings change rejection reason codes +enum Request_Reject_Reasons +{ + REQUEST_REJECT_REASON_NONE = 0, ///< Used when there is no rejection + REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE = 1, ///< Request is not allowed in the current operating mode + REQUEST_REJECT_REASON_TIMEOUT_WAITING_FOR_USER_CONFIRM = 2, ///< Validated request was not confirmed by user in reasonable time + REQUEST_REJECT_REASON_NOT_IN_TREATMENT_MODE = 3, ///< Request is not allowed if not in treatment mode + REQUEST_REJECT_REASON_INVALID_TREATMENT_STATE = 4, ///< Request is not allowed in current treatment state + REQUEST_REJECT_REASON_TREATMENT_TOO_CLOSE_TO_FINISHED = 5, ///< Request is not allowed so near end of treatment + REQUEST_REJECT_REASON_TREATMENT_TIME_OUT_OF_RANGE = 6, ///< Treatment duration is out of range + REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_CURRENT = 7, ///< Treatment time change is less than currently elapsed treatment time + REQUEST_REJECT_REASON_BLOOD_FLOW_OUT_OF_RANGE = 8, ///< Blood flow is out of range + REQUEST_REJECT_REASON_DIAL_FLOW_OUT_OF_RANGE = 9, ///< Dialysate flow is out of range + REQUEST_REJECT_REASON_DIAL_VOLUME_OUT_OF_RANGE = 10, ///< Dialysate flow rate or treatment duration causes dialysate volume to exceed limit + REQUEST_REJECT_REASON_UF_VOLUME_OUT_OF_RANGE = 11, ///< Ultrafiltration volume is out of range + REQUEST_REJECT_REASON_UF_RATE_OUT_OF_RANGE = 12, ///< Ultrafiltration rate is out of range + REQUEST_REJECT_REASON_TREATMENT_TIME_LESS_THAN_MINIMUM = 13, ///< Treatment time change is less than minimum treatment time + REQUEST_REJECT_REASON_UF_NOT_IN_PROGESS = 14, ///< Ultrafiltration is not currently in progress + REQUEST_REJECT_REASON_UF_NOT_PAUSED = 15, ///< Ultrafiltration is not currently paused + REQUEST_REJECT_REASON_SALINE_BOLUS_IN_PROGRESS = 16, ///< A saline bolus is in progress + REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE = 17, ///< A treatment parameter is out of range + REQUEST_REJECT_REASON_HEPARIN_PRESTOP_EXCEEDS_DURATION = 18, ///< The Heparin pre-stop setting is greater than the treatment duration + REQUEST_REJECT_REASON_DG_FILTER_FLUSH_HAS_BEEN_EXPIRED = 19, ///< DG filter flush time has been expired + REQUEST_REJECT_REASON_AVAILABLE_2 = 20, ///< Not used + REQUEST_REJECT_REASON_SALINE_MAX_VOLUME_REACHED = 21, ///< Saline bolus volume maximum has been reached - no more saline allowed + REQUEST_REJECT_REASON_SALINE_BOLUS_NOT_IN_PROGRESS = 22, ///< A saline bolus is not in progress + REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE = 23, ///< Requested user action is disabled in current state + REQUEST_REJECT_REASON_ALARM_IS_ACTIVE = 24, ///< Requested user action not allowed while alarm is active + REQUEST_REJECT_REASON_INVALID_COMMAND = 25, ///< Requested user action invalid + REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED = 26, ///< The treatment has been completed + REQUEST_REJECT_REASON_ADDL_RINSEBACK_MAX_VOLUME_REACHED = 27, ///< Rinseback additional volume maximum has been reached - no more additional rinsebacks allowed + REQUEST_REJECT_REASON_DIALYZER_NOT_INVERTED = 28, ///< Dialyzer not inverted yet + REQUEST_REJECT_REASON_NO_PATIENT_CONNECTION_CONFIRM = 29, ///< The user has not confirmed patient connection + REQUEST_REJECT_REASON_HEPARIN_PAUSE_INVALID_IN_THIS_STATE = 30, ///< Heparin cannot be paused if not currently deliverying Heparin + REQUEST_REJECT_REASON_HEPARIN_NOT_PAUSED = 31, ///< Heparin cannot be resumed if not paused + REQUEST_REJECT_REASON_DG_COMM_LOST = 32, ///< Treatment cannot initiate if DG comm is lost + REQUEST_REJECT_REASON_DRAIN_NOT_COMPLETE = 33, ///< Post-treatment reservoirs drain not complete + REQUEST_REJECT_REASON_DG_NOT_IN_STANDBY_IDLE_STATE = 34, ///< Treatment cannot initiate if DG is not in standby idle state + REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT = 35, ///< Request message not formatted properly + REQUEST_REJECT_REASON_INVALID_DATE_OR_TIME = 36, ///< Given date/time is invalid + REQUEST_REJECT_REASON_TREATMENT_IN_PROGRESS = 37, ///< Treatment is in progress + REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED = 38, ///< Battery does not have enough charge to start treatment + REQUEST_REJECT_REASON_RINSEBACK_NOT_COMPLETED = 39, ///< Cannot move on to recirculate without completing full rinseback. + REQUEST_REJECT_REASON_RESERVOIR_ONE_IS_NOT_READY = 40, ///< Reservoir one fill is not complete + REQUEST_REJECT_REASON_PUMP_TRACK_NOT_CLOSED = 41, ///< Pump track is not ready / closed + REQUEST_REJECT_REASON_DOOR_NOT_CLOSED = 42, ///< Door is not closed + REQUEST_REJECT_REASON_SYRINGE_NOT_PRESENT = 43, ///< Syringe is not present + REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN = 44, ///< Dialysate cap open + REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN = 45, ///< Concentrate cap open + REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED = 46, ///< DG disinfect has been expired + REQUEST_REJECT_REASON_DG_SERVICE_IS_DUE = 47, ///< DG service is due + REQUEST_REJECT_REASON_HD_SERVICE_IS_DUE = 48, ///< HD service is due + REQUEST_REJECT_REASON_DG_CHEM_FLUSH_NOT_COMPLETED = 49, ///< DG chemical flush is not complete + REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE = 50, ///< DG RO filter temperature out of range + REQUEST_REJECT_REASON_DG_INCOMPATIBLE = 51, ///< DG firmware version is not compatible with HD firmware + REQUEST_REJECT_REASON_HEPARIN_PRESTOP_WITH_NO_DISPENSE = 52, ///< Heparin settings are zero but pre-stop setting is non-zero + REQUEST_REJECT_REASON_DIALYZER_REPRIME_IN_PROGRESS = 53, ///< Saline bolus is not allowed during dialyzer reprime + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_DG_BUSY = 54, ///< DG RO only mode DG is busy + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PARAMETER = 55, ///< DG RO only mode invalid parameter + REQUEST_REJECT_REASON_DG_RO_ONLY_MODE_INVALID_PAYLOAD_LENGTH = 56, ///< DG RO only mode invalid payload length + REQUEST_REJECT_REASON_TREATMENT_CANNOT_BE_RESUMED = 57, ///< Cannot resume treatment per alarm + REQUEST_REJECT_REASON_EXCEEDS_MAXIMUM_HEPARIN_VOLUME = 58, ///< Cannot continue due to maximum heparin volume + REQUEST_REJECT_REASON_CHEM_DISINFECT_NOT_ENABLED_INST_CONFIG = 59, ///< Cannot start chemical disinfect because it is not enabled in institutional record. + NUM_OF_REQUEST_REJECT_REASONS ///< Number of settings change reject codes +}; +typedef enum Request_Reject_Reasons REQUEST_REJECT_REASON_CODE_T; ///< Type for settings change rejection reason codes enumeration + +/// Enumeration of HD to DG command request rejection reason codes +enum Cmd_Request_Reject_Reasons +{ + DG_CMD_REQUEST_REJECT_REASON_NONE = 0, ///< Used when there is no rejection + DG_CMD_REQUEST_REJECT_REASON_INVALID_MODE = 1, ///< Command is not allowed in the current operating mode + DG_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER = 2, ///< Command parameter is not valid + NUM_OF_DG_CMD_REQUEST_REJECT_REASONS ///< Number of command request reject codes +}; +typedef enum Cmd_Request_Reject_Reasons CMD_REQUEST_REJECT_REASON_CODE_T; ///< Type for command request rejection reason codes enumeration + +/**@}*/ + +#endif Index: TDDefs.h =================================================================== diff -u --- TDDefs.h (revision 0) +++ TDDefs.h (revision 0f593e2fb2a531ba49fd776b053bee014aceef92) @@ -0,0 +1,814 @@ +/************************************************************************** +* +* Copyright (c) 2024-2024 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 TDDefs.h +* +* @author (last) Sean +* @date (last) 30-Jul-2024 +* +* @author (original) Sean +* @date (original) 30-Jul-2024 +* +***************************************************************************/ + +#ifndef __TD_DEFS_H__ +#define __TD_DEFS_H__ + +// ********** public definitions ********** + +/** + * @addtogroup TDOperationModes + * @{ + */ + +/// Enumeration of operation modes. These are in order of priority (highest to lowest). +enum TD_Op_Modes +{ + MODE_FAUL = 0, ///< Fault mode + MODE_SERV, ///< Service mode + MODE_INIT, ///< Initialization & POST mode + MODE_STAN, ///< Standby mode + MODE_TPAR, ///< Treatment Parameters mode + MODE_PRET, ///< Pre-Treatment mode + MODE_TREA, ///< Treatment mode + MODE_POST, ///< Post-Treatment mode + MODE_NLEG, ///< Not legal - an illegal mode transition occurred + NUM_OF_MODES ///< Number of TD operation modes +}; +typedef enum TD_Op_Modes TD_OP_MODE_T; ///< Type for TD operation modes enumeration + +/**@}*/ + +/** + * @addtogroup HDInitAndPOSTMode + * @{ + */ + +/// Enumeration of init & POST mode states. +enum HD_POST_States +{ + POST_STATE_START = 0, ///< Start initialize & POST mode state + POST_STATE_FW_INTEGRITY, ///< Run firmware integrity test state + POST_STATE_NVDATAMGMT, ///< Run NV Data Mgmt. test state + POST_STATE_WATCHDOG, ///< Run watchdog test state + POST_STATE_SAFETY_SHUTDOWN, ///< Run safety shutdown test state + POST_STATE_BLOOD_FLOW, ///< Run blood flow test state + POST_STATE_VALVES, ///< Run valves test state + POST_STATE_SYRINGE_PUMP, ///< Run syringe pump test state + POST_STATE_PRES_OCCL, ///< Run pressure occlusion state + POST_STATE_ALARM_AUDIO, ///< Run alarm audio test state + POST_STATE_ALARM_LAMP, ///< Run alarm lamp test state + POST_STATE_TEMPERATURES, ///< Run temperatures POST state + POST_STATE_FANS, ///< Run fans POST state + POST_STATE_STUCK_BUTTON, ///< Run stuck button test state + POST_STATE_UI_POST, ///< Check whether UI passed its POST tests + POST_STATE_FW_COMPATIBILITY, ///< Run firmware compatibility test state + POST_STATE_FPGA, ///< Run FPGA test state + POST_STATE_COMPLETED, ///< POST self-tests completed state + POST_STATE_FAILED, ///< POST self-tests failed state + NUM_OF_POST_STATES ///< Number of initialize & POST mode states +}; +typedef enum HD_POST_States HD_POST_STATE_T; ///< Type for HD POST states enumeration + +/**@}*/ + +/** + * @addtogroup HDFaultMode + * @{ + */ + +/// Enumeration of fault mode states. +enum HD_Fault_States +{ + HD_FAULT_STATE_START = 0, ///< HD fault start state + HD_FAULT_STATE_RUN_NV_POSTS, ///< HD fault run NV posts state + HD_FAULT_STATE_COMPLETE, ///< HD fault run complete state + NUM_OF_HD_FAULT_STATES ///< Number of fault mode states +}; +typedef enum HD_Fault_States HD_FAULT_STATE_T; ///< Type for HD fault states enumeration + +/**@}*/ + +/** + * @addtogroup HDStandbyMode + * @{ + */ + +/// Sub-mode states while in standby mode +enum HD_Standby_States +{ + STANDBY_START_STATE = 0, ///< Start standby (home actuators). + STANDBY_WAIT_FOR_TREATMENT_STATE, ///< Wait for treatment. + STANDBY_WAIT_FOR_DISINFECT_STATE, ///< Wait for UI to send disinfect option. + STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE, ///< Wait for DG cleaning mode command response state. + STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE, ///< Wait for DG cleaning mode to start state. + STANDBY_CLEANING_MODE_IN_PROGRESS_STATE, ///< Cleaning mode in progress state. + NUM_OF_STANDBY_STATES ///< Number of standby states (sub-modes). +}; +typedef enum HD_Standby_States HD_STANDBY_STATE_T; ///< Type for HD standby states enumeration + +/**@}*/ + +/** + * @addtogroup HDTreatmentParamsMode + * @{ + */ + +/// Enumeration of treatment parameters mode states. +enum HD_Treatment_Parameters_Mode_States +{ + HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND = 0, ///< Wait for UI to send treatment params mode state + HD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM, ///< Wait for UI to confirm treatment params mode state + NUM_OF_HD_TREATMENT_PARAMS_MODE_STATES ///< Number of treatment params mode states +}; +typedef enum HD_Treatment_Parameters_Mode_States HD_TREATMENT_PARAMS_MODE_STATE_T; ///< Type for HD treatment parameters mode states enumeration + +/**@}*/ + +/** + * @addtogroup HDPreTreatmentMode + * @{ + */ + +/// Enumeration of pre-treatment mode states (sub-mode). +enum HD_Pre_Treatment_Mode_States +{ + HD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0, ///< Water sample state + HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE, ///< Consumable self-tests state + HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE, ///< No cartridge self-tests state + HD_PRE_TREATMENT_CART_INSTALL_STATE, ///< Consumable and cartridge installation state + HD_PRE_TREATMENT_SELF_TEST_DRY_STATE, ///< Self-tests when the cartridge is dry state + HD_PRE_TREATMENT_PRIME_STATE, ///< Prime blood and dialysate circuits and run wet self-tests state + HD_PRE_TREATMENT_RECIRCULATE_STATE, ///< Re-circulate blood and dialysate circuits state + HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE, ///< Patient connection state + NUM_OF_HD_PRE_TREATMENT_STATES ///< Number of pre-treatment mode states +}; +typedef enum HD_Pre_Treatment_Mode_States HD_PRE_TREATMENT_MODE_STATE_T; ///< Type for HD pre-treatment mode states enumeration + +/**@}*/ + +/** + * @addtogroup SampleWater + * @{ + */ + +/// Enumeration of sample water sub-mode states. +enum HD_Pre_Treatment_Sample_Water_States +{ + SAMPLE_WATER_SETUP_STATE = 0, ///< Sample water setup (flush filter) state + SAMPLE_WATER_STATE, ///< Sample water state, receiving sample water commands from the user + SAMPLE_WATER_COMPLETE_STATE, ///< Sample water complete state + NUM_OF_SAMPLE_WATER_STATES ///< Number of sample water sub-mode states +}; +/// Type for sample water states enumeration. +typedef enum HD_Pre_Treatment_Sample_Water_States SAMPLE_WATER_STATE_T; + +/// Enumeration of user actions that may be requested from sample water sub-mode. +enum Requested_Sample_Water_User_Actions +{ + REQUESTED_USER_ACTION_SAMPLE_WATER_STOP = 0, ///< User requests to stop sample water + REQUESTED_USER_ACTION_SAMPLE_WATER_START = 1, ///< User requests to start sample water + NUM_OF_REQUESTED_SAMPLE_WATER_USER_ACTIONS ///< Number of requested sample water user actions +}; +/// Type for requested user actions enumeration. +typedef enum Requested_Sample_Water_User_Actions REQUESTED_SAMPLE_WATER_USER_ACTIONS_T; + +/**@}*/ + +/** + * @addtogroup ConsumableSelfTest + * @{ + */ + +/// Enumeration of consumable self-tests sub-mode states. +enum HD_Pre_Treatment_Consumable_Self_Test_States +{ + CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0, ///< Consumable self-tests install state + CONSUMABLE_SELF_TESTS_PRIME_STATE, ///< Consumable self-tests prime concentrate lines state + CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE, ///< Consumable self-tests bicarbonate concentrate pump check state + CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE, ///< Consumable self-tests acid concentrate pump check state + CONSUMABLE_SELF_TESTS_COMPLETE_STATE, ///< Consumable self-tests complete state + NUM_OF_CONSUMABLE_SELF_TESTS_STATES ///< Number of consumable install sub-mode states +}; +/// Type for consumable self-tests states enumeration. +typedef enum HD_Pre_Treatment_Consumable_Self_Test_States CONSUMABLE_SELF_TESTS_STATE_T; + +/**@}*/ + +/** + * @addtogroup SelfTests + * @{ + */ + +/// Enumeration of no cartridge self-tests sub-mode states. +enum HD_Pre_Treatment_No_Cart_Self_Tests_States +{ + NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 0, ///< Wait for door to be closed before running self-tests + NO_CART_SELF_TESTS_PRESSURE_CHECKS_STATE, ///< No cartridge pressure sensors self-test state + NO_CART_SELF_TESTS_HOME_VALVES_STATE, ///< No cartridge home valves state + NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE, ///< No cartridge home syringe pump state + NO_CART_SELF_TESTS_PUMPS_STATE, ///< No cartridge self-test for blood pump, dialysate in pump, dialysate out pump state + NO_CART_SELF_TESTS_HOME_IDLE_STATE, ///< Wait for valves and pumps finish homing state + NO_CART_SELF_TESTS_STOPPED_STATE, ///< No cart self-test stopped state + NO_CART_SELF_TESTS_COMPLETE_STATE, ///< No cartridge self-test complete state + NUM_OF_NO_CART_SELF_TESTS_STATES ///< Number of no cartridge self-tests states +}; +/// Type for no cartridge self-tests enumeration. +typedef enum HD_Pre_Treatment_No_Cart_Self_Tests_States NO_CART_SELF_TESTS_STATE_T; + +/// Enumeration of dry self-tests sub-mode states. +enum HD_Pre_Treatment_Dry_Self_Tests_States +{ + DRY_SELF_TESTS_START_STATE = 0, ///< Dry self-tests starting state + DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE, ///< Wait for door to close before executing self-tests + DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE, ///< Used cartridge check dry self-test state + DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE, ///< Cartridge loaded check dry self-test state + DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE, ///< Seek syringe pumps state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE, ///< Pressure sensor setup state + DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE, ///< Venous pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS, ///< Venous pressure sensor dry self-test + DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE, ///< Arterial pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL, ///< Arterial pressure sensor dry self-test + DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE, ///< Pressure sensors verify pressure loss state + DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE, ///< Pressure sensors verify pressure stability state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE, ///< Pressure sensors verify normal pressure readings state + DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE, ///< Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE, ///< Occlusion detection state + DRY_SELF_TESTS_STOPPED_STATE, ///< Dry self-test stopped state + DRY_SELF_TESTS_COMPLETE_STATE, ///< Dry self-test complete state + NUM_OF_DRY_SELF_TESTS_STATES ///< Number of dry self-tests states +}; +/// Type for dry self-tests enumeration. +typedef enum HD_Pre_Treatment_Dry_Self_Tests_States DRY_SELF_TESTS_STATE_T; + +/// Wet self-tests state machine. +enum Wet_Self_Tests_States +{ + WET_SELF_TESTS_START_STATE = 0, ///< Wet self-tests starting state. + WET_SELF_TESTS_BUBBLE_CHECK_SETUP_STATE, ///< Setup for wet air bubble self-test state. + WET_SELF_TESTS_BUBBLE_CHECK_STATE, ///< Wet self-test air bubble detectors state. + WET_SELF_TESTS_PRIME_CHECK_STATE, ///< Prime check wet self-tests state, checks for primed patient lines. + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_DEBUBBLE_STATE, ///< Blood leak detector debubble state. + WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE, ///< Blood leak detector self-test state. + WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE, ///< Setup valve and start dialysate pump for first displacement. + WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE, ///< Fill reservoir 2 with 100 mL of dialysate from reservoir 1 state. + WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE, ///< After first displacement completed verify state. + WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE, ///< Setup valve and start dialysate pump for second displacement. + WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE, ///< Fill reservoir 1 with 300 mL of dialysate from reservoir 2 state. + WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE, ///< After first displacement completed verify state. + WET_SELF_TESTS_STOPPED_STATE, ///< Wet self-test stopped state. + WET_SELF_TESTS_COMPLETE_STATE, ///< Wet self-test complete state. + NUM_OF_WET_SELF_TESTS_STATES ///< Number of wet self-tests states. +}; +/// Type for wet self-tests enumeration. +typedef enum Wet_Self_Tests_States WET_SELF_TESTS_STATE_T; + +/**@}*/ + +/** + * @addtogroup Prime + * @{ + */ + +/// Enumeration of prime sub-mode states. +enum HD_Pre_Treatment_Prime_States +{ + HD_PRIME_WAIT_FOR_USER_START_STATE = 0, ///< Wait for user to start prime state + HD_PRIME_SALINE_SETUP_STATE, ///< Saline setup state + HD_PRIME_SALINE_PURGE_AIR_STATE, ///< Saline purge air state + HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE, ///< Circulate blood circuit state + HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE, ///< Wait for reservoir 1 fill complete + HD_PRIME_DIALYSATE_DIALYZER_STATE, ///< Dialysate dialyzer fluid path state + HD_PRIME_SALINE_DIALYZER_SETUP_STATE, ///< Saline dialyzer setup state + HD_PRIME_SALINE_DIALYZER_STATE, ///< Saline dialyzer fluid path state + HD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE, ///< Wait for reservoir 2 fill complete + HD_PRIME_DIALYSATE_BYPASS_STATE, ///< Dialysate bypass fluid path state + HD_PRIME_WET_SELF_TESTS_STATE, ///< Perform wet self-tests after priming complete + HD_PRIME_PAUSE, ///< Prime pause state, waits to be resumed + HD_PRIME_COMPLETE, ///< Prime complete state + NUM_OF_HD_PRIME_STATES ///< Number of prime sub-mode states +}; +typedef enum HD_Pre_Treatment_Prime_States HD_PRE_TREATMENT_PRIME_STATE_T; ///< Type for HD pre-treatment prime sub-mode states enumeration + +/**@}*/ + +/** + * @addtogroup PreTreatmentRecirc + * @{ + */ + +/// Enumeration of pre-treatment recirculate states. +enum HD_Pre_Treatment_Recirc_States +{ + PRE_TREATMENT_RECIRC_STATE = 0, ///< Pre-treatment recirculate state + PRE_TREATMENT_RECIRC_STOPPED_STATE, ///< Pre-treatment recirculate stopped state + NUM_OF_PRE_TREATMENT_RECIRC_STATES ///< Number of pre-treatment recirculate states +}; +/// Type for HD pre-treatment recirculate sub-mode states enumeration +typedef enum HD_Pre_Treatment_Recirc_States HD_PRE_TREATMENT_RECIRC_STATE_T; + +/**@}*/ + +/** + * @addtogroup HDPreTreatmentMode + * @{ + */ + +/// Enumeration of pre-treatment patient connect states. +enum HD_Pre_Treatment_Pat_Conn_States +{ + PRE_TREATMENT_PAT_CONN_WAIT_FOR_UF_VOL_STATE = 0, ///< Pre-treatment patient connect wait for UF volume setting state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_DLZR_INVERT_STATE, ///< Pre-treatment patient connect wait for dialyzer inverted state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_USER_CONFIRM_STATE, ///< Pre-treatment patient connect wait for user confirm state + PRE_TREATMENT_PAT_CONN_WAIT_FOR_TREATMENT_START_STATE, ///< Pre-treatment patient connect wait for treatment start state + NUM_OF_PRE_TREATMENT_PAT_CONN_STATES ///< Number of pre-treatment patient connect states +}; +/// Type for HD pre-treatment patient connect sub-mode states enumeration +typedef enum HD_Pre_Treatment_Pat_Conn_States HD_PRE_TREATMENT_PAT_CONN_STATE_T; + +/**@}*/ + +/** + * @addtogroup HDTreatmentMode + * @{ + */ + +/// Sub-mode states while in treatment mode +enum Treatment_States +{ + TREATMENT_START_STATE = 0, ///< Start treatment - initialize treatment and go to blood prime state + TREATMENT_BLOOD_PRIME_STATE, ///< Prime blood-side of dialyzer with gradual ramp for 1 min. while dialyzer is bypassed. No dialysis or UF taking place. No treatment time. + TREATMENT_DIALYSIS_STATE, ///< Perform dialysis. Deliver Heparin as prescribed. Deliver UF as prescribed. Handle saline boluses as requested + TREATMENT_STOP_STATE, ///< Treatment stopped. All pumps off. Dializer bypassed + TREATMENT_RINSEBACK_STATE, ///< Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating + TREATMENT_RECIRC_STATE, ///< Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed + TREATMENT_END_STATE, ///< Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback + NUM_OF_TREATMENT_STATES ///< Number of treatment states (sub-modes) +}; +typedef enum Treatment_States TREATMENT_STATE_T; ///< Type for treatment states enumeration + +/**@}*/ + +/** + * @addtogroup HDPostTreatmentMode + * @{ + */ + +/// Enumeration of post-treatment mode states. +enum HD_Post_Treatment_Mode_States +{ + HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE = 0, ///< Drain reservoirs state + HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE, ///< Patient disconnection state + HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE, ///< Disposable removal state + HD_POST_TREATMENT_VERIFY_STATE, ///< Verify cartridge removed, syringe removed, and reservoirs drained state + NUM_OF_HD_POST_TREATMENT_STATES ///< Number of post-treatment mode states +}; +typedef enum HD_Post_Treatment_Mode_States HD_POST_TREATMENT_STATE_T; ///< Type for HD post treatment mode states enumeration + +/**@}*/ + +/** + * @addtogroup HDServiceMode + * @{ + */ + +/// Enumeration of service mode states. +enum HD_Service_States +{ + HD_SERVICE_STATE_START = 0, ///< Start service mode state + NUM_OF_HD_SERVICE_STATES ///< Number of service mode states +}; +typedef enum HD_Service_States HD_SERVICE_STATE_T; ///< Type for HD services states enumeration + +/**@}*/ + +/** + * @addtogroup Dialysis + * @{ + */ + +/// Enumeration of dialysis sub-mode states. +enum Dialysis_States +{ + DIALYSIS_START_STATE = 0, ///< Start state of the dialysis sub-mode state machine + DIALYSIS_UF_STATE, ///< Ultrafiltration state of the dialysis sub-mode state machine + DIALYSIS_SALINE_BOLUS_STATE, ///< Saline bolus state of the dialysis sub-mode state machine + NUM_OF_DIALYSIS_STATES ///< Number of dialysis sub-mode states +}; +typedef enum Dialysis_States DIALYSIS_STATE_T; ///< Type for dialysis states enumeration + +/// Enumeration of ultrafiltration states. +enum UF_States +{ + UF_PAUSED_STATE = 0, ///< Paused state of the ultrafiltration state machine + UF_RUNNING_STATE, ///< Running state of the ultrafiltration state machine + NUM_OF_UF_STATES ///< Number of ultrafiltration states +}; +typedef enum UF_States UF_STATE_T; ///< Type for ultrafiltration states enumeration + +/// Enumeration of saline bolus states. +enum Saline_Bolus_States +{ + SALINE_BOLUS_STATE_IDLE = 0, ///< No saline bolus delivery is in progress + SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP, ///< Wait for pumps to stop before starting bolus + SALINE_BOLUS_STATE_IN_PROGRESS, ///< A saline bolus delivery is in progress + SALINE_BOLUS_STATE_MAX_DELIVERED, ///< Maximum saline bolus volume reached - no more saline bolus deliveries allowed + NUM_OF_SALINE_BOLUS_STATES ///< Number of saline bolus states +}; +typedef enum Saline_Bolus_States SALINE_BOLUS_STATE_T; ///< Type for saline bolus state enumeration + +/// Enumeration of saline bolus command parameters. +enum Saline_Commands +{ + SALINE_CMD_STOP = 0, ///< Stop saline bolus command + SALINE_CMD_START, ///< Start saline bolus command + NUM_OF_SALINE_CMDS ///< Number of saline bolus command parameters +}; +typedef enum Saline_Commands SALINE_CMD_T; ///< Type for saline command enum. + +/// Enumeration of ultrafiltration command IDs. +enum UF_Commands +{ + UF_CMD_PAUSE = 0, ///< Pause UF command + UF_CMD_RESUME, ///< Resume UF command + NUM_OF_UF_CMDS ///< Number of UF commands +}; +typedef enum UF_Commands UF_CMD_T; ///< Type for UF command IDs enumeration + +/// Enumeration of ultrafiltration adjustment option IDs. +enum UF_Adjustments +{ + UF_ADJ_TREATMENT_TIME = 0, ///< Adjust treatment time to achieve new ultrafiltration volume + UF_ADJ_UF_RATE, ///< Adjust UF rate to achieve new ultrafiltration volume + NUM_OF_UF_ADJS ///< Number of UF adjustments +}; +typedef enum UF_Adjustments UF_ADJ_T; ///< Type for UF adjustments IDs enumeration + +/**@}*/ + +/** + * @addtogroup SyringePump + * @{ + */ + +/// Enumeration of heparin states. +enum Heparin_States +{ + HEPARIN_STATE_OFF = 0, ///< No heparin delivery is in progress + HEPARIN_STATE_STOPPED, ///< Heparin delivery stopped by alarm or not yet started + HEPARIN_STATE_PAUSED, ///< Heparin delivery paused + HEPARIN_STATE_INITIAL_BOLUS, ///< Initial heparin bolus delivery in progress + HEPARIN_STATE_DISPENSING, ///< Gradual heparin dispensing in progress + HEPARIN_STATE_COMPLETED, ///< Heparin delivery stopped due to the set stop time before treatment end + HEPARIN_STATE_EMPTY, ///< Heparin Syringe empty + NUM_OF_HEPARIN_STATES ///< Number of saline bolus states +}; +typedef enum Heparin_States HEPARIN_STATE_T; ///< Type for heparin state enumeration + +/// Enumeration of heparin command IDs. +enum Heparin_Commands +{ + HEPARIN_CMD_PAUSE = 0, ///< Pause Heparin command + HEPARIN_CMD_RESUME, ///< Resume Heparin command + NUM_OF_HEPARIN_CMDS ///< Number of Heparin commands +}; +typedef enum Heparin_Commands HEPARIN_CMD_T; ///< Type for HEPARIN command IDs enumeration + +/**@}*/ + +/** + * @addtogroup TreatmentStop + * @{ + */ + +/// Enumeration of treatment stop sub-mode states. +enum Treatment_Stop_States +{ + TREATMENT_STOP_RECIRC_STATE = 0, ///< Dialysate and Blood re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_RECIRC_DIALYSATE_ONLY_STATE, ///< Re-circulate Dialysate only state of the treatment re-circulate sub-mode state machine + TREATMENT_STOP_RECIRC_BLOOD_ONLY_STATE, ///< Re-circulate Blood only state of the treatment re-circulate sub-mode state machine + TREATMENT_STOP_NO_RECIRC_STATE, ///< No re-circulation state of the treatment stop sub-mode state machine + TREATMENT_STOP_RECOVER_BLOOD_DETECT_STATE, ///< Treatment stop recover blood detect state + NUM_OF_TREATMENT_STOP_STATES ///< Number of treatment stop sub-mode states +}; +/// Type for treatment stop states enumeration. +typedef enum Treatment_Stop_States TREATMENT_STOP_STATE_T; + +/**@}*/ + +/** + * @addtogroup BloodPrime + * @{ + */ + +/// Enumeration of blood prime sub-mode states. +enum Blood_Prime_States +{ + BLOOD_PRIME_RAMP_STATE = 0, ///< Ramp state of the blood prime sub-mode state machine + NUM_OF_BLOOD_PRIME_STATES ///< Number of blood prime sub-mode states +}; +/// Type for treatment end states enumeration. +typedef enum Blood_Prime_States BLOOD_PRIME_STATE_T; + +/**@}*/ + +/** + * @addtogroup Rinseback + * @{ + */ + +/// Enumeration of rinseback sub-mode states. +enum Rinseback_States +{ + RINSEBACK_STOP_INIT_STATE = 0, ///< Start state (stopped) of the rinseback sub-mode state machine + RINSEBACK_RUN_STATE, ///< Rinseback running state of the rinseback sub-mode state machine + RINSEBACK_PAUSED_STATE, ///< Rinseback paused state of the rinseback sub-mode state machine + RINSEBACK_STOP_STATE, ///< Rinseback stopped (done) state of the rinseback sub-mode state machine + RINSEBACK_RUN_ADDITIONAL_STATE, ///< Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine + RINSEBACK_RECONNECT_PATIENT_STATE, ///< Rinseback patient reconnect state of the rinseback sub-mode state machine + NUM_OF_RINSEBACK_STATES ///< Number of rinseback sub-mode states +}; +typedef enum Rinseback_States RINSEBACK_STATE_T; ///< Type for rinseback states enumeration. + +/// Enumeration of user actions that may be requested from rinseback sub-mode. +enum Requested_Rinseback_User_Actions +{ + REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_START = 0, ///< User confirms saline bag clamped, connected to end of arterial line, un-clamped, and ready to start rinseback operation + REQUESTED_USER_ACTION_RINSEBACK_INCREASE_RATE = 1, ///< User requests increase in rinseback flow rate + REQUESTED_USER_ACTION_RINSEBACK_DECREASE_RATE = 2, ///< User requests decrease in rinseback flow rate + REQUESTED_USER_ACTION_RINSEBACK_PAUSE = 3, ///< User requests to pause rinseback operation + REQUESTED_USER_ACTION_RINSEBACK_RESUME = 4, ///< User requests to resume rinseback operation + REQUESTED_USER_ACTION_RINSEBACK_END = 5, ///< User requests to end the rinseback operation + REQUESTED_USER_ACTION_RINSEBACK_ADDITIONAL = 6, ///< User requests an additional 10 mL of rinseback volume + REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_DISCONNECT = 7, ///< User confirms patient disconnected, saline bag clamped, re-connected to VBA, un-clamped, and lines shunted to start re-circulation + REQUESTED_USER_ACTION_RINSEBACK_END_TREATMENT = 8, ///< User requests to end treatment + REQUESTED_USER_ACTION_RINSEBACK_BACK_TO_TREATMENT = 9, ///< User requests to return to treatment + NUM_OF_REQUESTED_RINSEBACK_USER_ACTIONS ///< Number of requested rinseback user actions +}; +/// Type for requested user actions enumeration. +typedef enum Requested_Rinseback_User_Actions REQUESTED_RINSEBACK_USER_ACTIONS_T; + +/**@}*/ + +/** + * @addtogroup TreatmentRecirculate + * @{ + */ + +/// Enumeration of treatment re-circulation sub-mode states. +enum Treatment_Recirc_States +{ + TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE = 0, ///< Disconnect patient state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECIRC_STATE, ///< Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_STOPPED_STATE, ///< Stopped state of the treatment re-circulate sub-mode state machine + TREATMENT_RECIRC_RECONNECT_PATIENT_STATE, ///< Reconnect patient state of the treatment re-circulate sub-mode state machine + NUM_OF_TREATMENT_RECIRC_STATES ///< Number of treatment re-circulate sub-mode states +}; +/// Type for treatment re-circulation states enumeration. +typedef enum Treatment_Recirc_States TREATMENT_RECIRC_STATE_T; + +/// Enumeration of user actions that may be requested from treatment re-circulate sub-mode. +enum Requested_Treatment_Recirc_User_Actions +{ + REQUESTED_USER_ACTION_TX_RECIRC_RECONNECT = 0, ///< User requests to re-connect to system (stop re-circulating, clamp arterial and venous lines) + REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_RECONNECT = 1, ///< User confirms patient connected, lines un-shunted to return to treatment + REQUESTED_USER_ACTION_TX_RECIRC_RESUME_RC = 2, ///< User requests to resume re-circulation + REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT = 3, ///< User requests to end treatment + REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_DISCONNECT = 4, ///< User confirms patient disconnected, lines shunted to begin re-circulation + NUM_OF_REQUESTED_TX_RECIRC_USER_ACTIONS ///< Number of requested treatment re-circ user actions +}; +/// Type for requested user actions enumeration. +typedef enum Requested_Treatment_Recirc_User_Actions REQUESTED_TREATMENT_RECIRC_USER_ACTIONS_T; + +/**@}*/ + +/** + * @addtogroup TreatmentEnd + * @{ + */ + +/// Enumeration of treatment end sub-mode states. +enum Treatment_End_States +{ + TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0, ///< Wait for rinseback state of the treatment end sub-mode state machine + TREATMENT_END_PAUSED_STATE, ///< Paused state of the treatment end sub-mode state machine + NUM_OF_TREATMENT_END_STATES ///< Number of treatment end sub-mode states +}; +/// Type for treatment end states enumeration. +typedef enum Treatment_End_States TREATMENT_END_STATE_T; + +/// Enumeration of user actions that may be requested from treatment end sub-mode. +enum Requested_Treatment_End_User_Actions +{ + REQUESTED_USER_ACTION_TX_END_RINSEBACK_START = 0, ///< User requests to initiate final rinseback + NUM_OF_REQUESTED_TX_END_USER_ACTIONS ///< Number of requested treatment end user actions +}; +/// Type for requested user actions enumeration. +typedef enum Requested_Treatment_End_User_Actions REQUESTED_TREATMENT_END_USER_ACTIONS_T; + +/**@}*/ + +/** + * @addtogroup HDTreatmentParamsMode + * @{ + */ + +/// Enumeration of treatment parameters. +enum Treatment_Params +{ + TREATMENT_PARAM_BLOOD_FLOW = 0, ///< Blood flow rate (in mL/min) + TREATMENT_PARAM_FIRST_UINT = TREATMENT_PARAM_BLOOD_FLOW, ///< First unsigned integer treatment parameter + TREATMENT_PARAM_DIALYSATE_FLOW, ///< Dialysate flow rate (in mL/min) + TREATMENT_PARAM_TREATMENT_DURATION, ///< Treatment duration (in minutes) + TREATMENT_PARAM_HEPARIN_PRE_STOP_TIME, ///< Heparin pre-stop time (in minutes) + TREATMENT_PARAM_SALINE_BOLUS_VOLUME, ///< Saline bolus volume (in mL) + TREATMENT_PARAM_ACID_CONCENTRATE, ///< Acid concentrate type (enum) + TREATMENT_PARAM_BICARB_CONCENTRATE, ///< Bicarbonate concentrate type (enum) + TREATMENT_PARAM_DIALYZER_TYPE, ///< Dialysate type (enum) + TREATMENT_PARAM_HEPARIN_TYPE, ///< Heparin type (enum) + TREATMENT_PARAM_BP_MEAS_INTERVAL, ///< Blood pressure measurement interval (in minutes) + TREATMENT_PARAM_RINSEBACK_FLOW_RATE, ///< Rinseback flow rate (in mL/min) + TREATMENT_PARAM_LAST_UINT = TREATMENT_PARAM_RINSEBACK_FLOW_RATE, ///< Last unsigned integer treatment parameter + TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW, ///< Arterial pressure alarm limit window (in mmHg) + TREATMENT_PARAM_FIRST_INT = TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW, ///< First integer treatment parameter + TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW, ///< Venous pressure alarm limit window (in mmHg) + TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC, ///< Venous pressure alarm limit asymmetric (in mmHg) + TREATMENT_PARAM_LAST_INT = TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC,///< Last integer treatment parameter + TREATMENT_PARAM_HEPARIN_DISPENSE_RATE, ///< Heparin dispense rate (in mL/hr) + TREATMENT_PARAM_FIRST_F32 = TREATMENT_PARAM_HEPARIN_DISPENSE_RATE, ///< First floating point treatment parameter + TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME, ///< Heparin bolus volume (in mL) + TREATMENT_PARAM_DIALYSATE_TEMPERATURE, ///< Dialysate temperature (in degC) + TREATMENT_PARAM_UF_VOLUME, ///< Ultrafiltration volume (in liters) - provided separately by UI + NUM_OF_TREATMENT_PARAMS ///< Total number of treatment parameters +}; +typedef enum Treatment_Params TREATMENT_PARAM_T; ///< Type for treatment parameters enumeration + +/// Enumeration of dialyzer types. +enum Dialyzer_Types +{ + DIALYZER_TYPE_BBRAUN_PRO_13H = 0, ///< BBraun Diacap Pro 13H + DIALYZER_TYPE_BBRAUN_PRO_16H, ///< BBraun Diacap Pro 16H + DIALYZER_TYPE_BBRAUN_PRO_19H, ///< BBraun Diacap Pro 19H + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F160NRE, ///< Fresenius Optiflux F160NRe + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F180NRE, ///< Fresenius Optiflux F180NRe + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F200NRE, ///< Fresenius Optiflux F200NRe + NUM_OF_DIALYZER_TYPES ///< Number of dialyzer types +}; +typedef enum Dialyzer_Types DIALYZER_TYPE_T; ///< Type for dialyzer types enumeration + +/// Enumeration of acid concentrates. +enum Acid_Concentrates +{ + ACID_CONC_TYPE_FRESENIUS_08_1251_1 = 0, ///< Fresensius Naturalyte Acid Concentrate 08-1251-1 + ACID_CONC_TYPE_FRESENIUS_08_2251_0, ///< Fresensius Naturalyte Acid Concentrate 08-2251-0 + ACID_CONC_TYPE_FRESENIUS_08_3251_9, ///< Fresensius Naturalyte Acid Concentrate 08-3251-9 + NUM_OF_ACID_CONC_TYPES ///< Number of acid concentrates +}; +typedef enum Acid_Concentrates ACID_CONCENTRATE_TYPE_T; ///< Type for acid concentrates enumeration + +/// Enumeration of bicarbonate concentrates. +enum Bicarb_Concentrates +{ + BICARB_CONC_TYPE_FRESENIUS_CENTRISOL = 0, ///< Fresenius Centrisol Liquid Bicarbonate + NUM_OF_BICARB_CONC_TYPES ///< Number of bicarbonate concentrates +}; +typedef enum Bicarb_Concentrates BICARB_CONCENTRATE_TYPE_T; ///< Type for bicarbonate concentrates enumeration + +/**@}*/ + +/// Enumeration of HD pumps. +enum HD_Pumps +{ + HD_PUMP_BLOOD_PUMP = 0, ///< HD Blood pump + HD_PUMP_DIALYSATE_INLET_PUMP, ///< HD Dialysate inlet pump + HD_PUMP_DIALYSATE_OUTLET_PUMP, ///< HD Dialysate outlet pump + HD_PUMP_SYRINGE, ///< HD Syringe pump + NUM_OF_HD_PUMPS ///< Number of HD pumps +}; +typedef enum HD_Pumps HD_PUMP_T; ///< Type for HD pump enumeration + +/** + * @addtogroup HDTreatmentMode + * @{ + */ + +/// Enumeration of treatment event IDs. +enum Tx_Event_List +{ + BLOOD_FLOW_RATE_CHANGE_EVENT = 0, ///< Blood flow rate change event + DIALYSATE_FLOW_RATE_CHANGE_EVENT, ///< Dialysate flow rate change event + TREATMENT_DURATION_CHANGE_EVENT, ///< Treatment duration change event + UF_VOLUME_CHANGE_EVENT, ///< Ultrafiltration volume change event + UF_RATE_CHANGE_EVENT, ///< Ultrafiltration rate change event + UF_START_RESUME_EVENT, ///< Ultrafiltration start or resume event + UF_PAUSE_EVENT, ///< Ultrafiltration pause event + ARTERIAL_PRESSURE_LIMIT_WINDOW_CHANGE_EVENT, ///< Arterial pressure limit window change event + VENOUS_PRESSURE_LIMIT_WINDOW_CHANGE_EVENT, ///< Venous pressure limit window change event + VENOUS_PRESSURE_LIMIT_ASYM_CHANGE_EVENT, ///< Venous pressure limit asymmetric change event + HEPARIN_BOLUS_START_EVENT, ///< Heparin bolus start event + HEPARIN_BOLUS_END_EVENT, ///< Heparin bolus end event + HEPARIN_START_RESUME_EVENT, ///< Heparin start or resume event + HEPARIN_STOP_PAUSE_EVENT, ///< Heparin stop or pause event + SALINE_BOLUSES_CHANGE_EVENT, ///< Saline boluses change event + NUM_OF_TX_EVENT_IDS ///< Total number of treatment events +}; +typedef enum Tx_Event_List TX_EVENT_ID_T; ///< Type for treatment event list enumeration + +/**@}*/ + +/** + * @addtogroup CommonHeader + * @{ + */ + +/// Enumeration of TD event IDs. +enum TD_Event_List +{ + TD_EVENT_STARTUP = 0, ///< HD startup event + TD_EVENT_OP_MODE_CHANGE, ///< HD Op mode change event + TD_EVENT_SUB_MODE_CHANGE, ///< HD Op sub-mode change event + TD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT, ///< HD dry self test cartridge result + TD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT, ///< HD dry self test pressure result + TD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT, ///< HD wet self test displacement result + TD_EVENT_CPU_RAM_ERROR_STATUS, ///< HD CPU RAM error status + TD_EVENT_CAL_RECORD_UPDATE, ///< HD new calibration record updated + TD_EVENT_SYSTEM_RECORD_UPDATE, ///< HD new system record has been updated + TD_EVENT_SERVICE_UPDATE, ///< HD new service record has been updated + TD_EVENT_USAGE_INFO_UPDATE, ///< HD new usage information has been updated + TD_EVENT_SW_CONFIG_UPDATE, ///< HD new software configuration has been updated + TD_EVENT_BUTTON, ///< HD button pressed/released + TD_EVENT_SAFETY_LINE, ///< HD safety line pulled/released + TD_EVENT_RSRVR_1_LOAD_CELL_START_VALUES, ///< HD reservoir 1 load cells start values + TD_EVENT_RSRVR_1_LOAD_CELL_END_VALUES, ///< HD reservoir 2 load cells end values + TD_EVENT_RSRVR_2_LOAD_CELL_START_VALUES, ///< HD reservoir 2 load cells start values + TD_EVENT_RSRVR_2_LOAD_CELL_END_VALUES, ///< HD reservoir 2 load cells end values + TD_EVENT_SUB_STATE_CHANGE, ///< HD Op sub-state change event + TD_EVENT_SYRINGE_PUMP_STATE, ///< HD syringe pump state change event + TD_EVENT_OCCLUSION_BASELINE, ///< HD event occlusion baseline event + TD_EVENT_RSRVR_UF_VOLUME_AND_TIME, ///< HD ultrafiltration volume and time for a reservoir use + TD_EVENT_RSRVR_UF_RATE, ///< HD ultrafiltration measured and expected rates + TD_EVENT_OPERATION_STATUS, ///< HD aggregated opmode, submode, and substate event. + TD_EVENT_AIR_TRAP_FILL, ///< HD initiated an air trap fill (opened VBT briefly). + TD_EVENT_AIR_PUMP_ON_OFF, ///< HD turned air pump on or off. + TD_EVENT_BLOOD_LEAK_SELF_TEST_RESULT, ///< HD blood leak self tests result. + TD_EVENT_BLOOD_LEAK_NUM_OF_SET_POINT_CHECK_FAILURES, ///< HD blood leak number of set point check failures + TD_EVENT_DRY_SELF_TEST_PRESSURE_DECAY_WAIT_PERIOD, ///< HD dry self test pressure decay waiting period. + TD_EVENT_INSTIT_RECORD_UPDATE, ///< HD new institutional record has been updated. + TD_EVENT_PARTIAL_OCCLUSION_BASELINE, ///< HD event partial occlusion baseline event + NUM_OF_TD_EVENT_IDS ///< Total number of TD events +}; +typedef enum TD_Event_List TD_EVENT_ID_T; ///< Type for TD event list enumeration + +/// Enumeration of generic confirmation request type from HD to UI. +enum Generic_Confirm_Command +{ + GENERIC_CONFIRM_CMD_REQUEST_OPEN = 0, ///< Generic Confirm command to display the confirmation + GENERIC_CONFIRM_CMD_TIMEOUT_CLOSE = 1, ///< Generic Confirm command to hide the confirmation, due to timeout user confirmation + GENERIC_CONFIRM_CMD_REJECT = 2, ///< Generic Confirm command to display the confirmation rejection in case the request in not valid/accepted anymore. + GENERIC_CONFIRM_CMD_ACCEPT_CLOSE = 3, ///< Generic Confirm command to hide the confirmation, due to accept user confirmation. + NUM_OF_GENERIC_CONFIRM_COMMAND ///< Total number of generic confirm commands +}; +typedef enum Generic_Confirm_Command GENERIC_CONFIRM_COMMAND_T; ///< Type for generic confirm enumeration + +/**@}*/ + +/** + * @addtogroup HDOperationModes + * @{ + */ + +/// Enumeration of generic confirmation id between HD and UI. +enum Generic_Confirm_Id +{ + GENERIC_CONFIRM_ID_NONE = 0, ///< Generic Confirm None + GENERIC_CONFIRM_ID_DISINFECT_STOP_WATERFLUSH, ///< Water flush stop user confirmation + GENERIC_CONFIRM_ID_DISINFECT_STOP_HEAT, ///< Heat disinfect stop user confirmation + GENERIC_CONFIRM_ID_DISINFECT_STOP_CHEMICAL, ///< Chemical disinfect stop user confirmation + GENERIC_CONFIRM_ID_DISINFECT_STOP_CHEMICAL_FLUSH, ///< Chemical disinfect flush stop user confirmation + GENERIC_CONFIRM_ID_DISINFECT_CHEM_FLUSH_SAMPLE_PASS_FAIL, ///< Chemical disinfect sample flush pass/fail + GENERIC_CONFIRM_ID_TREATMENT_END, ///< End treatment user confirmation + GENERIC_CONFIRM_ID_DISINFECT_STOP_ACTIVE_COOL, ///< Active cool stop user confirmation + GENERIC_CONFIRM_ID_DISINFECT_STOP_RO_PERMEATE_SAMPLE, ///< RO permeate sample stop user confirmation + GENERIC_CONFIRM_ID_RO_PERMEATE_SAMPLE_STOP_OR_DISPENSE, ///< RO permeate sample stop or dispense + NUM_OF_GENERIC_CONFIRM_IDS, ///< Total number of generic confirm IDs +}; +typedef enum Generic_Confirm_Id GENERIC_CONFIRM_ID_T; ///< Type for generic confirm enumeration + +/// List of confirmation request status +typedef enum Confirmation_Status +{ + CONFIRMATION_REQUEST_STATUS_REJECTED = 0, ///< Confirmation status rejected + CONFIRMATION_REQUEST_STATUS_ACCEPTED, ///< Confirmation status accepted + CONFIRMATION_REQUEST_STATUS_TIMEOUT, ///< Confirmation status timeout + CONFIRMATION_REQUEST_STATUS_PENDING, ///< Confirmation status pending response + CONFIRMATION_REQUEST_STATUS_UNUSED, ///< Confirmation status Unused + NUM_OF_CONFIRMATION_REQUEST_STATUS ///< Number of confirmation status +} CONFIRMATION_REQUEST_STATUS_T; + +/**@}*/ + +#endif