更新SA打标界面,添加多个复选框以选择最佳拟合选项,调整布局和对齐方式,优化代码可读性

This commit is contained in:
marques
2025-09-01 15:13:07 +08:00
parent d622f5afff
commit 496ff73f9a
3 changed files with 338 additions and 186 deletions

View File

@ -750,6 +750,16 @@ class MainWindow_SA_label(QMainWindow):
"orgdata": self.ax6,
}
self.channel_to_best_fit_checkbox = {
"SpO2": None,
"Flow T": self.ui.checkBox_best_flow,
"Flow P": self.ui.checkBox_best_flow,
"Effort Tho": self.ui.checkBox_best_effort,
"Effort Abd": self.ui.checkBox_best_effort,
"0.7lowpass_resp": self.ui.checkBox_best_resp,
"orgdata": self.ui.checkBox_best_raw,
}
PublicFunc.__resetAllButton__(self, ButtonState)
self.ui.comboBox_window_signal_length.lineEdit().setValidator(QIntValidator(10, 1200))
@ -889,6 +899,9 @@ class MainWindow_SA_label(QMainWindow):
start_point = self.config["WindowStartSecond"] * plot_freq
end_point = start_point + self.config["WindowSignalSecond"] * plot_freq
for channel, ax in self.channel_to_ax.items():
if self.channel_to_best_fit_checkbox[channel] is not None and (
not self.channel_to_best_fit_checkbox[channel].isChecked()):
continue
signal_max = self.data.channel[channel][start_point: end_point].max()
signal_min = self.data.channel[channel][start_point: end_point].min()
if channel == "SpO2":
@ -1229,9 +1242,9 @@ class MainWindow_SA_label(QMainWindow):
width = self.selected_event_rect.get_width()
event_left = self.selected_event_info["correct_Start"] if self.selected_event_info["isLabeled"] != -1 else \
self.selected_event_info["Start"]
self.selected_event_info["Start"]
event_right = self.selected_event_info["correct_End"] if self.selected_event_info["isLabeled"] != -1 else \
self.selected_event_info["End"]
self.selected_event_info["End"]
if x_rect != event_left or width != (event_right - event_left):
self.selected_event_rect.set_x(event_left)
self.selected_event_rect.set_width(event_right - event_left)
@ -1650,7 +1663,8 @@ class MainWindow_SA_label(QMainWindow):
# 先去除原始事件索引映射
self.data.event_index_revised[self.data.event_index_revised == event_index] = 0
# 再添加新的事件索引映射
self.data.event_index_revised[original_event_info["Start"].values[0]:original_event_info["End"].values[0]] = event_index
self.data.event_index_revised[
original_event_info["Start"].values[0]:original_event_info["End"].values[0]] = event_index
# 重置事件信息到df_revised
self.data.df_revised[self.data.df_revised["Index"] == event_index] = original_event_info