From e379aa6a4abc5147451791ef9e2b22a7ab6515ee Mon Sep 17 00:00:00 2001 From: Yorusora Date: Thu, 29 May 2025 21:13:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E5=92=8C<=E5=91=BC?= =?UTF-8?q?=E5=90=B8=E5=8F=AF=E7=94=A8=E6=80=A7=E5=8F=8A=E9=97=B4=E6=9C=9F?= =?UTF-8?q?=E6=A0=87=E6=B3=A8>=E7=9A=84=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func/Module_bcg_quality_label.py | 26 +- ui/MainWindow/MainWindow_bcg_quality_label.py | 26 +- ui/MainWindow/MainWindow_bcg_quality_label.ui | 24 +- .../MainWindow_resp_quality_label.py | 83 +++++- .../MainWindow_resp_quality_label.ui | 244 +++++++++++++----- 5 files changed, 291 insertions(+), 112 deletions(-) diff --git a/func/Module_bcg_quality_label.py b/func/Module_bcg_quality_label.py index e7deb72..b524db7 100644 --- a/func/Module_bcg_quality_label.py +++ b/func/Module_bcg_quality_label.py @@ -293,14 +293,20 @@ class MainWindow_bcg_quality_label(QMainWindow): if (sender == self.ui.pushButton_input or sender == self.ui.pushButton_prev or sender == self.ui.pushButton_next or - self.ui.tableWidget_a1 or - self.ui.tableWidget_a2 or - self.ui.tableWidget_b1 or - self.ui.tableWidget_b2 or - self.ui.tableWidget_c or - self.ui.tableWidget_f or - self.ui.checkBox_highlight_longest_continuous or - self.ui.checkBox_display_afterfilter): + sender == self.ui.tableWidget_a1 or + sender == self.ui.tableWidget_a2 or + sender == self.ui.tableWidget_b1 or + sender == self.ui.tableWidget_b2 or + sender == self.ui.tableWidget_c or + sender == self.ui.tableWidget_f or + sender == self.ui.checkBox_highlight_longest_continuous or + sender == self.ui.checkBox_display_afterfilter or + sender == self.ui.checkBox_allin or + sender == self.ui.checkBox_type1 or + sender == self.ui.checkBox_type2 or + sender == self.ui.checkBox_type3 or + sender == self.ui.checkBox_type4 or + sender == self.ui.checkBox_type5): try: artifact_type_seq = array([]) artifact_type_seq = artifact_type_seq.astype(int64) @@ -336,8 +342,8 @@ class MainWindow_bcg_quality_label(QMainWindow): display_data[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length], label=Constants.BCG_QUALITY_LABEL_PLOT_LABEL_SIGNAL, color=Constants.PLOT_COLOR_BLUE) for i in artifact_type_seq: - mask[i] = self.data.artifact_mask[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length] == i - mask[i] = (display_data[Config["CurrentDataIdx"]: Config["CurrentDataIdx"] + length] * + mask[i] = self.data.artifact_mask[Config["CurrentDataIdx"]:Config["CurrentDataIdx"] + length] == i + mask[i] = (display_data[Config["CurrentDataIdx"]:Config["CurrentDataIdx"] + length] * mask[i]).astype(float64) place(mask[i], mask[i] == 0, nan) self.ax0.plot(arange(Config["CurrentDataIdx"], Config["CurrentDataIdx"] + length), mask[i], diff --git a/ui/MainWindow/MainWindow_bcg_quality_label.py b/ui/MainWindow/MainWindow_bcg_quality_label.py index dec5d33..2d2c363 100644 --- a/ui/MainWindow/MainWindow_bcg_quality_label.py +++ b/ui/MainWindow/MainWindow_bcg_quality_label.py @@ -158,8 +158,8 @@ class Ui_MainWindow_bcg_quality_label(object): self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.groupBox_artifact_type = QGroupBox(self.groupBox_left) self.groupBox_artifact_type.setObjectName(u"groupBox_artifact_type") - self.gridLayout_6 = QGridLayout(self.groupBox_artifact_type) - self.gridLayout_6.setObjectName(u"gridLayout_6") + self.verticalLayout_3 = QVBoxLayout(self.groupBox_artifact_type) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.checkBox_allin = QCheckBox(self.groupBox_artifact_type) self.checkBox_allin.setObjectName(u"checkBox_allin") font2 = QFont() @@ -167,42 +167,42 @@ class Ui_MainWindow_bcg_quality_label(object): self.checkBox_allin.setFont(font2) self.checkBox_allin.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_allin, 0, 1, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_allin) self.checkBox_type1 = QCheckBox(self.groupBox_artifact_type) self.checkBox_type1.setObjectName(u"checkBox_type1") self.checkBox_type1.setFont(font1) self.checkBox_type1.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_type1, 0, 2, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_type1) self.checkBox_type2 = QCheckBox(self.groupBox_artifact_type) self.checkBox_type2.setObjectName(u"checkBox_type2") self.checkBox_type2.setFont(font1) self.checkBox_type2.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_type2, 1, 1, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_type2) self.checkBox_type3 = QCheckBox(self.groupBox_artifact_type) self.checkBox_type3.setObjectName(u"checkBox_type3") self.checkBox_type3.setFont(font1) self.checkBox_type3.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_type3, 1, 2, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_type3) self.checkBox_type4 = QCheckBox(self.groupBox_artifact_type) self.checkBox_type4.setObjectName(u"checkBox_type4") self.checkBox_type4.setFont(font1) self.checkBox_type4.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_type4, 2, 1, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_type4) self.checkBox_type5 = QCheckBox(self.groupBox_artifact_type) self.checkBox_type5.setObjectName(u"checkBox_type5") self.checkBox_type5.setFont(font1) self.checkBox_type5.setChecked(True) - self.gridLayout_6.addWidget(self.checkBox_type5, 2, 2, 1, 1) + self.verticalLayout_3.addWidget(self.checkBox_type5) self.horizontalLayout_2.addWidget(self.groupBox_artifact_type) @@ -510,11 +510,11 @@ class Ui_MainWindow_bcg_quality_label(object): self.label_13.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u4f53\u52a8\u65f6\u95f4\u5360\u6bd4", None)) self.groupBox_artifact_type.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u4f53\u52a8\u7c7b\u578b", None)) self.checkBox_allin.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u5168\u9009", None)) - self.checkBox_type1.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b1", None)) - self.checkBox_type2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b2", None)) - self.checkBox_type3.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b3", None)) - self.checkBox_type4.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b4", None)) - self.checkBox_type5.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b5", None)) + self.checkBox_type1.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b1-\u5267\u70c8\u4f53\u52a8", None)) + self.checkBox_type2.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b2-\u8109\u51b2\u4f53\u52a8", None)) + self.checkBox_type3.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b3-\u5e38\u89c4\u4f53\u52a8", None)) + self.checkBox_type4.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b4-\u7591\u4f3c\u9f3e\u58f0", None)) + self.checkBox_type5.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u7c7b\u578b5-\u79bb\u5e8a", None)) self.groupBox_function.setTitle(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u529f\u80fd", None)) self.pushButton_invalid_signal_label.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"\u65e0\u6548\u4fe1\u53f7\u6807\u6ce8", None)) self.pushButton_Ctype_signal_label.setText(QCoreApplication.translate("MainWindow_bcg_quality_label", u"C\u7c7b\u4fe1\u53f7\u6807\u6ce8", None)) diff --git a/ui/MainWindow/MainWindow_bcg_quality_label.ui b/ui/MainWindow/MainWindow_bcg_quality_label.ui index 5be4fb4..7fdaef1 100644 --- a/ui/MainWindow/MainWindow_bcg_quality_label.ui +++ b/ui/MainWindow/MainWindow_bcg_quality_label.ui @@ -245,8 +245,8 @@ 体动类型 - - + + @@ -261,7 +261,7 @@ - + @@ -269,14 +269,14 @@ - 类型1 + 类型1-剧烈体动 true - + @@ -284,14 +284,14 @@ - 类型2 + 类型2-脉冲体动 true - + @@ -299,14 +299,14 @@ - 类型3 + 类型3-常规体动 true - + @@ -314,14 +314,14 @@ - 类型4 + 类型4-疑似鼾声 true - + @@ -329,7 +329,7 @@ - 类型5 + 类型5-离床 true diff --git a/ui/MainWindow/MainWindow_resp_quality_label.py b/ui/MainWindow/MainWindow_resp_quality_label.py index 24339c4..7a5e9a5 100644 --- a/ui/MainWindow/MainWindow_resp_quality_label.py +++ b/ui/MainWindow/MainWindow_resp_quality_label.py @@ -15,11 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) -from PySide6.QtWidgets import (QApplication, QDoubleSpinBox, QGridLayout, QGroupBox, - QHBoxLayout, QHeaderView, QLabel, QLineEdit, - QMainWindow, QPushButton, QRadioButton, QSizePolicy, - QSpacerItem, QStatusBar, QTableWidget, QTableWidgetItem, - QTextBrowser, QVBoxLayout, QWidget) +from PySide6.QtWidgets import (QApplication, QCheckBox, QDoubleSpinBox, QGridLayout, + QGroupBox, QHBoxLayout, QHeaderView, QLabel, + QLineEdit, QMainWindow, QPushButton, QRadioButton, + QSizePolicy, QSpacerItem, QStatusBar, QTableWidget, + QTableWidgetItem, QTextBrowser, QVBoxLayout, QWidget) class Ui_MainWindow_resp_quality_label(object): def setupUi(self, MainWindow_resp_quality_label): @@ -159,6 +159,59 @@ class Ui_MainWindow_resp_quality_label(object): self.verticalLayout_2.addWidget(self.groupBox_autoqualitylabel_options) + self.horizontalLayout_2 = QHBoxLayout() + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.groupBox_artifact_type = QGroupBox(self.groupBox_left) + self.groupBox_artifact_type.setObjectName(u"groupBox_artifact_type") + self.verticalLayout_3 = QVBoxLayout(self.groupBox_artifact_type) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.checkBox_allin = QCheckBox(self.groupBox_artifact_type) + self.checkBox_allin.setObjectName(u"checkBox_allin") + font2 = QFont() + font2.setPointSize(20) + self.checkBox_allin.setFont(font2) + self.checkBox_allin.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_allin) + + self.checkBox_type1 = QCheckBox(self.groupBox_artifact_type) + self.checkBox_type1.setObjectName(u"checkBox_type1") + self.checkBox_type1.setFont(font1) + self.checkBox_type1.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_type1) + + self.checkBox_type2 = QCheckBox(self.groupBox_artifact_type) + self.checkBox_type2.setObjectName(u"checkBox_type2") + self.checkBox_type2.setFont(font1) + self.checkBox_type2.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_type2) + + self.checkBox_type3 = QCheckBox(self.groupBox_artifact_type) + self.checkBox_type3.setObjectName(u"checkBox_type3") + self.checkBox_type3.setFont(font1) + self.checkBox_type3.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_type3) + + self.checkBox_type4 = QCheckBox(self.groupBox_artifact_type) + self.checkBox_type4.setObjectName(u"checkBox_type4") + self.checkBox_type4.setFont(font1) + self.checkBox_type4.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_type4) + + self.checkBox_type5 = QCheckBox(self.groupBox_artifact_type) + self.checkBox_type5.setObjectName(u"checkBox_type5") + self.checkBox_type5.setFont(font1) + self.checkBox_type5.setChecked(True) + + self.verticalLayout_3.addWidget(self.checkBox_type5) + + + self.horizontalLayout_2.addWidget(self.groupBox_artifact_type) + self.groupBox_findpeaks_options = QGroupBox(self.groupBox_left) self.groupBox_findpeaks_options.setObjectName(u"groupBox_findpeaks_options") self.gridLayout_2 = QGridLayout(self.groupBox_findpeaks_options) @@ -194,7 +247,11 @@ class Ui_MainWindow_resp_quality_label(object): self.gridLayout_2.addWidget(self.doubleSpinBox_findpeaks_min_height, 1, 1, 1, 1) - self.verticalLayout_2.addWidget(self.groupBox_findpeaks_options) + self.horizontalLayout_2.addWidget(self.groupBox_findpeaks_options) + + self.horizontalLayout_2.setStretch(0, 2) + + self.verticalLayout_2.addLayout(self.horizontalLayout_2) self.groupBox_threshold_setting = QGroupBox(self.groupBox_left) self.groupBox_threshold_setting.setObjectName(u"groupBox_threshold_setting") @@ -246,6 +303,7 @@ class Ui_MainWindow_resp_quality_label(object): self.label_7 = QLabel(self.groupBox_threshold_setting) self.label_7.setObjectName(u"label_7") self.label_7.setFont(font1) + self.label_7.setAlignment(Qt.AlignmentFlag.AlignCenter) self.gridLayout_6.addWidget(self.label_7, 3, 2, 1, 1) @@ -257,6 +315,10 @@ class Ui_MainWindow_resp_quality_label(object): self.gridLayout_6.addWidget(self.pushButton_refilter_orgBcg, 0, 2, 1, 2) + self.gridLayout_6.setColumnStretch(0, 2) + self.gridLayout_6.setColumnStretch(1, 2) + self.gridLayout_6.setColumnStretch(2, 1) + self.gridLayout_6.setColumnStretch(3, 2) self.verticalLayout_2.addWidget(self.groupBox_threshold_setting) @@ -364,8 +426,6 @@ class Ui_MainWindow_resp_quality_label(object): self.verticalLayout_2.setStretch(1, 3) self.verticalLayout_2.setStretch(2, 1) self.verticalLayout_2.setStretch(3, 3) - self.verticalLayout_2.setStretch(4, 3) - self.verticalLayout_2.setStretch(5, 3) self.verticalLayout_2.setStretch(6, 1) self.verticalLayout_2.setStretch(7, 6) self.verticalLayout_2.setStretch(8, 5) @@ -467,6 +527,13 @@ class Ui_MainWindow_resp_quality_label(object): self.label_6.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"threshold[1]", None)) self.label_5.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"threshold[0]", None)) self.pushButton_autoqualitylabel_recalculate.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u5e94\u7528\u5e76\u8ba1\u7b97", None)) + self.groupBox_artifact_type.setTitle(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u4f53\u52a8\u7c7b\u578b", None)) + self.checkBox_allin.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u5168\u9009", None)) + self.checkBox_type1.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u7c7b\u578b1-\u5267\u70c8\u4f53\u52a8", None)) + self.checkBox_type2.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u7c7b\u578b2-\u8109\u51b2\u4f53\u52a8", None)) + self.checkBox_type3.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u7c7b\u578b3-\u5e38\u89c4\u4f53\u52a8", None)) + self.checkBox_type4.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u7c7b\u578b4-\u7591\u4f3c\u9f3e\u58f0", None)) + self.checkBox_type5.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u7c7b\u578b5-\u79bb\u5e8a", None)) self.groupBox_findpeaks_options.setTitle(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u5bfb\u5cf0\u53c2\u6570\u8bbe\u7f6e", None)) self.label_4.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u6700\u5c0f\u95f4\u9694", None)) self.label_3.setText(QCoreApplication.translate("MainWindow_resp_quality_label", u"\u6700\u5c0f\u9ad8\u5ea6", None)) diff --git a/ui/MainWindow/MainWindow_resp_quality_label.ui b/ui/MainWindow/MainWindow_resp_quality_label.ui index 14af760..d522177 100644 --- a/ui/MainWindow/MainWindow_resp_quality_label.ui +++ b/ui/MainWindow/MainWindow_resp_quality_label.ui @@ -42,7 +42,7 @@ 呼吸可用性及间期标注 - + @@ -248,80 +248,183 @@ - - - 寻峰参数设置 - - - - - - - 0 - 0 - - - - - 12 - - - - 最小间隔 - - - - - - - - 12 - - - - 10000.000000000000000 - - - - - - - - 0 - 0 - - - - - 12 - - - - 最小高度 - - - - - - - - 12 - - - - 10000.000000000000000 - - - - - + + + + + 体动类型 + + + + + + + 20 + + + + 全选 + + + true + + + + + + + + 12 + + + + 类型1-剧烈体动 + + + true + + + + + + + + 12 + + + + 类型2-脉冲体动 + + + true + + + + + + + + 12 + + + + 类型3-常规体动 + + + true + + + + + + + + 12 + + + + 类型4-疑似鼾声 + + + true + + + + + + + + 12 + + + + 类型5-离床 + + + true + + + + + + + + + + 寻峰参数设置 + + + + + + + 0 + 0 + + + + + 12 + + + + 最小间隔 + + + + + + + + 12 + + + + 10000.000000000000000 + + + + + + + + 0 + 0 + + + + + 12 + + + + 最小高度 + + + + + + + + 12 + + + + 10000.000000000000000 + + + + + + + OrgBCG带通滤波频率设置 - + @@ -419,6 +522,9 @@ ~ + + Qt::AlignmentFlag::AlignCenter +