Index: leahi_dialin/td/modules/treatment.py =================================================================== diff -u -r3f4937e339925dde0b95f08e49969f8983c5cba4 -r4bbcf07a714e5b38fb117023694cb0be0bd3815d --- leahi_dialin/td/modules/treatment.py (.../treatment.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) +++ leahi_dialin/td/modules/treatment.py (.../treatment.py) (revision 4bbcf07a714e5b38fb117023694cb0be0bd3815d) @@ -68,141 +68,153 @@ function = self._handler_resp_treatment_parameters_sync) # Treatment param ranges data - self.min_tx_time = 0 - self.max_tx_time = 0 - self.min_uf_volume = 0.0 - self.max_uf_volume = 0.0 - self.min_dial_rate = 0 - self.max_dial_rate = 0 self.tx_params_timestamp = 0 #: The timestamp of the latest Treatment Parameters message + self.treatment_param_ranges = { + 'min_tx_time': 0, # The Minimum Treatment time + 'max_tx_time': 0, # The Maximum Treatment time + 'min_uf_volume': 0.0, # The Minimum Ultrafiltration volume + 'max_uf_volume': 0.0, # The Maximum Ultrafiltration volume + 'min_dial_rate': 0, # The Minimum Dialysate rate + 'max_dial_rate': 0 # The Maximum Dialysate rate + } # Saline Bolus data - self.tgt_saline_volume = 0 #: Target Saline Bolus volume in mL - self.cum_saline_volume = 0.0 #: Cum Saline Bolus volume in mL - self.bol_saline_volume = 0.0 #: Bol Saline Bolus volume in mL - self.saline_bolus_state = 0 #: The State of the Saline Bolus self.saline_bolus_timestamp = 0 #: The timestamp of the latest Saline Bolus message + self.saline_bolus = { + 'tgt_saline_volume': 0, # Target Saline Bolus volume in mL + 'cum_saline_volume': 0.0, # Cum Saline Bolus volume in mL + 'bol_saline_volume': 0.0, # Bol Saline Bolus volume in mL + 'saline_bolus_state': 0 # The State of the Saline Bolus + } - # UF data - self.set_uf_volume = 0.0 #: The Ultrafiltration volume in L - self.tgt_uf_rate = 0.0 #: The Ultrafiltration rate in L/hr - self.uf_volume_delivered = 0.0 #: How much was delivered during Ultrafiltration in L - self.uf_state = 0 #: The State of the Ultrafiltration + # Saline Bolus data self.uf_timestamp = 0 #: The timestamp of the latest Ultrafiltration message + self.ultrafiltration = { + 'set_uf_volume': 0.0, # The Ultrafiltration volume in L + 'tgt_uf_rate': 0.0, # The Ultrafiltration rate in L/hr + 'uf_volume_delivered': 0.0, # How much was delivered during Ultrafiltration in L + 'uf_state': 0 # The State of the Ultrafiltration + } # Treatment Time Data - self.tx_time_prescribed = 0 #: Total Treatment duration - self.tx_time_elapsed = 0 #: How much time is elapsed in the Treatment - self.tx_time_remaining = 0 #: How much time is remaining from the Treatment self.tx_time_timestamp = 0 #: The timestamp of the latest Treatment message + self.treatment_times ={ + 'tx_time_prescribed': 0, # Total Treatment duration + 'tx_time_elapsed': 0, # How much time is elapsed in the Treatment + 'tx_time_remaining': 0 # How much time is remaining from the Treatment + } # Treatment State Data - self.tx_sub_mode = 0 #: The Treatment Operation Sub-Mode - self.blood_prime_state = 0 #: The Blood Prime Operation Sub-Mode - self.dialysis_state = 0 #: The Dialysis Operation Sub-Mode - self.isolated_uf_state = 0 #: The Isolated Ultrafiltration Operation Sub-Mode - self.tx_stop_state = 0 #: The Treatment Stop Operation Sub-Mode - self.rinseback_state = 0 #: The Rinsback Operation Sub-Mode - self.tx_recirc_state = 0 #: The Recirculation Operation Sub-Mode - self.tx_end_state = 0 #: The Treatment End Operation Sub-Mode self.tx_state_timestamp = 0 #: The timestamp of the latest Treatment State message + self.treatment_states = { + 'tx_sub_mode': 0, # The Treatment Operation Sub-Mode + 'blood_prime_state': 0, # The Blood Prime Operation Sub-Mode + 'dialysis_state': 0, # The Dialysis Operation Sub-Mode + 'isolated_uf_state': 0, # The Isolated Ultrafiltration Operation Sub-Mode + 'tx_stop_state': 0, # The Treatment Stop Operation Sub-Mode + 'rinseback_state': 0, # The Rinsback Operation Sub-Mode + 'tx_recirc_state': 0, # The Recirculation Operation Sub-Mode + 'tx_end_state': 0 # The Treatment End Operation Sub-Mode + } # Treatment Parameters Data. Most recent response. - self.blood_flow_rate = 0 #: The Blood flow rate - self.dialysate_flow_rate = 0 #: The Dialysate flow rate - self.tx_duration = 0 #: The Treatment duration - self.saline_bolus_volume = 0 #: The Saline Bolus volume - self.hep_stop_time = 0 #: The Heparin stop time - self.hep_time = 0 #: The Heparin start time - self.acid_con = 0 #: The selected Acid concentrate's option index - self.bicarb_con = 0 #: The selected Bicarb concentrate's option index - self.dialyzer_type = 0 #: The selected Dialyser option index - self.bp_interval = 0 #: The Body Pulse interval - self.rb_flow_rate = 0 #: The RB flow rate - self.rb_volume = 0 #: The RB volume - self.art_pressure_window = 0 #: The Artery pressure window duration - self.venous_pressure_window = 0 #: The Venous pressure window duration - self.venous_asymm_window = 0 #: The Venous asymmetric window duration - self.tmp_limit_window = 0 #: The Transmembrane limit window duration - self.dialysate_temp = 0.0 #: The Dialysate temperature - self.hep_dispense_rate = 0.0 #: The Heparin dispense rate - self.hep_bolus_vol = 0.0 #: The Heparin bolus volume - self.uf_vol = 0.0 #: The Ultrafiltration volume self.tx_param_req_timestamp = 0 #: The timestamp of the latest Treatment Parameters Request message + self.treatment_paramters = { + 'blood_flow_rate': 0, # The Blood flow rate + 'dialysate_flow_rate': 0, # The Dialysate flow rate + 'tx_duration': 0, # The Treatment duration + 'saline_bolus_volume': 0, # The Saline Bolus volume + 'hep_stop_time': 0, # The Heparin stop time + 'hep_time': 0, # The Heparin start time + 'acid_con': 0, # The selected Acid concentrate's option index + 'bicarb_con': 0, # The selected Bicarb concentrate's option index + 'dialyzer_type': 0, # The selected Dialyser option index + 'bp_interval': 0, # The Body Pulse interval + 'rb_flow_rate': 0, # The RB flow rate + 'rb_volume': 0, # The RB volume + 'art_pressure_window': 0, # The Artery pressure window duration + 'venous_pressure_window': 0, # The Venous pressure window duration + 'venous_asymm_window': 0, # The Venous asymmetric window duration + 'tmp_limit_window': 0, # The Transmembrane limit window duration + 'dialysate_temp': 0, # The Dialysate temperature + 'hep_dispense_rate': 0, # The Heparin dispense rate + 'hep_bolus_vol': 0, # The Heparin bolus volume + 'uf_vol': 0 # The Ultrafiltration volume + } # ============================================================ Properties ============================================================ @property - def min_tx_time(self) -> int: + def treatment_param_ranges(self) -> dict: """ - The Minimum Treatment time + The Treatment Parameter limits """ return self._min_tx_time - @min_tx_time.setter - def min_tx_time(self, value): + @treatment_param_ranges.setter + def treatment_param_ranges(self, value): self._min_tx_time = value @property - def max_tx_time(self) -> int: + def saline_bolus(self) -> dict: """ - The Maximum Treatment time + The Saline Bolus data """ - return self._max_tx_time + return self._saline_bolus - @max_tx_time.setter - def max_tx_time(self, value): - self._max_tx_time = value + @saline_bolus.setter + def saline_bolus(self, value): + self._saline_bolus = value @property - def min_uf_volume(self) -> int: + def ultrafiltration(self) -> int: """ - The Minimum Ultrafiltration volume + The Ultrafiltration data """ - return self._min_uf_volume + return self._ultrafiltration - @min_uf_volume.setter - def min_uf_volume(self, value): - self._min_uf_volume = value + @ultrafiltration.setter + def ultrafiltration(self, value): + self._ultrafiltration = value @property - def max_uf_volume(self) -> int: + def treatment_times(self) -> int: """ - The Maximum Ultrafiltration volume + The Treatment times """ - return self._max_uf_volume + return self._treatment_times - @max_uf_volume.setter - def max_uf_volume(self, value): - self._max_uf_volume = value + @treatment_times.setter + def treatment_times(self, value): + self._treatment_times = value @property - def min_dial_rate(self) -> int: + def treatment_states(self) -> int: """ - The Minimum Dialysate rate + The Treatment states """ - return self._min_dial_rate + return self._treatment_states - @min_dial_rate.setter - def min_dial_rate(self, value): - self._min_dial_rate = value + @treatment_states.setter + def treatment_states(self, value): + self._treatment_states = value @property - def max_dial_rate(self) -> int: + def treatment_paramters(self) -> int: """ - The Maximum Dialysate rate + The Treatment Parameters """ - return self._max_dial_rate + return self._treatment_paramters - @max_dial_rate.setter - def max_dial_rate(self, value): - self._max_dial_rate = value + @treatment_paramters.setter + def treatment_paramters(self, value): + self._treatment_paramters = value @@ -217,12 +229,12 @@ @return: none """ msg_list = [] - msg_list.append((type(self).min_tx_time, DataTypes.U32)) - msg_list.append((type(self).max_tx_time, DataTypes.U32)) - msg_list.append((type(self).min_uf_volume, DataTypes.F32)) - msg_list.append((type(self).max_uf_volume, DataTypes.F32)) - msg_list.append((type(self).min_dial_rate, DataTypes.U32)) - msg_list.append((type(self).max_dial_rate, DataTypes.U32)) + msg_list.append((self.treatment_param_ranges, 'min_tx_time', DataTypes.U32)) + msg_list.append((self.treatment_param_ranges, 'max_tx_time', DataTypes.U32)) + msg_list.append((self.treatment_param_ranges, 'min_uf_volume', DataTypes.F32)) + msg_list.append((self.treatment_param_ranges, 'max_uf_volume', DataTypes.F32)) + msg_list.append((self.treatment_param_ranges, 'min_dial_rate', DataTypes.U32)) + msg_list.append((self.treatment_param_ranges, 'max_dial_rate', DataTypes.U32)) self.process_into_vars(decoder_list = msg_list, message = message) self.tx_params_timestamp = timestamp @@ -238,10 +250,10 @@ @return: none """ msg_list = [] - msg_list.append((type(self).tgt_saline_volume, DataTypes.U32)) - msg_list.append((type(self).cum_saline_volume, DataTypes.F32)) - msg_list.append((type(self).bol_saline_volume, DataTypes.F32)) - msg_list.append((type(self).saline_bolus_state, DataTypes.U32)) + msg_list.append((self.saline_bolus, 'tgt_saline_volume', DataTypes.U32)) + msg_list.append((self.saline_bolus, 'cum_saline_volume', DataTypes.F32)) + msg_list.append((self.saline_bolus, 'bol_saline_volume', DataTypes.F32)) + msg_list.append((self.saline_bolus, 'saline_bolus_state', DataTypes.U32)) self.process_into_vars(decoder_list = msg_list, message = message) self.saline_bolus_timestamp = timestamp @@ -257,10 +269,10 @@ @return: none """ msg_list = [] - msg_list.append((type(self).set_uf_volume, DataTypes.F32)) - msg_list.append((type(self).tgt_uf_rate, DataTypes.F32)) - msg_list.append((type(self).uf_volume_delivered, DataTypes.F32)) - msg_list.append((type(self).uf_state, DataTypes.U32)) + msg_list.append((self.ultrafiltration, 'set_uf_volume', DataTypes.F32)) + msg_list.append((self.ultrafiltration, 'tgt_uf_rate', DataTypes.F32)) + msg_list.append((self.ultrafiltration, 'uf_volume_delivered', DataTypes.F32)) + msg_list.append((self.ultrafiltration, 'uf_state', DataTypes.U32)) self.process_into_vars(decoder_list = msg_list, message = message) self.uf_timestamp = timestamp @@ -276,9 +288,9 @@ @return: none """ msg_list = [] - msg_list.append((type(self).tx_time_prescribed, DataTypes.U32)) - msg_list.append((type(self).tx_time_elapsed, DataTypes.U32)) - msg_list.append((type(self).tx_time_remaining, DataTypes.U32)) + msg_list.append((self.treatment_times, 'tx_time_prescribed', DataTypes.U32)) + msg_list.append((self.treatment_times, 'tx_time_elapsed', DataTypes.U32)) + msg_list.append((self.treatment_times, 'tx_time_remaining', DataTypes.U32)) self.process_into_vars(decoder_list = msg_list, message = message) self.tx_time_timestamp = timestamp @@ -294,14 +306,14 @@ @return: none """ msg_list = [] - msg_list.append((type(self).tx_sub_mode, DataTypes.U32)) - msg_list.append((type(self).blood_prime_state, DataTypes.U32)) - msg_list.append((type(self).dialysis_state, DataTypes.U32)) - msg_list.append((type(self).isolated_uf_state, DataTypes.U32)) - msg_list.append((type(self).tx_stop_state, DataTypes.U32)) - msg_list.append((type(self).rinseback_state, DataTypes.U32)) - msg_list.append((type(self).tx_recirc_state, DataTypes.U32)) - msg_list.append((type(self).tx_end_state, DataTypes.U32)) + msg_list.append((self.treatment_states, 'tx_sub_mode', DataTypes.U32)) + msg_list.append((self.treatment_states, 'blood_prime_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'dialysis_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'isolated_uf_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'tx_stop_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'rinseback_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'tx_recirc_state', DataTypes.U32)) + msg_list.append((self.treatment_states, 'tx_end_state', DataTypes.U32)) self.process_into_vars(decoder_list = msg_list, message = message) self.tx_state_timestamp = timestamp @@ -320,26 +332,26 @@ @return: none """ msg_list = [] - msg_list.append((type(self).blood_flow_rate, DataTypes.U32)) - msg_list.append((type(self).dialysate_flow_rate, DataTypes.U32)) - msg_list.append((type(self).tx_duration, DataTypes.U32)) - msg_list.append((type(self).saline_bolus_volume, DataTypes.U32)) - msg_list.append((type(self).hep_stop_time, DataTypes.U32)) - msg_list.append((type(self).hep_time, DataTypes.U32)) - msg_list.append((type(self).acid_con, DataTypes.U32)) - msg_list.append((type(self).bicarb_con, DataTypes.U32)) - msg_list.append((type(self).dialyzer_type, DataTypes.U32)) - msg_list.append((type(self).bp_interval, DataTypes.U32)) - msg_list.append((type(self).rb_flow_rate, DataTypes.U32)) - msg_list.append((type(self).rb_volume, DataTypes.U32)) - msg_list.append((type(self).art_pressure_window, DataTypes.U32)) - msg_list.append((type(self).venous_pressure_window, DataTypes.U32)) - msg_list.append((type(self).venous_asymm_window, DataTypes.U32)) - msg_list.append((type(self).tmp_limit_window, DataTypes.U32)) - msg_list.append((type(self).dialysate_temp, DataTypes.F32)) - msg_list.append((type(self).hep_dispense_rate, DataTypes.F32)) - msg_list.append((type(self).hep_bolus_vol, DataTypes.F32)) - msg_list.append((type(self).uf_vol, DataTypes.F32)) + msg_list.append((self.treatment_paramters, 'blood_flow_rate', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'dialysate_flow_rate', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'tx_duration', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'saline_bolus_volume', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'hep_stop_time', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'hep_time', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'acid_con', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'bicarb_con', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'dialyzer_type', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'bp_interval', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'rb_flow_rate', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'rb_volume', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'art_pressure_window', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'venous_pressure_window', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'venous_asymm_window', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'tmp_limit_window', DataTypes.U32)) + msg_list.append((self.treatment_paramters, 'dialysate_temp', DataTypes.F32)) + msg_list.append((self.treatment_paramters, 'hep_dispense_rate', DataTypes.F32)) + msg_list.append((self.treatment_paramters, 'hep_bolus_vol', DataTypes.F32)) + msg_list.append((self.treatment_paramters, 'uf_vol', DataTypes.F32)) self.process_into_vars(decoder_list = msg_list, message = message) self.tx_param_req_timestamp = timestamp