""" The ui loader class """ # Python import os # Qt from PySide2 import QtWidgets from PySide2.QtCore import Slot # parent from engine.dynamicloader import DynamicLoader # plugin specific # dialin from leahi_dialin.ui.td_messaging import TD_Messaging from leahi_dialin.common.td_defs import TDOpModes from leahi_dialin.common.td_defs import TDStandbyStates from leahi_dialin.utils import conversions from leahi_dialin.protocols import CAN class Loader(DynamicLoader): """ The ui loader class """ 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.btnStandby = self.find_widget(QtWidgets.QPushButton, 'btnStandby' ) self.btnCreate = self.find_widget(QtWidgets.QPushButton, 'btnCreate' ) self.btnCreateReset = self.find_widget(QtWidgets.QToolButton, 'btnCreateReset' ) self.btnValidate = self.find_widget(QtWidgets.QPushButton, 'btnValidate' ) self.btnValidateReset = self.find_widget(QtWidgets.QToolButton, 'btnValidateReset' ) self.btnConfirm = self.find_widget(QtWidgets.QPushButton, 'btnConfirm' ) self.spnCreateRxRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnCreateRxRejectReason' ) self.spnBloodFlowRateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnBloodFlowRateRejectReason' ) self.spnDialysateFlowRateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnDialysateFlowRateRejectReason' ) self.spnTreatmentDurationRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnTreatmentDurationRejectReason' ) self.spnSalineBolusVolumeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnSalineBolusVolumeRejectReason' ) self.spnHeparinStopTimeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnHeparinStopTimeRejectReason' ) self.spnHeparinTypeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnHeparinTypeRejectReason' ) self.spnAcidConcentrateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnAcidConcentrateRejectReason' ) self.spnBicarbonateConcentrateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnBicarbonateConcentrateRejectReason' ) self.spnDialyzerTypeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnDialyzerTypeRejectReason' ) self.spnBloodPressureMeasureIntervalRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnBloodPressureMeasureIntervalRejectReason' ) self.spnRinsebackFlowRateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnRinsebackFlowRateRejectReason' ) self.spnRinsebackVolumeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnRinsebackVolumeRejectReason' ) self.spnArterialPressureLimitWindowRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnArterialPressureLimitWindowRejectReason' ) self.spnVenousPressureLimitWindowRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnVenousPressureLimitWindowRejectReason' ) self.spnVenousPressureLimitAsymtrcRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnVenousPressureLimitAsymtrcRejectReason' ) self.spnTransmembranePressureLimitWindowRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnTransmembranePressureLimitWindowRejectReason' ) self.spnDialysateTempRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnDialysateTempRejectReason' ) self.spnHeparinDispensingRateRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnHeparinDispensingRateRejectReason' ) self.spnHeparinBolusVolumeRejectReason = self.find_widget(QtWidgets.QSpinBox , 'spnHeparinBolusVolumeRejectReason' ) def _init_widgets(self): """ initializes the widgets' properties :return: none """ pass def _init_connections(self): """ initializes the widgets connections :return: """ self.btnStandby .clicked.connect(self.do_standby ) self.btnCreate .clicked.connect(self.do_create ) self.btnCreateReset .clicked.connect(self.do_createReset ) self.btnValidate .clicked.connect(self.do_validate ) self.btnValidateReset .clicked.connect(self.do_validateReset ) self.btnConfirm .clicked.connect(self.do_confirm ) @Slot() def do_standby(self): self.td_interface.td_operation_mode( TDOpModes.MODE_STAN.value, TDStandbyStates.STANDBY_WAIT_FOR_TREATMENT_STATE.value ) @Slot() def do_create(self): if self.spnCreateRxRejectReason.value() == 0 : self.td_interface.td_Treatment_Parameters_CreateRx (0) self.td_interface.td_operation_mode( TDOpModes.MODE_TPAR.value, TDStandbyStates.STANDBY_WAIT_FOR_TREATMENT_STATE.value ) else: self.td_interface.td_Treatment_Parameters_CreateRx (self.spnCreateRxRejectReason.value()) @Slot() def do_createReset(self): self.spnCreateRxRejectReason.setValue(0) @Slot() def do_confirm(self): self.td_interface.td_operation_mode( TDOpModes.MODE_PRET.value, TDStandbyStates.STANDBY_WAIT_FOR_TREATMENT_STATE.value ) @Slot() def do_validate(self): """ send the validation response message :return: none """ accepted = ( self.spnBloodFlowRateRejectReason .value() + self.spnDialysateFlowRateRejectReason .value() + self.spnTreatmentDurationRejectReason .value() + self.spnSalineBolusVolumeRejectReason .value() + self.spnHeparinStopTimeRejectReason .value() + self.spnHeparinTypeRejectReason .value() + self.spnAcidConcentrateRejectReason .value() + self.spnBicarbonateConcentrateRejectReason .value() + self.spnDialyzerTypeRejectReason .value() + self.spnBloodPressureMeasureIntervalRejectReason .value() + self.spnRinsebackFlowRateRejectReason .value() + self.spnRinsebackVolumeRejectReason .value() + self.spnArterialPressureLimitWindowRejectReason .value() + self.spnVenousPressureLimitWindowRejectReason .value() + self.spnVenousPressureLimitAsymtrcRejectReason .value() + self.spnTransmembranePressureLimitWindowRejectReason.value() + self.spnDialysateTempRejectReason .value() + self.spnHeparinDispensingRateRejectReason .value() + self.spnHeparinBolusVolumeRejectReason .value() ) == 0 self.td_interface.td_Treatment_Parameters_Validation( 1 if accepted else 0, self.spnBloodFlowRateRejectReason .value(), self.spnDialysateFlowRateRejectReason .value(), self.spnTreatmentDurationRejectReason .value(), self.spnSalineBolusVolumeRejectReason .value(), self.spnHeparinStopTimeRejectReason .value(), self.spnHeparinTypeRejectReason .value(), self.spnAcidConcentrateRejectReason .value(), self.spnBicarbonateConcentrateRejectReason .value(), self.spnDialyzerTypeRejectReason .value(), self.spnBloodPressureMeasureIntervalRejectReason .value(), self.spnRinsebackFlowRateRejectReason .value(), self.spnRinsebackVolumeRejectReason .value(), self.spnArterialPressureLimitWindowRejectReason .value(), self.spnVenousPressureLimitWindowRejectReason .value(), self.spnVenousPressureLimitAsymtrcRejectReason .value(), self.spnTransmembranePressureLimitWindowRejectReason.value(), self.spnDialysateTempRejectReason .value(), self.spnHeparinDispensingRateRejectReason .value(), self.spnHeparinBolusVolumeRejectReason .value() ) @Slot() def do_validateReset(self): self.spnBloodFlowRateRejectReason .setValue(0) self.spnDialysateFlowRateRejectReason .setValue(0) self.spnTreatmentDurationRejectReason .setValue(0) self.spnSalineBolusVolumeRejectReason .setValue(0) self.spnHeparinStopTimeRejectReason .setValue(0) self.spnHeparinTypeRejectReason .setValue(0) self.spnAcidConcentrateRejectReason .setValue(0) self.spnBicarbonateConcentrateRejectReason .setValue(0) self.spnDialyzerTypeRejectReason .setValue(0) self.spnBloodPressureMeasureIntervalRejectReason .setValue(0) self.spnRinsebackFlowRateRejectReason .setValue(0) self.spnRinsebackVolumeRejectReason .setValue(0) self.spnArterialPressureLimitWindowRejectReason .setValue(0) self.spnVenousPressureLimitWindowRejectReason .setValue(0) self.spnVenousPressureLimitAsymtrcRejectReason .setValue(0) self.spnTransmembranePressureLimitWindowRejectReason.setValue(0) self.spnDialysateTempRejectReason .setValue(0) self.spnHeparinDispensingRateRejectReason .setValue(0) self.spnHeparinBolusVolumeRejectReason .setValue(0)