Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -r20c821bd230fc7689a0275a2918981669ff5cc19 -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision 20c821bd230fc7689a0275a2918981669ff5cc19) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -19,7 +19,7 @@ from ..utils.base import DialinEnum -# ================================================== Enum Creators: Operations ================================================== +# ================================================== Enum Creators: Operations Lvl 1 ================================================== @unique class DDOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode @@ -52,6 +52,8 @@ } +# ================================================== Enum Creators: Operations Lvl 2 ================================================== +# DDOpModes.MODE_FAUL sub states @unique class DDFaultStates(DialinEnum): DD_FAULT_STATE_START = 0 # DD Fault Start State @@ -68,23 +70,8 @@ } +# DDOpModes.MODE_SERV sub states @unique -class DDFaultNVDataStates(DialinEnum): - DD_FAULT_STATE_START = 0 # DD fault start state - DD_FAULT_STATE_RUN_NV_POSTS = 1 # DD fault run RTC and NV data management post - DD_FAULT_STATE_COMPLETE = 2 # DD fault complete - NUM_OF_DD_FAULT_NVDATA_STATES = 3 # Number of fault mode NV Data management states - -DDFaultNVDataStates._str_list = { - # Official Name : Accepted strings - 'DD_FAULT_STATE_START': ['start'], - 'DD_FAULT_STATE_RUN_NV_POSTS': ['running'], - 'DD_FAULT_STATE_COMPLETE': ['complete', 'done'], - 'NUM_OF_DD_FAULT_NVDATA_STATES': [], -} - - -@unique class DDServiceStates(DialinEnum): DD_SERVICE_STATE_START = 0 # Start service mode state NUM_OF_DD_SERVICE_STATES = 1 # Number of service mode states @@ -96,6 +83,7 @@ } +# DDOpModes.MODE_INIT sub states @unique class DDInitStates(DialinEnum): DD_POST_STATE_START = 0 # Post Generate Dialysate Start State @@ -134,6 +122,7 @@ } +# DDOpModes.MODE_STAN sub states @unique class DDStandbyStates(DialinEnum): DD_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state @@ -148,12 +137,14 @@ } +# DDOpModes.MODE_PREG sub states @unique class DDPreGenDialysateStates(DialinEnum): DD_PRE_GEN_DIALYSATE_HYD_CHAMBER_FILL_CHECK = 0 # DD Pre-Gen Dialysate hyrochamber fill check DD_PRE_GEN_WET_SELF_TEST = 1 # DD Pre-Gen Wet Self Test - DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND = 2 # DD Pre-Gen Dialysate Wait for Gen Dialysate state transition - NUM_OF_DD_PRE_GEN_DIALYSATE_STATES = 3 # Number of Pre-Gen Dialysate mode states + DD_PRE_GEN_DRY_BICART_INITIAL_FILL = 2 # DD Pre-Gen DryBicart Initial Fill + DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND = 3 # DD Pre-Gen Dialysate Wait for Gen Dialysate state transition + NUM_OF_DD_PRE_GEN_DIALYSATE_STATES = 4 # Number of Pre-Gen Dialysate mode states DDPreGenDialysateStates._str_list = { # Official Name : Accepted strings @@ -164,6 +155,7 @@ } +# DDOpModes.MODE_GEND sub states @unique class DDGenDialysateModeStates(DialinEnum): DD_GEND_STATE_START = 0 # Gen dialysate start state @@ -188,6 +180,7 @@ } +# DDOpModes.MODE_POSG sub states @unique class DDPostGenDialysateStates(DialinEnum): DD_POST_GEN_DIALYSATE_STATE_START = 0 # DD Post-Gen Dialysate state start @@ -202,6 +195,7 @@ } +# DDOpModes.MODE_HEAT sub states @unique class DDHeatDisinfectStates(DialinEnum): DD_HEAT_DISINFECT_STATE_START = 0 # Heat disinfect, start mode state @@ -216,6 +210,7 @@ } +# DDOpModes.MODE_HCOL sub states @unique class DDHeaterCoolingStates(DialinEnum): NUM_OF_DD_HEAT_COOL_STATES = 0 # Number of Heater Cooling states @@ -226,6 +221,7 @@ } +# DDOpModes.MODE_ROPS sub states @unique class DDROPermeateStates(DialinEnum): NUM_OF_RO_PERMEATE_STATES = 0 # Number of RO Permeate states @@ -236,6 +232,7 @@ } +# DDOpModes.MODE_NLEG sub states @unique class DDNotLegalStates(DialinEnum): NUM_OF_NOT_LEGAL_STATES = 0 # Number of Not Legal states @@ -246,7 +243,76 @@ } +# ================================================== Enum Creators: Operations Lvl 3 ================================================== +# DDFaultStates. sub states +@unique +class DDFaultNVDataStates(DialinEnum): + DD_NVDATA_STATE_START = 0 # DD Non-Volatile Data Management start state + DD_NVDATA_STATE_RUN_NV_POSTS = 1 # DD Non-Volatile Data Management run RTC and NV data management posts + DD_NVDATA_STATE_COMPLETE = 2 # DD Non-Volatile Data Management Complete + NUM_OF_DD_NVDATA_STATES = 3 # Number of fault mode NV Data management states +DDFaultNVDataStates._str_list = { + # Official Name : Accepted strings + 'DD_NVDATA_STATE_START': ['start'], + 'DD_NVDATA_STATE_RUN_NV_POSTS': ['running', 'run nv posts'], + 'DD_NVDATA_STATE_COMPLETE': ['complete', 'done'], + 'NUM_OF_DD_INIT_NVDATA_STATES': [], +} + + +# DDStandbyStates. sub states +@unique +class DDStanDisinfectStates(DialinEnum): + DD_DISINFECT_FLUSH_STATE = 0 # DD disinfect flush + DD_DISINFECT_HEAT_STATE = 1 # DD disinfect heat + DD_DISINFECT_RO_PERMEATE_SAMPLE_STATE = 2 # DD disinfect RO permeate sample + DD_DISINFECT_NOT_RUNNING_STATE = 3 # DD disinfect not running + NUM_OF_DD_DISINFECT_STATES = 4 # Number of DD disinfect states + +DDStanDisinfectStates._str_list = { + # Official Name : Accepted strings + 'DD_DISINFECT_FLUSH_STATE': ['flush'], + 'DD_DISINFECT_HEAT_STATE': ['heat', 'heating'], + 'DD_DISINFECT_RO_PERMEATE_SAMPLE_STATE': ['ro sample', 'ro permeate sample'], + 'DD_DISINFECT_NOT_RUNNING_STATE': ['not running', 'on hold'], + 'NUM_OF_DD_DISINFECT_STATES': [], +} + + +# DDPreGenDialysateStates.DD_PRE_GEN_WET_SELF_TEST sub states +@unique +class DDPreGenWetSelfTestStates(DialinEnum): + DD_WET_SELF_TEST_START = 0 # DD Wet Slef test Start + DD_WET_SELF_TEST_NEGATIVE_DEAERATION_PRES_CHECK = 1 # DD Wet Self Test Negative Deaeration Pressure check + DD_WET_SELF_TEST_POSITIVE_DEAERATION_PRES_CHECK = 2 # DD Wet Self Test Postive Deaeration Pressure check + DD_WET_SELF_TEST_SPENT_DIAL_PRES_CHECK = 3 # DD Wet Self Test Spent Dialysate Pressure check + DD_WET_SELF_TEST_BAL_CHAMBER_VALV_LEAK_CHECK = 4 # DD Wet Self Test Balancing Chamber Valve Leak check + DD_WET_SELF_TEST_DIAL_FLOW_PATH_LEAK_CHECK = 5 # DD Wet Self Test Dialysate flow path leak check + DD_WET_SELF_TEST_UF_PRES_DROP_CHECK = 6 # DD Wet Self Test Ultrafilter pressure drop check + DD_WET_SELF_TEST_BLOOD_LEAK_CHECK = 7 # DD Wet Self Test Ultrafilter pressure drop check + DD_WET_SELF_TEST_BAL_CHAMBER_MEMBRANE_INTEGRITY_CHECK = 8 # DD Wet Self Test Balancing Chamber Membrane Integrity check + DD_WET_SELF_TEST_LEVEL_SENSOR_CHECK = 9 # DD Wet Self Test Level Sensor check + DD_WET_SELF_TEST_PAUSE = 10 # DD Wet Self Test Pause state + NUM_OF_DD_PRE_GEN_WET_SELF_TEST_STATES = 11 # Number of Wet Self Test states + +DDPreGenWetSelfTestStates._str_list = { + # Official Name : Accepted strings + 'DD_WET_SELF_TEST_START': [ 'start', 'test start' ], + 'DD_WET_SELF_TEST_NEGATIVE_DEAERATION_PRES_CHECK': [ 'negative check' ], + 'DD_WET_SELF_TEST_POSITIVE_DEAERATION_PRES_CHECK': [ 'positive check' ], + 'DD_WET_SELF_TEST_SPENT_DIAL_PRES_CHECK': [ 'spent check' ], + 'DD_WET_SELF_TEST_BAL_CHAMBER_VALV_LEAK_CHECK': [ 'bc valve leak check' ], + 'DD_WET_SELF_TEST_DIAL_FLOW_PATH_LEAK_CHECK': [ 'flow path leak check' ], + 'DD_WET_SELF_TEST_UF_PRES_DROP_CHECK': [ 'uf check', 'ultrafiltration check' ], + 'DD_WET_SELF_TEST_BLOOD_LEAK_CHECK': [ 'blood leak check' ], + 'DD_WET_SELF_TEST_BAL_CHAMBER_MEMBRANE_INTEGRITY_CHECK': [ 'bc membrane integrity check' ], + 'DD_WET_SELF_TEST_LEVEL_SENSOR_CHECK': [ 'level sensor check' ], + 'DD_WET_SELF_TEST_PAUSE': [ 'pause', 'test pause' ], + 'NUM_OF_DD_PRE_GEN_WET_SELF_TEST_STATES': [ ] +} + + # ================================================== Enum Creators: Events ================================================== @unique class DDEventList(DialinEnum): @@ -628,6 +694,32 @@ @unique +class DDBicartChFFillExecStates(DialinEnum): + BICARB_CHAMBER_START_STATE = 0 # Initial state of Chamber F fill + BICARB_CARTRIDGE_FILL_WATER_START_STATE = 1 # Dry bicart fill water start state while dialysate delivery + BICARB_CARTRIDGE_FILL_WATER_END_STATE = 2 # Dry bicart fill water end state while dialysate delivery + BICARB_CHAMBER_CHECK_LEVEL_STATE = 3 # Bicarb Chamber check level state + BICARB_CHAMBER_FILL_STATE = 4 # Bicarb Chamber fill start state + BICARB_CHAMBER_PRESSURE_CHECK_STATE = 5 # Bicarb Chamber pressure check start state + BICARB_SUPPLY_VENT_START_STATE = 6 # Bicarb Chamber supply vent cartridge and Chamber F start state + BICARB_SUPPLY_VENT_END_STATE = 7 # Bicarb Chamber supply vent cartridge and Chamber F end state + NUM_OF_BICARB_CHAMBER_FILL_EXEC_STATES = 8 # Number of Bicarb chamber fill state + +DDBicartChFFillExecStates._str_list = { + # Official Name : Accepted strings + 'BICARB_CHAMBER_START_STATE': ['start'], + 'BICARB_CARTRIDGE_FILL_WATER_START_STATE': ['cartridge fill start', 'cartridge priming start'], + 'BICARB_CARTRIDGE_FILL_WATER_END_STATE': ['cartridge fill end', 'cartridge priming end'], + 'BICARB_CHAMBER_CHECK_LEVEL_STATE': ['chamber level check'], + 'BICARB_CHAMBER_FILL_STATE': ['champer fill'], + 'BICARB_CHAMBER_PRESSURE_CHECK_STATE': ['chamber pressure check'], + 'BICARB_SUPPLY_VENT_START_STATE': ['vent start', 'supply vent start'], + 'BICARB_SUPPLY_VENT_END_STATE': ['vent end', 'supply vent end'], + 'NUM_OF_BICARB_CHAMBER_FILL_EXEC_STATES': [], +} + + +@unique class DDBloodLeakStates(DialinEnum): BLOOD_LEAK_WAIT_FOR_POST_STATE = 0 # BLOOD_LEAK_CHECK_SET_POINT_STATE = 1 # @@ -742,6 +834,48 @@ @unique +class DDDryBicartDrainExecStates(DialinEnum): + DRY_BICART_DRAIN_START_STATE = 0 # Initial state of dry bicart drain + DRY_BICART_FLUID_DRAIN_STATE = 1 # Dry bicart fluid drain state + DRY_BICART_FLUID_DRAIN_DURATION_CHECK_STATE = 2 # Dry bicart drain duration check state + DRY_BICART_FLUID_DRAIN_END_STATE = 3 # Dry bicart drain end state + NUM_OF_DRY_BICART_DRAIN_EXEC_STATES = 4 # Number of dry bicart drain states + +DDDryBicartDrainExecStates._str_list = { + # Official Name : Accepted strings + 'DRY_BICART_DRAIN_START_STATE': ['start', 'drain start'], + 'DRY_BICART_FLUID_DRAIN_STATE': ['draining', 'drain in progress'], + 'DRY_BICART_FLUID_DRAIN_DURATION_CHECK_STATE': ['drain duration check'], + 'DRY_BICART_FLUID_DRAIN_END_STATE': ['end', 'drain end'], + 'NUM_OF_DRY_BICART_DRAIN_EXEC_STATES': [], +} + + +@unique +class DDDryBicartFillExecStates(DialinEnum): + DRY_BICART_START_STATE = 0 # Initial state of dry bicart fill + DRY_BICART_FILL_WATER_START_STATE = 1 # Dry bicart fill start state + DRY_BICART_FILL_WATER_END_STATE = 2 # Dry bicart fill end state + DRY_BICART_DEGAS_START_STATE = 3 # Dry bicart vent start state + DRY_BICART_DEGAS_END_STATE = 4 # Dry bicart vent end state + DRY_BICART_FILL_DURATION_CHECK_STATE = 5 # Dry bicart fill duration check state + DRY_BICART_FILL_COMPLETE_STATE = 6 # Dry bicart fill complete state + NUM_OF_DRY_BICART_FILL_EXEC_STATES = 7 # Number of dry bicart fill states + +DDDryBicartFillExecStates._str_list = { + # Official Name : Accepted strings + 'DRY_BICART_START_STATE': ['start'], + 'DRY_BICART_FILL_WATER_START_STATE': ['fill water start'], + 'DRY_BICART_FILL_WATER_END_STATE': ['fill water end'], + 'DRY_BICART_DEGAS_START_STATE': ['degas start', 'degasing start'], + 'DRY_BICART_DEGAS_END_STATE': ['degas end', 'degasing end'], + 'DRY_BICART_FILL_DURATION_CHECK_STATE': ['fill duration check', 'duration check'], + 'DRY_BICART_FILL_COMPLETE_STATE': ['fill complete', 'complete', 'done'], + 'NUM_OF_DRY_BICART_FILL_EXEC_STATES': [], +} + + +@unique class DDHeaterStartStop(DialinEnum): STOP = 0 # Stop heater START = 1 # Start heater @@ -814,6 +948,30 @@ @unique +class DDSpentChFillExecState(DialinEnum): + SPENT_CHAMBER_FILL_STATE_START = 0 # Initial state of spent chamber fill + SPENT_CHAMBER_FILL_STATE1_FILL_START = 1 # Spent chamber fill state 1 fill start state + SPENT_CHAMBER_FILL_STATE1_DOSING_CNTRL = 2 # Spent chamber fill state 1 dosing control + SPENT_CHAMBER_FILL_STATE1_FILL_END = 3 # Spent chamber fill state 1 fill end state + SPENT_CHAMBER_FILL_STATE2_FILL_START = 4 # Spent chamber fill state 2 fill start state + SPENT_CHAMBER_FILL_STATE2_DOSING_CNTRL = 5 # Spent chamber fill state 2 dosing control + SPENT_CHAMBER_FILL_STATE2_FILL_END = 6 # Spent chamber fill state 2 fill end state + NUM_OF_SPENT_CHAMBER_FILL_EXEC_STATES = 7 # Number of spent chamber fill states + +DDPistonPumpAttributes._str_list = { + # Official Name : Accepted strings + 'SPENT_CHAMBER_FILL_STATE_START': ['start'], + 'SPENT_CHAMBER_FILL_STATE1_FILL_START': ['state 1 start'], + 'SPENT_CHAMBER_FILL_STATE1_DOSING_CNTRL': ['state 1 dosing'], + 'SPENT_CHAMBER_FILL_STATE1_FILL_END': ['state 1 end'], + 'SPENT_CHAMBER_FILL_STATE2_FILL_START': ['state 2 start'], + 'SPENT_CHAMBER_FILL_STATE2_DOSING_CNTRL': ['state 2 dosing'], + 'SPENT_CHAMBER_FILL_STATE2_FILL_END': ['state 2 end'], + 'NUM_OF_SPENT_CHAMBER_FILL_EXEC_STATES': [], +} + + +@unique class DDValveStates(DialinEnum): VALVE_STATE_CLOSED = 0 # Valve Closed State VALVE_STATE_OPEN = 1 # Valve Open State @@ -825,3 +983,23 @@ 'VALVE_STATE_OPEN': ['open'], 'NUM_OF_VALVE_STATES': [], } + + +@unique +class DDCancelModes(DialinEnum): + CANCELLATION_MODE_NONE = 0 # Cancellation mode none. + CANCELLATION_MODE_BASIC = 1 # Cancellation mode basic. + CANCELLATION_MODE_HOT = 2 # Cancellation mode hot. + CANCELLATION_MODE_COLD = 3 # Cancellation mode cold. + CANCELLATION_MODE_WATER = 4 # Cancellation mode water. + NUM_OF_CANCELLATION_MODES = 5 # Number of cancellation modes. + +DDValveStates._str_list = { + # Official Name : Accepted strings + 'CANCELLATION_MODE_NONE': ['none'], + 'CANCELLATION_MODE_BASIC': ['basic'], + 'CANCELLATION_MODE_HOT': ['hot'], + 'CANCELLATION_MODE_COLD': ['cold'], + 'CANCELLATION_MODE_WATER': ['water'], + 'NUM_OF_CANCELLATION_MODES': [], +} Index: leahi_dialin/common/dd_defs_proxy.py =================================================================== diff -u -r99f9233b24e6115bb1384ec8f5a077aefc37ab4b -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/dd_defs_proxy.py (.../dd_defs_proxy.py) (revision 99f9233b24e6115bb1384ec8f5a077aefc37ab4b) +++ leahi_dialin/common/dd_defs_proxy.py (.../dd_defs_proxy.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -18,10 +18,11 @@ class DD_Defs(): - + # Operation Modes - Lvl 1 DDOpModes = dd_defs.DDOpModes + + # Operation Modes - Lvl 2 DDFaultStates = dd_defs.DDFaultStates - DDFaultNVDataStates = dd_defs.DDFaultNVDataStates DDServiceStates = dd_defs.DDServiceStates DDInitStates = dd_defs.DDInitStates DDStandbyStates = dd_defs.DDStandbyStates @@ -32,10 +33,16 @@ DDHeaterCoolingStates = dd_defs.DDHeaterCoolingStates DDROPermeateStates = dd_defs.DDROPermeateStates DDNotLegalStates = dd_defs.DDNotLegalStates + + # Operation Modes - Lvl 3 + DDFaultNVDataStates = dd_defs.DDFaultNVDataStates + DDPreGenWetSelfTestStates = dd_defs.DDPreGenWetSelfTestStates + # Events DDEventList = dd_defs.DDEventList DDEventDataTypes = dd_defs.DDEventDataTypes + # Sensor Names DDConcentratePumpNames = dd_defs.DDConcentratePumpNames DDConductivitySensorNames = dd_defs.DDConductivitySensorNames DDDialysatePumpNames = dd_defs.DDDialysatePumpNames @@ -47,17 +54,27 @@ DDValveNames = dd_defs.DDValveNames DDMonitoredVoltages = dd_defs.DDMonitoredVoltages + # Sensor Attributes DDBalancingChamberStates = dd_defs.DDBalancingChamberStates DDBalancingChamberSwitchStates = dd_defs.DDBalancingChamberSwitchStates + DDBicartChFFillExecStates = dd_defs.DDBicartChFFillExecStates DDBloodLeakStates = dd_defs.DDBloodLeakStates DDConcentratePumpAttributes = dd_defs.DDConcentratePumpAttributes DDConcentratePumpStates = dd_defs.DDConcentratePumpStates DDDialysatePumpAttributes = dd_defs.DDDialysatePumpAttributes DDDialysatePumpsStates = dd_defs.DDDialysatePumpsStates + DDDryBicartDrainExecStates = dd_defs.DDDryBicartDrainExecStates + DDDryBicartFillExecStates = dd_defs.DDDryBicartFillExecStates DDHeaterStartStop = dd_defs.DDHeaterStartStop DDHeaterAttributes = dd_defs.DDHeaterAttributes DDHeaterExecState = dd_defs.DDHeaterExecState DDPistonPumpAttributes = dd_defs.DDPistonPumpAttributes + DDSpentChFillExecState = dd_defs.DDSpentChFillExecState DDValveStates = dd_defs.DDValveStates + DDCancelModes = dd_defs.DDCancelModes + # Disposables + DDAcidTypes = dd_defs.DDAcidTypes + DDBicarbTypes = dd_defs.DDBicarbTypes + dd_enum_repository = DD_Defs() Index: leahi_dialin/common/disp_defs.py =================================================================== diff -u --- leahi_dialin/common/disp_defs.py (revision 0) +++ leahi_dialin/common/disp_defs.py (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -0,0 +1,84 @@ +########################################################################### +# +# Copyright (c) 2021-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 disp_defs.py +# +# @author (last) Zoltan Miskolci +# @date (last) 02-Apr-2026 +# @author (original) Zoltan Miskolci +# @date (original) 02-Apr-2026 +# +############################################################################ + +from enum import unique + +from ..utils.base import DialinEnum + + +# ================================================== Enum Creators: Disposables ================================================== +@unique +class AcidTypes(DialinEnum): + ACID_08_1251_1 = 0 # Acid type 08-1251-1 + ACID_08_2251_0 = 1 # Acid type 08-2251-0 + ACID_08_3251_9 = 2 # Acid type 08-3251-9 + NUM_OF_ACID_TYPES = 3 # Number of Acid types + +AcidTypes._str_list = { + # Official Name : Accepted strings + 'ACID_08_1251_1': ['1251', '08-1251-1'], + 'ACID_08_2251_0': ['2251', '08-2251-0'], + 'ACID_08_3251_9': ['3251', '08-3251-9'], + 'NUM_OF_ACID_TYPE': [], +} + + +@unique +class BicarbTypes(DialinEnum): + BICARB_08_677753_0 = 0 # Bicarb type 08-677753-0 + NUM_OF_BICARB_TYPES = 1 # Number of Bicarb types + +BicarbTypes._str_list = { + # Official Name : Accepted strings + 'BICARB_08_677753_0': ['677753', '08-677753-0'], + 'NUM_OF_BICARB_TYPES': [], +} + + +@unique +class DialyzerTypes(DialinEnum): + DIALYZER_TYPE_BBRAUN_PRO_13H = 0 # BBraun Diacap Pro 13H + DIALYZER_TYPE_BBRAUN_PRO_16H = 1 # BBraun Diacap Pro 16H + DIALYZER_TYPE_BBRAUN_PRO_19H = 2 # BBraun Diacap Pro 19H + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F160NRE = 3 # Fresenius Optiflux F160NRe + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F180NRE = 4 # Fresenius Optiflux F180NRe + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F200NRE = 5 # Fresenius Optiflux F200NRe + DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F250NRE = 6 # Fresenius Optiflux F250NRe + NUM_OF_DIALYZER_TYPES = 7 # Number of dialyzer types + +DialyzerTypes._str_list = { + # Official Name : Accepted strings + 'DIALYZER_TYPE_BBRAUN_PRO_13H': ['bbraun pro 13h'], + 'DIALYZER_TYPE_BBRAUN_PRO_16H': ['bbraun pro 16h'], + 'DIALYZER_TYPE_BBRAUN_PRO_19H': ['bbraun pro 19h'], + 'DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F160NRE': ['F160NRE'], + 'DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F180NRE': ['F180NRE'], + 'DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F200NRE': ['F200NRE'], + 'DIALYZER_TYPE_FRESENIUS_OPTIFLUX_F250NRE': ['F250NRE'], + 'NUM_OF_DIALYZER_TYPES': [], +} + + +@unique +class HeparinTypes(DialinEnum): + HEPARIN_TYPE_FRESENIUS_CENTRISOL = 0 # Unfractionated 1,000 IU/mL + NUM_OF_HEPARIN_TYPES = 1 # Number of bicarbonate concentrates + +HeparinTypes._str_list = { + # Official Name : Accepted strings + 'HEPARIN_TYPE_FRESENIUS_CENTRISOL': ['fresenius centrisol'], + 'NUM_OF_HEPARIN_TYPES': [], +} Index: leahi_dialin/common/disp_defs_proxy.py =================================================================== diff -u --- leahi_dialin/common/disp_defs_proxy.py (revision 0) +++ leahi_dialin/common/disp_defs_proxy.py (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -0,0 +1,26 @@ +########################################################################### +# +# Copyright (c) 2021-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 disp_defs_proxy.py +# +# @author (last) Zoltan Miskolci +# @date (last) 02-Apr-2026 +# @author (original) Zoltan Miskolci +# @date (original) 02-Apr-2026 +# +############################################################################ + +from . import disp_defs + + +class Disp_Defs(): + AcidTypes = disp_defs.AcidTypes + BicarbTypes = disp_defs.BicarbTypes + DialyzerTypes = disp_defs.DialyzerTypes + HeparinTypes = disp_defs.HeparinTypes + +disp_enum_repository = Disp_Defs() Index: leahi_dialin/common/fp_defs.py =================================================================== diff -u -rfd6f015b1ff68a2ee15187722ec21b8898fce10c -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision fd6f015b1ff68a2ee15187722ec21b8898fce10c) +++ leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -26,7 +26,7 @@ BETA_IOFP_PRES_SENSOR_OFFSET = DDPressureSensorNames.NUM_OF_PRESSURE_SENSORS.value # Offset to translate Dialin FPTemperaturesNames to DD firmware DD Pressure Sensors enum BETA_IOFP_VALVE_OFFSET = DDValveNames.NUM_OF_DD_VALVES.value # Offset to translate Dialin FPValveNames to DD firmware DD_Valves -# ================================================== Enum Creators: Operations ================================================== +# ================================================== Enum Creators: Operations Lvl 1 ================================================== @unique class FPOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode @@ -55,6 +55,8 @@ } +# ================================================== Enum Creators: Operations Lvl 2 ================================================== +# FPOpModes.MODE_FAUL sub states @unique class FPFaultStates(DialinEnum): FP_FAULT_STATE_START = 0 # FP Fault Start State @@ -71,6 +73,7 @@ } +# FPOpModes.MODE_SERV sub states @unique class FPServiceStates(DialinEnum): NUM_OF_FP_SERV_STATES = 0 # Number of FP service states @@ -81,6 +84,7 @@ } +# FPOpModes.MODE_INIT sub states @unique class FPPostStates(DialinEnum): FP_POST_STATE_START = 0 # Start initialize & POST mode state @@ -111,6 +115,7 @@ } +# FPOpModes.MODE_STAN sub states @unique class FPStandbyStates(DialinEnum): FP_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state @@ -123,6 +128,7 @@ } +# FPOpModes.MODE_PRE_GENP sub states @unique class FPPreGenPermeateStates(DialinEnum): FP_PRE_GENP_INLET_PRES_CHECK = 0 # FP Pre Gen Permeate Inlet Pressure Check State @@ -145,6 +151,7 @@ } +# FPOpModes.MODE_DPGP sub states @unique class FPPreGenPDefStates(DialinEnum): FP_PRE_GENP_DEF_FLUSH = 0 # Pre Gen Permeate Defeatured Flush state @@ -161,6 +168,7 @@ } +# FPOpModes.MODE_GENP sub states @unique class FPGenPermeateStates(DialinEnum): FP_GENP_TANK_FILL_STATE = 0 # Gen Permeate Tank Fill low state @@ -175,6 +183,7 @@ } +# FPOpModes.MODE_DEGP sub states @unique class FPGenPermeateDefStates(DialinEnum): FP_GENP_DEF_SUPPLY_WATER = 0 # Gen Permeate Defeatured Supply Water statee @@ -189,6 +198,7 @@ } +# FPOpModes.MODE_NLEG sub states @unique class FPNotLegalStates(DialinEnum): NUM_OF_NOT_LEGAL_STATES = 0 # Number of Not Legal states @@ -199,7 +209,102 @@ } +# ================================================== Enum Creators: Operations Lvl 3 ================================================== +# FPFaultStates. sub states +@unique +class FPFaultNVDataStates(DialinEnum): + FP_NVDATA_STATE_START = 0 # FP Non-Volatile Data Management start state + FP_NVDATA_STATE_RUN_NV_POSTS = 1 # FP Non-Volatile Data Management run RTC and NV data management posts + FP_NVDATA_STATE_COMPLETE = 2 # FP Non-Volatile Data Management Complete + NUM_OF_FP_NVDATA_STATES = 3 # Number of fault mode NV Data management states +FPFaultNVDataStates._str_list = { + # Official Name : Accepted strings + 'FP_NVDATA_STATE_START': ['start'], + 'FP_NVDATA_STATE_RUN_NV_POSTS': ['running', 'run nv posts'], + 'FP_NVDATA_STATE_COMPLETE': ['complete', 'done'], + 'NUM_OF_FP_INIT_NVDATA_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_INLET_PRES_CHECK sub states +@unique +class FPInletPresCheckStates(DialinEnum): + INLET_PRES_CHECK_IN_PROGRESS = 0 # Inlet Pressure Check in progress state + INLET_PRES_CHECK_PAUSED = 1 # Inlet Pressure Check paused state + NUM_OF_INLET_PRES_CHECK_STATES = 2 # Number of Inlet Pressure Check states + +FPInletPresCheckStates._str_list = { + # Official Name : Accepted strings + 'INLET_PRES_CHECK_IN_PROGRESS': ['start', 'in progress', 'running'], + 'INLET_PRES_CHECK_PAUSED': ['paused'], + 'NUM_OF_INLET_PRES_CHECK_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_FILTER_FLUSH sub states +@unique +class FPFilterFlushStates(DialinEnum): + FILTER_FLUSH_IN_PROGRESS = 0 # Filter Flush in progress state + FILTER_FLUSH_PAUSED = 1 # Filter Flush paused state + NUM_OF_FILTER_FLUSH_STATES = 2 # Number of filter flush states + +FPFilterFlushStates._str_list = { + # Official Name : Accepted strings + 'FILTER_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'FILTER_FLUSH_PAUSED': ['paused'], + 'NUM_OF_FILTER_FLUSH_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_PERMEATE_FLUSH sub states +@unique +class FPPermeateFlushStates(DialinEnum): + PERM_FLUSH_IN_PROGRESS = 0 # Permeate Flush in progress state + PERM_FLUSH_PAUSED = 1 # Permeate Flush paused state + NUM_OF_PERM_FLUSH_STATES = 2 # Number of permeate flush states + +FPPermeateFlushStates._str_list = { + # Official Name : Accepted strings + 'PERM_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'PERM_FLUSH_PAUSED': ['paused'], + 'NUM_OF_PERM_FLUSH_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_CONCENTRATE_FLUSH sub states +@unique +class FPConcentrateFlushStates(DialinEnum): + CONC_FLUSH_IN_PROGRESS = 0 # Concentrate Flush in progress state + CONC_FLUSH_PAUSED = 1 # Concentrate Flush paused state + NUM_OF_CONC_FLUSH_STATES = 2 # Number of Concentrate flush states + +FPConcentrateFlushStates._str_list = { + # Official Name : Accepted strings + 'CONC_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'CONC_FLUSH_PAUSED': ['paused'], + 'NUM_OF_CONC_FLUSH_STATES': [], +} + + +# FPPreGenPDefStates.FP_PRE_GENP_DEF_FLUSH sub states +@unique +class FPDefFlushStates(DialinEnum): + FILTER_FLUSH_DEF_DYNAMIC_PRESSURE_CHECK = 0 # Filter Flush in dynamic pressure state + FILTER_FLUSH_DEF_STATIC_PRESSURE_CHECK = 1 # Filter flush in sttaic pressure check + FILTER_FLUSH_DEF_PAUSED = 2 # Filter Flush paused state + NUM_OF_FILTER_FLUSH_DEF_STATES = 3 # Number of filter flush states + +FPDefFlushStates._str_list = { + # Official Name : Accepted strings + 'FILTER_FLUSH_DEF_DYNAMIC_PRESSURE_CHECK': ['dynamic', 'dynamic pressure check'], + 'FILTER_FLUSH_DEF_STATIC_PRESSURE_CHECK': ['static', 'static pressure check'], + 'FILTER_FLUSH_DEF_PAUSED': ['paused'], + 'NUM_OF_PERM_FLUSH_STATES': [], +} + + + # ================================================== Enum Creators: Events ================================================== @unique class FPEventList(DialinEnum): Index: leahi_dialin/common/fp_defs_proxy.py =================================================================== diff -u -rfbed08a9a0700196b1d9d1a11e9c4f84845fd16d -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/fp_defs_proxy.py (.../fp_defs_proxy.py) (revision fbed08a9a0700196b1d9d1a11e9c4f84845fd16d) +++ leahi_dialin/common/fp_defs_proxy.py (.../fp_defs_proxy.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -19,7 +19,10 @@ class FP_Defs(): + # Operation Modes - Lvl 1 FPOpModes = fp_defs.FPOpModes + + # Operation Modes - Lvl 2 FPFaultStates = fp_defs.FPFaultStates FPServiceStates = fp_defs.FPServiceStates FPPostStates = fp_defs.FPPostStates @@ -30,9 +33,19 @@ FPGenPermeateDefStates = fp_defs.FPGenPermeateDefStates FPNotLegalStates = fp_defs.FPNotLegalStates + # Operation Modes - Lvl 3 + FPFaultNVDataStates = fp_defs.FPFaultNVDataStates + FPInletPresCheckStates = fp_defs.FPInletPresCheckStates + FPFilterFlushStates = fp_defs.FPFilterFlushStates + FPPermeateFlushStates = fp_defs.FPPermeateFlushStates + FPConcentrateFlushStates = fp_defs.FPFilterFlushStates + FPDefFlushStates = fp_defs.FPDefFlushStates + + # Events FPEventList = fp_defs.FPEventList FPEventDataTypes = fp_defs.FPEventDataTypes + # Sensor Names FPBoostPumpNames = fp_defs.FPBoostPumpNames FPConductivitySensorNames = fp_defs.FPConductivitySensorNames FPRORejectionRatioNames = fp_defs.FPRORejectionRatioNames @@ -44,6 +57,7 @@ FPValveNames = fp_defs.FPValveNames FPAllPumpNames = fp_defs.FPAllPumpNames + # Sensor Attributes FPBoostPumpStates = fp_defs.FPBoostPumpStates FPFloaterLevels = fp_defs.FPFloaterLevels FPPumpAttributes = fp_defs.FPPumpAttributes Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r57aed15d5b38f236deaea49daba706ce352162d2 -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 57aed15d5b38f236deaea49daba706ce352162d2) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -430,6 +430,9 @@ MSG_ID_FP_DEF_STATUS_REQUEST = 0xB044 MSG_ID_FP_DEF_STATUS_RESPONSE = 0xB045 MSG_ID_FP_SET_OP_SUB_MODE_REQUEST = 0xB046 + + MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_REQUEST = 0xB049 + MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_RESPONSE = 0xB04A MSG_ID_FP_CONDUCTIVITY_SENSOR_RESISTANCE_OVERRIDE_REQUEST = 0xB100 Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r3f6c0e94db8379f00cb7fbc91daa189d6b06f379 -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 3f6c0e94db8379f00cb7fbc91daa189d6b06f379) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -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,472 @@ +# ================================================== 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): @@ -321,108 +799,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 +1065,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 +1166,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': [], +} Index: leahi_dialin/common/td_defs_proxy.py =================================================================== diff -u -r99f9233b24e6115bb1384ec8f5a077aefc37ab4b -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/common/td_defs_proxy.py (.../td_defs_proxy.py) (revision 99f9233b24e6115bb1384ec8f5a077aefc37ab4b) +++ leahi_dialin/common/td_defs_proxy.py (.../td_defs_proxy.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -19,43 +19,77 @@ class TD_Defs(): - TDOpModes = td_defs.TDOpModes - TDFaultStates = td_defs.TDFaultStates - TDServiceStates = td_defs.TDServiceStates - TDInitStates = td_defs.TDInitStates - TDStandbyStates = td_defs.TDStandbyStates - TDTreatmentParamStates = td_defs.TDTreatmentParamStates - TDPreTreatmentModesStates = td_defs.TDPreTreatmentModesStates - TDTreatmentStates = td_defs.TDTreatmentStates - TDPostTreatmentStates = td_defs.TDPostTreatmentStates - TDNotLegalStates = td_defs.TDNotLegalStates - TDPreTreatmentPrimeStates = td_defs.TDPreTreatmentPrimeStates - TDDialysisStates = td_defs.TDDialysisStates - TDTreatmentParameters = td_defs.TDTreatmentParameters + # Operation Modes - Lvl 1 + TDOpModes = td_defs.TDOpModes - TDEventList = td_defs.TDEventList - TDEventDataTypes = td_defs.TDEventDataTypes + # Operation Modes - Lvl 2 + TDFaultStates = td_defs.TDFaultStates + TDServiceStates = td_defs.TDServiceStates + TDInitStates = td_defs.TDInitStates + TDStandbyStates = td_defs.TDStandbyStates + TDTreatmentParamStates = td_defs.TDTreatmentParamStates + TDPreTreatmentModesStates = td_defs.TDPreTreatmentModesStates + TDTreatmentStates = td_defs.TDTreatmentStates + TDPostTreatmentStates = td_defs.TDPostTreatmentStates + TDNotLegalStates = td_defs.TDNotLegalStates - TDAirPumpNames = td_defs.TDAirPumpNames - TDAirTrapValveNames = td_defs.TDAirTrapValveNames - TDAirTrapLevelSensorNames = td_defs.TDAirTrapLevelSensorNames - TDAirBubbleDetectorNames = td_defs.TDAirBubbleDetectorNames - TDEjectorNames = td_defs.TDEjectorNames - TDPressureSensorNames = td_defs.TDPressureSensorNames - TDTemperatureSensorNames = td_defs.TDTemperatureSensorNames - TDSwitchNames = td_defs.TDSwitchNames - TDValveNames = td_defs.TDValveNames - TDMonitoredVoltages = td_defs.TDMonitoredVoltages + # Operation Modes - Lvl 3 + # Pre-treatment + TDPreTreaSampleWaterStates = td_defs.TDPreTreaSampleWaterStates + TDPreTreaConsumableSelfTestStates = td_defs.TDPreTreaConsumableSelfTestStates + TDPreTreaNoCartSelfTestStates = td_defs.TDPreTreaNoCartSelfTestStates + TDPreTreaDrySelfTestStates = td_defs.TDPreTreaDrySelfTestStates + TDPreTreaPrimeStates = td_defs.TDPreTreaPrimeStates + TDPreTreaRecircStates = td_defs.TDPreTreaRecircStates + TDPreTreaPatientConnectStates = td_defs.TDPreTreaPatientConnectStates + # Treatment + TDTreaBloodPrimeStates = td_defs.TDTreaBloodPrimeStates + TDTreaDialysisStates = td_defs.TDTreaDialysisStates + TDTreaPausedStates = td_defs.TDTreaPausedStates + TDTreaRinsebackStates = td_defs.TDTreaRinsebackStates + TDTreaRecircStates = td_defs.TDTreaRecircStates + TDTreaBolusStates = td_defs.TDTreaBolusStates + TDTreaHeparinStates = td_defs.TDTreaHeparinStates + TDTreaEndStates = td_defs.TDTreaEndStates + + # Operation Modes - Lvl 4 + TDPreTreaSamplWaterUserActionStates = td_defs.TDPreTreaSamplWaterUserActionStates + TDWetSelfTestsStates = td_defs.TDWetSelfTestsStates + TDTreaBloodPrimeUserActionStates = td_defs.TDTreaBloodPrimeUserActionStates + TDTreaRinsebackUserActionStates = td_defs.TDTreaRinsebackUserActionStates + TDTreaRecircUserActionStates = td_defs.TDTreaRecircUserActionStates + TDTreaEndUserActionStates = td_defs.TDTreaEndUserActionStates - TDAirPumpAttributes = td_defs.TDAirPumpAttributes - TDAirTrapLevelSensorAttributes = td_defs.TDAirTrapLevelSensorAttributes - TDAirTrapState = td_defs.TDAirTrapState - TDBloodFlowMotorAttributes = td_defs.TDBloodFlowMotorAttributes - TDAirBubbleDetectorAttributes = td_defs.TDAirBubbleDetectorAttributes - TDEjectorAttributes = td_defs.TDEjectorAttributes - TDPressureSensorAttributes = td_defs.TDPressureSensorAttributes - TDSwitchStatus = td_defs.TDSwitchStatus - TDValvePositions = td_defs.TDValvePositions - TDValveStates = td_defs.TDValveStates + # Events + TDEventList = td_defs.TDEventList + TDEventDataTypes = td_defs.TDEventDataTypes + # Sensor Names + TDAirPumpNames = td_defs.TDAirPumpNames + TDAirTrapValveNames = td_defs.TDAirTrapValveNames + TDAirTrapLevelSensorNames = td_defs.TDAirTrapLevelSensorNames + TDAirBubbleDetectorNames = td_defs.TDAirBubbleDetectorNames + TDEjectorNames = td_defs.TDEjectorNames + TDPressureSensorNames = td_defs.TDPressureSensorNames + TDTemperatureSensorNames = td_defs.TDTemperatureSensorNames + TDSwitchNames = td_defs.TDSwitchNames + TDValveNames = td_defs.TDValveNames + TDMonitoredVoltages = td_defs.TDMonitoredVoltages + + # Sensor Attributes + TDAirPumpAttributes = td_defs.TDAirPumpAttributes + TDAirTrapLevelSensorAttributes = td_defs.TDAirTrapLevelSensorAttributes + TDAirTrapState = td_defs.TDAirTrapState + TDBloodFlowMotorAttributes = td_defs.TDBloodFlowMotorAttributes + TDAirBubbleDetectorAttributes = td_defs.TDAirBubbleDetectorAttributes + TDEjectorAttributes = td_defs.TDEjectorAttributes + TDEjectorStates = td_defs.TDEjectorStates + TDPressureSensorAttributes = td_defs.TDPressureSensorAttributes + TDSwitchStatus = td_defs.TDSwitchStatus + TDValvePositions = td_defs.TDValvePositions + TDValveStates = td_defs.TDValveStates + + # Support + TDTreatmentParameters = td_defs.TDTreatmentParameters + td_enum_repository = TD_Defs() Index: leahi_dialin/fp/filtration_purification.py =================================================================== diff -u -rdd2124b8278268117cb37bc49d5fc32cd461c416 -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision dd2124b8278268117cb37bc49d5fc32cd461c416) +++ leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -94,10 +94,9 @@ self.can_interface.register_receiving_publication_function(channel_id, MsgIds.MSG_ID_FP_DEF_STATUS_RESPONSE.value, self._handler_fp_defeatured_response) - # ToDo: Enable and update the msg id when FW part of LDT-3779 is implemented - # self.can_interface.register_receiving_publication_function(channel_id, - # MsgIds.MSG_ID_FP_DEF_STATUS_RESPONSE.value, - # self._handler_fp_boost_pump_installed_response) + self.can_interface.register_receiving_publication_function(channel_id, + MsgIds.MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_RESPONSE.value, + self._handler_fp_boost_pump_installed_response) # Dialin will send a login message during construction. This is for the leahi subsystems to start # publishing CAN data when there is no UI connected as the UI typically does this job. self.cmd_log_in_to_fp() @@ -239,7 +238,7 @@ self.fp_defeatured_timestamp = timestamp - @publish(["msg_id_fp_def_status_response", "fp_defeatured"]) + @publish(["msg_id_fp_boost_pump_installed_status_response", "fp_p40_installed"]) def _handler_fp_boost_pump_installed_response(self, message, timestamp = 0.0): """ Handler for response from FP regarding its boost pump installation status. @@ -250,7 +249,7 @@ self.fp_p40_installed = struct.unpack('?', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - self.fp_defeatured_timestamp = timestamp + self.fp_p40_installed_timestamp = timestamp def cmd_request_defeatured_status(self) -> int: @@ -287,7 +286,7 @@ """ # ToDo: Update the msg id when FW part of LDT-3779 is implemented message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_FP_DEF_STATUS_REQUEST.value) + message_id=MsgIds.MSG_ID_FP_BOOST_PUMP_INSTALL_STATUS_REQUEST.value) self.logger.debug('Getting FP P40 Boost Pump installed status') received_message = self.can_interface.send(message) Index: leahi_dialin/td/modules/ejector.py =================================================================== diff -u -r20c821bd230fc7689a0275a2918981669ff5cc19 -rc6b28ca8a6aae3f70458f05b5bf445069e2fe457 --- leahi_dialin/td/modules/ejector.py (.../ejector.py) (revision 20c821bd230fc7689a0275a2918981669ff5cc19) +++ leahi_dialin/td/modules/ejector.py (.../ejector.py) (revision c6b28ca8a6aae3f70458f05b5bf445069e2fe457) @@ -52,7 +52,7 @@ #: The TD Ejector data in dictionary format self.h5_motor = { td_enum_repository.TDEjectorNames.H5_MOTOR.name: { - td_enum_repository.TDEjectorAttributes.STATE.name: 0, + td_enum_repository.TDEjectorAttributes.STATE.name: td_enum_repository.TDEjectorStates.EJECTOR_STATE_INIT.value, td_enum_repository.TDEjectorAttributes.SET_SPEED.name: 0.0, td_enum_repository.TDEjectorAttributes.OPT_SNSR_RETRACT: 0, # H25 Optical Sensor td_enum_repository.TDEjectorAttributes.OPT_SNSR_ENGAGE: 0 # H24 Optical Sensor