""" The TD Pressures Mode ui loader """ # Python import os # Qt from PySide2 import QtCore, QtWidgets from PySide2.QtCore import Slot # parent from engine.dynamicloader import DynamicLoader # Plugin specific from leahi_dialin.ui.common import Ranges # hd Simulator from leahi_dialin.ui.td_messaging import TD_Messaging class Loader(DynamicLoader): """ The TD Pressures ui loader """ def __init__(self): self.td_interface = TD_Messaging() super().__init__(os.path.dirname(__file__)) def _init_loader(self): """ finds and creates widgets :return: none """ self.tbReset = self.find_widget(QtWidgets.QToolButton ,'tbReset' ) self.tbSend = self.find_widget(QtWidgets.QToolButton ,'tbSend' ) self.lblArterialTitle = self.find_widget(QtWidgets.QLabel ,'lblArterialTitle') self.lblVenousTitle = self.find_widget(QtWidgets.QLabel ,'lblVenousTitle' ) self.lblTMPTitle = self.find_widget(QtWidgets.QLabel ,'lblTMPTitle' ) self.lblArterialLimitLow = self.find_widget(QtWidgets.QLabel ,'lblArterialLimitLow' ) self.lblArterialLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblArterialLimitHigh' ) self.lblVenousLimitLow = self.find_widget(QtWidgets.QLabel ,'lblVenousLimitLow' ) self.lblVenousLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblVenousLimitHigh' ) self.lblTMPLimitLow = self.find_widget(QtWidgets.QLabel ,'lblTMPLimitLow' ) self.lblTMPLimitHigh = self.find_widget(QtWidgets.QLabel ,'lblTMPLimitHigh' ) self.spnArterialLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnArterialLimitLow' ) self.spnArterialLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnArterialLimitHigh' ) self.spnVenousLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnVenousLimitLow' ) self.spnVenousLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnVenousLimitHigh' ) self.spnTMPLimitLow = self.find_widget(QtWidgets.QSpinBox ,'spnTMPLimitLow' ) self.spnTMPLimitHigh = self.find_widget(QtWidgets.QSpinBox ,'spnTMPLimitHigh' ) self.sldArterialValue = self.find_widget(QtWidgets.QSlider ,'sldArterialValue' ) self.sldArterialValueLong = self.find_widget(QtWidgets.QSlider ,'sldArterialValueLong' ) self.sldVenousValue = self.find_widget(QtWidgets.QSlider ,'sldVenousValue' ) self.sldVenousValueLong = self.find_widget(QtWidgets.QSlider ,'sldVenousValueLong' ) self.sldTMPValue = self.find_widget(QtWidgets.QSlider ,'sldTMPValue' ) self.spnLimitState = self.find_widget(QtWidgets.QSpinBox ,'spnLimitState' ) self.lblArterialTitle .setText (f"{self.lblArterialTitle .text()} [{Ranges.ARTERIAL_PRESSURE_MINIMUM},{Ranges.ARTERIAL_PRESSURE_MAXIMUM}]" ) self.lblVenousTitle .setText (f"{self.lblVenousTitle .text()} [{Ranges.VENOUS_PRESSURE_MINIMUM},{Ranges.VENOUS_PRESSURE_MAXIMUM}]" ) self.lblTMPTitle .setText (f"{self.lblTMPTitle .text()} [{Ranges.TMP_PRESSURE_MINIMUM},{Ranges.TMP_PRESSURE_MAXIMUM}]" ) def _init_widgets(self): """ initializes the widgets' properties :return: none """ self.lblArterialLimitLow .setText (f"{Ranges.ARTERIAL_PRESSURE_LOW_MIN}\n{Ranges.ARTERIAL_PRESSURE_LOW_MAX}" ) self.lblArterialLimitHigh .setText (f"{Ranges.ARTERIAL_PRESSURE_HIGH_MIN}\n{Ranges.ARTERIAL_PRESSURE_HIGH_MAX}") self.lblVenousLimitLow .setText (f"{Ranges.VENOUS_PRESSURE_LOW_MIN}\n{Ranges.VENOUS_PRESSURE_LOW_MAX}" ) self.lblVenousLimitHigh .setText (f"{Ranges.VENOUS_PRESSURE_HIGH_MIN}\n{Ranges.VENOUS_PRESSURE_HIGH_MAX}" ) self.lblTMPLimitLow .setText (f"{Ranges.TMP_PRESSURE_LOW_MIN}\n{Ranges.TMP_PRESSURE_LOW_MAX}" ) self.lblTMPLimitHigh .setText (f"{Ranges.TMP_PRESSURE_HIGH_MIN}\n{Ranges.TMP_PRESSURE_HIGH_MAX}" ) self.sldArterialValue .setMinimum (Ranges.ARTERIAL_PRESSURE_MINIMUM) self.sldArterialValue .setMaximum (Ranges.ARTERIAL_PRESSURE_MAXIMUM) self.sldArterialValue .setValue (0) self.sldArterialValueLong .setMinimum (Ranges.ARTERIAL_PRESSURE_MINIMUM) self.sldArterialValueLong .setMaximum (Ranges.ARTERIAL_PRESSURE_MAXIMUM) self.sldArterialValueLong .setValue (0) self.sldVenousValue .setMinimum (Ranges.VENOUS_PRESSURE_MINIMUM) self.sldVenousValue .setMaximum (Ranges.VENOUS_PRESSURE_MAXIMUM) self.sldVenousValue .setValue (0) self.sldVenousValueLong .setMinimum (Ranges.VENOUS_PRESSURE_MINIMUM) self.sldVenousValueLong .setMaximum (Ranges.VENOUS_PRESSURE_MAXIMUM) self.sldVenousValueLong .setValue (0) self.sldTMPValue .setMinimum (Ranges.TMP_PRESSURE_MINIMUM) self.sldTMPValue .setMaximum (Ranges.TMP_PRESSURE_MAXIMUM) self.sldTMPValue .setValue (0) self.spnArterialLimitLow .setMinimum (Ranges.ARTERIAL_PRESSURE_LOW_MIN) self.spnArterialLimitLow .setMaximum (Ranges.ARTERIAL_PRESSURE_LOW_MAX) self.spnArterialLimitLow .setValue (Ranges.ARTERIAL_PRESSURE_LOW_DEF) self.spnArterialLimitHigh .setMinimum (Ranges.ARTERIAL_PRESSURE_HIGH_MIN) self.spnArterialLimitHigh .setMaximum (Ranges.ARTERIAL_PRESSURE_HIGH_MAX) self.spnArterialLimitHigh .setValue (Ranges.ARTERIAL_PRESSURE_HIGH_DEF) self.spnVenousLimitLow .setMinimum (Ranges.VENOUS_PRESSURE_LOW_MIN) self.spnVenousLimitLow .setMaximum (Ranges.VENOUS_PRESSURE_LOW_MAX) self.spnVenousLimitLow .setValue (Ranges.VENOUS_PRESSURE_LOW_DEF) self.spnVenousLimitHigh .setMinimum (Ranges.VENOUS_PRESSURE_HIGH_MIN) self.spnVenousLimitHigh .setMaximum (Ranges.VENOUS_PRESSURE_HIGH_MAX) self.spnVenousLimitHigh .setValue (Ranges.VENOUS_PRESSURE_HIGH_DEF) self.spnTMPLimitLow .setMinimum (Ranges.TMP_PRESSURE_LOW_MIN) self.spnTMPLimitLow .setMaximum (Ranges.TMP_PRESSURE_LOW_MAX) self.spnTMPLimitLow .setValue (Ranges.TMP_PRESSURE_LOW_DEF) self.spnTMPLimitHigh .setMinimum (Ranges.TMP_PRESSURE_HIGH_MIN) self.spnTMPLimitHigh .setMaximum (Ranges.TMP_PRESSURE_HIGH_MAX) self.spnTMPLimitHigh .setValue (Ranges.TMP_PRESSURE_HIGH_DEF) self.spnLimitState .setValue(0) def _init_connections(self): """ initializes the widgets connections :return: none """ self.tbReset .clicked.connect(self._init_widgets) self.tbSend .clicked.connect(self.do_pressures_data) self.sldArterialValue .valueChanged.connect(self.do_pressures_data) self.sldArterialValueLong .valueChanged.connect(self.do_pressures_data) self.sldVenousValue .valueChanged.connect(self.do_pressures_data) self.sldVenousValueLong .valueChanged.connect(self.do_pressures_data) self.sldTMPValue .valueChanged.connect(self.do_pressures_data) self.spnArterialLimitLow .valueChanged.connect(self.do_pressures_data) self.spnArterialLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnVenousLimitLow .valueChanged.connect(self.do_pressures_data) self.spnVenousLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnTMPLimitLow .valueChanged.connect(self.do_pressures_data) self.spnTMPLimitHigh .valueChanged.connect(self.do_pressures_data) self.spnLimitState .valueChanged.connect(self.do_pressures_data) @Slot() def do_pressures_data(self): """ sends the pressures values message with given value on the screen :return: none """ H2_arterial_pressure = self.sldArterialValue .value() H14_venous_pressure = self.sldVenousValue .value() limit_state = self.spnLimitState .value() H2_arterial_min = self.spnArterialLimitLow .value() H2_arterial_max = self.spnArterialLimitHigh .value() H14_venous_min = self.spnVenousLimitLow .value() H14_venous_max = self.spnVenousLimitHigh .value() H2_arterial_long = self.sldArterialValueLong .value() H14_venous_long = self.sldVenousValueLong .value() tmp_pressure = self.sldTMPValue .value() tmp_min = self.spnTMPLimitLow .value() tmp_max = self.spnTMPLimitHigh .value() self.td_interface.td_pressure( H2_arterial_pressure , H14_venous_pressure , limit_state , H2_arterial_min , H2_arterial_max , H14_venous_min , H14_venous_max , H2_arterial_long , H14_venous_long , tmp_pressure , tmp_min , tmp_max )