Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r3ca042a93b178bc02327efec6cf08dd2348f9a8e -re45b20cdc5d4c5dcff8cef530b173ca94cb2e422 --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 3ca042a93b178bc02327efec6cf08dd2348f9a8e) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision e45b20cdc5d4c5dcff8cef530b173ca94cb2e422) @@ -16,7 +16,7 @@ from enum import unique -from ..utils.base import DialinEnum +from ..utils.enums import DialinEnum # ================================================== Enum Creators: Operations Lvl 1 ================================================== @@ -323,34 +323,32 @@ # 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 + DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE = 0 # Wait for door to close before executing self-tests + DRY_SELF_TESTS_USED_TUBING_CHECK_STATE = 1 # Used tubing check dry self-test state + DRY_SELF_TESTS_TUBING_LOADED_CHECK_STATE = 2 # Tubing loaded check dry self-test state + DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE = 3 # Tubing set authentication state + DRY_SELF_TESTS_SYRINGE_PUMP_SEEK_STATE = 4 # Syringe pump seek state + DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE = 5 # Pressure sensor normal setup state + DRY_SELF_TESTS_PRESSURE_VENOUS_SETUP_STATE = 6 # Venous pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_VENOUS_PRESSURE_STABILIZATION_STATE = 7 # Venous pressure verify pressure stability state + DRY_SELF_TESTS_VENOUS_PRESSURE_LEAK_CHECK_STATE = 8 # Venous pressure leak check state + DRY_SELF_TESTS_VENOUS_PRESSURE_RELIEF_STATE = 9 # Venous pressure relief state + DRY_SELF_TESTS_PRESSURE_ARTERIAL_SETUP_STATE = 10 # Arterial pressure sensor dry self-test setup valves and pump state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_STABILIZATION_STATE = 11 # Arterial pressure verify pressure stability state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_LEAK_CHECK_STATE = 12 # Arterial pressure leak check state + DRY_SELF_TESTS_ARTERIAL_PRESSURE_RELIEF_STATE = 13 # Arterial pressure relief state + DRY_SELF_TESTS_SYRINGE_PRIME_STATE = 14 # Prime syringe pump state + DRY_SELF_TESTS_SYRINGE_PUMP_OCCLUSION_CHECK_STATE = 15 # Occlusion detection state + DRY_SELF_TESTS_COMPLETE_STATE = 16 # Dry self-test complete state + DRY_SELF_TESTS_STOPPED_STATE = 17 # Dry self-test stopped state + NUM_OF_DRY_SELF_TESTS_STATES = 18 # 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_USED_TUBING_CHECK_STATE': ['used tubing check'], + 'DRY_SELF_TESTS_TUBING_LOADED_CHECK_STATE': ['tubing loaded check'], + 'DRY_SELF_TESTS_TUBING_SET_AUTHENTICATION_STATE': ['tubing set authentication', 'tubing 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'], @@ -784,27 +782,7 @@ } -@unique -class TDEventDataTypes(DialinEnum): - EVENT_DATA_TYPE_NONE = 0 # No Event Data Type - EVENT_DATA_TYPE_U32 = 1 # Unsigned 32bit Event Data Type - EVENT_DATA_TYPE_S32 = 2 # Signed 32bit Event Data Type - EVENT_DATA_TYPE_F32 = 3 # Float 32bit Event Data Type - EVENT_DATA_TYPE_BOOL = 4 # Boolean Event Data Type - NUM_OF_EVENT_DATA_TYPES = 5 # Number of Event Data Types -TDEventDataTypes._str_list = { - # Official Name : Accepted strings - 'EVENT_DATA_TYPE_NONE': ['none'], - 'EVENT_DATA_TYPE_U32': ['u32'], - 'EVENT_DATA_TYPE_S32': ['s32'], - 'EVENT_DATA_TYPE_F32': ['f32'], - 'EVENT_DATA_TYPE_BOOL': ['bool', 'boolean'], - 'NUM_OF_EVENT_DATA_TYPES': [], -} - - - # ================================================== Enum Creators: Names ================================================== @unique class TDAirPumpNames(DialinEnum): @@ -1133,18 +1111,20 @@ @unique class TDValvePositions(DialinEnum): VALVE_POSITION_NOT_IN_POSITION = 0 # Valve not in Position - VALVE_POSITION_A_INSERT_EJECT = 1 # Insert/Eject Valve Position - VALVE_POSITION_B_OPEN = 2 # Open Valve Position - VALVE_POSITION_C_CLOSE = 3 # Closed Valve Position + VALVE_POSITION_A_INSERT_LOAD = 1 # Insert/Eject Valve Position + VALVE_POSITION_B_OPEN_BLOOD = 2 # Open Valve Position + VALVE_POSITION_C_CLOSE_SALINE = 3 # Closed Valve Position VALVE_POSITION_C_PARTIAL_CLOSE = 4 # Partial Close Valve Position + NUM_OF_VALVE_POSITIONS = 5 # Partial Close Valve Position TDValvePositions._str_list = { # Official Name : Accepted strings 'VALVE_POSITION_NOT_IN_POSITION': ['not in position'], - 'VALVE_POSITION_A_INSERT_EJECT': ['a', 'insert/eject', 'insert', 'eject'], - 'VALVE_POSITION_B_OPEN': ['b', 'open'], - 'VALVE_POSITION_C_CLOSE': ['c', 'close', 'closed'], + 'VALVE_POSITION_A_INSERT_LOAD': ['a', 'insert/eject', 'insert', 'eject', 'load'], + 'VALVE_POSITION_B_OPEN_BLOOD': ['b', 'open', 'blood'], + 'VALVE_POSITION_C_CLOSE_SALINE': ['c', 'close', 'closed', 'saline'], 'VALVE_POSITION_C_PARTIAL_CLOSE': [], + 'NUM_OF_VALVE_POSITIONS': [], } @@ -1174,51 +1154,106 @@ } +# ================================================== Enum Creators: Treatment Parameters ================================================== @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 + TREATMENT_PARAM_TREATMENT_MODALITY = 0 # Treatment modality type (enum) + TREATMENT_PARAM_HDF_DILUTION = 1 # HDF dilution (enum) + TREATMENT_PARAM_BLOOD_FLOW = 2 # Blood flow rate (in mL/min) + TREATMENT_PARAM_DIALYSATE_FLOW = 3 # Dialysate flow rate (in mL/min) + TREATMENT_PARAM_TREATMENT_DURATION = 4 # Treatment duration (in minutes) + TREATMENT_PARAM_HEPARIN_DELIVERY_DURATION = 5 # Heparin delivery duration (in minutes) + TREATMENT_PARAM_HEPARIN_TYPE = 6 # Heparin type (enum) + TREATMENT_PARAM_DRY_BICARB_CART_SIZE = 7 # Dry bicarb cartrideg size (enum) + TREATMENT_PARAM_SODIUM = 8 # Sodium concentrate (mEq/L) + TREATMENT_PARAM_BICARB_CONCENTRATE = 9 # Bicarbonate concentrate (mEq/L) + TREATMENT_PARAM_DIALYZER_TYPE = 10 # Dialysate type (enum) + TREATMENT_PARAM_FLUID_BOLUS_VOLUME = 11 # Fluid bolus volume (in mL) + TREATMENT_PARAM_BP_MEAS_INTERVAL = 12 # Blood pressure measurement interval (in minutes) + TREATMENT_PARAM_PRIME_RINSEBACK_VOLUME = 13 # Prime rinseback volume (in mL) + TREATMENT_PARAM_HEPATITIS_B = 14 # Hepatitis B status (enum) + TREATMENT_PARAM_ACID_CONCENTRATE = 15 # Acid concentrate type (enum) + TREATMENT_PARAM_SUBST_FLUID_VOLUME = 16 # Substitution fluid volume (in liters) + TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME = 17 # Heparin bolus volume (in mL) + TREATMENT_PARAM_HEPARIN_DELIVERY_RATE = 18 # Heparin delivery rate (in mL/hr) + TREATMENT_PARAM_DIALYSATE_TEMPERATURE = 19 # Dialysate temperature (in degC) + TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR = 20 # Acid concentrate conversion factor + TREATMENT_PARAM_PRE_WEIGHT = 21 # Weight of patient prior to treatment + TREATMENT_PARAM_EST_TARGET_WEIGHT = 22 # Estimated target weight of patient post treatment + TREATMENT_PARAM_UF_VOLUME = 23 # Ultrafiltration volume (in liters) - provided separately by UI + NUM_OF_TREATMENT_PARAMS = 24 # Total number of treatment parameters TDTreatmentParameters._str_list = { # Official Name : Accepted strings + 'TREATMENT_PARAM_TREATMENT_MODALITY': ['treatment modality', 'treatment type'], + 'TREATMENT_PARAM_HDF_DILUTION': ['hdf dilution'], '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_DELIVERY_DURATION': ['heparin delivery duration', 'heparin duration'], '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_FLUID_BOLUS_VOLUME': ['fluid bolus volume', 'fluid bolus'], '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_PRIME_RINSEBACK_VOLUME': ['rinseback volume', 'prime rinseback volume'], + 'TREATMENT_PARAM_HEPATITIS_B': ['hepatitis', 'hepatitis b'], + 'TREATMENT_PARAM_SUBST_FLUID_VOLUME': ['subst fluid volume', 'substitute fluid volume'], 'TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME': ['heparin volume'], + 'TREATMENT_PARAM_HEPARIN_DELIVERY_RATE': ['heparin delivery rate'], + 'TREATMENT_PARAM_DIALYSATE_TEMPERATURE': ['dialysate temperature'], + 'TREATMENT_PARAM_ACID_CONCENTRATE_CONV_FACTOR': ['acid concentrate conv factor', 'acid concentrate conversion factor'], + 'TREATMENT_PARAM_PRE_WEIGHT': ['pre weight'], + 'TREATMENT_PARAM_EST_TARGET_WEIGHT': ['est target weight', 'target weight', 'estimated target weight'], 'TREATMENT_PARAM_UF_VOLUME': ['uf volume', 'ultrafiltration volume'], 'NUM_OF_TREATMENT_PARAMS': [], } + + +@unique +class TDTreatmentModalityTypes(DialinEnum): + HD = 0 # Treatment modality Hemodialysis + HDF = 1 # Treatment modality Hemodiafiltration + NUM_OF_TREATMENT_MODALITY_TYPES = 2 # Total number of treatment modality types + +TDTreatmentModalityTypes._str_list = { + # Official Name : Accepted strings + 'HD': ['treatment modality hd', 'hemodialysis'], + 'HDF': ['treatment modality hdf', 'hemodiafiltration'], + 'NUM_OF_TREATMENT_MODALITY_TYPES': [], +} + + +@unique +class TDTreatmentHDFDilution(DialinEnum): + HDF_NOT_APPLICABLE = 0 # Treatment HDF not applicable + HDF_PRE_DILUTION = 1 # Treatment HDF pre-dilution + HDF_POST_DILUTION = 2 # Treatment HDF psot-dilution + NUM_OF_TREATMENT_HDF_TYPES = 3 # Total number of HDF treatment dilution types + +TDTreatmentHDFDilution._str_list = { + # Official Name : Accepted strings + 'HDF_NOT_APPLICABLE': ['n/a', 'not applicable'], + 'HDF_PRE_DILUTION': ['pre dilution'], + 'HDF_POST_DILUTION': ['post dilution'], + 'NUM_OF_TREATMENT_HDF_TYPES': [], +} + + +@unique +class TDTreatmentHepatitisB(DialinEnum): + HEPATITIS_B_NOT_APPLICABLE = 0 # Hepatitis B status not applicable + HEPATITIS_B_UNKNOWN = 1 # Hepatitis B status unknowm + HEPATITIS_B_POSITIVE = 2 # Hepatitis B status positive + HEPATITIS_B_NEGATIVE = 3 # Hepatitis B status negative + NUM_OF_HEPATITIS_B_STATUS = 4 # Total number of Hepatitis status types + +TDTreatmentHepatitisB._str_list = { + # Official Name : Accepted strings + 'HEPATITIS_B_NOT_APPLICABLE': ['n/a', 'not applicable'], + 'HEPATITIS_B_UNKNOWN': ['unknown'], + 'HEPATITIS_B_POSITIVE': ['positive'], + 'HEPATITIS_B_NEGATIVE': ['negative'], + 'NUM_OF_HEPATITIS_B_STATUS': [], +}