更新了<BCG的质量标注>和<呼吸可用性及间期标注>的界面

This commit is contained in:
2025-05-29 21:13:44 +08:00
parent b01e2f1161
commit e379aa6a4a
5 changed files with 291 additions and 112 deletions

View File

@ -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],

View File

@ -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))

View File

@ -245,8 +245,8 @@
<property name="title">
<string>体动类型</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="checkBox_allin">
<property name="font">
<font>
@ -261,7 +261,7 @@
</property>
</widget>
</item>
<item row="0" column="2">
<item>
<widget class="QCheckBox" name="checkBox_type1">
<property name="font">
<font>
@ -269,14 +269,14 @@
</font>
</property>
<property name="text">
<string>类型1</string>
<string>类型1-剧烈体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<item>
<widget class="QCheckBox" name="checkBox_type2">
<property name="font">
<font>
@ -284,14 +284,14 @@
</font>
</property>
<property name="text">
<string>类型2</string>
<string>类型2-脉冲体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<item>
<widget class="QCheckBox" name="checkBox_type3">
<property name="font">
<font>
@ -299,14 +299,14 @@
</font>
</property>
<property name="text">
<string>类型3</string>
<string>类型3-常规体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<item>
<widget class="QCheckBox" name="checkBox_type4">
<property name="font">
<font>
@ -314,14 +314,14 @@
</font>
</property>
<property name="text">
<string>类型4</string>
<string>类型4-疑似鼾声</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="2">
<item>
<widget class="QCheckBox" name="checkBox_type5">
<property name="font">
<font>
@ -329,7 +329,7 @@
</font>
</property>
<property name="text">
<string>类型5</string>
<string>类型5-离床</string>
</property>
<property name="checked">
<bool>true</bool>

View File

@ -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))

View File

@ -42,7 +42,7 @@
<property name="title">
<string>呼吸可用性及间期标注</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,3,1,3,3,3,1,6,5">
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,3,1,3,0,0,1,6,5">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@ -247,6 +247,107 @@
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="2,0">
<item>
<widget class="QGroupBox" name="groupBox_artifact_type">
<property name="title">
<string>体动类型</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="checkBox_allin">
<property name="font">
<font>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<string>全选</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_type1">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>类型1-剧烈体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_type2">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>类型2-脉冲体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_type3">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>类型3-常规体动</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_type4">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>类型4-疑似鼾声</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_type5">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>类型5-离床</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_findpeaks_options">
<property name="title">
@ -316,12 +417,14 @@
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox_threshold_setting">
<property name="title">
<string>OrgBCG带通滤波频率设置</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<layout class="QGridLayout" name="gridLayout_6" columnstretch="2,2,1,2">
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="doubleSpinBox_fillterMode_custom_low">
<property name="font">
@ -419,6 +522,9 @@
<property name="text">
<string>~</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">