Index: MainTreatmentData/interface.ui =================================================================== diff -u -r8d3f0d411aa713011a2204226b5ff5c5a65d5bc3 -r871361792769299b3f8f2033b058ba343cec0aa7 --- MainTreatmentData/interface.ui (.../interface.ui) (revision 8d3f0d411aa713011a2204226b5ff5c5a65d5bc3) +++ MainTreatmentData/interface.ui (.../interface.ui) (revision 871361792769299b3f8f2033b058ba343cec0aa7) @@ -6,8 +6,8 @@ 0 0 - 742 - 481 + 732 + 387 @@ -19,11 +19,182 @@ &3 Treatment/&1 Main treatment - - - + + + - + + + + 180 + 0 + + + + + 180 + 16777215 + + + + Cumulative Volume + + + + + + + 10000 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + + + + 180 + 0 + + + + Target Volume + + + + + + + 10000 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + 0 + 0 + + + + + 352 + 0 + + + + + 10 + + + + false + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + 61 : [0x3D00] : Saline Bolus + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Saline Bolus Req[0x5F00] + + + + + + + + + + 0 + 0 + + + + + 352 + 0 + + + + + 16777215 + 16777215 + + 10 @@ -35,1219 +206,586 @@ - Main Treatment Data + 59 : [0x3B00] : Treament Time Qt::AlignCenter - - - send - - + + + + + + 180 + 0 + + + + TX Duration + + + + + + + 480 + + + 15 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + - - - reset + + + + + + 180 + 0 + + + + Elapsed Time + + + + + + + 480 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + Qt::Vertical - + + + 20 + 60 + + + - - - - - - QFrame::StyledPanel + + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + + Main Treatment Data + + + Qt::AlignCenter + + + + + + + send + + + + + + + reset + + + + + + + + + + + + + + 180 + 0 + - - QFrame::Raised + + + 180 + 16777215 + - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 352 - 0 - - - - - 10 - - - - false - - - color: rgb(238, 238, 236); -background-color: rgb(92, 53, 102); - - - 61 : [0x3D00] : Saline Bolus - - - Qt::AlignCenter - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Target Volume - - - - - - - - 0 - 0 - - - - 10000 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - - 180 - 16777215 - - - - Cumulative Volume - - - - - - - - 0 - 0 - - - - 10000 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - - 180 - 16777215 - - - - Current Delivered Volume - - - - - - - - 0 - 0 - - - - 10000 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Saline Bolus Req[0x5F00] - - - - - - - - 0 - 0 - - - - false - - - QFrame::WinPanel - - - QFrame::Sunken - - - - - - - Qt::AlignCenter - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - + + Current Delivered Volume + - - - - QFrame::StyledPanel + + + + 10000 - - QFrame::Raised + + Qt::Horizontal - - - 2 - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 352 - 0 - - - - - 16777215 - 16777215 - - - - - 10 - - - - color: rgb(238, 238, 236); -background-color: rgb(92, 53, 102); - - - - 79 : [0x4F00] : Set Point Data - - - Qt::AlignCenter - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Blood Flow - - - - - - - - 0 - 0 - - - - 900 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Dial Flow - - - - - - - - 0 - 0 - - - - 900 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Dial Temp - - - - - - - - 0 - 0 - - - - 100.000000000000000 - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - - - - - QFrame::StyledPanel + + + + + 50 + 0 + - - QFrame::Raised + + 0 - - - 2 - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 352 - 0 - - - - - 10 - - - - color: rgb(238, 238, 236); -background-color: rgb(92, 53, 102); - - - 62 : [0x3E00] : Ultrafiltration - - - Qt::AlignCenter - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Set Volume L - - - - - - - - 0 - 0 - - - - 1000 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Target Rate L/Hr - - - - - - - - 0 - 0 - - - - 1000 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Volume Delivered L - - - - - - - - 0 - 0 - - - - 200 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - State - - - - - - - - 0 - 0 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Max Delivery - - - - - - - - 0 - 0 - - - - 20.000000000000000 - - - 2.000000000000000 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - - - - - QFrame::StyledPanel + + + + + + + + + 0 + 0 + - - QFrame::Raised + + + 352 + 0 + - - - 2 - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 352 - 0 - - - - - 16777215 - 16777215 - - - - - 10 - - - - color: rgb(238, 238, 236); + + + 16777215 + 16777215 + + + + + 10 + + + + color: rgb(238, 238, 236); background-color: rgb(92, 53, 102); - - - 59 : [0x3B00] : Treament Time - - - Qt::AlignCenter - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - TX Duration - - - - - - - - 0 - 0 - - - - 480 - - - 15 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - - - - 0 - 0 - - - - - 180 - 0 - - - - Elapsed Time - - - - - - - - 0 - 0 - - - - 480 - - - Qt::Horizontal - - - - - - - - 50 - 0 - - - - 0 - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - + + + 79 : [0x4F00] : Set Point Data + + + Qt::AlignCenter + - - - - QFrame::StyledPanel + + + + + + + 180 + 0 + + + + Blood Flow + + + + + + + 900 + + + + + + + + + + + + 180 + 0 + + + + Dial Flow + + + + + + + 900 + + + + + + + + + + + + 180 + 0 + + + + Dial Temp + + + + + + + 100.000000000000000 + + + + + + + + + Qt::Vertical - - QFrame::Raised + + + 20 + 10 + - - - 2 - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 0 - 0 - - - - - 10 - - - - color: rgb(238, 238, 236); + + + + + + + + + + + 0 + 0 + + + + + 352 + 0 + + + + + 10 + + + + color: rgb(238, 238, 236); background-color: rgb(92, 53, 102); - - - 67 : [0x4300] : Param Ranges - - - Qt::AlignCenter - - - - - - - - - - 0 - 0 - - - - - - - - Min - - - Qt::AlignCenter - - - - - - - Max - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - 8000 - - - 10 - - - - - - - - 0 - 0 - - - - 8000 - - - 10 - - - 0 - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - Treatment Time - - - - - - - - 0 - 0 - - - - UF Volume - - - - - - - - 0 - 0 - - - - Dial Rate - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - + + + 62 : [0x3E00] : Ultrafiltration + + + Qt::AlignCenter + + + + + + + + 180 + 0 + + + + Set Volume L + + + + + + + 1000 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + + + + 180 + 0 + + + + Target Rate L/Hr + + + + + + + 1000 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + + + + 180 + 0 + + + + Volume Delivered L + + + + + + + 200 + + + Qt::Horizontal + + + + + + + + 50 + 0 + + + + 0 + + + + + + + + + + + + 180 + 0 + + + + State + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 180 + 0 + + + + Max Delivery + + + + + + + 20.000000000000000 + + + 2.000000000000000 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + false + + + QFrame::WinPanel + + + QFrame::Sunken + + + - + + + Qt::AlignCenter + + + Index: MainTreatmentData/loader.py =================================================================== diff -u -r8d3f0d411aa713011a2204226b5ff5c5a65d5bc3 -r871361792769299b3f8f2033b058ba343cec0aa7 --- MainTreatmentData/loader.py (.../loader.py) (revision 8d3f0d411aa713011a2204226b5ff5c5a65d5bc3) +++ MainTreatmentData/loader.py (.../loader.py) (revision 871361792769299b3f8f2033b058ba343cec0aa7) @@ -77,12 +77,6 @@ self.lbBolusStart = self.find_widget(QtWidgets.QLabel , 'lbBolusStart' ) - self.tx_time_min = self.find_widget(QtWidgets.QSpinBox , 'TxTimeMinSpinBox' ) - self.tx_time_max = self.find_widget(QtWidgets.QSpinBox , 'TxTimeMaxSpinBox' ) - self.uf_volume_min = self.find_widget(QtWidgets.QSpinBox , 'UFVolumeMinSpinBox' ) - self.uf_volume_max = self.find_widget(QtWidgets.QSpinBox , 'UFVolumeMaxSpinBox' ) - self.dial_rate_min = self.find_widget(QtWidgets.QSpinBox , 'DialRateMinSpinBox' ) - self.dial_rate_max = self.find_widget(QtWidgets.QSpinBox , 'DialRateMaxSpinBox' ) def _init_connections(self): """ @@ -110,12 +104,6 @@ self.dial_flow_st_pt .valueChanged.connect(self.do_tx_set_point_data) self.dial_temp_st_pt .valueChanged.connect(self.do_tx_set_point_data) - self.tx_time_min .valueChanged.connect(self.do_param_ranges_data) - self.tx_time_max .valueChanged.connect(self.do_param_ranges_data) - self.uf_volume_min .valueChanged.connect(self.do_param_ranges_data) - self.uf_volume_max .valueChanged.connect(self.do_param_ranges_data) - self.dial_rate_min .valueChanged.connect(self.do_param_ranges_data) - self.dial_rate_max .valueChanged.connect(self.do_param_ranges_data) def handle_solution_infusion_request(self, message, timestamp = 0.0): """ @@ -146,13 +134,6 @@ self.tx_duration .setValue(0) self.tx_elapsed .setValue(0) - self.tx_time_min .setValue(0) - self.tx_time_max .setValue(0) - self.uf_volume_min .setValue(0) - self.uf_volume_max .setValue(8000) - self.dial_rate_min .setValue(0) - self.dial_rate_max .setValue(0) - @Slot() def do_uf_max(self): """ @@ -240,28 +221,6 @@ ) @Slot() - def do_param_ranges_data(self): - """ - the slot for treatment param ranges Data - :return: none - """ - tx_time_min_s = self.tx_time_min.value() - tx_time_max_s = self.tx_time_max.value() - uf_volume_min_mL = self.uf_volume_min.value() - uf_volume_max_mL = self.uf_volume_max.value() - dial_rate_min_mLH = self.dial_rate_min.value() - dial_rate_max_mLH = self.dial_rate_max.value() - - self.td_interface.td_param_ranges( - tx_time_min_s , - tx_time_max_s , - uf_volume_min_mL , - uf_volume_max_mL , - dial_rate_min_mLH , - dial_rate_max_mLH - ) - - @Slot() def do_all_tx_data(self): """ the slot for treatment set point Data @@ -271,4 +230,3 @@ self.do_uf_data() self.do_tx_time_data() self.do_tx_set_point_data() - self.do_param_ranges_data() Index: TD_ParamRanges/interface.ui =================================================================== diff -u --- TD_ParamRanges/interface.ui (revision 0) +++ TD_ParamRanges/interface.ui (revision 871361792769299b3f8f2033b058ba343cec0aa7) @@ -0,0 +1,232 @@ + + + ui_interface + + + + 0 + 0 + 350 + 170 + + + + + 0 + 0 + + + + + 350 + 170 + + + + + 100000 + 100000 + + + + &3 Treatment/&5 Param Ranges + + + + + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(92, 53, 102); + + + + 67 : [0x4300] : Param Ranges + + + Qt::AlignCenter + + + + + + + Send + + + + + + + Reset + + + + + + + + + + + + 0 + 0 + + + + + + + + Min + + + Qt::AlignCenter + + + + + + + Max + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + 8000 + + + 10 + + + + + + + + 0 + 0 + + + + 8000 + + + 10 + + + 0 + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + Treatment Time + + + + + + + + 0 + 0 + + + + UF Volume + + + + + + + + 0 + 0 + + + + Dial Rate + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + tbSend + tbReset + + + + Index: TD_ParamRanges/loader.py =================================================================== diff -u --- TD_ParamRanges/loader.py (revision 0) +++ TD_ParamRanges/loader.py (revision 871361792769299b3f8f2033b058ba343cec0aa7) @@ -0,0 +1,96 @@ +""" + TD Param Ranges 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 + +# td simulator +from leahi_dialin.ui.td_messaging import TD_Messaging + +class Loader(DynamicLoader): + """ + TD Param Ranges UI loader + """ + def __init__(self): + self.td_interface = TD_Messaging() + self.can_interface = self.td_interface.can_interface + 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.tx_time_min = self.find_widget(QtWidgets.QSpinBox , 'TxTimeMinSpinBox' ) + self.tx_time_max = self.find_widget(QtWidgets.QSpinBox , 'TxTimeMaxSpinBox' ) + self.uf_volume_min = self.find_widget(QtWidgets.QSpinBox , 'UFVolumeMinSpinBox' ) + self.uf_volume_max = self.find_widget(QtWidgets.QSpinBox , 'UFVolumeMaxSpinBox' ) + self.dial_rate_min = self.find_widget(QtWidgets.QSpinBox , 'DialRateMinSpinBox' ) + self.dial_rate_max = self.find_widget(QtWidgets.QSpinBox , 'DialRateMaxSpinBox' ) + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + self.tbReset.clicked.connect( self._init_widgets ) + self.tbSend .clicked.connect( self.do_param_ranges_data ) + + self.tx_time_min .valueChanged.connect(self.do_param_ranges_data) + self.tx_time_max .valueChanged.connect(self.do_param_ranges_data) + self.uf_volume_min .valueChanged.connect(self.do_param_ranges_data) + self.uf_volume_max .valueChanged.connect(self.do_param_ranges_data) + self.dial_rate_min .valueChanged.connect(self.do_param_ranges_data) + self.dial_rate_max .valueChanged.connect(self.do_param_ranges_data) + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + self.tx_time_min .setValue(0) + self.tx_time_max .setValue(0) + self.uf_volume_min .setValue(0) + self.uf_volume_max .setValue(8000) + self.dial_rate_min .setValue(0) + self.dial_rate_max .setValue(0) + + @Slot() + def do_param_ranges_data(self): + """ + the slot for treatment param ranges Data + :return: none + """ + tx_time_min_s = self.tx_time_min.value() + tx_time_max_s = self.tx_time_max.value() + uf_volume_min_mL = self.uf_volume_min.value() + uf_volume_max_mL = self.uf_volume_max.value() + dial_rate_min_mLH = self.dial_rate_min.value() + dial_rate_max_mLH = self.dial_rate_max.value() + + self.td_interface.td_param_ranges( + tx_time_min_s , + tx_time_max_s , + uf_volume_min_mL , + uf_volume_max_mL , + dial_rate_min_mLH , + dial_rate_max_mLH + )