Index: TD_Advanced_Institutional_Records/interface.ui
===================================================================
diff -u
--- TD_Advanced_Institutional_Records/interface.ui (revision 0)
+++ TD_Advanced_Institutional_Records/interface.ui (revision c188c445ebd056f3b15909ef9d994b78b9f752c2)
@@ -0,0 +1,1418 @@
+
+
+ ui_interface
+
+
+
+ 0
+ 0
+ 535
+ 561
+
+
+
+
+ 100000
+ 100000
+
+
+
+ &5 TD info/&11 Advanced Institutional Record
+
+
+ -
+
+
-
+
+
-
+
+
+
+ 180
+ 0
+
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 352
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 114
+ 159
+ 207
+
+
+
+
+
+
+ 196
+ 225
+ 255
+
+
+
+
+
+
+ 155
+ 192
+ 231
+
+
+
+
+
+
+ 57
+ 79
+ 103
+
+
+
+
+
+
+ 76
+ 106
+ 138
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 114
+ 159
+ 207
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 184
+ 207
+ 231
+
+
+
+
+
+
+ 255
+ 255
+ 220
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 218
+ 218
+ 218
+
+
+
+
+
+
+ 38
+ 38
+ 38
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 202
+ 202
+ 202
+
+
+
+
+
+
+ 31
+ 31
+ 31
+
+
+
+
+
+
+ 175
+ 175
+ 175
+
+
+
+
+
+
+ 218
+ 218
+ 218
+
+
+
+
+
+
+ 255
+ 51
+ 51
+
+
+
+
+
+
+ 218
+ 218
+ 218
+
+
+
+
+
+
+ 38
+ 39
+ 40
+
+
+
+
+
+
+ 38
+ 38
+ 38
+
+
+
+
+
+
+ 118
+ 118
+ 118
+
+
+
+
+
+
+ 38
+ 39
+ 40
+
+
+
+
+
+
+ 17
+ 17
+ 17
+
+
+
+
+
+
+ 218
+ 218
+ 218
+
+
+
+
+
+
+ 128
+ 128
+ 129
+
+
+
+
+
+
+
+
+ 57
+ 79
+ 103
+
+
+
+
+
+
+ 114
+ 159
+ 207
+
+
+
+
+
+
+ 196
+ 225
+ 255
+
+
+
+
+
+
+ 155
+ 192
+ 231
+
+
+
+
+
+
+ 57
+ 79
+ 103
+
+
+
+
+
+
+ 76
+ 106
+ 138
+
+
+
+
+
+
+ 57
+ 79
+ 103
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 57
+ 79
+ 103
+
+
+
+
+
+
+ 114
+ 159
+ 207
+
+
+
+
+
+
+ 114
+ 159
+ 207
+
+
+
+
+
+
+ 177
+ 177
+ 177
+
+
+
+
+
+
+ 38
+ 39
+ 40
+
+
+
+
+
+
+ 17
+ 17
+ 17
+
+
+
+
+
+
+ 218
+ 218
+ 218
+
+
+
+
+
+
+ 128
+ 128
+ 129
+
+
+
+
+
+
+
+
+ 10
+
+
+
+ color: rgb(238, 238, 236);
+background-color: rgb(92, 53, 102);
+
+
+
+ XXX : [0xXX00] : Advanced Institutional Records
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ send
+
+
+
+
+
+ -
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 529
+ 868
+
+
+
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Inlet Water Cond. Low Threshold
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Disinfection Frequency
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Minimim RO Rejection Ratio Alarm
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ 900
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Water Sample Tes Result Required
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ N/A
+
+
+
+ -
+
+
+ N/A
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Chlorine Water Sample Check
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Maximum Blood Pump Stop Time
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Disinfection Parameters, Cycle Time
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Inlet Water Cond. High Threshold
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: TD_Advanced_Institutional_Records/loader.py
===================================================================
diff -u
--- TD_Advanced_Institutional_Records/loader.py (revision 0)
+++ TD_Advanced_Institutional_Records/loader.py (revision c188c445ebd056f3b15909ef9d994b78b9f752c2)
@@ -0,0 +1,288 @@
+"""
+ The Insitutional Record ui loader
+"""
+# Python
+import os
+import can
+import struct
+
+# Qt
+from PySide2 import QtCore, QtWidgets
+from PySide2.QtCore import Slot
+
+# parent
+from engine.dynamicloader import DynamicLoader
+
+# plugin specific
+from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions
+from leahi_dialin.protocols import CAN
+from leahi_dialin.utils import conversions
+
+# hd Simulator
+from leahi_dialin.ui.td_messaging import TD_Messaging
+
+class Loader(DynamicLoader):
+ """
+ The Advanced Institutional ui loader
+ """
+
+ def __init__(self):
+ self.td_interface = TD_Messaging()
+ self.can_interface = self.td_interface.can_interface
+ super().__init__(os.path.dirname(__file__))
+ self.index = 0
+
+ if self.can_interface is not None:
+ channel_id = CAN.DenaliChannels.ui_to_td_ch_id
+ request_message_id = MsgIds.MSG_ID_TD_ADVANCED_INSTITUTIONAL_RECORD_REQUEST.value
+ adjust_request_message_id = MsgIds.MSG_ID_TD_ADVANCED_ADJUST_INSTITUTIONAL_RECORD_REQUEST.value
+ self.can_interface.register_receiving_publication_function(channel_id,
+ request_message_id,
+ self.handle_request)
+ self.can_interface.register_receiving_publication_function(channel_id,
+ adjust_request_message_id,
+ self.handle_adjust_request)
+
+ def _init_loader(self):
+ """
+ finds and creates widgets
+ :return: none
+ """
+ self.tbSend = self.find_widget(QtWidgets.QToolButton , 'tbSend' )
+ self.sbReason = self.find_widget(QtWidgets.QSpinBox , 'ReasonSpinBox' )
+ self.sbMinRORejectionRatioAlarmMin = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmMin' )
+ self.sbMinRORejectionRatioAlarmMax = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmMax' )
+ self.sbMinRORejectionRatioAlarmDef = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmDef' )
+ self.sbDisinfectionFrequencyMin = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyMin' )
+ self.sbDisinfectionFrequencyMax = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyMax' )
+ self.sbDisinfectionFrequencyDef = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyDef' )
+ self.sbDisinfectionParametersCycleTimeMin = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeMin' )
+ self.sbDisinfectionParametersCycleTimeMax = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeMax' )
+ self.sbDisinfectionParametersCycleTimeDef = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeDef' )
+ self.sbMaxBloodPumpStopTimeMin = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeMin' )
+ self.sbMaxBloodPumpStopTimeMax = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeMax' )
+ self.sbMaxBloodPumpStopTimeDef = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeDef' )
+ self.sbInletWaterCondLowThresholdMin = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdMin' )
+ self.sbInletWaterCondLowThresholdMax = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdMax' )
+ self.sbInletWaterCondLowThresholdDef = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdDef' )
+ self.sbInletWaterCondHighThresholdMin = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdMin' )
+ self.sbInletWaterCondHighThresholdMax = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdMax' )
+ self.sbInletWaterCondHighThresholdDef = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdDef' )
+ self.sbChlorineWaterSampleCheckMin = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckMin' )
+ self.sbChlorineWaterSampleCheckMax = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckMax' )
+ self.sbChlorineWaterSampleCheckDef = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckDef' )
+ self.cbWaterSampleTestResultRequiredDef = self.find_widget(QtWidgets.QComboBox , 'waterSampleTestResultRequiredDef' )
+
+
+ self.sbMinRORejectionRatioAlarmMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmMinRejectionReason' )
+ self.sbMinRORejectionRatioAlarmMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmMaxRejectionReason' )
+ self.sbMinRORejectionRatioAlarmDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'minRORejectionRatioAlarmDefRejectionReason' )
+ self.sbDisinfectionFrequencyMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyMinRejectionReason' )
+ self.sbDisinfectionFrequencyMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyMaxRejectionReason' )
+ self.sbDisinfectionFrequencyDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionFrequencyDefRejectionReason' )
+ self.sbDisinfectionParametersCycleTimeMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeMinRejectionReason' )
+ self.sbDisinfectionParametersCycleTimeMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeMaxRejectionReason' )
+ self.sbDisinfectionParametersCycleTimeDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'disinfectionParametersCycleTimeDefRejectionReason' )
+ self.sbMaxBloodPumpStopTimeMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeMinRejectionReason' )
+ self.sbMaxBloodPumpStopTimeMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeMaxRejectionReason' )
+ self.sbMaxBloodPumpStopTimeDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'maxBloodPumpStopTimeDefRejectionReason' )
+ self.sbInletWaterCondLowThresholdMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdMinRejectionReason' )
+ self.sbInletWaterCondLowThresholdMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdMaxRejectionReason' )
+ self.sbInletWaterCondLowThresholdDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondLowThresholdDefRejectionReason' )
+ self.sbInletWaterCondHighThresholdMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdMinRejectionReason' )
+ self.sbInletWaterCondHighThresholdMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdMaxRejectionReason' )
+ self.sbInletWaterCondHighThresholdDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'inletWaterCondHighThresholdDefRejectionReason' )
+ self.sbChlorineWaterSampleCheckMinRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckMinRejectionReason' )
+ self.sbChlorineWaterSampleCheckMaxRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckMaxRejectionReason' )
+ self.sbChlorineWaterSampleCheckDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'chlorineWaterSampleCheckDefRejectionReason' )
+ self.sbWaterSampleTestResultRequiredDefRejectionReason = self.find_widget(QtWidgets.QSpinBox , 'waterSampleTestResultRequiredDefRejectionReason' )
+
+ def _init_connections(self):
+ """
+ initializes the widgets connections
+ :return: none
+ """
+ self.tbSend .clicked .connect(self.do_send)
+
+ def _init_widgets(self):
+ """
+ initializes the widgets' properties
+ :return: none
+ """
+ self.sbReason .setValue(0)
+ self.setup_spinbox(self.sbMinRORejectionRatioAlarmMin , 1, 1, 99, 1)
+ self.setup_spinbox(self.sbMinRORejectionRatioAlarmMax , 99, 1, 99, 1)
+ self.setup_spinbox(self.sbMinRORejectionRatioAlarmDef , 90, 1, 99, 1)
+ self.setup_spinbox(self.sbDisinfectionFrequencyMin , 1, 1, 5, 1)
+ self.setup_spinbox(self.sbDisinfectionFrequencyMax , 5, 1, 5, 1)
+ self.setup_spinbox(self.sbDisinfectionFrequencyDef , 3, 1, 5, 1)
+ self.setup_spinbox(self.sbDisinfectionParametersCycleTimeMin , 1, 1, 60, 1)
+ self.setup_spinbox(self.sbDisinfectionParametersCycleTimeMax , 60, 1, 60, 1)
+ self.setup_spinbox(self.sbDisinfectionParametersCycleTimeDef , 6300, 1, 60, 1)
+ self.setup_spinbox(self.sbMaxBloodPumpStopTimeMin , 5, 5, 30, 1)
+ self.setup_spinbox(self.sbMaxBloodPumpStopTimeMax , 30, 5, 30, 1)
+ self.setup_spinbox(self.sbMaxBloodPumpStopTimeDef , 5, 5, 30, 1)
+ self.setup_spinbox(self.sbInletWaterCondLowThresholdMin , 20, 20, 200, 10)
+ self.setup_spinbox(self.sbInletWaterCondLowThresholdMax , 200, 20, 200, 10)
+ self.setup_spinbox(self.sbInletWaterCondLowThresholdDef , 200, 20, 200, 10)
+ self.setup_spinbox(self.sbInletWaterCondHighThresholdMin , 50, 20, 200, 10)
+ self.setup_spinbox(self.sbInletWaterCondHighThresholdMax , 200, 20, 200, 10)
+ self.setup_spinbox(self.sbInletWaterCondHighThresholdDef , 50, 20, 200, 10)
+ self.setup_spinbox(self.sbChlorineWaterSampleCheckMin , 15, 15, 480, 5)
+ self.setup_spinbox(self.sbChlorineWaterSampleCheckMax , 480, 15, 480, 5)
+ self.setup_spinbox(self.sbChlorineWaterSampleCheckDef , 140, 15, 480, 5)
+ comboList = ["disabled", "enabled"]
+ self.cbWaterSampleTestResultRequiredDef.addItems(comboList)
+
+ self.sbMinRORejectionRatioAlarmMinRejectionReason .setValue(0)
+ self.sbMinRORejectionRatioAlarmMaxRejectionReason .setValue(0)
+ self.sbMinRORejectionRatioAlarmDefRejectionReason .setValue(0)
+ self.sbDisinfectionFrequencyMinRejectionReason .setValue(0)
+ self.sbDisinfectionFrequencyMaxRejectionReason .setValue(0)
+ self.sbDisinfectionFrequencyDefRejectionReason .setValue(0)
+ self.sbDisinfectionParametersCycleTimeMinRejectionReason .setValue(0)
+ self.sbDisinfectionParametersCycleTimeMaxRejectionReason .setValue(0)
+ self.sbDisinfectionParametersCycleTimeDefRejectionReason .setValue(0)
+ self.sbMaxBloodPumpStopTimeMinRejectionReason .setValue(0)
+ self.sbMaxBloodPumpStopTimeMaxRejectionReason .setValue(0)
+ self.sbMaxBloodPumpStopTimeDefRejectionReason .setValue(0)
+ self.sbInletWaterCondLowThresholdMinRejectionReason .setValue(0)
+ self.sbInletWaterCondLowThresholdMaxRejectionReason .setValue(0)
+ self.sbInletWaterCondLowThresholdDefRejectionReason .setValue(0)
+ self.sbInletWaterCondHighThresholdMinRejectionReason .setValue(0)
+ self.sbInletWaterCondHighThresholdMaxRejectionReason .setValue(0)
+ self.sbInletWaterCondHighThresholdDefRejectionReason .setValue(0)
+ self.sbChlorineWaterSampleCheckMinRejectionReason .setValue(0)
+ self.sbChlorineWaterSampleCheckMaxRejectionReason .setValue(0)
+ self.sbChlorineWaterSampleCheckDefRejectionReason .setValue(0)
+ self.sbWaterSampleTestResultRequiredDefRejectionReason .setValue(0)
+
+
+ def setup_spinbox(self, vSpinBox, vInitialValue, vMin, vMax, vStep):
+ vSpinBox.setRange(vMin, vMax)
+ vSpinBox.setValue(vInitialValue)
+ vSpinBox.setSingleStep(vStep)
+
+ def getIntValue (self, message):
+ val,self.index = conversions.bytearray_to_integer( message, self.index)
+ return val
+
+ @Slot()
+ def handle_request(self, message, timestamp = 0.0):
+ """
+ Called when the user requests to firmware from UI
+ @return: None
+ """
+ self.td_interface.td_advanced_institutional_response(self.sbReason .value(),
+ self.sbMinRORejectionRatioAlarmMin .value(),
+ self.sbMinRORejectionRatioAlarmMax .value(),
+ self.sbMinRORejectionRatioAlarmDef .value(),
+ self.sbDisinfectionFrequencyMin .value(),
+ self.sbDisinfectionFrequencyMax .value(),
+ self.sbDisinfectionFrequencyDef .value(),
+ self.sbDisinfectionParametersCycleTimeMin .value(),
+ self.sbDisinfectionParametersCycleTimeMax .value(),
+ self.sbDisinfectionParametersCycleTimeDef .value(),
+ self.sbMaxBloodPumpStopTimeMin .value(),
+ self.sbMaxBloodPumpStopTimeMax .value(),
+ self.sbMaxBloodPumpStopTimeDef .value(),
+ self.sbInletWaterCondLowThresholdMin .value(),
+ self.sbInletWaterCondLowThresholdMax .value(),
+ self.sbInletWaterCondLowThresholdDef .value(),
+ self.sbInletWaterCondHighThresholdMin .value(),
+ self.sbInletWaterCondHighThresholdMax .value(),
+ self.sbInletWaterCondHighThresholdDef .value(),
+ self.sbChlorineWaterSampleCheckMin .value(),
+ self.sbChlorineWaterSampleCheckMax .value(),
+ self.sbChlorineWaterSampleCheckDef .value(),
+ self.cbWaterSampleTestResultRequiredDef.currentIndex())
+
+ @Slot()
+ def handle_adjust_request(self, message, timestamp = 0.0):
+ """
+ Called when the user requests to firmware from UI
+ @return: None
+ """
+ message = message['message']
+ self.index = MsgFieldPositions.START_POS_FIELD_1
+
+ accepted = (
+ self.sbMinRORejectionRatioAlarmMinRejectionReason .value() +
+ self.sbMinRORejectionRatioAlarmMaxRejectionReason .value() +
+ self.sbMinRORejectionRatioAlarmDefRejectionReason .value() +
+ self.sbDisinfectionFrequencyMinRejectionReason .value() +
+ self.sbDisinfectionFrequencyMaxRejectionReason .value() +
+ self.sbDisinfectionFrequencyDefRejectionReason .value() +
+ self.sbDisinfectionParametersCycleTimeMinRejectionReason .value() +
+ self.sbDisinfectionParametersCycleTimeMaxRejectionReason .value() +
+ self.sbDisinfectionParametersCycleTimeDefRejectionReason .value() +
+ self.sbMaxBloodPumpStopTimeMinRejectionReason .value() +
+ self.sbMaxBloodPumpStopTimeMaxRejectionReason .value() +
+ self.sbMaxBloodPumpStopTimeDefRejectionReason .value() +
+ self.sbInletWaterCondLowThresholdMinRejectionReason .value() +
+ self.sbInletWaterCondLowThresholdMaxRejectionReason .value() +
+ self.sbInletWaterCondLowThresholdDefRejectionReason .value() +
+ self.sbInletWaterCondHighThresholdMinRejectionReason .value() +
+ self.sbInletWaterCondHighThresholdMaxRejectionReason .value() +
+ self.sbInletWaterCondHighThresholdDefRejectionReason .value() +
+ self.sbChlorineWaterSampleCheckMinRejectionReason .value() +
+ self.sbChlorineWaterSampleCheckMaxRejectionReason .value() +
+ self.sbChlorineWaterSampleCheckDefRejectionReason .value() +
+ self.sbWaterSampleTestResultRequiredDefRejectionReason .value()) == 0
+
+ self.td_interface.td_Adjust_Advanced_Institutional_Records(
+ 1 if accepted else 0,
+ self.sbMinRORejectionRatioAlarmMinRejectionReason .value(),
+ self.sbMinRORejectionRatioAlarmMaxRejectionReason .value(),
+ self.sbMinRORejectionRatioAlarmDefRejectionReason .value(),
+ self.sbDisinfectionFrequencyMinRejectionReason .value(),
+ self.sbDisinfectionFrequencyMaxRejectionReason .value(),
+ self.sbDisinfectionFrequencyDefRejectionReason .value(),
+ self.sbDisinfectionParametersCycleTimeMinRejectionReason .value(),
+ self.sbDisinfectionParametersCycleTimeMaxRejectionReason .value(),
+ self.sbDisinfectionParametersCycleTimeDefRejectionReason .value(),
+ self.sbMaxBloodPumpStopTimeMinRejectionReason .value(),
+ self.sbMaxBloodPumpStopTimeMaxRejectionReason .value(),
+ self.sbMaxBloodPumpStopTimeDefRejectionReason .value(),
+ self.sbInletWaterCondLowThresholdMinRejectionReason .value(),
+ self.sbInletWaterCondLowThresholdMaxRejectionReason .value(),
+ self.sbInletWaterCondLowThresholdDefRejectionReason .value(),
+ self.sbInletWaterCondHighThresholdMinRejectionReason .value(),
+ self.sbInletWaterCondHighThresholdMaxRejectionReason .value(),
+ self.sbInletWaterCondHighThresholdDefRejectionReason .value(),
+ self.sbChlorineWaterSampleCheckMinRejectionReason .value(),
+ self.sbChlorineWaterSampleCheckMaxRejectionReason .value(),
+ self.sbChlorineWaterSampleCheckDefRejectionReason .value(),
+ self.sbWaterSampleTestResultRequiredDefRejectionReason .value()
+ )
+
+ self.sbMinRORejectionRatioAlarmMin .setValue(self.getIntValue(message))
+ self.sbMinRORejectionRatioAlarmMax .setValue(self.getIntValue(message))
+ self.sbMinRORejectionRatioAlarmDef .setValue(self.getIntValue(message))
+ self.sbDisinfectionFrequencyMin .setValue(self.getIntValue(message))
+ self.sbDisinfectionFrequencyMax .setValue(self.getIntValue(message))
+ self.sbDisinfectionFrequencyDef .setValue(self.getIntValue(message))
+ self.sbDisinfectionParametersCycleTimeMin .setValue(self.getIntValue(message))
+ self.sbDisinfectionParametersCycleTimeMax .setValue(self.getIntValue(message))
+ self.sbDisinfectionParametersCycleTimeDef .setValue(self.getIntValue(message))
+ self.sbMaxBloodPumpStopTimeMin .setValue(self.getIntValue(message))
+ self.sbMaxBloodPumpStopTimeMax .setValue(self.getIntValue(message))
+ self.sbMaxBloodPumpStopTimeDef .setValue(self.getIntValue(message))
+ self.sbInletWaterCondLowThresholdMin .setValue(self.getIntValue(message))
+ self.sbInletWaterCondLowThresholdMax .setValue(self.getIntValue(message))
+ self.sbInletWaterCondLowThresholdDef .setValue(self.getIntValue(message))
+ self.sbInletWaterCondHighThresholdMin .setValue(self.getIntValue(message))
+ self.sbInletWaterCondHighThresholdMax .setValue(self.getIntValue(message))
+ self.sbInletWaterCondHighThresholdDef .setValue(self.getIntValue(message))
+ self.sbChlorineWaterSampleCheckMin .setValue(self.getIntValue(message))
+ self.sbChlorineWaterSampleCheckMax .setValue(self.getIntValue(message))
+ self.sbChlorineWaterSampleCheckDef .setValue(self.getIntValue(message))
+ self.cbWaterSampleTestResultRequiredDef .setCurrentIndex((self.getIntValue(message)))
+
+ @Slot()
+ def do_send(self):
+ """
+ the slot for send button
+ :return: none
+ """
+ self.handle_request(0)
Index: TD_Institutional_Records/interface.ui
===================================================================
diff -u
--- TD_Institutional_Records/interface.ui (revision 0)
+++ TD_Institutional_Records/interface.ui (revision c188c445ebd056f3b15909ef9d994b78b9f752c2)
@@ -0,0 +1,2351 @@
+
+
+ ui_interface
+
+
+
+ 0
+ 0
+ 533
+ 602
+
+
+
+
+ 100000
+ 100000
+
+
+
+ &5 TD info/&10 Institutional Record
+
+
+ -
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 352
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+
+ 10
+
+
+
+ color: rgb(238, 238, 236);
+background-color: rgb(92, 53, 102);
+
+
+
+ XXX : [0xXX00] : Institutional Records
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ send
+
+
+
+
+
+ -
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 497
+ 2258
+
+
+
+
-
+
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
+ Arterial Pressure Window Limit
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Sodium Final Dialysate Comp.
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
-
+
+
+ Fluid Bolus Volume
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Treatment Duration
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Dialysate Temperature
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Vitals Interval
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ 5
+
+
+
+ -
+
+
+ 60
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Substitution Volume
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Min
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Rinseback Flow Rate
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Rinseback Volume
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Venous Asymmetric Window Limit
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Heparin Bolus Volume
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Venous Pressure Window Limit
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Heparin Dispensing Rate
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ TMP Window Limit
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ UF Volume
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Bicard. Final Dialysate Comp.
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Reason
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Acid Concentreate (Ca2+)
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ N/A
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Acid Concentrate (K+)
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ N/A
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Blood Flow Rate
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ 900
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Dialysate Flow Rate
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 13
+ 45
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Heparin Stop Time
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 238
+ 48
+
+
+
+
+ -
+
+
-
+
+
+ 900
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Default
+
+
+
+ -
+
+
+ Max
+
+
+
+ -
+
+
+ Min
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ N/A
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 180
+ 0
+
+
+
+ Reason
+
+
+
+ -
+
+
+ 900
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: TD_Institutional_Records/loader.py
===================================================================
diff -u
--- TD_Institutional_Records/loader.py (revision 0)
+++ TD_Institutional_Records/loader.py (revision c188c445ebd056f3b15909ef9d994b78b9f752c2)
@@ -0,0 +1,582 @@
+"""
+ The Insitutional Record ui loader
+"""
+# Python
+import os
+import can
+import struct
+
+# Qt
+from PySide2 import QtCore, QtWidgets
+from PySide2.QtCore import Slot
+
+# parent
+from engine.dynamicloader import DynamicLoader
+
+# plugin specific
+from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions
+from leahi_dialin.protocols import CAN
+from leahi_dialin.utils import conversions
+
+# hd Simulator
+from leahi_dialin.ui.td_messaging import TD_Messaging
+
+class Loader(DynamicLoader):
+ """
+ The Institutional ui loader
+ """
+
+ def __init__(self):
+ self.td_interface = TD_Messaging()
+ self.can_interface = self.td_interface.can_interface
+ super().__init__(os.path.dirname(__file__))
+ self.index = 0
+
+ if self.can_interface is not None:
+ channel_id = CAN.DenaliChannels.ui_to_td_ch_id
+ request_message_id = MsgIds.MSG_ID_TD_INSTITUTIONAL_RECORD_REQUEST.value
+ adjust_request_message_id = MsgIds.MSG_ID_TD_ADJUST_INSTITUTIONAL_RECORD_REQUEST.value
+ self.can_interface.register_receiving_publication_function(channel_id,
+ request_message_id,
+ self.handle_request)
+ self.can_interface.register_receiving_publication_function(channel_id,
+ adjust_request_message_id,
+ self.handle_adjust_request)
+
+ def _init_loader(self):
+ """
+ finds and creates widgets
+ :return: none
+ """
+ self.tbSend = self.find_widget(QtWidgets.QToolButton , 'tbSend' )
+ self.sbReason = self.find_widget(QtWidgets.QSpinBox , 'ReasonSpinBox' )
+ self.sbBloodFlowMin = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowMin' )
+ self.sbBloodFlowMax = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowMax' )
+ self.sbBloodFlowDef = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowDef' )
+ self.sbDialysateFlowMin = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowMin' )
+ self.sbDialysateFlowMax = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowMax' )
+ self.sbDialysateFlowDef = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowDef' )
+ self.sbTreatmentDurationMin = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationMin' )
+ self.sbTreatmentDurationMax = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationMax' )
+ self.sbTreatmentDurationDef = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationDef' )
+ self.sbHepBolusVolumeMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepBolusVolumeMin' )
+ self.sbHepBolusVolumeMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepBolusVolumeMax' )
+ self.sbHepBolusVolumeDef = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepBolusVolumeDef' )
+ self.sbHepDispRateMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepDispRateMin' )
+ self.sbHepDispRateMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepDispRateMax' )
+ self.sbHepDispRateDef = self.find_widget(QtWidgets.QDoubleSpinBox , 'hepDispRateDef' )
+ self.sbHepStopTimeMin = self.find_widget(QtWidgets.QSpinBox , 'hepStopTimeMin' )
+ self.sbHepStopTimeMax = self.find_widget(QtWidgets.QSpinBox , 'hepStopTimeMax' )
+ self.sbDialysateTempMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'dialysateTempMin' )
+ self.sbDialysateTempMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'dialysateTempMax' )
+ self.sbDialysateTempDef = self.find_widget(QtWidgets.QDoubleSpinBox , 'dialysateTempDef' )
+ self.sbPotassiumMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'potassiumMin' )
+ self.sbPotassiumMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'potassiumMax' )
+ self.sbCalciumMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'calciumMin' )
+ self.sbCalciumMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'calciumMax' )
+ self.sbDialysateBicarbMin = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbMin' )
+ self.sbDialysateBicarbMax = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbMax' )
+ self.sbDialysateBicarbDef = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbDef' )
+ self.sbSodiumBicarbMin = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbMin' )
+ self.sbSodiumBicarbMax = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbMax' )
+ self.sbSodiumBicarbDef = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbDef' )
+ self.sbFluidBolusVolumeMin = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeMin' )
+ self.sbFluidBolusVolumeMax = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeMax' )
+ self.sbFluidBolusVolumeDef = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeDef' )
+ self.sbArterialPressureMin = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureMin' )
+ self.sbArterialPressureMax = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureMax' )
+ self.sbArterialPressureDef = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureDef' )
+ self.sbVenousPressureMin = self.find_widget(QtWidgets.QSpinBox , 'venousPressureMin' )
+ self.sbVenousPressureMax = self.find_widget(QtWidgets.QSpinBox , 'venousPressureMax' )
+ self.sbVenousPressureDef = self.find_widget(QtWidgets.QSpinBox , 'venousPressureDef' )
+ self.sbVenousAsymmetricMin = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricMin' )
+ self.sbVenousAsymmetricMax = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricMax' )
+ self.sbVenousAsymmetricDef = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricDef' )
+ self.sbTmpPressureMin = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureMin' )
+ self.sbTmpPressureMax = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureMax' )
+ self.sbTmpPressureDef = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureDef' )
+ self.sbUfVolumeMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'ufVolumeMin' )
+ self.sbUfVolumeMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'ufVolumeMax' )
+ self.sbUfVolumeDef = self.find_widget(QtWidgets.QDoubleSpinBox , 'ufVolumeDef' )
+ self.cbVitalsInterval = self.find_widget(QtWidgets.QComboBox , 'vitalsIntervalDef' )
+ self.sbRincebackVolumeMin = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeMin' )
+ self.sbRincebackVolumeMax = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeMax' )
+ self.sbRincebackVolumeDef = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeDef' )
+ self.sbRincebackFlowRateMin = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateMin' )
+ self.sbRincebackFlowRateMax = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateMax' )
+ self.sbRincebackFlowRateDef = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateDef' )
+ self.sbSubVolumeMin = self.find_widget(QtWidgets.QDoubleSpinBox , 'subVolumeMin' )
+ self.sbSubVolumeMax = self.find_widget(QtWidgets.QDoubleSpinBox , 'subVolumeMax' )
+ self.sbSubVolumeDef = self.find_widget(QtWidgets.QDoubleSpinBox , 'subVolumeDef' )
+
+ self.sbBloodFlowMinReason = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowMinReason' )
+ self.sbBloodFlowMaxReason = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowMaxReason' )
+ self.sbBloodFlowDefReason = self.find_widget(QtWidgets.QSpinBox , 'bloodFlowDefReason' )
+ self.sbDialysateFlowMinReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowMinReason' )
+ self.sbDialysateFlowMaxReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowMaxReason' )
+ self.sbDialysateFlowDefReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateFlowDefReason' )
+ self.sbTreatmentDurationMinReason = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationMinReason' )
+ self.sbTreatmentDurationMaxReason = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationMaxReason' )
+ self.sbTreatmentDurationDefReason = self.find_widget(QtWidgets.QSpinBox , 'treatmentDurationDefReason' )
+ self.sbHepBolusVolumeMinReason = self.find_widget(QtWidgets.QSpinBox , 'hepBolusVolumeMinReason' )
+ self.sbHepBolusVolumeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'hepBolusVolumeMaxReason' )
+ self.sbHepBolusVolumeDefReason = self.find_widget(QtWidgets.QSpinBox , 'hepBolusVolumeDefReason' )
+ self.sbHepDispRateMinReason = self.find_widget(QtWidgets.QSpinBox , 'hepDispRateMinReason' )
+ self.sbHepDispRateMaxReason = self.find_widget(QtWidgets.QSpinBox , 'hepDispRateMaxReason' )
+ self.sbHepDispRateDefReason = self.find_widget(QtWidgets.QSpinBox , 'hepDispRateDefReason' )
+ self.sbHepStopTimeMinReason = self.find_widget(QtWidgets.QSpinBox , 'hepStopTimeMinReason' )
+ self.sbHepStopTimeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'hepStopTimeMaxReason' )
+ self.sbDialysateTempMinReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateTempMinReason' )
+ self.sbDialysateTempMaxReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateTempMaxReason' )
+ self.sbDialysateTempDefReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateTempDefReason' )
+ self.sbPotassiumMinReason = self.find_widget(QtWidgets.QSpinBox , 'potassiumMinReason' )
+ self.sbPotassiumMaxReason = self.find_widget(QtWidgets.QSpinBox , 'potassiumMaxReason' )
+ self.sbCalciumMinReason = self.find_widget(QtWidgets.QSpinBox , 'calciumMinReason' )
+ self.sbCalciumMaxReason = self.find_widget(QtWidgets.QSpinBox , 'calciumMaxReason' )
+ self.sbDialysateBicarbMinReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbMinReason' )
+ self.sbDialysateBicarbMaxReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbMaxReason' )
+ self.sbDialysateBicarbDefReason = self.find_widget(QtWidgets.QSpinBox , 'dialysateBicarbDefReason' )
+ self.sbSodiumBicarbMinReason = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbMinReason' )
+ self.sbSodiumBicarbMaxReason = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbMaxReason' )
+ self.sbSodiumBicarbDefReason = self.find_widget(QtWidgets.QSpinBox , 'sodiumBicarbDefReason' )
+ self.sbFluidBolusVolumeMinReason = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeMinReason' )
+ self.sbFluidBolusVolumeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeMaxReason' )
+ self.sbFluidBolusVolumeDefReason = self.find_widget(QtWidgets.QSpinBox , 'fluidBolusVolumeDefReason' )
+ self.sbArterialPressureMinReason = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureMinReason' )
+ self.sbArterialPressureMaxReason = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureMaxReason' )
+ self.sbArterialPressureDefReason = self.find_widget(QtWidgets.QSpinBox , 'arterialPressureDefReason' )
+ self.sbVenousPressureMinReason = self.find_widget(QtWidgets.QSpinBox , 'venousPressureMinReason' )
+ self.sbVenousPressureMaxReason = self.find_widget(QtWidgets.QSpinBox , 'venousPressureMaxReason' )
+ self.sbVenousPressureDefReason = self.find_widget(QtWidgets.QSpinBox , 'venousPressureDefReason' )
+ self.sbVenousAsymmetricMinReason = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricMinReason' )
+ self.sbVenousAsymmetricMaxReason = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricMaxReason' )
+ self.sbVenousAsymmetricDefReason = self.find_widget(QtWidgets.QSpinBox , 'venousAsymmetricDefReason' )
+ self.sbTmpPressureMinReason = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureMinReason' )
+ self.sbTmpPressureMaxReason = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureMaxReason' )
+ self.sbTmpPressureDefReason = self.find_widget(QtWidgets.QSpinBox , 'tmpPressureDefReason' )
+ self.sbUfVolumeMinReason = self.find_widget(QtWidgets.QSpinBox , 'ufVolumeMinReason' )
+ self.sbUfVolumeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'ufVolumeMaxReason' )
+ self.sbUfVolumeDefReason = self.find_widget(QtWidgets.QSpinBox , 'ufVolumeDefReason' )
+ self.cbVitalsIntervalReason = self.find_widget(QtWidgets.QSpinBox , 'vitalsIntervalDefReason' )
+ self.sbRincebackVolumeMinReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeMinReason' )
+ self.sbRincebackVolumeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeMaxReason' )
+ self.sbRincebackVolumeDefReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackVolumeDefReason' )
+ self.sbRincebackFlowRateMinReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateMinReason' )
+ self.sbRincebackFlowRateMaxReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateMaxReason' )
+ self.sbRincebackFlowRateDefReason = self.find_widget(QtWidgets.QSpinBox , 'rincebackFlowRateDefReason' )
+ self.sbSubVolumeMinReason = self.find_widget(QtWidgets.QSpinBox , 'subVolumeMinReason' )
+ self.sbSubVolumeMaxReason = self.find_widget(QtWidgets.QSpinBox , 'subVolumeMaxReason' )
+ self.sbSubVolumeDefReason = self.find_widget(QtWidgets.QSpinBox , 'subVolumeDefReason' )
+
+ def _init_connections(self):
+ """
+ initializes the widgets connections
+ :return: none
+ """
+ self.tbSend .clicked .connect(self.do_send)
+
+ def _init_widgets(self):
+ """
+ initializes the widgets' properties
+ :return: none
+ """
+ self.sbReason .setValue(0)
+ self.setup_spinbox(self.sbBloodFlowMin, 50, 50, 500, 10)
+ self.setup_spinbox(self.sbBloodFlowMax, 500, 50, 500, 10)
+ self.setup_spinbox(self.sbBloodFlowDef, 50, 50, 500, 10)
+ self.setup_spinbox(self.sbDialysateFlowMin, 50, 50, 600, 25)
+ self.setup_spinbox(self.sbDialysateFlowMax, 600, 50, 600, 25)
+ self.setup_spinbox(self.sbDialysateFlowDef, 50, 50, 600, 25)
+ self.setup_spinbox(self.sbTreatmentDurationMin, 60, 60, 480, 15)
+ self.setup_spinbox(self.sbTreatmentDurationMax, 480, 60, 480, 15)
+ self.setup_spinbox(self.sbTreatmentDurationDef, 60, 60, 480, 15)
+ self.setup_spinbox(self.sbHepBolusVolumeMin, 0.2, 0.2, 2.0, 0.1)
+ self.setup_spinbox(self.sbHepBolusVolumeMax, 1.0, 0.2, 2.0, 0.1)
+ self.setup_spinbox(self.sbHepBolusVolumeDef, 0.0, 0.0, 2.0, 0.1)
+ self.setup_spinbox(self.sbHepDispRateMin, 0.2, 0.2, 3.0, 0.1)
+ self.setup_spinbox(self.sbHepDispRateMax, 3.0, 0.2, 3.0, 0.1)
+ self.setup_spinbox(self.sbHepDispRateDef, 0.0, 0.0, 3.0, 0.1)
+ self.setup_spinbox(self.sbHepStopTimeMin, 0, 0, 480, 15)
+ self.setup_spinbox(self.sbHepStopTimeMax, 480, 0, 480, 15)
+ self.setup_spinbox(self.sbDialysateTempMin, 35, 35, 38, 0.5 )
+ self.setup_spinbox(self.sbDialysateTempMax, 38, 35, 38, 0.5 )
+ self.setup_spinbox(self.sbDialysateTempDef, 37, 35, 38, 0.5 )
+ self.setup_spinbox(self.sbPotassiumMin, 0.0, 0.0, 4.0, 1.0)
+ self.setup_spinbox(self.sbPotassiumMax, 4.0, 0.0, 4.0, 1.0)
+ self.setup_spinbox(self.sbCalciumMin, 0.0, 0.0, 3.5, 0.25)
+ self.setup_spinbox(self.sbCalciumMax, 3.5, 0.0, 3.5, 0.25)
+ self.setup_spinbox(self.sbDialysateBicarbMin, 130, 130, 155, 1)
+ self.setup_spinbox(self.sbDialysateBicarbMax, 155, 130, 155, 1)
+ self.setup_spinbox(self.sbDialysateBicarbDef, 137, 130, 155, 1)
+ self.setup_spinbox(self.sbSodiumBicarbMin, 20, 20, 40, 1)
+ self.setup_spinbox(self.sbSodiumBicarbMax, 40, 20, 40, 1)
+ self.setup_spinbox(self.sbSodiumBicarbDef, 33, 20, 40, 1)
+ self.setup_spinbox(self.sbFluidBolusVolumeMin, 100, 100, 300, 100)
+ self.setup_spinbox(self.sbFluidBolusVolumeMax, 300, 100, 300, 100)
+ self.setup_spinbox(self.sbFluidBolusVolumeDef, 100, 100, 300, 100)
+ self.setup_spinbox(self.sbArterialPressureMin, 120, 120, 200, 40)
+ self.setup_spinbox(self.sbArterialPressureMax, 200, 120, 200, 40)
+ self.setup_spinbox(self.sbArterialPressureDef, 120, 120, 200, 40)
+ self.setup_spinbox(self.sbVenousPressureMin, 100, 100, 200, 20)
+ self.setup_spinbox(self.sbVenousPressureMax, 200, 100, 200, 20)
+ self.setup_spinbox(self.sbVenousPressureDef, 100, 100, 200, 20)
+ self.setup_spinbox(self.sbVenousAsymmetricMin, 20, 20, 35, 5)
+ self.setup_spinbox(self.sbVenousAsymmetricMax, 35, 20, 35, 5)
+ self.setup_spinbox(self.sbVenousAsymmetricDef, 20, 20, 35, 5)
+ self.setup_spinbox(self.sbTmpPressureMin, 40, 40, 100, 20)
+ self.setup_spinbox(self.sbTmpPressureMax, 100, 40, 100, 20)
+ self.setup_spinbox(self.sbTmpPressureDef, 40, 40, 100, 20)
+ self.setup_spinbox(self.sbUfVolumeMin, 0.0, 0.0, 0.8, 0.1)
+ self.setup_spinbox(self.sbUfVolumeMax, 0.8, 0.0, 0.8, 0.1)
+ self.setup_spinbox(self.sbUfVolumeDef, 0.0, 0.0, 0.8, 0.1)
+ intervalList = ["0", "5", "10", "15", "30", "60"]
+ self.cbVitalsInterval.addItems(intervalList)
+ self.setup_spinbox(self.sbRincebackVolumeMin, 200, 200, 400, 10)
+ self.setup_spinbox(self.sbRincebackVolumeMax, 400, 200, 400, 10)
+ self.setup_spinbox(self.sbRincebackVolumeDef, 300, 200, 400, 10)
+ self.setup_spinbox(self.sbRincebackFlowRateMin, 100, 100, 500, 10)
+ self.setup_spinbox(self.sbRincebackFlowRateMax, 500, 100, 500, 10)
+ self.setup_spinbox(self.sbRincebackFlowRateDef, 200, 100, 500, 10)
+ self.setup_spinbox(self.sbSubVolumeMin, 1.0, 1.0, 30.0, 0.1)
+ self.setup_spinbox(self.sbSubVolumeMax, 30.0, 1.0, 30.0, 0.1)
+ self.setup_spinbox(self.sbSubVolumeDef, 1.0, 1.0, 30.0, 0.1)
+
+ self.sbBloodFlowMinReason .setValue(0)
+ self.sbBloodFlowMaxReason .setValue(0)
+ self.sbBloodFlowDefReason .setValue(0)
+ self.sbDialysateFlowMinReason .setValue(0)
+ self.sbDialysateFlowMaxReason .setValue(0)
+ self.sbDialysateFlowDefReason .setValue(0)
+ self.sbTreatmentDurationMinReason .setValue(0)
+ self.sbTreatmentDurationMaxReason .setValue(0)
+ self.sbTreatmentDurationDefReason .setValue(0)
+ self.sbHepBolusVolumeMinReason .setValue(0)
+ self.sbHepBolusVolumeMaxReason .setValue(0)
+ self.sbHepBolusVolumeDefReason .setValue(0)
+ self.sbHepDispRateMinReason .setValue(0)
+ self.sbHepDispRateMaxReason .setValue(0)
+ self.sbHepDispRateDefReason .setValue(0)
+ self.sbHepStopTimeMinReason .setValue(0)
+ self.sbHepStopTimeMaxReason .setValue(0)
+ self.sbDialysateTempMinReason .setValue(0)
+ self.sbDialysateTempMaxReason .setValue(0)
+ self.sbDialysateTempDefReason .setValue(0)
+ self.sbPotassiumMinReason .setValue(0)
+ self.sbPotassiumMaxReason .setValue(0)
+ self.sbCalciumMinReason .setValue(0)
+ self.sbCalciumMaxReason .setValue(0)
+ self.sbDialysateBicarbMinReason .setValue(0)
+ self.sbDialysateBicarbMaxReason .setValue(0)
+ self.sbDialysateBicarbDefReason .setValue(0)
+ self.sbSodiumBicarbMinReason .setValue(0)
+ self.sbSodiumBicarbMaxReason .setValue(0)
+ self.sbSodiumBicarbDefReason .setValue(0)
+ self.sbFluidBolusVolumeMinReason .setValue(0)
+ self.sbFluidBolusVolumeMaxReason .setValue(0)
+ self.sbFluidBolusVolumeDefReason .setValue(0)
+ self.sbArterialPressureMinReason .setValue(0)
+ self.sbArterialPressureMaxReason .setValue(0)
+ self.sbArterialPressureDefReason .setValue(0)
+ self.sbVenousPressureMinReason .setValue(0)
+ self.sbVenousPressureMaxReason .setValue(0)
+ self.sbVenousPressureDefReason .setValue(0)
+ self.sbVenousAsymmetricMinReason .setValue(0)
+ self.sbVenousAsymmetricMaxReason .setValue(0)
+ self.sbVenousAsymmetricDefReason .setValue(0)
+ self.sbTmpPressureMinReason .setValue(0)
+ self.sbTmpPressureMaxReason .setValue(0)
+ self.sbTmpPressureDefReason .setValue(0)
+ self.sbUfVolumeMinReason .setValue(0)
+ self.sbUfVolumeMaxReason .setValue(0)
+ self.sbUfVolumeDefReason .setValue(0)
+ self.cbVitalsIntervalReason .setValue(0)
+ self.sbRincebackVolumeMinReason .setValue(0)
+ self.sbRincebackVolumeMaxReason .setValue(0)
+ self.sbRincebackVolumeDefReason .setValue(0)
+ self.sbRincebackFlowRateMinReason .setValue(0)
+ self.sbRincebackFlowRateMaxReason .setValue(0)
+ self.sbRincebackFlowRateDefReason .setValue(0)
+ self.sbSubVolumeMinReason .setValue(0)
+ self.sbSubVolumeMaxReason .setValue(0)
+ self.sbSubVolumeDefReason .setValue(0)
+
+ def setup_spinbox(self, vSpinBox, vInitialValue, vMin, vMax, vStep):
+ vSpinBox.setRange(vMin, vMax)
+ vSpinBox.setValue(vInitialValue)
+ vSpinBox.setSingleStep(vStep)
+
+ def getIntValue (self, message):
+ val,self.index = conversions.bytearray_to_integer( message, self.index)
+ # print("index: " + str(self.index) + " int: " + str(val))
+ return val
+
+
+ def getFloatValue (self, message):
+ val,self.index = conversions.bytearray_to_float( message, self.index)
+ # print("index: " + str(self.index) + " float: " + str(val))
+ return val
+
+ @Slot()
+ def handle_request(self, message, timestamp = 0.0):
+ """
+ Called when the user requests to firmware from UI
+ @return: None
+ """
+ self.td_interface.td_institutional_response(self.sbReason .value(),
+ self.sbBloodFlowMin .value(),
+ self.sbBloodFlowMax .value(),
+ self.sbBloodFlowDef .value(),
+ self.sbDialysateFlowMin .value(),
+ self.sbDialysateFlowMax .value(),
+ self.sbDialysateFlowDef .value(),
+ self.sbTreatmentDurationMin .value(),
+ self.sbTreatmentDurationMax .value(),
+ self.sbTreatmentDurationDef .value(),
+ self.sbHepBolusVolumeMin .value(),
+ self.sbHepBolusVolumeMax .value(),
+ self.sbHepBolusVolumeDef .value(),
+ self.sbHepDispRateMin .value(),
+ self.sbHepDispRateMax .value(),
+ self.sbHepDispRateDef .value(),
+ self.sbHepStopTimeMin .value(),
+ self.sbHepStopTimeMax .value(),
+ self.sbDialysateTempMin .value(),
+ self.sbDialysateTempMax .value(),
+ self.sbDialysateTempDef .value(),
+ self.sbPotassiumMin .value(),
+ self.sbPotassiumMax .value(),
+ self.sbCalciumMin .value(),
+ self.sbCalciumMax .value(),
+ self.sbDialysateBicarbMin .value(),
+ self.sbDialysateBicarbMax .value(),
+ self.sbDialysateBicarbDef .value(),
+ self.sbSodiumBicarbMin .value(),
+ self.sbSodiumBicarbMax .value(),
+ self.sbSodiumBicarbDef .value(),
+ self.sbFluidBolusVolumeMin .value(),
+ self.sbFluidBolusVolumeMax .value(),
+ self.sbFluidBolusVolumeDef .value(),
+ self.sbArterialPressureMin .value(),
+ self.sbArterialPressureMax .value(),
+ self.sbArterialPressureDef .value(),
+ self.sbVenousPressureMin .value(),
+ self.sbVenousPressureMax .value(),
+ self.sbVenousPressureDef .value(),
+ self.sbVenousAsymmetricMin .value(),
+ self.sbVenousAsymmetricMax .value(),
+ self.sbVenousAsymmetricDef .value(),
+ self.sbTmpPressureMin .value(),
+ self.sbTmpPressureMax .value(),
+ self.sbTmpPressureDef .value(),
+ self.sbUfVolumeMin .value(),
+ self.sbUfVolumeMax .value(),
+ self.sbUfVolumeDef .value(),
+ self.cbVitalsInterval .currentIndex(),
+ self.sbRincebackVolumeMin .value(),
+ self.sbRincebackVolumeMax .value(),
+ self.sbRincebackVolumeDef .value(),
+ self.sbRincebackFlowRateMin .value(),
+ self.sbRincebackFlowRateMax .value(),
+ self.sbRincebackFlowRateDef .value(),
+ self.sbSubVolumeMin .value(),
+ self.sbSubVolumeMax .value(),
+ self.sbSubVolumeDef .value())
+
+ @Slot()
+ def handle_adjust_request(self, message, timestamp = 0.0):
+ """
+ Called when the user requests to firmware from UI
+ @return: None
+ """
+ message = message['message']
+ self.index = MsgFieldPositions.START_POS_FIELD_1
+
+ accepted = (
+ self.sbBloodFlowMinReason .value() +
+ self.sbBloodFlowMaxReason .value() +
+ self.sbBloodFlowDefReason .value() +
+ self.sbDialysateFlowMinReason .value() +
+ self.sbDialysateFlowMaxReason .value() +
+ self.sbDialysateFlowDefReason .value() +
+ self.sbTreatmentDurationMinReason .value() +
+ self.sbTreatmentDurationMaxReason .value() +
+ self.sbTreatmentDurationDefReason .value() +
+ self.sbHepBolusVolumeMinReason .value() +
+ self.sbHepBolusVolumeMaxReason .value() +
+ self.sbHepBolusVolumeDefReason .value() +
+ self.sbHepDispRateMinReason .value() +
+ self.sbHepDispRateMaxReason .value() +
+ self.sbHepDispRateDefReason .value() +
+ self.sbHepStopTimeMinReason .value() +
+ self.sbHepStopTimeMaxReason .value() +
+ self.sbDialysateTempMinReason .value() +
+ self.sbDialysateTempMaxReason .value() +
+ self.sbDialysateTempDefReason .value() +
+ self.sbPotassiumMinReason .value() +
+ self.sbPotassiumMaxReason .value() +
+ self.sbCalciumMinReason .value() +
+ self.sbCalciumMaxReason .value() +
+ self.sbDialysateBicarbMinReason .value() +
+ self.sbDialysateBicarbMaxReason .value() +
+ self.sbDialysateBicarbDefReason .value() +
+ self.sbSodiumBicarbMinReason .value() +
+ self.sbSodiumBicarbMaxReason .value() +
+ self.sbSodiumBicarbDefReason .value() +
+ self.sbFluidBolusVolumeMinReason .value() +
+ self.sbFluidBolusVolumeMaxReason .value() +
+ self.sbFluidBolusVolumeDefReason .value() +
+ self.sbArterialPressureMinReason .value() +
+ self.sbArterialPressureMaxReason .value() +
+ self.sbArterialPressureDefReason .value() +
+ self.sbVenousPressureMinReason .value() +
+ self.sbVenousPressureMaxReason .value() +
+ self.sbVenousPressureDefReason .value() +
+ self.sbVenousAsymmetricMinReason .value() +
+ self.sbVenousAsymmetricMaxReason .value() +
+ self.sbVenousAsymmetricDefReason .value() +
+ self.sbTmpPressureMinReason .value() +
+ self.sbTmpPressureMaxReason .value() +
+ self.sbTmpPressureDefReason .value() +
+ self.sbUfVolumeMinReason .value() +
+ self.sbUfVolumeMaxReason .value() +
+ self.sbUfVolumeDefReason .value() +
+ self.cbVitalsIntervalReason .value() +
+ self.sbRincebackVolumeMinReason .value() +
+ self.sbRincebackVolumeMaxReason .value() +
+ self.sbRincebackVolumeDefReason .value() +
+ self.sbRincebackFlowRateMinReason .value() +
+ self.sbRincebackFlowRateMaxReason .value() +
+ self.sbRincebackFlowRateDefReason .value() +
+ self.sbSubVolumeMinReason .value() +
+ self.sbSubVolumeMaxReason .value() +
+ self.sbSubVolumeDefReason .value()
+ ) == 0
+
+ self.td_interface.td_Adjust_Institutional_Records(
+ 1 if accepted else 0,
+ self.sbBloodFlowMinReason .value(),
+ self.sbBloodFlowMaxReason .value(),
+ self.sbBloodFlowDefReason .value(),
+ self.sbDialysateFlowMinReason .value(),
+ self.sbDialysateFlowMaxReason .value(),
+ self.sbDialysateFlowDefReason .value(),
+ self.sbTreatmentDurationMinReason .value(),
+ self.sbTreatmentDurationMaxReason .value(),
+ self.sbTreatmentDurationDefReason .value(),
+ self.sbHepBolusVolumeMinReason .value(),
+ self.sbHepBolusVolumeMaxReason .value(),
+ self.sbHepBolusVolumeDefReason .value(),
+ self.sbHepDispRateMinReason .value(),
+ self.sbHepDispRateMaxReason .value(),
+ self.sbHepDispRateDefReason .value(),
+ self.sbHepStopTimeMinReason .value(),
+ self.sbHepStopTimeMaxReason .value(),
+ self.sbDialysateTempMinReason .value(),
+ self.sbDialysateTempMaxReason .value(),
+ self.sbDialysateTempDefReason .value(),
+ self.sbPotassiumMinReason .value(),
+ self.sbPotassiumMaxReason .value(),
+ self.sbCalciumMinReason .value(),
+ self.sbCalciumMaxReason .value(),
+ self.sbDialysateBicarbMinReason .value(),
+ self.sbDialysateBicarbMaxReason .value(),
+ self.sbDialysateBicarbDefReason .value(),
+ self.sbSodiumBicarbMinReason .value(),
+ self.sbSodiumBicarbMaxReason .value(),
+ self.sbSodiumBicarbDefReason .value(),
+ self.sbFluidBolusVolumeMinReason .value(),
+ self.sbFluidBolusVolumeMaxReason .value(),
+ self.sbFluidBolusVolumeDefReason .value(),
+ self.sbArterialPressureMinReason .value(),
+ self.sbArterialPressureMaxReason .value(),
+ self.sbArterialPressureDefReason .value(),
+ self.sbVenousPressureMinReason .value(),
+ self.sbVenousPressureMaxReason .value(),
+ self.sbVenousPressureDefReason .value(),
+ self.sbVenousAsymmetricMinReason .value(),
+ self.sbVenousAsymmetricMaxReason .value(),
+ self.sbVenousAsymmetricDefReason .value(),
+ self.sbTmpPressureMinReason .value(),
+ self.sbTmpPressureMaxReason .value(),
+ self.sbTmpPressureDefReason .value(),
+ self.sbUfVolumeMinReason .value(),
+ self.sbUfVolumeMaxReason .value(),
+ self.sbUfVolumeDefReason .value(),
+ self.cbVitalsIntervalReason .value(),
+ self.sbRincebackVolumeMinReason .value(),
+ self.sbRincebackVolumeMaxReason .value(),
+ self.sbRincebackVolumeDefReason .value(),
+ self.sbRincebackFlowRateMinReason .value(),
+ self.sbRincebackFlowRateMaxReason .value(),
+ self.sbRincebackFlowRateDefReason .value(),
+ self.sbSubVolumeMinReason .value(),
+ self.sbSubVolumeMaxReason .value(),
+ self.sbSubVolumeDefReason .value()
+ )
+
+ self.sbBloodFlowMin .setValue(self.getIntValue(message))
+ self.sbBloodFlowMax .setValue(self.getIntValue(message))
+ self.sbBloodFlowDef .setValue(self.getIntValue(message))
+ self.sbDialysateFlowMin .setValue(self.getIntValue(message))
+ self.sbDialysateFlowMax .setValue(self.getIntValue(message))
+ self.sbDialysateFlowDef .setValue(self.getIntValue(message))
+ self.sbTreatmentDurationMin .setValue(self.getIntValue(message))
+ self.sbTreatmentDurationMax .setValue(self.getIntValue(message))
+ self.sbTreatmentDurationDef .setValue(self.getIntValue(message))
+ self.sbHepBolusVolumeMin .setValue(self.getFloatValue(message))
+ self.sbHepBolusVolumeMax .setValue(self.getFloatValue(message))
+ self.sbHepBolusVolumeDef .setValue(self.getFloatValue(message))
+ self.sbHepDispRateMin .setValue(self.getFloatValue(message))
+ self.sbHepDispRateMax .setValue(self.getFloatValue(message))
+ self.sbHepDispRateDef .setValue(self.getFloatValue(message))
+ self.sbHepStopTimeMin .setValue(self.getIntValue(message))
+ self.sbHepStopTimeMax .setValue(self.getIntValue(message))
+ self.sbDialysateTempMin .setValue(self.getFloatValue(message))
+ self.sbDialysateTempMax .setValue(self.getFloatValue(message))
+ self.sbDialysateTempDef .setValue(self.getFloatValue(message))
+ self.sbPotassiumMin .setValue(self.getFloatValue(message))
+ self.sbPotassiumMax .setValue(self.getFloatValue(message))
+ self.sbCalciumMin .setValue(self.getFloatValue(message))
+ self.sbCalciumMax .setValue(self.getFloatValue(message))
+ self.sbDialysateBicarbMin .setValue(self.getIntValue(message))
+ self.sbDialysateBicarbMax .setValue(self.getIntValue(message))
+ self.sbDialysateBicarbDef .setValue(self.getIntValue(message))
+ self.sbSodiumBicarbMin .setValue(self.getIntValue(message))
+ self.sbSodiumBicarbMax .setValue(self.getIntValue(message))
+ self.sbSodiumBicarbDef .setValue(self.getIntValue(message))
+ self.sbFluidBolusVolumeMin .setValue(self.getIntValue(message))
+ self.sbFluidBolusVolumeMax .setValue(self.getIntValue(message))
+ self.sbFluidBolusVolumeDef .setValue(self.getIntValue(message))
+ self.sbArterialPressureMin .setValue(self.getIntValue(message))
+ self.sbArterialPressureMax .setValue(self.getIntValue(message))
+ self.sbArterialPressureDef .setValue(self.getIntValue(message))
+ self.sbVenousPressureMin .setValue(self.getIntValue(message))
+ self.sbVenousPressureMax .setValue(self.getIntValue(message))
+ self.sbVenousPressureDef .setValue(self.getIntValue(message))
+ self.sbVenousAsymmetricMin .setValue(self.getIntValue(message))
+ self.sbVenousAsymmetricMax .setValue(self.getIntValue(message))
+ self.sbVenousAsymmetricDef .setValue(self.getIntValue(message))
+ self.sbTmpPressureMin .setValue(self.getIntValue(message))
+ self.sbTmpPressureMax .setValue(self.getIntValue(message))
+ self.sbTmpPressureDef .setValue(self.getIntValue(message))
+ self.sbUfVolumeMin .setValue(self.getFloatValue(message))
+ self.sbUfVolumeMax .setValue(self.getFloatValue(message))
+ self.sbUfVolumeDef .setValue(self.getFloatValue(message))
+ self.cbVitalsInterval .setCurrentIndex((self.getIntValue(message)))
+ self.sbRincebackVolumeMin .setValue(self.getIntValue(message))
+ self.sbRincebackVolumeMax .setValue(self.getIntValue(message))
+ self.sbRincebackVolumeDef .setValue(self.getIntValue(message))
+ self.sbRincebackFlowRateMin .setValue(self.getIntValue(message))
+ self.sbRincebackFlowRateMax .setValue(self.getIntValue(message))
+ self.sbRincebackFlowRateDef .setValue(self.getIntValue(message))
+ self.sbSubVolumeMin .setValue(self.getFloatValue(message))
+ self.sbSubVolumeMax .setValue(self.getFloatValue(message))
+ self.sbSubVolumeDef .setValue(self.getFloatValue(message))
+
+ @Slot()
+ def do_send(self):
+ """
+ the slot for treatment set point Data
+ :return: none
+ """
+ self.handle_request(0)