""" The Ultrafiltration ui loader """ import os from simulator.dynamicloader import DynamicLoader from PySide2 import QtWidgets from PySide2.QtCore import Slot from dialin.squish import denaliMessages from dialin.squish.denaliMessages import txStates, EResponse class Loader(DynamicLoader): """ The Ultrafiltration ui loader """ # components btnUfPauseAccept: QtWidgets.QPushButton btnUfPauseReject: QtWidgets.QPushButton btnUfResumeAccept: QtWidgets.QPushButton btnUfResumeReject: QtWidgets.QPushButton btnUfEditAccept: QtWidgets.QPushButton btnUfEditReject: QtWidgets.QPushButton lblUfPauseAction: QtWidgets.QLabel lblUfResumeAction: QtWidgets.QLabel lblUfEditAction: QtWidgets.QLabel spnUfPauseRejectReason: QtWidgets.QSpinBox spnUfEditRejectReason: QtWidgets.QSpinBox spnUfResumeRejectReason: QtWidgets.QSpinBox sldUfVolume: QtWidgets.QSlider def __init__(self): super().__init__(os.path.dirname(__file__)) def _init_loader(self): """ finds and creates widgets :return: none """ self.btnUfPauseAccept = self.find_button('btnUfPauseAccept') self.btnUfPauseReject = self.find_button('btnUfPauseReject') self.btnUfResumeAccept = self.find_button('btnUfResumeAccept') self.btnUfResumeReject = self.find_button('btnUfResumeReject') self.btnUfEditAccept = self.find_button('btnUfEditAccept') self.btnUfEditReject = self.find_button('btnUfEditReject') self.lblUfPauseAction = self.find_label('lblUfPauseAction') self.lblUfResumeAction = self.find_label('lblUfResumeAction') self.lblUfEditAction = self.find_label('lblUfEditAction') self.spnUfPauseRejectReason = self.find_spinbox('spnUfPauseRejectReason') self.spnUfResumeRejectReason = self.find_spinbox('spnUfResumeRejectReason') self.spnUfEditRejectReason = self.find_spinbox('spnUfEditRejectReason') self.sldUfVolume = self.find_slider('sldUfVolume') def _init_widgets(self): """ initializes the widgets' properties :return: none """ pass def _init_connections(self): """ initializes the widgets connections :return: none """ self.btnUfPauseAccept.clicked.connect(self.do_uf_pause_accept) self.btnUfPauseReject.clicked.connect(self.do_uf_pause_reject) self.btnUfResumeAccept.clicked.connect(self.do_uf_resume_accept) self.btnUfResumeReject.clicked.connect(self.do_uf_resume_reject) self.btnUfEditAccept.clicked.connect(self.do_uf_edit_accept) self.btnUfEditReject.clicked.connect(self.do_uf_edit_reject) self.sldUfVolume.valueChanged.connect(self.do_uf_volume_data) @Slot() def do_uf_pause_accept(self): """ the slot for accept ultrafiltration pause button :return: none """ denaliMessages.setTreatmentAdjustUltrafiltrationStateResponse( EResponse.Accepted, 0, txStates.UF_PAUSED_STATE) self.lblUfPauseAction.setText('Accepted ') @Slot() def do_uf_pause_reject(self): """ the slot for reject ultrafiltration pause button :return: none """ reason = self.spnUfPauseRejectReason.value() denaliMessages.setTreatmentAdjustUltrafiltrationStateResponse( EResponse.Rejected, reason, txStates.UF_RUNNING_STATE) self.lblUfPauseAction.setText('Rejected ' + "{}".format(reason)) @Slot() def do_uf_resume_accept(self): """ the slot for accept ultrafiltration resume accept :return: none """ denaliMessages.setTreatmentAdjustUltrafiltrationStateResponse( EResponse.Accepted, 0, txStates.UF_RUNNING_STATE) self.lblUfResumeAction.setText('Accepted ') @Slot() def do_uf_resume_reject(self): """ the slot for reject ultrafiltration resume button :return: none """ reason = self.spnUfResumeRejectReason.value() denaliMessages.setTreatmentAdjustUltrafiltrationStateResponse( EResponse.Rejected, reason, txStates.UF_PAUSED_STATE) self.lblUfResumeAction.setText('Rejected ' + "{}".format(reason)) @Slot() def do_uf_edit_accept(self): """ the slot for accept ultrafiltration next button :return: none """ denaliMessages.setTreatmentAdjustUltrafiltrationEditResponse( EResponse.Accepted, 0, 2500, 60, 0, 10, 0, 10) self.lblUfEditAction.setText('Accepted ') @Slot() def do_uf_edit_reject(self): """ the slot for reject ultrafiltration next button :return: none """ reason = self.spnUfEditRejectReason.value() denaliMessages.setTreatmentAdjustUltrafiltrationEditResponse( EResponse.Rejected, reason, 2500, 60, 0, 10, 0, 10) self.lblUfEditAction.setText('Rejected ' + "{}".format(reason)) @Slot() def do_uf_volume_data(self): """ sends the ultrafiltration delivered volume message :return: none """ denaliMessages.setTreatmentUltrafiltration(self.sldUfVolume.value(), 0, 0, 0, 0, 0, 0)