Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r3f6c0e94db8379f00cb7fbc91daa189d6b06f379 -r3ca042a93b178bc02327efec6cf08dd2348f9a8e --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 3f6c0e94db8379f00cb7fbc91daa189d6b06f379) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 3ca042a93b178bc02327efec6cf08dd2348f9a8e) @@ -19,7 +19,7 @@ from ..utils.base import DialinEnum -# ================================================== Enum Creators: Operations ================================================== +# ================================================== Enum Creators: Operations Lvl 1 ================================================== @unique class TDOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode @@ -46,6 +46,8 @@ } +# ================================================== Enum Creators: Operations Lvl 2 ================================================== +# TDOpModes.MODE_FAUL sub states @unique class TDFaultStates(DialinEnum): TD_FAULT_DEENERGIZED_STATE = 0 # TD Fault De-energized State @@ -60,6 +62,7 @@ } +# TDOpModes.MODE_SERV sub states @unique class TDServiceStates(DialinEnum): TD_SERVICE_STATE_START = 0 # Start service mode state @@ -72,6 +75,7 @@ } +# TDOpModes.MODE_INIT sub states @unique class TDInitStates(DialinEnum): POST_STATE_START = 0 # Start initialize & POST mode state @@ -120,6 +124,7 @@ } +# TDOpModes.MODE_STAN sub states @unique class TDStandbyStates(DialinEnum): STANDBY_START_STATE = 0 # Start standby (home actuators). @@ -142,6 +147,7 @@ } +# 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 @@ -156,6 +162,7 @@ } +# TDOpModes.MODE_PRET sub states @unique class TDPreTreatmentModesStates(DialinEnum): TD_PRE_TREATMENT_WATER_SAMPLE_STATE = 0 # Water sample state @@ -165,8 +172,9 @@ 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_PATIENT_CONNECTION_STATE = 7 # Patient connection state - NUM_OF_TD_PRE_TREATMENT_STATES = 8 # Number of pre-treatment mode states + 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 @@ -177,11 +185,13 @@ '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 @@ -212,11 +222,12 @@ } +# 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_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 @@ -230,6 +241,7 @@ } +# TDOpModes.MODE_NLEG sub states @unique class TDNotLegalStates(DialinEnum): NUM_OF_NOT_LEGAL_STATES = 0 # Number of Not Legal states @@ -241,6 +253,478 @@ +# ================================================== 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_TUBE_SET_AUTHENTICATION_STATE = 4 # Tube set authentication state + DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE = 5 # Syringe pump seek state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE = 6 # Pressure sensor normal setup state + DRY_SELF_TESTS_PRESSURE_VENOUS_SETUP_STATE = 7 # Venous pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_VENOUS_PRESSURE_STABILIZATION_STATE = 8 # Venous pressure verify pressure stability state + DRY_SELF_TESTS_VENOUS_PRESSURE_LEAK_CHECK_STATE = 9 # Venous pressure leak check state + DRY_SELF_TESTS_VENOUS_PRESSURE_RELIEF_STATE = 10 # Venous pressure relief state + DRY_SELF_TESTS_PRESSURE_ARTERIAL_SETUP_STATE = 11 # Arterial pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_STABILIZATION_STATE = 12 # Arterial pressure verify pressure stability state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_LEAK_CHECK_STATE = 13 # Arterial pressure leak check state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_RELIEF_STATE = 14 # Arterial pressure relief state + DRY_SELF_TESTS_SYRINGE_PRIME_STATE = 15 # Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_CHECK_STATE = 16 # Occlusion detection state + DRY_SELF_TESTS_COMPLETE_STATE = 17 # Dry self-test complete state + DRY_SELF_TESTS_STOPPED_STATE = 18 # Dry self-test stopped state + NUM_OF_DRY_SELF_TESTS_STATES = 19 # 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_TUBE_SET_AUTHENTICATION_STATE': ['tube set authentication', 'tube authentication'], + '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_VENOUS_SETUP_STATE': ['pressure venous setup', 'venous setup'], + 'DRY_SELF_TESTS_VENOUS_PRESSURE_STABILIZATION_STATE': ['venous pressure stabilization'], + 'DRY_SELF_TESTS_VENOUS_PRESSURE_LEAK_CHECK_STATE': ['venous pressure leak check'], + 'DRY_SELF_TESTS_VENOUS_PRESSURE_RELIEF_STATE': ['venous pressure relief'], + 'DRY_SELF_TESTS_PRESSURE_ARTERIAL_SETUP_STATE': ['pressure arterial setup', 'arterial setup'], + 'DRY_SELF_TESTS_ARTERIAL_PRESSURE_STABILIZATION_STATE': ['arterial pressure stabilization'], + 'DRY_SELF_TESTS_ARTERIAL_PRESSURE_LEAK_CHECK_STATE': ['arterial pressure leak check'], + 'DRY_SELF_TESTS_ARTERIAL_PRESSURE_RELIEF_STATE': ['arterial pressure relief'], + 'DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE': ['presusre normal', 'pressure readings'], + 'DRY_SELF_TESTS_SYRINGE_PRIME_STATE': ['srynge prime'], + 'DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_CHECK_STATE': ['srynge pump occlusion check', 'srynge pump check'], + 'DRY_SELF_TESTS_COMPLETE_STATE': ['complete', 'done'], + 'DRY_SELF_TESTS_STOPPED_STATE': ['stop'], + '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): @@ -321,108 +805,6 @@ -# ================================================== Enum Creators: Operations Sub-Modes ================================================== -@unique -class TDPreTreatmentPrimeStates(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 - -TDPreTreatmentPrimeStates._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 sekf tests'], - 'TD_PRIME_PAUSE': ['prime paused', 'priming paused'], - 'TD_PRIME_COMPLETE': ['prime completed', 'priming completed'], - 'NUM_OF_TD_PRIME_STATES': [], -} - - -@unique -class TDDialysisStates(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 - -TDDialysisStates._str_list = { - # Official Name : Accepted strings - 'DIALYSIS_UF_STATE': ['ultrafiltration state'], - 'DIALYSIS_UF_PAUSED_STATE': ['paused', 'ultrafiltration paused'], - 'NUM_OF_DIALYSIS_STATES': [], -} - - -@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': [], -} - - - # ================================================== Enum Creators: Names ================================================== @unique class TDAirPumpNames(DialinEnum): @@ -689,6 +1071,34 @@ @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 @@ -762,3 +1172,53 @@ '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': [], +}