Index: MainTreatmentData/loader.py =================================================================== diff -u -rc43959d92d8ae0439b01b9acd6fa5bb3922afd17 -rc2a68654fcf052f130d3e5de8457aaa375b72506 --- MainTreatmentData/loader.py (.../loader.py) (revision c43959d92d8ae0439b01b9acd6fa5bb3922afd17) +++ MainTreatmentData/loader.py (.../loader.py) (revision c2a68654fcf052f130d3e5de8457aaa375b72506) @@ -18,9 +18,6 @@ from leahi_dialin.protocols import CAN from leahi_dialin.utils import conversions -from leahi_dialin.common.td_defs import TDOpModes -from leahi_dialin.common.td_defs import TDStandbyStates - # hd Simulator from leahi_dialin.ui.td_messaging import TD_Messaging @@ -35,7 +32,7 @@ super().__init__(os.path.dirname(__file__)) if self.can_interface is not None: - channel_id = CAN.DenaliChannels.ui_to_td_ch_id + channel_id = CAN.CanChannels.ui_to_td_ch_id message_id = MsgIds.MSG_ID_UI_SOLUTION_INFUSION_REQUEST.value self.can_interface.register_receiving_publication_function(channel_id, message_id, @@ -48,13 +45,28 @@ finds and creates widgets :return: none """ + self.uf_scaling = 100.00 # UF Scaling factor to be 2 decimal places + self.tbReset = self.find_widget(QtWidgets.QToolButton , 'tbReset' ) self.tbSend = self.find_widget(QtWidgets.QToolButton , 'tbSend' ) self.saline_tgt_vol = self.find_widget(QtWidgets.QSlider , 'TargetVolumeSlider' ) self.saline_cum_vol = self.find_widget(QtWidgets.QSlider , 'CumulativeVolumeSlider' ) self.saline_bol_del = self.find_widget(QtWidgets.QSlider , 'SalineCurrDeliveredVolumeSlider' ) + self.cbBolusPermitted = self.find_widget(QtWidgets.QCheckBox , 'cbBolusPermitted' ) + self.tbBolusDataSend = self.find_widget(QtWidgets.QToolButton , 'tbBolusDataSend' ) + + self.ufDataSend = self.find_widget(QtWidgets.QToolButton , 'ufDataSendButton' ) + self.ufDataReset = self.find_widget(QtWidgets.QToolButton , 'ufDataResetButton' ) + self.ufSetVolume = self.find_widget(QtWidgets.QSlider , 'ufSetVolumeSlider' ) + self.ufTargetRate = self.find_widget(QtWidgets.QSlider , 'ufTargetRateSlider' ) + self.ufVolumeDelivered = self.find_widget(QtWidgets.QSlider , 'ufVolumeDeliveredSlider' ) + self.ufState = self.find_widget(QtWidgets.QSpinBox , 'ufStateSpinBox' ) + self.ufSetVolumeLabel = self.find_widget(QtWidgets.QLabel , 'ufSetVolumeLabel' ) + self.ufTargetRateLabel = self.find_widget(QtWidgets.QLabel , 'ufTargetRateLabel' ) + self.ufVolumeDeliveredLabel = self.find_widget(QtWidgets.QLabel , 'ufVolumeDeliveredLabel' ) + self.tx_duration = self.find_widget(QtWidgets.QSlider , 'DurationSlider' ) self.tx_elapsed = self.find_widget(QtWidgets.QSlider , 'ElapsedSlider' ) @@ -78,7 +90,16 @@ self.saline_tgt_vol .valueChanged.connect(self.do_saline_data) self.saline_cum_vol .valueChanged.connect(self.do_saline_data) self.saline_bol_del .valueChanged.connect(self.do_saline_data) + self.cbBolusPermitted.clicked.connect(self.do_saline_data) + self.tbBolusDataSend .clicked.connect(self.do_saline_data) + self.ufDataSend .clicked.connect(self.do_uf_data) + self.ufDataReset .clicked.connect(self.init_uf_data) + self.ufSetVolume .valueChanged.connect(self.do_uf_data) + self.ufTargetRate .valueChanged.connect(self.do_uf_data) + self.ufVolumeDelivered .valueChanged.connect(self.do_uf_data) + self.ufState .valueChanged.connect(self.do_uf_data) + self.tx_duration .valueChanged.connect(self.do_tx_time_data) self.tx_elapsed .valueChanged.connect(self.do_tx_time_data) @@ -96,6 +117,7 @@ state,index = conversions.bytearray_to_integer( message, index) self.lbBolusStart .setText( str(state) ) + @Slot() def _init_widgets(self): """ @@ -106,31 +128,71 @@ self.saline_cum_vol .setValue(0) self.saline_bol_del .setValue(0) + self.init_uf_data() + self.tx_duration .setValue(0) self.tx_elapsed .setValue(0) self.blood_flow_st_pt .setValue(0) self.dial_flow_st_pt .setValue(0) self.dial_temp_st_pt .setValue(0) + @Slot() def do_saline_data(self): """ the slot for Saline Data :return: none """ - target_volume = self.saline_tgt_vol.value() - cumulative_volume = self.saline_cum_vol.value() - bolus_volume = self.saline_bol_del.value() + target_volume = self.saline_tgt_vol .value() + bolus_volume = self.saline_bol_del .value() + cumulative_volume = self.saline_cum_vol .value() + bolusPermitted = int(self.cbBolusPermitted .isChecked()) self.td_interface.td_saline( target_volume , - cumulative_volume , bolus_volume , - 0 + cumulative_volume , + bolusPermitted ) + @Slot() + def init_uf_data(self): + """ + slot for initializing UF settings change + :return: none + """ + self.ufSetVolume .setValue(0) + self.ufTargetRate .setValue(0) + self.ufVolumeDelivered .setValue(0) + self.ufState .setValue(0) + + + @Slot() + def do_uf_data(self): + """ + the slot for UF Data + :return: none + """ + set_volume = self.ufSetVolume .value() / self.uf_scaling + target_rate = self.ufTargetRate .value() / self.uf_scaling + volume_delivered = self.ufVolumeDelivered.value() / self.uf_scaling + state = self.ufState .value() + + self.ufSetVolumeLabel .setText(f"{set_volume:.2f}" ) + self.ufTargetRateLabel .setText(f"{target_rate:.2f}" ) + self.ufVolumeDeliveredLabel .setText(f"{volume_delivered:.2f}" ) + + self.td_interface.td_ultrafiltration( + set_volume , + target_rate , + volume_delivered , + state + ) + + + @Slot() def do_tx_time_data(self): """ the slot for treatment time Data