########################################################################### # # Copyright (c) 2020-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 td_defs.py # # @author (last) Zoltan Miskolci # @date (last) 25-Feb-2026 # @author (original) Peter Lucia # @date (original) 04-Dec-2020 # ############################################################################ from enum import unique from ..utils.base import DialinEnum # ================================================== Enum Creators: Operations Lvl 1 ================================================== @unique class TDOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode MODE_SERV = 1 # Service mode MODE_INIT = 2 # Initialization & POST mode MODE_STAN = 3 # Standby mode MODE_PRET = 4 # Pre-Treatment mode MODE_TREA = 5 # Treatment mode MODE_POST = 6 # Post-Treatment mode MODE_NLEG = 7 # Not legal - an illegal mode transition occurred NUM_OF_TD_MODES = 8 # Number of Modes for the TD TDOpModes._str_list = { # Official Name : Accepted strings 'MODE_FAUL': ['fault'], 'MODE_SERV': ['service'], 'MODE_INIT': ['initialization'], 'MODE_STAN': ['standby'], 'MODE_PRET': ['pre-treatment', 'pre treatment'], 'MODE_TREA': ['treatment'], 'MODE_POST': ['post-treatment', 'post treatment'], 'MODE_NLEG': ['not legal'], 'NUM_OF_TD_MODES': [], } # ================================================== Enum Creators: Operations Lvl 2 ================================================== # TDOpModes.MODE_FAUL sub states @unique class TDFaultStates(DialinEnum): TD_FAULT_DEENERGIZED_STATE = 0 # TD Fault De-energized State TD_FAULT_ENERGIZED_STATE = 1 # TD Fault Energized State NUM_OF_TD_FAULT_STATES = 2 # Number of fault mode states TDFaultStates._str_list = { # Official Name : Accepted strings 'TD_FAULT_DEENERGIZED_STATE': ['fault deenergized', 'deenergized'], 'TD_FAULT_ENERGIZED_STATE': ['fault energized', 'energized'], 'NUM_OF_TD_FAULT_STATES': [], } # TDOpModes.MODE_SERV sub states @unique class TDServiceStates(DialinEnum): TD_SERVICE_STATE_START = 0 # Start service mode state NUM_OF_TD_SERVICE_STATES = 1 # Number of service mode states TDServiceStates._str_list = { # Official Name : Accepted strings 'TD_SERVICE_STATE_START': ['start', 'service start'], 'NUM_OF_TD_SERVICE_STATES': [], } # TDOpModes.MODE_INIT sub states @unique class TDInitStates(DialinEnum): POST_STATE_START = 0 # Start initialize & POST mode state POST_STATE_FW_INTEGRITY = 1 # Run firmware integrity test state POST_STATE_NVDATAMGMT = 2 # Run NV Data Mgmt. test state POST_STATE_WATCHDOG = 3 # Run watchdog test state POST_STATE_SAFETY_SHUTDOWN = 4 # Run safety shutdown test state POST_STATE_BLOOD_FLOW = 5 # Run blood flow test state POST_STATE_VALVES = 6 # Run valves test state POST_STATE_SYRINGE_PUMP = 7 # Run syringe pump test state POST_STATE_PRES_OCCL = 8 # Run pressure occlusion state POST_STATE_ALARM_AUDIO = 9 # Run alarm audio test state POST_STATE_ALARM_LAMP = 10 # Run alarm lamp test state POST_STATE_TEMPERATURES = 11 # Run temperatures POST state POST_STATE_FANS = 12 # Run fans POST state POST_STATE_STUCK_BUTTON = 13 # Run stuck button test state POST_STATE_UI_POST = 14 # Check whether UI passed its POST tests POST_STATE_FW_COMPATIBILITY = 15 # Run firmware compatibility test state POST_STATE_FPGA = 16 # Run FPGA test state POST_STATE_COMPLETED = 17 # POST self-tests completed state POST_STATE_FAILED = 18 # POST self-tests failed state NUM_OF_POST_STATES = 19 # Number of initialize & POST mode states TDInitStates._str_list = { # Official Name : Accepted strings 'POST_STATE_START': ['start'], 'POST_STATE_FW_INTEGRITY': ['fw integrity'], 'POST_STATE_NVDATAMGMT': ['nv data management', 'data management'], 'POST_STATE_WATCHDOG': ['watchdog'], 'POST_STATE_SAFETY_SHUTDOWN': ['safety shutdown'], 'POST_STATE_BLOOD_FLOW': ['blood flow', 'blood flow test'], 'POST_STATE_VALVES': ['valves', 'valves test'], 'POST_STATE_SYRINGE_PUMP': ['syringe pump', 'syringe pump test', 'heparin test'], 'POST_STATE_PRES_OCCL': ['pressure', 'pressure occlusion', 'pres occl'], 'POST_STATE_ALARM_AUDIO': ['alarm audio', 'alarm audio test'], 'POST_STATE_ALARM_LAMP': ['alarm lamp', 'alarm lamp test'], 'POST_STATE_TEMPERATURES': ['temperatures'], 'POST_STATE_FANS': ['fans'], 'POST_STATE_STUCK_BUTTON': ['button', 'button stuck', 'stuck button test'], 'POST_STATE_UI_POST': ['ui post'], 'POST_STATE_FW_COMPATIBILITY': ['fw compatibility'], 'POST_STATE_FPGA': ['fpga'], 'POST_STATE_COMPLETED': ['completed'], 'POST_STATE_FAILED': ['failed'], 'NUM_OF_POST_STATES': [], } # TDOpModes.MODE_STAN sub states @unique class TDStandbyStates(DialinEnum): STANDBY_START_STATE = 0 # Start standby (home actuators). STANDBY_WAIT_FOR_TREATMENT_STATE = 1 # Wait for treatment. STANDBY_WAIT_FOR_DISINFECT_STATE = 2 # Wait for UI to send disinfect option. STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE = 3 # Wait for DG cleaning mode command response state. STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE = 4 # Wait for DG cleaning mode to start state. STANDBY_CLEANING_MODE_IN_PROGRESS_STATE = 5 # Cleaning mode in progress state. NUM_OF_STANDBY_STATES = 6 # Number of standby states (sub-modes). TDStandbyStates._str_list = { # Official Name : Accepted strings 'STANDBY_START_STATE': ['start'], 'STANDBY_WAIT_FOR_TREATMENT_STATE': ['wait for treatment'], 'STANDBY_WAIT_FOR_DISINFECT_STATE': ['wait for disinfect', 'wait for heat disinfect'], 'STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE': ['wait for cleaning command response'], 'STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE': ['wait for cleaning to start'], 'STANDBY_CLEANING_MODE_IN_PROGRESS_STATE': ['cleaning mode in progress', 'cleaning in progress'], 'NUM_OF_STANDBY_STATES': [], } # TDOpModes.MODE_TPAR sub states @unique class TDTreatmentParamStates(DialinEnum): TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND = 0 # Wait for UI to send treatment params mode state TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM = 1 # Wait for UI to confirm treatment params mode state NUM_OF_TD_TREATMENT_PARAMS_MODE_STATES = 2 # Number of treatment params mode states TDTreatmentParamStates._str_list = { # Official Name : Accepted strings 'TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_SEND': ['send'], 'TD_TREATMENT_PARAMS_MODE_STATE_WAIT_4_UI_2_CONFIRM': ['confirm'], 'NUM_OF_TD_TREATMENT_PARAMS_MODE_STATES': [], } # TDOpModes.MODE_PRET sub states @unique class TDPreTreatmentModesStates(DialinEnum): TD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0 # Water sample state TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE = 1 # Consumable self-tests state TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE = 2 # No cartridge self-tests state TD_PRE_TREATMENT_CART_INSTALL_STATE = 3 # Consumable and cartridge installation state TD_PRE_TREATMENT_SELF_TEST_DRY_STATE = 4 # Self-tests when the cartridge is dry state TD_PRE_TREATMENT_PRIME_STATE = 5 # Prime blood and dialysate circuits and run wet self-tests state TD_PRE_TREATMENT_RECIRCULATE_STATE = 6 # Re-circulate blood and dialysate circuits state TD_PRE_TREATMENT_CONFIRM_RX_STATE = 7 # User reviews and confirms prescription ( Confirm Rx ) TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE = 8 # Patient connection state NUM_OF_TD_PRE_TREATMENT_STATES = 9 # Number of pre-treatment mode states TDPreTreatmentModesStates._str_list = { # Official Name : Accepted strings 'TD_PRE_TREATMENT_WATER_SAMPLE_STATE': ['water sample'], 'TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE': ['self test consumable'], 'TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE': ['self test no cartridge'], 'TD_PRE_TREATMENT_CART_INSTALL_STATE': ['cartridge install'], 'TD_PRE_TREATMENT_SELF_TEST_DRY_STATE': ['self test dry', 'dry self test'], 'TD_PRE_TREATMENT_PRIME_STATE': ['prime', 'blood priming', 'priming'], 'TD_PRE_TREATMENT_RECIRCULATE_STATE': ['recirculate'], 'TD_PRE_TREATMENT_CONFIRM_RX_STATE': ['confirm rx', 'rx'], 'TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE': ['patient connect'], 'NUM_OF_TD_PRE_TREATMENT_STATES': [], } # TDOpModes.MODE_TREA sub states @unique class TDTreatmentStates(DialinEnum): TREATMENT_START_STATE = 0 # Start treatment - initialize treatment and go to blood prime state TREATMENT_BLOOD_PRIME_STATE = 1 # 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 = 2 # Perform dialysis. Deliver UF as prescribed. TREATMENT_PAUSED_STATE = 3 # Treatment paused. All pumps off. Dializer bypassed TREATMENT_RINSEBACK_STATE = 4 # Perform rinseback with saline. Dialyzer bypassed. Dialysate recirculating TREATMENT_RECIRC_STATE = 5 # Recirculate saline and dialysate while patient disconnected. Blood lines open and shunted. Dialyzer is bypassed TREATMENT_END_STATE = 6 # Dialysis has ended. Blood pump slowed. Dialyzer is bypassed. Dialysate is recirculated. User can rinseback TREATMENT_ISO_UF_STATE = 7 # Isolated ultrafiltration. No dialysate flow. Ultrafiltration only. TREATMENT_SALINE_BOLUS_STATE = 8 # Deliver a saline bolus. Blood pump draws from saline bag. Dialyzer bypassed. TREATMENT_DIALYSATE_PAUSED_STATE = 9 # No dialysate flow. Dialyzer bypassed. NUM_OF_TREATMENT_STATES = 10 # Number of treatment states (sub-modes) TDTreatmentStates._str_list = { # Official Name : Accepted strings 'TREATMENT_START_STATE': ['start'], 'TREATMENT_BLOOD_PRIME_STATE': ['blood prime', 'priming'], 'TREATMENT_DIALYSIS_STATE': ['dialysis'], 'TREATMENT_PAUSED_STATE': ['paused'], 'TREATMENT_RINSEBACK_STATE': ['rinseback'], 'TREATMENT_RECIRC_STATE': ['recirc', 'recirculate'], 'TREATMENT_END_STATE': ['end'], 'TREATMENT_ISO_UF_STATE': ['iso uf', 'isolated uf', 'isolated ultrafiltration'], 'TREATMENT_SALINE_BOLUS_STATE': ['saline bolus', 'deliver saline bolus'], 'TREATMENT_DIALYSATE_PAUSED_STATE': ['dialysate paused'], 'NUM_OF_TREATMENT_STATES': [], } # TDOpModes.MODE_POST sub states @unique class TDPostTreatmentStates(DialinEnum): TD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE = 0 # Drain reservoirs state TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE = 1 # Patient disconnection state TD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE = 2 # Disposable removal state TD_POST_TREATMENT_VERIFY_STATE = 3 # Verify cartridge removed, syringe removed, and reservoirs drained state NUM_OF_TD_POST_TREATMENT_STATES = 4 # Number of post-treatment mode states TDPostTreatmentStates._str_list = { # Official Name : Accepted strings 'TD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE': ['drain reservoirs'], 'TD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE': ['patient disconnect'], 'TD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE': ['disposable removal'], 'TD_POST_TREATMENT_VERIFY_STATE': ['verify'], 'NUM_OF_TD_POST_TREATMENT_STATES': [], } # TDOpModes.MODE_NLEG sub states @unique class TDNotLegalStates(DialinEnum): NUM_OF_NOT_LEGAL_STATES = 0 # Number of Not Legal states TDNotLegalStates._str_list = { # Official Name : Accepted strings 'NUM_OF_NOT_LEGAL_STATES': [], } # ================================================== Enum Creators: Operations Lvl 3 ================================================== # TDPreTreatmentModesStates.TD_PRE_TREATMENT_WATER_SAMPLE_STATE sub states @unique class TDPreTreaSampleWaterStates(DialinEnum): SAMPLE_WATER_SETUP_STATE = 0 # Sample water setup (flush filter) state SAMPLE_WATER_STATE = 1 # Sample water state, receiving sample water commands from the user SAMPLE_WATER_COMPLETE_STATE = 2 # Sample water complete state NUM_OF_SAMPLE_WATER_STATES = 3 # Number of fault mode NV Data management states TDPreTreaSampleWaterStates._str_list = { # Official Name : Accepted strings 'SAMPLE_WATER_SETUP_STATE': ['setup'], 'SAMPLE_WATER_STATE': ['running', 'sampling'], 'SAMPLE_WATER_COMPLETE_STATE': ['complete', 'done'], 'NUM_OF_SAMPLE_WATER_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE sub states @unique class TDPreTreaConsumableSelfTestStates(DialinEnum): CONSUMABLE_SELF_TESTS_INSTALL_STATE = 0 # Consumable self-tests install state CONSUMABLE_SELF_TESTS_PRIME_STATE = 1 # Consumable self-tests prime concentrate lines state CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE = 2 # Consumable self-tests bicarbonate concentrate pump check state CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE = 3 # Consumable self-tests acid concentrate pump check state CONSUMABLE_SELF_TESTS_COMPLETE_STATE = 4 # Consumable self-tests complete state NUM_OF_CONSUMABLE_SELF_TESTS_STATES = 5 # Number of consumable install sub-mode states TDPreTreaConsumableSelfTestStates._str_list = { # Official Name : Accepted strings 'CONSUMABLE_SELF_TESTS_INSTALL_STATE': ['install', 'installing'], 'CONSUMABLE_SELF_TESTS_PRIME_STATE': ['prime', 'priming'], 'CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE': ['bicarb', 'bicarb pump check'], 'CONSUMABLE_SELF_TESTS_ACID_PUMP_CHECK_STATE': ['acid', 'acid pump check'], 'CONSUMABLE_SELF_TESTS_COMPLETE_STATE': ['complete', 'done'], 'NUM_OF_CONSUMABLE_SELF_TESTS_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE sub states @unique class TDPreTreaNoCartSelfTestStates(DialinEnum): 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 = 1 # No cartridge pressure sensors self-test state NO_CART_SELF_TESTS_HOME_VALVES_STATE = 2 # No cartridge home valves state NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE = 3 # No cartridge home syringe pump state NO_CART_SELF_TESTS_PUMPS_STATE = 4 # No cartridge self-test for blood pump, dialysate in pump, dialysate out pump state NO_CART_SELF_TESTS_HOME_IDLE_STATE = 5 # Wait for valves and pumps finish homing state NO_CART_SELF_TESTS_STOPPED_STATE = 6 # No cart self-test stopped state NO_CART_SELF_TESTS_COMPLETE_STATE = 7 # No cartridge self-test complete state NUM_OF_NO_CART_SELF_TESTS_STATES = 8 # Number of no cartridge self-tests states TDPreTreaNoCartSelfTestStates._str_list = { # Official Name : Accepted strings 'NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE': ['wait for front door to close', 'wait for door close'], 'NO_CART_SELF_TESTS_PRESSURE_CHECKS_STATE': ['pressure checks'], 'NO_CART_SELF_TESTS_HOME_VALVES_STATE': ['home valves'], 'NO_CART_SELF_TESTS_HOME_SYRINGE_PUMP_STATE': ['home srynge pump'], 'NO_CART_SELF_TESTS_PUMPS_STATE': ['test pumps'], 'NO_CART_SELF_TESTS_HOME_IDLE_STATE': ['home idle', 'wait for homing'], 'NO_CART_SELF_TESTS_STOPPED_STATE': ['stop'], 'NO_CART_SELF_TESTS_PUMPS_STATE': ['test pumps'], 'NO_CART_SELF_TESTS_COMPLETE_STATE': ['complete', 'done'], 'NUM_OF_NO_CART_SELF_TESTS_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_SELF_TEST_DRY_STATE sub states @unique class TDPreTreaDrySelfTestStates(DialinEnum): DRY_SELF_TESTS_START_STATE = 0 # Dry self-tests starting state DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 1 # Wait for door to close before executing self-tests DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE = 2 # Used cartridge check dry self-test state DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE = 3 # Cartridge loaded check dry self-test state DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE = 4 # Seek syringe pumps state DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE = 5 # Pressure sensor setup state DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE = 6 # Venous pressure sensor dry self-test setup valves and pump state DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS = 7 # Venous pressure sensor dry self-test DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE = 8 # Arterial pressure sensor dry self-test setup valves and pump state DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL = 9 # Arterial pressure sensor dry self-test DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE = 10 # Pressure sensors verify pressure loss state DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE = 11 # Pressure sensors verify pressure stability state DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE = 12 # Pressure sensors verify normal pressure readings state DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE = 13 # Prime syringe pump state DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_DETECTION_STATE = 14 # Occlusion detection state DRY_SELF_TESTS_STOPPED_STATE = 15 # Dry self-test stopped state DRY_SELF_TESTS_COMPLETE_STATE = 16 # Dry self-test complete state NUM_OF_DRY_SELF_TESTS_STATES = 17 # Number of dry self-tests states TDPreTreaDrySelfTestStates._str_list = { # Official Name : Accepted strings 'DRY_SELF_TESTS_START_STATE': ['start'], 'DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE': ['wait for front door to close', 'wait for door close'], 'DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE': ['used cartridge check'], 'DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE': ['cartridge loaded check'], 'DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE': ['srynge pump seek', 'pump seek'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE': ['pressure sensors normal setup'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE': ['pressure sensors venous setup'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS': ['pressure sensors normal setup'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE': ['pressure sensors arterial setup'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL': ['pressure sensors normal setup'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE': ['pressure decay', 'pressure loss'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE': ['pressure stability'], 'DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE': ['presusre normal', 'pressure readings'], 'DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE': ['srynge pump prime', 'pump prime'], 'DRY_SELF_TESTS_STOPPED_STATE': ['stop'], 'DRY_SELF_TESTS_COMPLETE_STATE': ['complete', 'done'], 'NUM_OF_DRY_SELF_TESTS_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_PRIME_STATE sub states unique class TDPreTreaPrimeStates(DialinEnum): TD_PRIME_WAIT_FOR_USER_START_STATE = 0 # Wait for user to start prime state TD_PRIME_SALINE_SETUP_STATE = 1 # Saline setup state TD_PRIME_SALINE_PURGE_AIR_STATE = 2 # Saline purge air state TD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE = 3 # Circulate blood circuit state TD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE = 4 # Wait for reservoir 1 fill complete TD_PRIME_DIALYSATE_DIALYZER_STATE = 5 # Dialysate dialyzer fluid path state TD_PRIME_SALINE_DIALYZER_SETUP_STATE = 6 # Saline dialyzer setup state TD_PRIME_SALINE_DIALYZER_STATE = 7 # Saline dialyzer fluid path state TD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE = 8 # Wait for reservoir 2 fill complete TD_PRIME_DIALYSATE_BYPASS_STATE = 9 # Dialysate bypass fluid path state TD_PRIME_WET_SELF_TESTS_STATE = 10 # Perform wet self-tests after priming complete TD_PRIME_PAUSE = 11 # Prime pause state, waits to be resumed TD_PRIME_COMPLETE = 12 # Prime complete state NUM_OF_TD_PRIME_STATES = 13 # Number of prime sub-mode states TDPreTreaPrimeStates._str_list = { # Official Name : Accepted strings 'TD_PRIME_WAIT_FOR_USER_START_STATE': ['wait for user', 'wait for user to start'], 'TD_PRIME_SALINE_SETUP_STATE': ['saline setup', 'saline bolus setup'], 'TD_PRIME_SALINE_PURGE_AIR_STATE': ['saline purge air', 'saline bolus air purge'], 'TD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE': ['saline circulate blood', 'saline bolus circulate blood'], 'TD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE': ['reservoir 1 fill complete'], 'TD_PRIME_DIALYSATE_DIALYZER_STATE': ['dialysate dialyzer', 'dialyzer setup'], 'TD_PRIME_SALINE_DIALYZER_SETUP_STATE': ['fill dialyzer with saline bolus', 'saline dialyzer setup'], 'TD_PRIME_SALINE_DIALYZER_STATE': ['saline dialyzer'], 'TD_PRIME_RESERVOIR_TWO_FILL_COMPLETE_STATE': ['reservoir 2 fill complete'], 'TD_PRIME_DIALYSATE_BYPASS_STATE': ['dialysate bypass'], 'TD_PRIME_WET_SELF_TESTS_STATE': ['wet self tests'], 'TD_PRIME_PAUSE': ['prime paused', 'priming paused'], 'TD_PRIME_COMPLETE': ['prime completed', 'priming completed'], 'NUM_OF_TD_PRIME_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_RECIRCULATE_STATE sub states @unique class TDPreTreaRecircStates(DialinEnum): PRE_TREATMENT_RECIRC_STATE = 0 # Pre-treatment recirculate state PRE_TREATMENT_RECIRC_STOPPED_STATE = 1 # Pre-treatment recirculate stopped state NUM_OF_PRE_TREATMENT_RECIRC_STATES = 2 # Number of pre-treatment recirculate states TDPreTreaRecircStates._str_list = { # Official Name : Accepted strings 'PRE_TREATMENT_RECIRC_STATE': ['running'], 'PRE_TREATMENT_RECIRC_STOPPED_STATE': ['stop', 'stopped'], 'NUM_OF_PRE_TREATMENT_RECIRC_STATES': [], } # TDPreTreatmentModesStates.TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE sub states @unique class TDPreTreaPatientConnectStates(DialinEnum): 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 = 1 # Pre-treatment patient connect wait for dialyzer inverted state PRE_TREATMENT_PAT_CONN_WAIT_FOR_USER_CONFIRM_STATE = 2 # Pre-treatment patient connect wait for user confirm state PRE_TREATMENT_PAT_CONN_WAIT_FOR_TREATMENT_START_STATE = 3 # Pre-treatment patient connect wait for treatment start state NUM_OF_PRE_TREATMENT_PAT_CONN_STATES = 4 # Number of pre-treatment patient connect states TDPreTreaPatientConnectStates._str_list = { # Official Name : Accepted strings 'PRE_TREATMENT_PAT_CONN_WAIT_FOR_UF_VOL_STATE': ['ultrafiltration volume', 'uf volume'], 'PRE_TREATMENT_PAT_CONN_WAIT_FOR_DLZR_INVERT_STATE': ['dialyzer invert', 'invert'], 'PRE_TREATMENT_PAT_CONN_WAIT_FOR_USER_CONFIRM_STATE': ['user confirm', 'confirm'], 'PRE_TREATMENT_PAT_CONN_WAIT_FOR_TREATMENT_START_STATE': ['start'], 'NUM_OF_PRE_TREATMENT_PAT_CONN_STATES': [], } # TDTreatmentStates.TREATMENT_BLOOD_PRIME_STATE sub states @unique class TDTreaBloodPrimeStates(DialinEnum): BLOOD_PRIME_RAMP_STATE = 0 # Ramp state of the blood prime sub-mode state machine BLOOD_PRIME_RUN_STATE = 1 # Run state of the blood prime sub-mode state machine BLOOD_PRIME_PAUSED_STATE = 2 # Paused state of the blood prime sub-mode state machine NUM_OF_BLOOD_PRIME_STATES = 3 # Number of blood prime sub-mode states TDTreaBloodPrimeStates._str_list = { # Official Name : Accepted strings 'BLOOD_PRIME_RAMP_STATE': ['ramp', 'ramping'], 'BLOOD_PRIME_RUN_STATE': ['running', 'priming'], 'BLOOD_PRIME_PAUSED_STATE': ['paused'], 'NUM_OF_BLOOD_PRIME_STATES': [], } # TDTreatmentStates.TREATMENT_DIALYSIS_STATE sub states @unique class TDTreaDialysisStates(DialinEnum): DIALYSIS_UF_STATE = 0 # Ultrafiltration state of the dialysis sub-mode state machine DIALYSIS_UF_PAUSED_STATE = 1 # Ultrafiltration Paused state of the dialysis sub-mode state machine NUM_OF_DIALYSIS_STATES = 2 # Number of dialysis sub-mode states TDTreaDialysisStates._str_list = { # Official Name : Accepted strings 'DIALYSIS_UF_STATE': ['ultrafiltration state'], 'DIALYSIS_UF_PAUSED_STATE': ['paused', 'ultrafiltration paused'], 'NUM_OF_DIALYSIS_STATES': [], } # TDTreatmentStates.TREATMENT_PAUSED_STATE sub states @unique class TDTreaPausedStates(DialinEnum): TREATMENT_PAUSED_RECIRC_STATE = 0 # Dialysate and Blood re-circulation state of the treatment paused sub-mode state machine TREATMENT_PAUSED_RECIRC_DIALYSATE_ONLY_STATE = 1 # Re-circulate Dialysate only state of the treatment paused sub-mode state machine TREATMENT_PAUSED_RECIRC_BLOOD_ONLY_STATE = 2 # Re-circulate Blood only state of the treatment paused sub-mode state machine TREATMENT_PAUSED_NO_RECIRC_STATE = 3 # No re-circulation state of the treatment paused sub-mode state machine TREATMENT_PAUSED_RECOVER_BLOOD_DETECT_STATE = 4 # Treatment paused recover blood detect state NUM_OF_TREATMENT_PAUSED_STATES = 5 # Number of treatment paused sub-mode states TDTreaPausedStates._str_list = { # Official Name : Accepted strings 'TREATMENT_PAUSED_RECIRC_STATE': ['recirc'], 'TREATMENT_PAUSED_RECIRC_DIALYSATE_ONLY_STATE': ['recirc dialysate only'], 'TREATMENT_PAUSED_RECIRC_BLOOD_ONLY_STATE': ['recirc blood only'], 'TREATMENT_PAUSED_NO_RECIRC_STATE': ['no recirc'], 'TREATMENT_PAUSED_RECOVER_BLOOD_DETECT_STATE': ['recover blood detect'], 'NUM_OF_TREATMENT_PAUSED_STATES': [], } # TDTreatmentStates.TREATMENT_RINSEBACK_STATE sub states @unique class TDTreaRinsebackStates(DialinEnum): RINSEBACK_STOP_INIT_STATE = 0 # Start state (stopped) of the rinseback sub-mode state machine RINSEBACK_RUN_STATE = 1 # Rinseback running state of the rinseback sub-mode state machine RINSEBACK_PAUSED_STATE = 2 # Rinseback paused state of the rinseback sub-mode state machine RINSEBACK_STOP_STATE = 3 # Rinseback stopped (done) state of the rinseback sub-mode state machine RINSEBACK_RUN_ADDITIONAL_STATE = 4 # Additional rinseback volume (10 mL) state of the rinseback sub-mode state machine RINSEBACK_RECONNECT_PATIENT_STATE = 5 # Rinseback patient reconnect state of the rinseback sub-mode state machine NUM_OF_RINSEBACK_STATES = 6 # Number of rinseback sub-mode states TDTreaRinsebackStates._str_list = { # Official Name : Accepted strings 'RINSEBACK_STOP_INIT_STATE': ['start', 'stop init'], 'RINSEBACK_RUN_STATE': ['run'], 'RINSEBACK_PAUSED_STATE': ['paused'], 'RINSEBACK_STOP_STATE': ['stop'], 'RINSEBACK_RUN_ADDITIONAL_STATE': ['run additional'], 'RINSEBACK_RECONNECT_PATIENT_STATE': ['reconnect patient'], 'NUM_OF_RINSEBACK_STATES': [], } # TDTreatmentStates.TREATMENT_RECIRC_STATE sub states @unique class TDTreaRecircStates(DialinEnum): TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE = 0 # Disconnect patient state of the treatment re-circulate sub-mode state machine TREATMENT_RECIRC_RECIRC_STATE = 1 # Re-circulate Dialysate state of the treatment re-circulate sub-mode state machine TREATMENT_RECIRC_STOPPED_STATE = 2 # Stopped state of the treatment re-circulate sub-mode state machine TREATMENT_RECIRC_RECONNECT_PATIENT_STATE = 3 # Reconnect patient state of the treatment re-circulate sub-mode state machine NUM_OF_TREATMENT_RECIRC_STATES = 4 # Number of treatment re-circulate sub-mode states TDTreaRecircStates._str_list = { # Official Name : Accepted strings 'TREATMENT_RECIRC_DISCONNECT_PATIENT_STATE': ['disconnect patient'], 'TREATMENT_RECIRC_RECIRC_STATE': ['run', 'recirc'], 'TREATMENT_RECIRC_STOPPED_STATE': ['paused', 'stopped'], 'TREATMENT_RECIRC_RECONNECT_PATIENT_STATE': ['reconnect patient'], 'NUM_OF_TREATMENT_RECIRC_STATES': [], } # TDTreatmentStates.TREATMENT_SALINE_BOLUS_STATE sub states @unique class TDTreaBolusStates(DialinEnum): SALINE_BOLUS_STATE_IDLE = 0 # No saline bolus delivery is in progress SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP = 1 # Wait for pumps to stop before starting bolus SALINE_BOLUS_STATE_IN_PROGRESS = 2 # A saline bolus delivery is in progress NUM_OF_SALINE_BOLUS_STATES = 3 # Number of saline bolus states TDTreaBolusStates._str_list = { # Official Name : Accepted strings 'SALINE_BOLUS_STATE_IDLE': ['idle'], 'SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP': ['wait for pumps stop', 'wait for pumps'], 'SALINE_BOLUS_STATE_IN_PROGRESS': ['in progress', 'running'], 'NUM_OF_SALINE_BOLUS_STATES': [], } # TDTreatmentStates. sub states @unique class TDTreaHeparinStates(DialinEnum): HEPARIN_STATE_OFF = 0 # No heparin delivery is in progress HEPARIN_STATE_STOPPED = 1 # Heparin delivery stopped by alarm or not yet started HEPARIN_STATE_PAUSED = 2 # Heparin delivery paused HEPARIN_STATE_INITIAL_BOLUS = 3 # Initial heparin bolus delivery in progress HEPARIN_STATE_DISPENSING = 4 # Gradual heparin dispensing in progress HEPARIN_STATE_COMPLETED = 5 # Heparin delivery stopped due to the set stop time before treatment end HEPARIN_STATE_EMPTY = 6 # Heparin Syringe empty NUM_OF_HEPARIN_STATES = 7 # Number of saline bolus states TDTreaHeparinStates._str_list = { # Official Name : Accepted strings 'DIALYSIS_UF_STATE': ['ultrafiltration state'], 'DIALYSIS_UF_PAUSED_STATE': ['paused', 'ultrafiltration paused'], 'NUM_OF_DIALYSIS_STATES': [], } # TDTreatmentStates.TREATMENT_END_STATE sub states @unique class TDTreaEndStates(DialinEnum): TREATMENT_END_WAIT_FOR_RINSEBACK_STATE = 0 # Wait for rinseback state of the treatment end sub-mode state machine TREATMENT_END_PAUSED_STATE = 1 # Paused state of the treatment end sub-mode state machine NUM_OF_TREATMENT_END_STATES = 2 # Number of treatment end sub-mode states TDTreaEndStates._str_list = { # Official Name : Accepted strings 'TREATMENT_END_WAIT_FOR_RINSEBACK_STATE': ['wait for rinseback'], 'TREATMENT_END_PAUSED_STATE': ['paused'], 'NUM_OF_TREATMENT_END_STATES': [], } # ================================================== Enum Creators: Operations Lvl 4 ================================================== # TDPreTreatmentModesStates.TD_PRE_TREATMENT_WATER_SAMPLE_STATE.SAMPLE_WATER_STATE sub states @unique class TDPreTreaSamplWaterUserActionStates(DialinEnum): 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 = 2 # Number of requested sample water user actions TDPreTreaSamplWaterUserActionStates._str_list = { # Official Name : Accepted strings 'REQUESTED_USER_ACTION_SAMPLE_WATER_STOP': ['stop', 'sample water stop'], 'REQUESTED_USER_ACTION_SAMPLE_WATER_START': ['start', 'sample water start'], 'NUM_OF_REQUESTED_SAMPLE_WATER_USER_ACTIONS': [], } # TDPreTreatmentModesStates.TDPreTreaPrimeStates.TD_PRIME_WET_SELF_TESTS_STATE sub states @unique class TDWetSelfTestsStates(DialinEnum): WET_SELF_TESTS_START_STATE = 0 # Wet self-tests starting state. WET_SELF_TESTS_BUBBLE_CHECK_SETUP_STATE = 1 # Setup for wet air bubble self-test state. WET_SELF_TESTS_BUBBLE_CHECK_STATE = 2 # Wet self-test air bubble detectors state. WET_SELF_TESTS_PRIME_CHECK_STATE = 3 # Prime check wet self-tests state, checks for primed patient lines. WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_DEBUBBLE_STATE = 4 # Blood leak detector debubble state. WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE = 5 # Blood leak detector self-test state. WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE = 6 # Setup valve and start dialysate pump for first displacement. WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE = 7 # Fill reservoir 2 with 100 mL of dialysate from reservoir 1 state. WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE = 8 # After first displacement completed verify state. WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE = 9 # Setup valve and start dialysate pump for second displacement. WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE = 10 # Fill reservoir 1 with 300 mL of dialysate from reservoir 2 state. WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE = 11 # After first displacement completed verify state. WET_SELF_TESTS_STOPPED_STATE = 12 # Wet self-test stopped state. WET_SELF_TESTS_COMPLETE_STATE = 13 # Wet self-test complete state. NUM_OF_WET_SELF_TESTS_STATES = 14 # Number of wet self-tests states. TDWetSelfTestsStates._str_list = { # Official Name : Accepted strings 'WET_SELF_TESTS_START_STATE': ['start'], 'WET_SELF_TESTS_BUBBLE_CHECK_SETUP_STATE': ['bubble check setup', 'air bubble check setup'], 'WET_SELF_TESTS_BUBBLE_CHECK_STATE': ['bubble check', 'air bubble check'], 'WET_SELF_TESTS_PRIME_CHECK_STATE': ['prime check'], 'WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_DEBUBBLE_STATE': ['blood leak detector debubble'], 'WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE': ['blood leak detector'], 'WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE': ['first displacement setup'], 'WET_SELF_TESTS_FIRST_DISPLACEMENT_STATE': ['first displacement', 'first displacement running'], 'WET_SELF_TESTS_FIRST_DISPLACEMENT_VERIFY_STATE': ['first displacement verify'], 'WET_SELF_TESTS_SECOND_DISPLACEMENT_SETUP_STATE': ['second displacement setup'], 'WET_SELF_TESTS_SECOND_DISPLACEMENT_STATE': ['second displacement', 'second displacement running'], 'WET_SELF_TESTS_SECOND_DISPLACEMENT_VERIFY_STATE': ['second displacement verify'], 'WET_SELF_TESTS_STOPPED_STATE': ['stopped', 'paused'], 'WET_SELF_TESTS_COMPLETE_STATE': ['complete', 'done'], 'NUM_OF_WET_SELF_TESTS_STATES': [], } # TDTreatmentStates.TREATMENT_BLOOD_PRIME_STATE.BLOOD_PRIME_RUN_STATE sub states @unique class TDTreaBloodPrimeUserActionStates(DialinEnum): REQUESTED_USER_ACTION_BLOOD_PRIME_PAUSE = 0 # User requests to pause blood prime operation REQUESTED_USER_ACTION_BLOOD_PRIME_RESUME = 1 # User requests to resume blood prime operation NUM_OF_REQUESTED_BLOOD_PRIME_USER_ACTIONS = 2 # Number of requested blood prime user actions TDTreaBloodPrimeUserActionStates._str_list = { # Official Name : Accepted strings 'REQUESTED_USER_ACTION_BLOOD_PRIME_PAUSE': ['stop', 'pause'], 'REQUESTED_USER_ACTION_BLOOD_PRIME_RESUME': ['run', 'resume'], 'NUM_OF_REQUESTED_BLOOD_PRIME_USER_ACTIONS': [], } # TDTreatmentStates.TDTreaRinsebackStates.RINSEBACK_RUN_STATE sub states @unique class TDTreaRinsebackUserActionStates(DialinEnum): 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 = 10 # Number of requested rinseback user actions TDTreaRinsebackUserActionStates._str_list = { # Official Name : Accepted strings 'REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_START': ['start', 'confirm start'], 'REQUESTED_USER_ACTION_RINSEBACK_INCREASE_RATE': ['increase rate', 'increase rinseback flow rate'], 'REQUESTED_USER_ACTION_RINSEBACK_DECREASE_RATE': ['decrease rate', 'decrease rinseback flow rate'], 'REQUESTED_USER_ACTION_RINSEBACK_PAUSE': ['pause', 'paused'], 'REQUESTED_USER_ACTION_RINSEBACK_RESUME': ['resume', 'resume rinseback'], 'REQUESTED_USER_ACTION_RINSEBACK_END': ['end', 'end rinseback'], 'REQUESTED_USER_ACTION_RINSEBACK_ADDITIONAL': ['additional rinseback', 'additional 10ml', 'extra 10ml'], 'REQUESTED_USER_ACTION_RINSEBACK_CONFIRM_DISCONNECT': ['confirm disconnect', 'confirm patient disconnect'], 'REQUESTED_USER_ACTION_RINSEBACK_END_TREATMENT': ['end treatment'], 'REQUESTED_USER_ACTION_RINSEBACK_BACK_TO_TREATMENT': ['back to treatment'], 'NUM_OF_REQUESTED_RINSEBACK_USER_ACTIONS': [], } # TDTreatmentStates.TDTreaRinsebackStates.RINSEBACK_RUN_STATE sub states @unique class TDTreaRecircUserActionStates(DialinEnum): 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 = 5 # Number of requested treatment re-circ user actions TDTreaRecircUserActionStates._str_list = { # Official Name : Accepted strings 'REQUESTED_USER_ACTION_TX_RECIRC_RECONNECT': ['reconnect to system'], 'REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_RECONNECT': ['confirm patient reconnect'], 'REQUESTED_USER_ACTION_TX_RECIRC_RESUME_RC': ['resume', 'resume recirculation'], 'REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT': ['end treatment', 'request end treatment'], 'REQUESTED_USER_ACTION_TX_RECIRC_CONFIRM_DISCONNECT': ['confirm patient disconnect'], 'NUM_OF_REQUESTED_TX_RECIRC_USER_ACTIONS': [], } # TDTreatmentStates.TDTreaRinsebackStates.RINSEBACK_RUN_STATE sub states @unique class TDTreaEndUserActionStates(DialinEnum): REQUESTED_USER_ACTION_TX_END_RINSEBACK_START = 0 # User requests to re-connect to system (stop re-circulating, clamp arterial and venous lines) NUM_OF_REQUESTED_TX_END_USER_ACTIONS = 1 # Number of requested treatment re-circ user actions TDTreaEndUserActionStates._str_list = { # Official Name : Accepted strings 'REQUESTED_USER_ACTION_TX_END_RINSEBACK_START': ['start', 'end rinseback start'], 'NUM_OF_REQUESTED_TX_END_USER_ACTIONS': [], } # ================================================== Enum Creators: Events ================================================== @unique class TDEventList(DialinEnum): TD_EVENT_STARTUP = 0 # TD startup event TD_EVENT_OP_MODE_CHANGE = 1 # TD Op mode change event TD_EVENT_SUB_MODE_CHANGE = 2 # TD Op sub-mode change event TD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT = 3 # TD dry self test cartridge result TD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT = 4 # TD dry self test pressure result TD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT = 5 # TD wet self test displacement result TD_EVENT_CPU_RAM_ERROR_STATUS = 6 # TD CPU RAM error status TD_EVENT_CAL_RECORD_UPDATE = 7 # TD new calibration record updated TD_EVENT_SYSTEM_RECORD_UPDATE = 8 # TD new system record has been updated TD_EVENT_SERVICE_UPDATE = 9 # TD new service record has been updated TD_EVENT_USAGE_INFO_UPDATE = 10 # TD new usage information has been updated TD_EVENT_SW_CONFIG_UPDATE = 11 # TD new software configuration has been updated TD_EVENT_BUTTON = 12 # TD button pressed/released TD_EVENT_SAFETY_LINE = 13 # TD safety line pulled/released TD_EVENT_SUB_STATE_CHANGE = 14 # TD Op sub-state change event TD_EVENT_RSRVR_UF_RATE = 15 # TD ultrafiltration measured and expected rates TD_EVENT_OPERATION_STATUS = 16 # TD operation status event. TD_EVENT_AIR_TRAP_FILL = 17 # TD initiated an air trap fill (opened VBT briefly). TD_EVENT_AIR_TRAP_LOWER = 18 # TD started/stopped an air trap lower level operation TD_EVENT_AIR_PUMP_ON_OFF = 19 # TD turned air pump on or off. TD_EVENT_DRY_SELF_TEST_PRESSURE_DECAY_WAIT_PERIOD = 20 # TD dry self test pressure decay wait period TD_EVENT_INSTIT_RECORD_UPDATE = 21 # TD new institutional record has been updated. TD_EVENT_VALVE_POS_CHANGE = 22 # TD pinch valve position change TD_EVENT_VALVE_HOMED_POS_SETTING = 23 # TD pinch valve homed encoder positions for A/B/C NUM_OF_EVENT_IDS = 24 # Total number of TD events TDEventList._str_list = { # Official Name : Accepted strings 'TD_EVENT_STARTUP': ['startup'], 'TD_EVENT_OP_MODE_CHANGE': ['op mode change', 'operation mode change'], 'TD_EVENT_SUB_MODE_CHANGE': ['sub mode change'], 'TD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT': ['dry self test cartridge result'], 'TD_EVENT_DRY_SELF_TEST_PRESSURE_RESULT': ['dry self test pressure result'], 'TD_EVENT_WET_SELF_TEST_DISPLACEMENT_RESULT': ['wet self test displacement result'], 'TD_EVENT_CPU_RAM_ERROR_STATUS': ['cpu ram error'], 'TD_EVENT_CAL_RECORD_UPDATE': ['cal record update', 'calibration record update'], 'TD_EVENT_SYSTEM_RECORD_UPDATE': ['system record update'], 'TD_EVENT_SERVICE_UPDATE': ['service update', 'service record update'], 'TD_EVENT_USAGE_INFO_UPDATE': ['usage info update'], 'TD_EVENT_SW_CONFIG_UPDATE': ['sw config update', 'software config update'], 'TD_EVENT_BUTTON': ['button', 'button press', 'button release'], 'TD_EVENT_SAFETY_LINE': ['safety line'], 'TD_EVENT_SUB_STATE_CHANGE': ['sub state change'], 'TD_EVENT_RSRVR_UF_RATE': ['rsrvr uf rate', 'ultrafiltration rate change'], 'TD_EVENT_OPERATION_STATUS': ['operation status'], 'TD_EVENT_AIR_TRAP_FILL': ['air trap fill'], 'TD_EVENT_AIR_TRAP_LOWER': ['air trap lower'], 'TD_EVENT_AIR_PUMP_ON_OFF': ['air pump', 'air pump on', 'air pump off'], 'TD_EVENT_DRY_SELF_TEST_PRESSURE_DECAY_WAIT_PERIOD': ['dry self test pressure decay wait period'], 'TD_EVENT_INSTIT_RECORD_UPDATE': ['instit record update', 'institutional record update'], 'TD_EVENT_VALVE_POS_CHANGE': ['valve position change', 'valve pos change'], 'TD_EVENT_VALVE_HOMED_POS_SETTING': ['valve homed to positions'], 'NUM_OF_EVENT_IDS': [], } @unique class TDEventDataTypes(DialinEnum): EVENT_DATA_TYPE_NONE = 0 # No Event Data Type EVENT_DATA_TYPE_U32 = 1 # Unsigned 32bit Event Data Type EVENT_DATA_TYPE_S32 = 2 # Signed 32bit Event Data Type EVENT_DATA_TYPE_F32 = 3 # Float 32bit Event Data Type EVENT_DATA_TYPE_BOOL = 4 # Boolean Event Data Type NUM_OF_EVENT_DATA_TYPES = 5 # Number of Event Data Types TDEventDataTypes._str_list = { # Official Name : Accepted strings 'EVENT_DATA_TYPE_NONE': ['none'], 'EVENT_DATA_TYPE_U32': ['u32'], 'EVENT_DATA_TYPE_S32': ['s32'], 'EVENT_DATA_TYPE_F32': ['f32'], 'EVENT_DATA_TYPE_BOOL': ['bool', 'boolean'], 'NUM_OF_EVENT_DATA_TYPES': [], } # ================================================== Enum Creators: Names ================================================== @unique class TDAirPumpNames(DialinEnum): H12_AIR_PUMP = 0 # TD Air Pump NUM_OF_AIR_PUMPS = 1 # Number of TD Air pumps TDAirPumpNames._str_list = { # Official Name : Accepted strings 'H12_AIR_PUMP': ['h12', 'air pump'], 'NUM_OF_AIR_PUMPS': [], } @unique class TDAirTrapValveNames(DialinEnum): H13_VALV = 0 # Air trap intake valve H20_VALV = 1 # Air trap outlet valve NUM_OF_AIR_TRAP_VALVES = 2 # Number of Air Trap Valves TDAirTrapValveNames._str_list = { # Official Name : Accepted strings 'H13_VALV': ['h13', 'intake', 'in'], 'H20_VALV': ['h20', 'outlet', 'out'], 'NUM_OF_AIR_TRAP_VALVES': [], } @unique class TDAirTrapLevelSensorNames(DialinEnum): H17_LEVEL = 0 # Lower Level Sensor H16_LEVEL = 1 # Upper Level Sensor NUM_OF_AIR_TRAP_LEVEL_SENSORS = 2 # Number of TD Air Trap Level Sensors TDAirTrapLevelSensorNames._str_list = { # Official Name : Accepted strings 'H17_LEVEL': ['h17', 'lower sensor', 'lower'], 'H16_LEVEL': ['h16', 'upper sensor', 'upper'], 'NUM_OF_AIR_TRAP_LEVEL_SENSORS': [], } @unique class TDAirBubbleDetectorNames(DialinEnum): H18_ADV = 0 # H18 Air Bubble Detector Venous NUM_OF_AIR_BUBBLE_DETECTORS = 1 # Number of Air Bubble Detectors TDAirBubbleDetectorNames._str_list = { # Official Name : Accepted strings 'H18_ADV': ['h18', 'bubble detector'], 'NUM_OF_AIR_BUBBLE_DETECTORS': [], } @unique class TDEjectorNames(DialinEnum): H5_MOTOR = 0 # TD Ejector Motor NUM_OF_EJECTOR_MOTORS = 1 # Number of Ejector Motors TDEjectorNames._str_list = { # Official Name : Accepted strings 'H5_MOTOR': ['h5', 'ejector'], 'NUM_OF_EJECTOR_MOTORS': [], } @unique class TDPressureSensorNames(DialinEnum): H2_PRES = 0 # Arterial Pressure Sensor H14_PRES = 1 # Venous Pressure Sensor H23_PRES = 2 # Barometric Pressure Sensor NUM_OF_PRESSURE_SENSORS = 3 # Number of Pressure Sensors TDPressureSensorNames._str_list = { # Official Name : Accepted strings 'H2_PRES': ['h2'], 'H14_PRES': ['h14'], 'H23_PRES': ['h23'], 'NUM_OF_PRESSURE_SENSORS': [], } @unique class TDTemperatureSensorNames(DialinEnum): H23_TEMP = 0 # Barometric temperature Sensor NUM_OF_TEMPERATURE_SENSORS = 1 # Number of temperature Sensors TDTemperatureSensorNames._str_list = { # Official Name : Accepted strings 'H23_TEMP': ['h23'], 'NUM_OF_TEMPERATURE_SENSORS': [], } @unique class TDSwitchNames(DialinEnum): H9_FRONT_DOOR = 0 # Front Door Switch for TD NUM_OF_DOORS_AND_SWITCHES = 1 # Number of Doors and Switches TDSwitchNames._str_list = { # Official Name : Accepted strings 'H9_FRONT_DOOR': ['h9', 'front door', 'door'], 'NUM_OF_DOORS_AND_SWITCHES': [], } @unique class TDValveNames(DialinEnum): H1_VALV = 0 # H1 Valve for TD H19_VALV = 1 # H19 Valve for TD NUM_OF_TD_VALVES = 2 # Number of Valves for the TD TDValveNames._str_list = { # Official Name : Accepted strings 'H1_VALV': ['h1'], 'H19_VALV': ['h19'], 'NUM_OF_TD_VALVES': [], } @unique class TDMonitoredVoltages(DialinEnum): MONITORED_LINE_1_2V = 0 # Processor voltage (1.2V) MONITORED_LINE_3_3V = 1 # Logic voltage (3.3V) MONITORED_LINE_5V_LOGIC = 2 # Logic voltage (5V) MONITORED_LINE_5V_SENSORS = 3 # Sensors voltage (5V) MONITORED_LINE_24V = 4 # Actuators voltage (24V) MONITORED_LINE_24V_REGEN = 5 # Actuators regen voltage (24V) MONITORED_LINE_FPGA_REF_V = 6 # FPGA ADC reference voltage (1V) MONITORED_LINE_PBA_REF_V = 7 # PBA ADC reference voltage (3V) MONITORED_LINE_FPGA_VCC_V = 8 # FPGA Vcc (3V) MONITORED_LINE_FPGA_AUX_V = 9 # FPGA Vaux (3V) MONITORED_LINE_FPGA_PVN_V = 10 # FPGA Vpvn (1V) NUM_OF_MONITORED_VOLTAGE_LINES = 11 # Number of TD operation modes TDMonitoredVoltages._str_list = { # Official Name : Accepted strings 'MONITORED_LINE_1_2V': ['1.2v'], 'MONITORED_LINE_3_3V': ['3.3v'], 'MONITORED_LINE_5V_LOGIC': ['5v logic'], 'MONITORED_LINE_5V_SENSORS': ['5v sensor'], 'MONITORED_LINE_24V': ['24v'], 'MONITORED_LINE_24V_REGEN': ['24v regen'], 'MONITORED_LINE_FPGA_REF_V': ['fpga ref'], 'MONITORED_LINE_PBA_REF_V': ['pba ref'], 'MONITORED_LINE_FPGA_VCC_V': ['fpga vcc'], 'MONITORED_LINE_FPGA_AUX_V': ['fpga aux'], 'MONITORED_LINE_FPGA_PVN_V': ['fpga pvn'], 'NUM_OF_MONITORED_VOLTAGE_LINES': [], } # ================================================== Enum Creators: Support ================================================== @unique class TDAirPumpAttributes(DialinEnum): STATE = 0 # TD Air Pump State to command attribute DUTY_CYCLE = 1 # TD Air Pump Duty Cycle attribute RPM = 2 # TD Air Pump RPM attribute # TODO remove after feature validation FPGA_RPM = 3 # TD Air Pump FPGA_RPM attribute #TODO remove after feature validation SCALAR_POWER = 4 # TD Air Pump scalar power NUM_OF_AIR_PUMP_ATTRIBUTES = 5 # Number of Air Pump attributes TDAirPumpAttributes._str_list = { # Official Name : Accepted strings 'STATE': [], 'DUTY_CYCLE': [], 'RPM': [], # TODO remove after feature validation 'FPGA_RPM': [], # TODO remove after feature validation 'SCALAR_POWER': [], 'NUM_OF_AIR_PUMP_ATTRIBUTES': [], } @unique class TDAirTrapLevelSensorAttributes(DialinEnum): LEVEL = 0 # Level attribute for Air Trap Level Sensor RAW = 1 # Raw reading attribute for Air Trap Level Sensor NUM_OF_AIR_TRAP_LEVEL_SENSOR_ATTRIBUTES = 2 # Number of Air Trap Level Sensor attributes TDAirTrapLevelSensorAttributes._str_list = { # Official Name : Accepted strings 'LEVEL': [], 'RAW': [], 'NUM_OF_AIR_TRAP_LEVEL_SENSOR_ATTRIBUTES': [], } @unique class TDAirTrapState(DialinEnum): STATE_CLOSED = 0 # Closed state for Air Trap STATE_OPEN = 1 # Open state for Air Trap NUM_OF_AIR_TRAP_STATES = 2 # Number of Air Trap States TDAirTrapState._str_list = { # Official Name : Accepted strings 'STATE_CLOSED': ['closed', 'close'], 'STATE_OPEN': ['opened', 'open'], 'NUM_OF_AIR_TRAP_STATES': [], } @unique class TDBloodFlowMotorAttributes(DialinEnum): SET_BLOOD_FLOW_RATE = 0 # Set Blood Flow Rate for Blood Flow Motor MEASURED_BLOOD_FLOW_RATE = 1 # Measured Blood Flow Rate for Blood Flow Motor MEASURED_BLOOD_PUMP_ROTOR_SPEED = 2 # Measured Bloop Pump Rotor Speed for Blood Flow Motor MEASURED_BLOOD_PUMP_SPEED = 3 # Measured Blood Pump Speed for Blood Flow Motor MEASURED_BLOOD_PUMP_TORQUE = 4 # Measured Blood Pump torque SET_RPM = 5 # Set Revolutions per minute for Blood Flow Motor ROTOR_COUNT = 6 # Rotor Count for Blood Flow Motor PRES_BLOOD_FLOW_RATE = 7 # Pressure Blood Flow Rate for Blood Flow Motor ROTOR_HALL_STATE = 8 # Rotor Hall State for Blood Flow Motor NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES = 9 # Number of Blood Flow Motor Attributes TDBloodFlowMotorAttributes._str_list = { # Official Name : Accepted strings 'SET_BLOOD_FLOW_RATE': ['set flow rate'], 'MEASURED_BLOOD_FLOW_RATE': ['measured flow rate'], 'MEASURED_BLOOD_PUMP_ROTOR_SPEED': ['measured rpm', 'measured rotor speed'], 'MEASURED_BLOOD_PUMP_SPEED': ['measured speed'], 'MEASURED_BLOOD_PUMP_TORQUE': ['measured torque'], 'SET_RPM': ['set rotor speed'], 'ROTOR_COUNT': [], 'PRES_BLOOD_FLOW_RATE': ['pressure blood flow rate'], 'ROTOR_HALL_STATE': [], 'NUM_OF_BLOOD_FLOW_MOTOR_ATTRIBUTES': [], } @unique class TDAirBubbleDetectorAttributes(DialinEnum): STATUS = 0 # Status of the Air Bubble Detector STATE = 1 # State of the Air Bubble Detector NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES = 2 # Number of Air Bubble Detector Attributes TDAirBubbleDetectorAttributes._str_list = { # Official Name : Accepted strings 'STATUS': [], 'STATE': [], 'NUM_OF_AIR_BUBBLE_DETECTOR_ATTRIBUTES': [], } @unique class TDEjectorAttributes(DialinEnum): STATE = 0 # Ejector State to command SET_SPEED = 1 # Ejector Set Speed OPT_SNSR_RETRACT = 2 # Ejector optical sensor retract OPT_SNSR_ENGAGE = 3 # Ejector optical sensor engage NUM_OF_EJECTOR_ATTRIBUTES = 4 # Number of Ejector Attributes TDEjectorAttributes._str_list = { # Official Name : Accepted strings 'STATE': [], 'SET_SPEED': ['speed'], 'OPT_SNSR_RETRACT': ['retract', 'optical sensor retract'], 'OPT_SNSR_ENGAGE': ['engage', 'optical sensor engage'], 'NUM_OF_EJECTOR_ATTRIBUTES': [], } @unique class TDEjectorStates(DialinEnum): EJECTOR_STATE_INIT = 0 # Ejector Initial (un-homed) state EJECTOR_STATE_HOMING = 1 # Ejector Homing state EJECTOR_STATE_RETRACTED = 2 # Ejector Retracted state EJECTOR_STATE_EXTENDED = 3 # Ejector Extended state EJECTOR_STATE_RETRACTING = 4 # Ejector Retracting state EJECTOR_STATE_EXTENDING = 5 # Ejector Extending state EJECTOR_STATE_DIR_CHANGE_STOP = 6 # Ejector Direction Change Stop state EJECTOR_STATE_RETRACT_BACKOFF = 7 # Ejector Backing Off Retracted state EJECTOR_STATE_ABORT = 8 # Ejector abort state NUM_OF_EJECTOR_STATES = 9 # Number of ejector states TDEjectorStates._str_list = { # Official Name : Accepted strings 'EJECTOR_STATE_INIT': ['init'], 'EJECTOR_STATE_HOMING': ['homing'], 'EJECTOR_STATE_RETRACTED': ['retracted'], 'EJECTOR_STATE_EXTENDED': ['extended'], 'EJECTOR_STATE_RETRACTING': ['retracting'], 'EJECTOR_STATE_EXTENDING': ['extending'], 'EJECTOR_STATE_DIR_CHANGE_STOP': ['dir chage stop', 'direction change stop'], 'EJECTOR_STATE_RETRACT_BACKOFF': ['retract backoff', 'backing off'], 'EJECTOR_STATE_ABORT': ['abort'], 'NUM_OF_EJECTOR_STATES': [], } @unique class TDPressureSensorAttributes(DialinEnum): PRES = 0 # Pressure attribute of pressure sensor LONG_FILTERED_PRESSURE = 1 # Long Filtered Pressure attribute of pressure sensor PRES_LIMIT_MIN = 2 # Pressure Minimum Limit attribute of pressure sensor PRES_LIMIT_MAX = 3 # Pressure Maximum Limit attribute of pressure sensor NUM_OF_PRESSURE_ATTRIBUTES = 4 # Number of Pressure Sensor Attributes TDPressureSensorAttributes._str_list = { # Official Name : Accepted strings 'PRES': ['pressure'], 'LONG_FILTERED_PRESSURE': ['filtered pressure'], 'PRES_LIMIT_MIN': ['min', 'min pressure limit', 'min limit'], 'PRES_LIMIT_MAX': ['max', 'max pressure limit', 'max limit'], 'NUM_OF_PRESSURE_ATTRIBUTES': [], } @unique class TDSwitchStatus(DialinEnum): CLOSED = 0 # Closed State of the TD Switch OPEN = 1 # Open State of the TD Switch NUM_OF_SWITCH_STATES = 2 # Number of Switch States TDSwitchStatus._str_list = { # Official Name : Accepted strings 'CLOSED': [], 'OPEN': [], 'NUM_OF_SWITCH_STATES': [], } @unique class TDValvePositions(DialinEnum): VALVE_POSITION_NOT_IN_POSITION = 0 # Valve not in Position VALVE_POSITION_A_INSERT_EJECT = 1 # Insert/Eject Valve Position VALVE_POSITION_B_OPEN = 2 # Open Valve Position VALVE_POSITION_C_CLOSE = 3 # Closed Valve Position VALVE_POSITION_C_PARTIAL_CLOSE = 4 # Partial Close Valve Position TDValvePositions._str_list = { # Official Name : Accepted strings 'VALVE_POSITION_NOT_IN_POSITION': ['not in position'], 'VALVE_POSITION_A_INSERT_EJECT': ['a', 'insert/eject', 'insert', 'eject'], 'VALVE_POSITION_B_OPEN': ['b', 'open'], 'VALVE_POSITION_C_CLOSE': ['c', 'close', 'closed'], 'VALVE_POSITION_C_PARTIAL_CLOSE': [], } @unique class TDValveStates(DialinEnum): VALVE_STATE_WAIT_FOR_POST = 0 # Waiting for POST Valve State VALVE_STATE_RESET_VALVE = 1 # Valve state reset valve. VALVE_STATE_RESET_ENCODER = 2 # Valve state reset encoder. VALVE_STATE_ENABLE_VALVE = 3 # Valve state enable valve. VALVE_STATE_HOMING_NOT_STARTED = 4 # Valve state homing not started. VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE = 5 # Valve state homing find energized edge. VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE = 6 # Valve state homing find. VALVE_STATE_IDLE = 7 # Idle Valve State. VALVE_STATE_IN_TRANSITION = 8 # Valve state in transition. TDValveStates._str_list = { # Official Name : Accepted strings 'VALVE_STATE_WAIT_FOR_POST': ['wait', 'wait for post'], 'VALVE_STATE_RESET_VALVE': ['reset valve'], 'VALVE_STATE_RESET_ENCODER': ['reset encoder'], 'VALVE_STATE_ENABLE_VALVE': ['enable', 'enable valve'], 'VALVE_STATE_HOMING_NOT_STARTED': ['homing not started', 'not started'], 'VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE': ['homing find energized edge'], 'VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE': ['homing find deenergized edge'], 'VALVE_STATE_IDLE': ['idle'], 'VALVE_STATE_IN_TRANSITION': [], } @unique class TDTreatmentParameters(DialinEnum): TREATMENT_PARAM_BLOOD_FLOW = 0 # Blood flow rate (in mL/min) TREATMENT_PARAM_DIALYSATE_FLOW = 1 # Dialysate flow rate (in mL/min) TREATMENT_PARAM_TREATMENT_DURATION = 2 # Treatment duration (in minutes) TREATMENT_PARAM_SALINE_BOLUS_VOLUME = 3 # Saline bolus volume (in mL) TREATMENT_PARAM_HEPARIN_STOP_TIME = 4 # Heparin stop time (in minutes) TREATMENT_PARAM_HEPARIN_TYPE = 5 # Heparin type (enum) TREATMENT_PARAM_ACID_CONCENTRATE = 6 # Acid concentrate type (enum) TREATMENT_PARAM_BICARB_CONCENTRATE = 7 # Bicarbonate concentrate type (enum) TREATMENT_PARAM_DIALYZER_TYPE = 8 # Dialysate type (enum) TREATMENT_PARAM_BP_MEAS_INTERVAL = 9 # Blood pressure measurement interval (in minutes) TREATMENT_PARAM_RINSEBACK_FLOW_RATE = 10 # Rinseback flow rate (in mL/min) TREATMENT_PARAM_RINSEBACK_VOLUME = 11 # Rinseback volume (in mL) TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW = 12 # Arterial pressure alarm limit window (in mmHg) TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW = 13 # Venous pressure alarm limit window (in mmHg) TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC = 14 # Venous pressure alarm limit asymmetric (in mmHg) TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW = 15 # TMP alarm limit window (in mmHg) TREATMENT_PARAM_DIALYSATE_TEMPERATURE = 16 # Dialysate temperature (in degC) TREATMENT_PARAM_HEPARIN_DISPENSE_RATE = 17 # Heparin dispense rate (in mL/hr) TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME = 18 # Heparin bolus volume (in mL) TREATMENT_PARAM_UF_VOLUME = 19 # Ultrafiltration volume (in liters) - provided separately by UI NUM_OF_TREATMENT_PARAMS = 20 # Total number of treatment parameters TDTreatmentParameters._str_list = { # Official Name : Accepted strings 'TREATMENT_PARAM_BLOOD_FLOW': ['blood flow', 'blood flow rate'], 'TREATMENT_PARAM_DIALYSATE_FLOW': ['sialysate flow', 'dialysate flow rate'], 'TREATMENT_PARAM_TREATMENT_DURATION': ['treatment duration'], 'TREATMENT_PARAM_SALINE_BOLUS_VOLUME': ['saline bolus volume'], 'TREATMENT_PARAM_HEPARIN_STOP_TIME': ['heparin stop time'], 'TREATMENT_PARAM_HEPARIN_TYPE': ['heparin', 'heparin type'], 'TREATMENT_PARAM_ACID_CONCENTRATE': ['acid', 'acid concentrate'], 'TREATMENT_PARAM_BICARB_CONCENTRATE': ['bicarb', 'bicarb concentrate'], 'TREATMENT_PARAM_DIALYZER_TYPE': ['dialyzer', 'dialyzer type'], 'TREATMENT_PARAM_BP_MEAS_INTERVAL': ['blood pressure measure interval', 'bp measure interval'], 'TREATMENT_PARAM_RINSEBACK_FLOW_RATE': ['rinseback flow rate'], 'TREATMENT_PARAM_RINSEBACK_VOLUME': ['rinseback volume'], 'TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW': ['arterial pressure limit window'], 'TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW': ['venous pressure limit window'], 'TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC': ['venous asymmetric pressure limit'], 'TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW': ['tmp pres limit window'], 'TREATMENT_PARAM_DIALYSATE_TEMPERATURE': ['dialysate temperature'], 'TREATMENT_PARAM_HEPARIN_DISPENSE_RATE': ['heparin dispense rate'], 'TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME': ['heparin volume'], 'TREATMENT_PARAM_UF_VOLUME': ['uf volume', 'ultrafiltration volume'], 'NUM_OF_TREATMENT_PARAMS': [], }