新增Stage同步路径配置,更新界面布局以支持Stage信号输入
This commit is contained in:
@ -106,6 +106,8 @@ class SettingWindow(QMainWindow):
|
|||||||
self.ui.plainTextEdit_file_path_input_signal_SpO2.textChanged.connect(
|
self.ui.plainTextEdit_file_path_input_signal_SpO2.textChanged.connect(
|
||||||
self.__set_plaintext_font_color_by_path__)
|
self.__set_plaintext_font_color_by_path__)
|
||||||
self.ui.plainTextEdit_file_path_input_signal_Tho.textChanged.connect(self.__set_plaintext_font_color_by_path__)
|
self.ui.plainTextEdit_file_path_input_signal_Tho.textChanged.connect(self.__set_plaintext_font_color_by_path__)
|
||||||
|
self.ui.plainTextEdit_file_path_input_signal_Stage.textChanged.connect(
|
||||||
|
self.__set_plaintext_font_color_by_path__)
|
||||||
|
|
||||||
self.ui.pushButton_confirm.clicked.connect(self.__write_config__)
|
self.ui.pushButton_confirm.clicked.connect(self.__write_config__)
|
||||||
self.ui.pushButton_cancel.clicked.connect(self.__rollback_config__)
|
self.ui.pushButton_cancel.clicked.connect(self.__rollback_config__)
|
||||||
@ -126,12 +128,14 @@ class SettingWindow(QMainWindow):
|
|||||||
|
|
||||||
self.params.update({
|
self.params.update({
|
||||||
"Path": {
|
"Path": {
|
||||||
|
|
||||||
"Input_OrgBCG": sync_bcg_path,
|
"Input_OrgBCG": sync_bcg_path,
|
||||||
"Input_Tho": sync_psg_path,
|
"Input_Tho": sync_psg_path,
|
||||||
"Input_Abd": sync_psg_path,
|
"Input_Abd": sync_psg_path,
|
||||||
"Input_FlowT": sync_psg_path,
|
"Input_FlowT": sync_psg_path,
|
||||||
"Input_FlowP": sync_psg_path,
|
"Input_FlowP": sync_psg_path,
|
||||||
"Input_SpO2": sync_psg_path,
|
"Input_SpO2": sync_psg_path,
|
||||||
|
"Input_Stage": sync_psg_path,
|
||||||
|
|
||||||
"Input_SA_Label": sync_psg_path / f"{Filename.SA_LABEL_SYNC}{Params.ENDSWITH_CSV}",
|
"Input_SA_Label": sync_psg_path / f"{Filename.SA_LABEL_SYNC}{Params.ENDSWITH_CSV}",
|
||||||
"Input_Artifact_A": label_path / f"{Filename.ARTIFACT_A}{Params.ENDSWITH_CSV}",
|
"Input_Artifact_A": label_path / f"{Filename.ARTIFACT_A}{Params.ENDSWITH_CSV}",
|
||||||
@ -145,6 +149,7 @@ class SettingWindow(QMainWindow):
|
|||||||
|
|
||||||
def __write_config__(self):
|
def __write_config__(self):
|
||||||
# 从界面写入配置
|
# 从界面写入配置
|
||||||
|
self.params["Path"]["Input_Stage"] = self.ui.plainTextEdit_file_path_input_signal_Stage().toPlainText()
|
||||||
self.params["Path"]["Input_OrgBCG"] = self.ui.plainTextEdit_file_path_input_signal_OrgBCG.toPlainText()
|
self.params["Path"]["Input_OrgBCG"] = self.ui.plainTextEdit_file_path_input_signal_OrgBCG.toPlainText()
|
||||||
self.params["Path"]["Input_Tho"] = self.ui.plainTextEdit_file_path_input_signal_Tho.toPlainText()
|
self.params["Path"]["Input_Tho"] = self.ui.plainTextEdit_file_path_input_signal_Tho.toPlainText()
|
||||||
self.params["Path"]["Input_Abd"] = self.ui.plainTextEdit_file_path_input_signal_Abd.toPlainText()
|
self.params["Path"]["Input_Abd"] = self.ui.plainTextEdit_file_path_input_signal_Abd.toPlainText()
|
||||||
@ -177,6 +182,7 @@ class SettingWindow(QMainWindow):
|
|||||||
self.ui.spinBox_input_freq_signal_FlowP.setValue(self.params["Config"]["InputConfig"]["FlowPFreq"])
|
self.ui.spinBox_input_freq_signal_FlowP.setValue(self.params["Config"]["InputConfig"]["FlowPFreq"])
|
||||||
self.ui.spinBox_input_freq_signal_SpO2.setValue(self.params["Config"]["InputConfig"]["SpO2Freq"])
|
self.ui.spinBox_input_freq_signal_SpO2.setValue(self.params["Config"]["InputConfig"]["SpO2Freq"])
|
||||||
|
|
||||||
|
self.ui.plainTextEdit_file_path_input_signal_Stage.setPlainText(str(self.params["Path"]["Input_Stage"]))
|
||||||
self.ui.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText(str(self.params["Path"]["Input_OrgBCG"]))
|
self.ui.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText(str(self.params["Path"]["Input_OrgBCG"]))
|
||||||
self.ui.plainTextEdit_file_path_input_signal_Tho.setPlainText(str(self.params["Path"]["Input_Tho"]))
|
self.ui.plainTextEdit_file_path_input_signal_Tho.setPlainText(str(self.params["Path"]["Input_Tho"]))
|
||||||
self.ui.plainTextEdit_file_path_input_signal_Abd.setPlainText(str(self.params["Path"]["Input_Abd"]))
|
self.ui.plainTextEdit_file_path_input_signal_Abd.setPlainText(str(self.params["Path"]["Input_Abd"]))
|
||||||
@ -189,7 +195,7 @@ class SettingWindow(QMainWindow):
|
|||||||
# self.ui.plainTextEdit_file_path_save_2.setPlainText(str(self.params["Path"]["Save_2"]))
|
# self.ui.plainTextEdit_file_path_save_2.setPlainText(str(self.params["Path"]["Save_2"]))
|
||||||
|
|
||||||
def __auto_find_file__(self):
|
def __auto_find_file__(self):
|
||||||
check_signal_type_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2"]
|
check_signal_type_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2", "Input_Stage"]
|
||||||
|
|
||||||
def find_file(file_path: Path, _type, endswith):
|
def find_file(file_path: Path, _type, endswith):
|
||||||
if file_path.is_file():
|
if file_path.is_file():
|
||||||
@ -231,12 +237,14 @@ class SettingWindow(QMainWindow):
|
|||||||
class Data:
|
class Data:
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self.Stage = None
|
||||||
self.OrgBCG = None
|
self.OrgBCG = None
|
||||||
self.Tho = None
|
self.Tho = None
|
||||||
self.Abd = None
|
self.Abd = None
|
||||||
self.FlowT = None
|
self.FlowT = None
|
||||||
self.FlowP = None
|
self.FlowP = None
|
||||||
self.SpO2 = None
|
self.SpO2 = None
|
||||||
|
self.Stage_Resampled = None
|
||||||
self.lowPass20Hz = None
|
self.lowPass20Hz = None
|
||||||
self.lowPassResp = None
|
self.lowPassResp = None
|
||||||
self.OrgBCG_Resampled = None
|
self.OrgBCG_Resampled = None
|
||||||
@ -248,6 +256,7 @@ class Data:
|
|||||||
self.lowPass20Hz_Resampled = None
|
self.lowPass20Hz_Resampled = None
|
||||||
self.lowPassResp_Resampled = None
|
self.lowPassResp_Resampled = None
|
||||||
self.channel = {
|
self.channel = {
|
||||||
|
"Stage": None,
|
||||||
"orgdata": None,
|
"orgdata": None,
|
||||||
"0.7lowpass_resp": None,
|
"0.7lowpass_resp": None,
|
||||||
"Effort Tho": None,
|
"Effort Tho": None,
|
||||||
@ -264,6 +273,14 @@ class Data:
|
|||||||
"Mixed apnea": 4,
|
"Mixed apnea": 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.stage_to_value = {
|
||||||
|
"W": 5,
|
||||||
|
"N1": 3,
|
||||||
|
"N2": 2,
|
||||||
|
"N3": 1,
|
||||||
|
"R": 4,
|
||||||
|
}
|
||||||
|
|
||||||
self.event_label_origin = None
|
self.event_label_origin = None
|
||||||
self.event_label_revised = None
|
self.event_label_revised = None
|
||||||
self.event_index_origin = None
|
self.event_index_origin = None
|
||||||
@ -277,7 +294,7 @@ class Data:
|
|||||||
def open_file(self):
|
def open_file(self):
|
||||||
# 仅判断文件是否存在
|
# 仅判断文件是否存在
|
||||||
check_file_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2",
|
check_file_list = ["Input_OrgBCG", "Input_Tho", "Input_Abd", "Input_FlowT", "Input_FlowP", "Input_SpO2",
|
||||||
"Input_SA_Label"]
|
"Input_SA_Label", "Input_Stage"]
|
||||||
|
|
||||||
for file_key in check_file_list:
|
for file_key in check_file_list:
|
||||||
if (not self.config["Path"][file_key].is_file()) or (not self.config["Path"][file_key].exists()):
|
if (not self.config["Path"][file_key].is_file()) or (not self.config["Path"][file_key].exists()):
|
||||||
@ -286,6 +303,8 @@ class Data:
|
|||||||
Constants.FAILURE_REASON["Path_Not_Exist"])
|
Constants.FAILURE_REASON["Path_Not_Exist"])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
self.Stage = read_csv(self.config["Path"]["Input_Stage"], encoding=Params.UTF8_ENCODING,
|
||||||
|
header=None).to_numpy().reshape(-1)
|
||||||
self.OrgBCG = read_csv(self.config["Path"]["Input_OrgBCG"], encoding=Params.UTF8_ENCODING,
|
self.OrgBCG = read_csv(self.config["Path"]["Input_OrgBCG"], encoding=Params.UTF8_ENCODING,
|
||||||
header=None).to_numpy().reshape(-1)
|
header=None).to_numpy().reshape(-1)
|
||||||
self.Tho = read_csv(self.config["Path"]["Input_Tho"], encoding=Params.UTF8_ENCODING,
|
self.Tho = read_csv(self.config["Path"]["Input_Tho"], encoding=Params.UTF8_ENCODING,
|
||||||
@ -299,6 +318,7 @@ class Data:
|
|||||||
self.SpO2 = read_csv(self.config["Path"]["Input_SpO2"], encoding=Params.UTF8_ENCODING,
|
self.SpO2 = read_csv(self.config["Path"]["Input_SpO2"], encoding=Params.UTF8_ENCODING,
|
||||||
header=None).to_numpy().reshape(-1)
|
header=None).to_numpy().reshape(-1)
|
||||||
|
|
||||||
|
|
||||||
if self.config["Path"]["Input_Artifact_A"].exists() and self.config["Path"]["Input_Artifact_A"].is_file():
|
if self.config["Path"]["Input_Artifact_A"].exists() and self.config["Path"]["Input_Artifact_A"].is_file():
|
||||||
self.Artifact = read_csv(self.config["Path"]["Input_Artifact_A"],
|
self.Artifact = read_csv(self.config["Path"]["Input_Artifact_A"],
|
||||||
encoding=Params.UTF8_ENCODING,
|
encoding=Params.UTF8_ENCODING,
|
||||||
@ -324,6 +344,12 @@ class Data:
|
|||||||
"SignalSecond": int(len(self.OrgBCG) // self.config["Config"]["InputConfig"]["OrgBCGFreq"])
|
"SignalSecond": int(len(self.OrgBCG) // self.config["Config"]["InputConfig"]["OrgBCGFreq"])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# 批量将睡眠分期按照映射转换为数字
|
||||||
|
for stage_str, stage_val in self.stage_to_value.items():
|
||||||
|
place(self.Stage, self.Stage == stage_str, stage_val)
|
||||||
|
self.Stage = self.Stage.astype(int)
|
||||||
|
|
||||||
# 根据秒数对信号截断
|
# 根据秒数对信号截断
|
||||||
self.OrgBCG = self.OrgBCG[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["OrgBCGFreq"]]
|
self.OrgBCG = self.OrgBCG[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["OrgBCGFreq"]]
|
||||||
self.Tho = self.Tho[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["ThoFreq"]]
|
self.Tho = self.Tho[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["ThoFreq"]]
|
||||||
@ -331,10 +357,14 @@ class Data:
|
|||||||
self.FlowT = self.FlowT[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowTFreq"]]
|
self.FlowT = self.FlowT[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowTFreq"]]
|
||||||
self.FlowP = self.FlowP[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowPFreq"]]
|
self.FlowP = self.FlowP[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["FlowPFreq"]]
|
||||||
self.SpO2 = self.SpO2[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["SpO2Freq"]]
|
self.SpO2 = self.SpO2[:self.config["SignalSecond"] * self.config["Config"]["InputConfig"]["SpO2Freq"]]
|
||||||
self.event_label_origin = zeros(len(self.OrgBCG))
|
self.Stage = self.Stage[:self.config["SignalSecond"]]
|
||||||
self.event_label_revised = zeros(len(self.OrgBCG))
|
|
||||||
self.event_index_origin = zeros(len(self.OrgBCG))
|
|
||||||
self.event_index_revised = zeros(len(self.OrgBCG))
|
plot_freq = self.config["Config"]["InputConfig"]["PlotFreq"]
|
||||||
|
self.event_label_origin = zeros(self.config["SignalSecond"] * plot_freq)
|
||||||
|
self.event_label_revised = zeros(self.config["SignalSecond"] * plot_freq)
|
||||||
|
self.event_index_origin = zeros(self.config["SignalSecond"])
|
||||||
|
self.event_index_revised = zeros(self.config["SignalSecond"])
|
||||||
|
|
||||||
return Result().success(info=Constants.INPUT_FINISHED)
|
return Result().success(info=Constants.INPUT_FINISHED)
|
||||||
|
|
||||||
@ -474,6 +504,7 @@ class Data:
|
|||||||
plot_freq)
|
plot_freq)
|
||||||
self.SpO2_Resampled = _resample_signal(self.SpO2, self.config["Config"]["InputConfig"]["SpO2Freq"],
|
self.SpO2_Resampled = _resample_signal(self.SpO2, self.config["Config"]["InputConfig"]["SpO2Freq"],
|
||||||
plot_freq)
|
plot_freq)
|
||||||
|
self.Stage_Resampled = _resample_signal(self.Stage, 1, plot_freq)
|
||||||
|
|
||||||
self.channel["orgdata"] = self.lowPass20Hz_Resampled
|
self.channel["orgdata"] = self.lowPass20Hz_Resampled
|
||||||
self.channel["0.7lowpass_resp"] = self.lowPassResp_Resampled
|
self.channel["0.7lowpass_resp"] = self.lowPassResp_Resampled
|
||||||
@ -482,6 +513,17 @@ class Data:
|
|||||||
self.channel["Flow T"] = self.FlowT_Resampled
|
self.channel["Flow T"] = self.FlowT_Resampled
|
||||||
self.channel["Flow P"] = self.FlowP_Resampled
|
self.channel["Flow P"] = self.FlowP_Resampled
|
||||||
self.channel["SpO2"] = self.SpO2_Resampled
|
self.channel["SpO2"] = self.SpO2_Resampled
|
||||||
|
self.channel["Stage"] = self.Stage_Resampled
|
||||||
|
|
||||||
|
# 从内存中删除原始信号
|
||||||
|
del self.OrgBCG
|
||||||
|
del self.Tho
|
||||||
|
del self.Abd
|
||||||
|
del self.FlowT
|
||||||
|
del self.FlowP
|
||||||
|
del self.SpO2
|
||||||
|
del self.Stage
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return Result().failure(info=Constants.RESAMPLE_FAILURE +
|
return Result().failure(info=Constants.RESAMPLE_FAILURE +
|
||||||
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
||||||
@ -716,7 +758,7 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
self.ui.verticalLayout_canvas.addWidget(self.canvas)
|
self.ui.verticalLayout_canvas.addWidget(self.canvas)
|
||||||
self.ui.verticalLayout_canvas.addWidget(self.figToolbar)
|
self.ui.verticalLayout_canvas.addWidget(self.figToolbar)
|
||||||
|
|
||||||
self.gs = gridspec.GridSpec(7, 1, height_ratios=[1, 1, 1, 1, 1, 3, 2])
|
self.gs = gridspec.GridSpec(8, 1, height_ratios=[1, 1, 1, 1, 1, 3, 2, 1])
|
||||||
self.fig.subplots_adjust(top=0.98, bottom=0.05, right=0.98, left=0.1, hspace=0, wspace=0)
|
self.fig.subplots_adjust(top=0.98, bottom=0.05, right=0.98, left=0.1, hspace=0, wspace=0)
|
||||||
self.ax0 = self.fig.add_subplot(self.gs[0])
|
self.ax0 = self.fig.add_subplot(self.gs[0])
|
||||||
self.ax0.grid(True)
|
self.ax0.grid(True)
|
||||||
@ -746,6 +788,9 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
self.ax6 = self.fig.add_subplot(self.gs[6], sharex=self.ax0)
|
self.ax6 = self.fig.add_subplot(self.gs[6], sharex=self.ax0)
|
||||||
self.ax6.grid(True)
|
self.ax6.grid(True)
|
||||||
self.ax6.xaxis.set_major_formatter(Params.FORMATTER)
|
self.ax6.xaxis.set_major_formatter(Params.FORMATTER)
|
||||||
|
self.ax7 = self.fig.add_subplot(self.gs[7], sharex=self.ax0)
|
||||||
|
self.ax7.grid(True)
|
||||||
|
self.ax7.xaxis.set_major_formatter(Params.FORMATTER)
|
||||||
|
|
||||||
self.channel_to_ax = {
|
self.channel_to_ax = {
|
||||||
"SpO2": self.ax0,
|
"SpO2": self.ax0,
|
||||||
@ -755,10 +800,12 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
"Effort Abd": self.ax4,
|
"Effort Abd": self.ax4,
|
||||||
"0.7lowpass_resp": self.ax5,
|
"0.7lowpass_resp": self.ax5,
|
||||||
"orgdata": self.ax6,
|
"orgdata": self.ax6,
|
||||||
|
"Stage": self.ax7,
|
||||||
}
|
}
|
||||||
|
|
||||||
self.channel_to_best_fit_checkbox = {
|
self.channel_to_best_fit_checkbox = {
|
||||||
"SpO2": None,
|
"SpO2": None,
|
||||||
|
"Stage": None,
|
||||||
"Flow T": self.ui.checkBox_best_flow,
|
"Flow T": self.ui.checkBox_best_flow,
|
||||||
"Flow P": self.ui.checkBox_best_flow,
|
"Flow P": self.ui.checkBox_best_flow,
|
||||||
"Effort Tho": self.ui.checkBox_best_effort,
|
"Effort Tho": self.ui.checkBox_best_effort,
|
||||||
@ -815,6 +862,9 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
self.ui.pushButton_confirmLabel.clicked.connect(self.__slot_btn_confirmLabel__)
|
self.ui.pushButton_confirmLabel.clicked.connect(self.__slot_btn_confirmLabel__)
|
||||||
self.ui.pushButton_reset_event.clicked.connect(self.__reset_event__)
|
self.ui.pushButton_reset_event.clicked.connect(self.__reset_event__)
|
||||||
|
|
||||||
|
self.ui.pushButton_next_half.setProperty("offset", int(self.ui.comboBox_window_signal_length.lineEdit().text()) // 2)
|
||||||
|
self.ui.pushButton_previous_half.setProperty("offset", -int(self.ui.comboBox_window_signal_length.lineEdit().text()) // 2)
|
||||||
|
|
||||||
# 输入防抖
|
# 输入防抖
|
||||||
self.debounce_timer1 = QTimer()
|
self.debounce_timer1 = QTimer()
|
||||||
self.debounce_timer1.setSingleShot(True)
|
self.debounce_timer1.setSingleShot(True)
|
||||||
@ -910,14 +960,19 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
start_point = self.config["WindowStartSecond"] * plot_freq
|
start_point = self.config["WindowStartSecond"] * plot_freq
|
||||||
end_point = start_point + self.config["WindowSignalSecond"] * plot_freq
|
end_point = start_point + self.config["WindowSignalSecond"] * plot_freq
|
||||||
for channel, ax in self.channel_to_ax.items():
|
for channel, ax in self.channel_to_ax.items():
|
||||||
if self.channel_to_best_fit_checkbox[channel] is not None and (
|
if (self.channel_to_best_fit_checkbox[channel] is not None) and (
|
||||||
not self.channel_to_best_fit_checkbox[channel].isChecked()):
|
not self.channel_to_best_fit_checkbox[channel].isChecked()):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
signal_max = self.data.channel[channel][start_point: end_point].max()
|
signal_max = self.data.channel[channel][start_point: end_point].max()
|
||||||
signal_min = self.data.channel[channel][start_point: end_point].min()
|
signal_min = self.data.channel[channel][start_point: end_point].min()
|
||||||
if channel == "SpO2":
|
if channel == "SpO2":
|
||||||
signal_max = 100
|
signal_max = 100
|
||||||
signal_min = min(signal_min, 90)
|
signal_min = min(signal_min, 90)
|
||||||
|
elif channel == "Stage":
|
||||||
|
continue
|
||||||
else:
|
else:
|
||||||
# 上限上移2%,下限下移2%
|
# 上限上移2%,下限下移2%
|
||||||
delta = abs(signal_max - signal_min) * 0.02
|
delta = abs(signal_max - signal_min) * 0.02
|
||||||
@ -1700,37 +1755,37 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
self.data = Data(self.config)
|
self.data = Data(self.config)
|
||||||
|
|
||||||
# 导入数据
|
# 导入数据
|
||||||
PublicFunc.progressbar_update(self, 1, 9, Constants.INPUTTING_DATA, 0)
|
PublicFunc.progressbar_update(self, 1, 8, Constants.INPUTTING_DATA, 0)
|
||||||
result = self.data.open_file()
|
result = self.data.open_file()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(1/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(1/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(1/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(1/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 获取存档
|
# 获取存档
|
||||||
PublicFunc.progressbar_update(self, 2, 9, Constants.LOADING_ARCHIVE, 15)
|
PublicFunc.progressbar_update(self, 2, 8, Constants.LOADING_ARCHIVE, 15)
|
||||||
result = self.data.get_archive()
|
result = self.data.get_archive()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(2/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(2/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(2/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(2/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 保存
|
# 保存
|
||||||
PublicFunc.progressbar_update(self, 3, 9, Constants.SAVING_DATA, 20)
|
PublicFunc.progressbar_update(self, 3, 8, Constants.SAVING_DATA, 20)
|
||||||
result = self.data.save()
|
result = self.data.save()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(3/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(3/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(3/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(3/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 保存
|
# 保存
|
||||||
# PublicFunc.progressbar_update(self, 4, 9, Constants.SAVING_DATA, 25)
|
# PublicFunc.progressbar_update(self, 4, 9, Constants.SAVING_DATA, 25)
|
||||||
@ -1744,54 +1799,54 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
# PublicFunc.text_output(self.ui, "(4/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
# PublicFunc.text_output(self.ui, "(4/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 数据预处理
|
# 数据预处理
|
||||||
PublicFunc.progressbar_update(self, 5, 9, Constants.PREPROCESSING_DATA, 30)
|
PublicFunc.progressbar_update(self, 4, 8, Constants.PREPROCESSING_DATA, 30)
|
||||||
result = self.data.preprocess()
|
result = self.data.preprocess()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(5/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(4/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(5/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(4/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 重采样
|
# 重采样
|
||||||
PublicFunc.progressbar_update(self, 6, 9, Constants.RESAMPLING_DATA, 50)
|
PublicFunc.progressbar_update(self, 5, 8, Constants.RESAMPLING_DATA, 50)
|
||||||
result = self.data.resample()
|
result = self.data.resample()
|
||||||
for key, value in self.data.channel.items():
|
for key, value in self.data.channel.items():
|
||||||
PublicFunc.text_output(self.ui, key + "重采样后的长度:" + str(len(value)), Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, key + "重采样后的长度:" + str(len(value)), Constants.TIPS_TYPE_INFO)
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(6/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(5/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(6/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(5/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 绘图
|
# 绘图
|
||||||
PublicFunc.progressbar_update(self, 7, 9, Constants.DRAWING_DATA, 70)
|
PublicFunc.progressbar_update(self, 6, 8, Constants.DRAWING_DATA, 70)
|
||||||
# result = self.__plot__()
|
# result = self.__plot__()
|
||||||
result = self.draw_signal()
|
result = self.draw_signal()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(7/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(6/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(7/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(6/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 更新表格
|
# 更新表格
|
||||||
PublicFunc.progressbar_update(self, 8, 9, Constants.UPDATING_TABLEWIDGET, 90)
|
PublicFunc.progressbar_update(self, 7, 8, Constants.UPDATING_TABLEWIDGET, 90)
|
||||||
result = self.load_data_to_table()
|
result = self.load_data_to_table()
|
||||||
if not result.status:
|
if not result.status:
|
||||||
PublicFunc.text_output(self.ui, "(8/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
PublicFunc.text_output(self.ui, "(7/8)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||||
PublicFunc.finish_operation(self, ButtonState)
|
PublicFunc.finish_operation(self, ButtonState)
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
PublicFunc.text_output(self.ui, "(8/9)" + result.info, Constants.TIPS_TYPE_INFO)
|
PublicFunc.text_output(self.ui, "(7/8)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||||
|
|
||||||
# 更新信息
|
# 更新信息
|
||||||
PublicFunc.progressbar_update(self, 9, 9, Constants.UPDATING_INFO, 95)
|
PublicFunc.progressbar_update(self, 8, 8, Constants.UPDATING_INFO, 95)
|
||||||
# result = self.update_UI_Args()
|
# result = self.update_UI_Args()
|
||||||
# if not result.status:
|
# if not result.status:
|
||||||
# PublicFunc.text_output(self.ui, "(9/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
# PublicFunc.text_output(self.ui, "(9/9)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||||
@ -1931,6 +1986,7 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
self.plt_interactive_event(channel="0.7lowpass_resp", label_df=self.data.df_revised)
|
self.plt_interactive_event(channel="0.7lowpass_resp", label_df=self.data.df_revised)
|
||||||
self.plt_channel(channel="orgdata", start=0, end=self.config["SignalSecond"],
|
self.plt_channel(channel="orgdata", start=0, end=self.config["SignalSecond"],
|
||||||
label_list=self.data.artifact_label, event_code=[6, 7, 8, 9, 10])
|
label_list=self.data.artifact_label, event_code=[6, 7, 8, 9, 10])
|
||||||
|
self.plt_channel(channel="Stage", start=0, end=self.config["SignalSecond"])
|
||||||
|
|
||||||
self.ax0.set_xlim(self.check_start_end(self.config["WindowStartSecond"], 0))
|
self.ax0.set_xlim(self.check_start_end(self.config["WindowStartSecond"], 0))
|
||||||
self.canvas.draw()
|
self.canvas.draw()
|
||||||
@ -1971,6 +2027,12 @@ class MainWindow_SA_label(QMainWindow):
|
|||||||
|
|
||||||
place(y, y == 0, nan)
|
place(y, y == 0, nan)
|
||||||
plt_.plot(linspace(start, end, (end - start) * plot_freq), y, color=self.color_cycle[j], linestyle="-")
|
plt_.plot(linspace(start, end, (end - start) * plot_freq), y, color=self.color_cycle[j], linestyle="-")
|
||||||
|
|
||||||
|
if channel == "Stage":
|
||||||
|
plt_.set_yticks([1, 2, 3, 4, 5])
|
||||||
|
plt_.set_yticklabels(["N3", "N2", "N1", "REM", "Awake"])
|
||||||
|
plt_.set_ylim(0.5, 5.5)
|
||||||
|
|
||||||
plt_.legend(fontsize=8, loc=1)
|
plt_.legend(fontsize=8, loc=1)
|
||||||
|
|
||||||
def plt_interactive_event(self, channel, label_df):
|
def plt_interactive_event(self, channel, label_df):
|
||||||
|
|||||||
@ -214,20 +214,20 @@ class Data:
|
|||||||
self.freq[key] = freq
|
self.freq[key] = freq
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["Filename_Format_not_Correct"])
|
Constants.FAILURE_REASON["Filename_Format_not_Correct"] + f"\n{Config['ChannelInput']}")
|
||||||
for value in self.freq.values():
|
for value in self.freq.values():
|
||||||
if value == 0:
|
if value == 0:
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["Filename_Format_not_Correct"])
|
Constants.FAILURE_REASON["Filename_Format_not_Correct"] + f"\n{Config['ChannelInput']}")
|
||||||
if not any((Config["LabelInput"]["SA Label"] + Config["EndWith"]["SA Label"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
|
if not any((Config["LabelInput"]["SA Label"] + Config["EndWith"]["SA Label"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["File_not_Exist"])
|
Constants.FAILURE_REASON["File_Not_Exist"])
|
||||||
if not any((Config["StartTime"] + Config["EndWith"]["StartTime"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
|
if not any((Config["StartTime"] + Config["EndWith"]["StartTime"]) in str(file) for file in Path(Config["Path"]["InputFolder"]).glob('*')):
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["File_not_Exist"])
|
Constants.FAILURE_REASON["File_Not_Exist"])
|
||||||
if not Path(Config["Path"]["InputAlignInfo"]).exists():
|
if not Path(Config["Path"]["InputAlignInfo"]).exists():
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["File_not_Exist"])
|
Constants.FAILURE_REASON["File_Not_Exist"])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
return Result().failure(info=Constants.CUT_PSG_GET_FILE_AND_FREQ_FAILURE +
|
||||||
Constants.FAILURE_REASON["Get_File_and_Freq_Excepetion"] + "\n" + format_exc())
|
Constants.FAILURE_REASON["Get_File_and_Freq_Excepetion"] + "\n" + format_exc())
|
||||||
|
|||||||
@ -42,6 +42,7 @@ class Filename:
|
|||||||
BCG_SYNC: str = "BCG_Sync_"
|
BCG_SYNC: str = "BCG_Sync_"
|
||||||
|
|
||||||
# Folder: PSG_Aligned
|
# Folder: PSG_Aligned
|
||||||
|
STAGE_SYNC: str = "5_class_Sync_"
|
||||||
ECG_SYNC: str = "ECG_Sync_"
|
ECG_SYNC: str = "ECG_Sync_"
|
||||||
THO_SYNC: str = "Effort Tho_Sync_"
|
THO_SYNC: str = "Effort Tho_Sync_"
|
||||||
ABD_SYNC: str = "Effort Abd_Sync_"
|
ABD_SYNC: str = "Effort Abd_Sync_"
|
||||||
|
|||||||
@ -15,10 +15,10 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
|||||||
QFont, QFontDatabase, QGradient, QIcon,
|
QFont, QFontDatabase, QGradient, QIcon,
|
||||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||||
from PySide6.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox,
|
from PySide6.QtWidgets import (QApplication, QGridLayout, QGroupBox, QHBoxLayout,
|
||||||
QHBoxLayout, QLabel, QMainWindow, QPlainTextEdit,
|
QLabel, QMainWindow, QPlainTextEdit, QPushButton,
|
||||||
QPushButton, QSizePolicy, QSpinBox, QStatusBar,
|
QSizePolicy, QSpinBox, QStatusBar, QVBoxLayout,
|
||||||
QVBoxLayout, QWidget)
|
QWidget)
|
||||||
|
|
||||||
class Ui_MainWindow_SA_label_input_setting(object):
|
class Ui_MainWindow_SA_label_input_setting(object):
|
||||||
def setupUi(self, MainWindow_SA_label_input_setting):
|
def setupUi(self, MainWindow_SA_label_input_setting):
|
||||||
@ -44,93 +44,33 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
self.groupBox.setFont(font1)
|
self.groupBox.setFont(font1)
|
||||||
self.gridLayout_2 = QGridLayout(self.groupBox)
|
self.gridLayout_2 = QGridLayout(self.groupBox)
|
||||||
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
self.gridLayout_2.setObjectName(u"gridLayout_2")
|
||||||
self.groupBox_file_path_save_2 = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_signal_Stage = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_save_2.setObjectName(u"groupBox_file_path_save_2")
|
self.groupBox_file_path_input_signal_Stage.setObjectName(u"groupBox_file_path_input_signal_Stage")
|
||||||
self.verticalLayout_10 = QVBoxLayout(self.groupBox_file_path_save_2)
|
self.groupBox_file_path_input_signal_Stage.setEnabled(True)
|
||||||
|
self.verticalLayout_10 = QVBoxLayout(self.groupBox_file_path_input_signal_Stage)
|
||||||
self.verticalLayout_10.setObjectName(u"verticalLayout_10")
|
self.verticalLayout_10.setObjectName(u"verticalLayout_10")
|
||||||
self.plainTextEdit_file_path_save_2 = QPlainTextEdit(self.groupBox_file_path_save_2)
|
self.plainTextEdit_file_path_input_signal_Stage = QPlainTextEdit(self.groupBox_file_path_input_signal_Stage)
|
||||||
self.plainTextEdit_file_path_save_2.setObjectName(u"plainTextEdit_file_path_save_2")
|
self.plainTextEdit_file_path_input_signal_Stage.setObjectName(u"plainTextEdit_file_path_input_signal_Stage")
|
||||||
|
self.plainTextEdit_file_path_input_signal_Stage.setEnabled(True)
|
||||||
|
self.plainTextEdit_file_path_input_signal_Stage.setUndoRedoEnabled(True)
|
||||||
|
|
||||||
self.verticalLayout_10.addWidget(self.plainTextEdit_file_path_save_2)
|
self.verticalLayout_10.addWidget(self.plainTextEdit_file_path_input_signal_Stage)
|
||||||
|
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_save_2, 7, 1, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Stage, 6, 1, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_input_label = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_artifact = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_label.setObjectName(u"groupBox_file_path_input_label")
|
self.groupBox_file_path_input_artifact.setObjectName(u"groupBox_file_path_input_artifact")
|
||||||
self.verticalLayout_12 = QVBoxLayout(self.groupBox_file_path_input_label)
|
self.verticalLayout_11 = QVBoxLayout(self.groupBox_file_path_input_artifact)
|
||||||
self.verticalLayout_12.setObjectName(u"verticalLayout_12")
|
self.verticalLayout_11.setObjectName(u"verticalLayout_11")
|
||||||
self.plainTextEdit_file_path_input_label = QPlainTextEdit(self.groupBox_file_path_input_label)
|
self.plainTextEdit_file_path_input_artifact = QPlainTextEdit(self.groupBox_file_path_input_artifact)
|
||||||
self.plainTextEdit_file_path_input_label.setObjectName(u"plainTextEdit_file_path_input_label")
|
self.plainTextEdit_file_path_input_artifact.setObjectName(u"plainTextEdit_file_path_input_artifact")
|
||||||
|
|
||||||
self.verticalLayout_12.addWidget(self.plainTextEdit_file_path_input_label)
|
self.verticalLayout_11.addWidget(self.plainTextEdit_file_path_input_artifact)
|
||||||
|
|
||||||
|
self.verticalLayout_11.setStretch(0, 2)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_label, 6, 1, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_artifact, 5, 0, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_FlowP = QGroupBox(self.groupBox)
|
|
||||||
self.groupBox_file_path_input_signal_FlowP.setObjectName(u"groupBox_file_path_input_signal_FlowP")
|
|
||||||
self.verticalLayout_8 = QVBoxLayout(self.groupBox_file_path_input_signal_FlowP)
|
|
||||||
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
|
||||||
self.horizontalLayout_6 = QHBoxLayout()
|
|
||||||
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
|
|
||||||
self.label_6 = QLabel(self.groupBox_file_path_input_signal_FlowP)
|
|
||||||
self.label_6.setObjectName(u"label_6")
|
|
||||||
self.label_6.setFont(font)
|
|
||||||
|
|
||||||
self.horizontalLayout_6.addWidget(self.label_6)
|
|
||||||
|
|
||||||
self.spinBox_input_freq_signal_FlowP = QSpinBox(self.groupBox_file_path_input_signal_FlowP)
|
|
||||||
self.spinBox_input_freq_signal_FlowP.setObjectName(u"spinBox_input_freq_signal_FlowP")
|
|
||||||
self.spinBox_input_freq_signal_FlowP.setFont(font)
|
|
||||||
self.spinBox_input_freq_signal_FlowP.setMinimum(1)
|
|
||||||
self.spinBox_input_freq_signal_FlowP.setMaximum(1000000)
|
|
||||||
|
|
||||||
self.horizontalLayout_6.addWidget(self.spinBox_input_freq_signal_FlowP)
|
|
||||||
|
|
||||||
|
|
||||||
self.verticalLayout_8.addLayout(self.horizontalLayout_6)
|
|
||||||
|
|
||||||
self.plainTextEdit_file_path_input_signal_FlowP = QPlainTextEdit(self.groupBox_file_path_input_signal_FlowP)
|
|
||||||
self.plainTextEdit_file_path_input_signal_FlowP.setObjectName(u"plainTextEdit_file_path_input_signal_FlowP")
|
|
||||||
|
|
||||||
self.verticalLayout_8.addWidget(self.plainTextEdit_file_path_input_signal_FlowP)
|
|
||||||
|
|
||||||
self.verticalLayout_8.setStretch(1, 2)
|
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowP, 4, 1, 1, 1)
|
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_Tho = QGroupBox(self.groupBox)
|
|
||||||
self.groupBox_file_path_input_signal_Tho.setObjectName(u"groupBox_file_path_input_signal_Tho")
|
|
||||||
self.verticalLayout_3 = QVBoxLayout(self.groupBox_file_path_input_signal_Tho)
|
|
||||||
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
|
||||||
self.horizontalLayout_3 = QHBoxLayout()
|
|
||||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
|
||||||
self.label_3 = QLabel(self.groupBox_file_path_input_signal_Tho)
|
|
||||||
self.label_3.setObjectName(u"label_3")
|
|
||||||
self.label_3.setFont(font)
|
|
||||||
|
|
||||||
self.horizontalLayout_3.addWidget(self.label_3)
|
|
||||||
|
|
||||||
self.spinBox_input_freq_signal_Tho = QSpinBox(self.groupBox_file_path_input_signal_Tho)
|
|
||||||
self.spinBox_input_freq_signal_Tho.setObjectName(u"spinBox_input_freq_signal_Tho")
|
|
||||||
self.spinBox_input_freq_signal_Tho.setFont(font)
|
|
||||||
self.spinBox_input_freq_signal_Tho.setMinimum(1)
|
|
||||||
self.spinBox_input_freq_signal_Tho.setMaximum(1000000)
|
|
||||||
|
|
||||||
self.horizontalLayout_3.addWidget(self.spinBox_input_freq_signal_Tho)
|
|
||||||
|
|
||||||
|
|
||||||
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
|
|
||||||
|
|
||||||
self.plainTextEdit_file_path_input_signal_Tho = QPlainTextEdit(self.groupBox_file_path_input_signal_Tho)
|
|
||||||
self.plainTextEdit_file_path_input_signal_Tho.setObjectName(u"plainTextEdit_file_path_input_signal_Tho")
|
|
||||||
|
|
||||||
self.verticalLayout_3.addWidget(self.plainTextEdit_file_path_input_signal_Tho)
|
|
||||||
|
|
||||||
self.verticalLayout_3.setStretch(1, 2)
|
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Tho, 3, 1, 1, 1)
|
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_FlowT = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_signal_FlowT = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_signal_FlowT.setObjectName(u"groupBox_file_path_input_signal_FlowT")
|
self.groupBox_file_path_input_signal_FlowT.setObjectName(u"groupBox_file_path_input_signal_FlowT")
|
||||||
@ -162,20 +102,19 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
|
|
||||||
self.verticalLayout_7.setStretch(1, 2)
|
self.verticalLayout_7.setStretch(1, 2)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowT, 4, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowT, 3, 0, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_input_artifact = QGroupBox(self.groupBox)
|
self.groupBox_file_path_save = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_artifact.setObjectName(u"groupBox_file_path_input_artifact")
|
self.groupBox_file_path_save.setObjectName(u"groupBox_file_path_save")
|
||||||
self.verticalLayout_11 = QVBoxLayout(self.groupBox_file_path_input_artifact)
|
self.verticalLayout_4 = QVBoxLayout(self.groupBox_file_path_save)
|
||||||
self.verticalLayout_11.setObjectName(u"verticalLayout_11")
|
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
||||||
self.plainTextEdit_file_path_input_artifact = QPlainTextEdit(self.groupBox_file_path_input_artifact)
|
self.plainTextEdit_file_path_save = QPlainTextEdit(self.groupBox_file_path_save)
|
||||||
self.plainTextEdit_file_path_input_artifact.setObjectName(u"plainTextEdit_file_path_input_artifact")
|
self.plainTextEdit_file_path_save.setObjectName(u"plainTextEdit_file_path_save")
|
||||||
|
|
||||||
self.verticalLayout_11.addWidget(self.plainTextEdit_file_path_input_artifact)
|
self.verticalLayout_4.addWidget(self.plainTextEdit_file_path_save)
|
||||||
|
|
||||||
self.verticalLayout_11.setStretch(0, 2)
|
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_artifact, 6, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_save, 6, 0, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_SpO2 = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_signal_SpO2 = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_signal_SpO2.setObjectName(u"groupBox_file_path_input_signal_SpO2")
|
self.groupBox_file_path_input_signal_SpO2.setObjectName(u"groupBox_file_path_input_signal_SpO2")
|
||||||
@ -207,7 +146,51 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
|
|
||||||
self.verticalLayout_9.setStretch(1, 2)
|
self.verticalLayout_9.setStretch(1, 2)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_SpO2, 1, 1, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_SpO2, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.groupBox_file_path_input_signal_Tho = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_file_path_input_signal_Tho.setObjectName(u"groupBox_file_path_input_signal_Tho")
|
||||||
|
self.verticalLayout_3 = QVBoxLayout(self.groupBox_file_path_input_signal_Tho)
|
||||||
|
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
||||||
|
self.horizontalLayout_3 = QHBoxLayout()
|
||||||
|
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
||||||
|
self.label_3 = QLabel(self.groupBox_file_path_input_signal_Tho)
|
||||||
|
self.label_3.setObjectName(u"label_3")
|
||||||
|
self.label_3.setFont(font)
|
||||||
|
|
||||||
|
self.horizontalLayout_3.addWidget(self.label_3)
|
||||||
|
|
||||||
|
self.spinBox_input_freq_signal_Tho = QSpinBox(self.groupBox_file_path_input_signal_Tho)
|
||||||
|
self.spinBox_input_freq_signal_Tho.setObjectName(u"spinBox_input_freq_signal_Tho")
|
||||||
|
self.spinBox_input_freq_signal_Tho.setFont(font)
|
||||||
|
self.spinBox_input_freq_signal_Tho.setMinimum(1)
|
||||||
|
self.spinBox_input_freq_signal_Tho.setMaximum(1000000)
|
||||||
|
|
||||||
|
self.horizontalLayout_3.addWidget(self.spinBox_input_freq_signal_Tho)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
|
||||||
|
|
||||||
|
self.plainTextEdit_file_path_input_signal_Tho = QPlainTextEdit(self.groupBox_file_path_input_signal_Tho)
|
||||||
|
self.plainTextEdit_file_path_input_signal_Tho.setObjectName(u"plainTextEdit_file_path_input_signal_Tho")
|
||||||
|
|
||||||
|
self.verticalLayout_3.addWidget(self.plainTextEdit_file_path_input_signal_Tho)
|
||||||
|
|
||||||
|
self.verticalLayout_3.setStretch(1, 2)
|
||||||
|
|
||||||
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Tho, 2, 1, 1, 1)
|
||||||
|
|
||||||
|
self.groupBox_file_path_input_label = QGroupBox(self.groupBox)
|
||||||
|
self.groupBox_file_path_input_label.setObjectName(u"groupBox_file_path_input_label")
|
||||||
|
self.verticalLayout_12 = QVBoxLayout(self.groupBox_file_path_input_label)
|
||||||
|
self.verticalLayout_12.setObjectName(u"verticalLayout_12")
|
||||||
|
self.plainTextEdit_file_path_input_label = QPlainTextEdit(self.groupBox_file_path_input_label)
|
||||||
|
self.plainTextEdit_file_path_input_label.setObjectName(u"plainTextEdit_file_path_input_label")
|
||||||
|
|
||||||
|
self.verticalLayout_12.addWidget(self.plainTextEdit_file_path_input_label)
|
||||||
|
|
||||||
|
|
||||||
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_label, 5, 1, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_Abd = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_signal_Abd = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_signal_Abd.setObjectName(u"groupBox_file_path_input_signal_Abd")
|
self.groupBox_file_path_input_signal_Abd.setObjectName(u"groupBox_file_path_input_signal_Abd")
|
||||||
@ -239,19 +222,7 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
|
|
||||||
self.verticalLayout_6.setStretch(1, 2)
|
self.verticalLayout_6.setStretch(1, 2)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Abd, 3, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_Abd, 2, 0, 1, 1)
|
||||||
|
|
||||||
self.groupBox_file_path_save = QGroupBox(self.groupBox)
|
|
||||||
self.groupBox_file_path_save.setObjectName(u"groupBox_file_path_save")
|
|
||||||
self.verticalLayout_4 = QVBoxLayout(self.groupBox_file_path_save)
|
|
||||||
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
|
||||||
self.plainTextEdit_file_path_save = QPlainTextEdit(self.groupBox_file_path_save)
|
|
||||||
self.plainTextEdit_file_path_save.setObjectName(u"plainTextEdit_file_path_save")
|
|
||||||
|
|
||||||
self.verticalLayout_4.addWidget(self.plainTextEdit_file_path_save)
|
|
||||||
|
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_save, 7, 0, 1, 1)
|
|
||||||
|
|
||||||
self.groupBox_file_path_input_signal_OrgBCG = QGroupBox(self.groupBox)
|
self.groupBox_file_path_input_signal_OrgBCG = QGroupBox(self.groupBox)
|
||||||
self.groupBox_file_path_input_signal_OrgBCG.setObjectName(u"groupBox_file_path_input_signal_OrgBCG")
|
self.groupBox_file_path_input_signal_OrgBCG.setObjectName(u"groupBox_file_path_input_signal_OrgBCG")
|
||||||
@ -285,12 +256,39 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
self.verticalLayout_5.setStretch(0, 2)
|
self.verticalLayout_5.setStretch(0, 2)
|
||||||
self.verticalLayout_5.setStretch(1, 3)
|
self.verticalLayout_5.setStretch(1, 3)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_OrgBCG, 1, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_OrgBCG, 0, 0, 1, 1)
|
||||||
|
|
||||||
self.checkBox_auto_find_file = QCheckBox(self.groupBox)
|
self.groupBox_file_path_input_signal_FlowP = QGroupBox(self.groupBox)
|
||||||
self.checkBox_auto_find_file.setObjectName(u"checkBox_auto_find_file")
|
self.groupBox_file_path_input_signal_FlowP.setObjectName(u"groupBox_file_path_input_signal_FlowP")
|
||||||
|
self.verticalLayout_8 = QVBoxLayout(self.groupBox_file_path_input_signal_FlowP)
|
||||||
|
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
||||||
|
self.horizontalLayout_6 = QHBoxLayout()
|
||||||
|
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
|
||||||
|
self.label_6 = QLabel(self.groupBox_file_path_input_signal_FlowP)
|
||||||
|
self.label_6.setObjectName(u"label_6")
|
||||||
|
self.label_6.setFont(font)
|
||||||
|
|
||||||
self.gridLayout_2.addWidget(self.checkBox_auto_find_file, 0, 0, 1, 1)
|
self.horizontalLayout_6.addWidget(self.label_6)
|
||||||
|
|
||||||
|
self.spinBox_input_freq_signal_FlowP = QSpinBox(self.groupBox_file_path_input_signal_FlowP)
|
||||||
|
self.spinBox_input_freq_signal_FlowP.setObjectName(u"spinBox_input_freq_signal_FlowP")
|
||||||
|
self.spinBox_input_freq_signal_FlowP.setFont(font)
|
||||||
|
self.spinBox_input_freq_signal_FlowP.setMinimum(1)
|
||||||
|
self.spinBox_input_freq_signal_FlowP.setMaximum(1000000)
|
||||||
|
|
||||||
|
self.horizontalLayout_6.addWidget(self.spinBox_input_freq_signal_FlowP)
|
||||||
|
|
||||||
|
|
||||||
|
self.verticalLayout_8.addLayout(self.horizontalLayout_6)
|
||||||
|
|
||||||
|
self.plainTextEdit_file_path_input_signal_FlowP = QPlainTextEdit(self.groupBox_file_path_input_signal_FlowP)
|
||||||
|
self.plainTextEdit_file_path_input_signal_FlowP.setObjectName(u"plainTextEdit_file_path_input_signal_FlowP")
|
||||||
|
|
||||||
|
self.verticalLayout_8.addWidget(self.plainTextEdit_file_path_input_signal_FlowP)
|
||||||
|
|
||||||
|
self.verticalLayout_8.setStretch(1, 2)
|
||||||
|
|
||||||
|
self.gridLayout_2.addWidget(self.groupBox_file_path_input_signal_FlowP, 3, 1, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 4)
|
self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 4)
|
||||||
@ -315,47 +313,46 @@ class Ui_MainWindow_SA_label_input_setting(object):
|
|||||||
MainWindow_SA_label_input_setting.setWindowTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u5bfc\u5165\u8bbe\u7f6e", None))
|
MainWindow_SA_label_input_setting.setWindowTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u5bfc\u5165\u8bbe\u7f6e", None))
|
||||||
self.pushButton_cancel.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u53d6\u6d88", None))
|
self.pushButton_cancel.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u53d6\u6d88", None))
|
||||||
self.groupBox.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.groupBox.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.groupBox_file_path_save_2.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u65b0\u589e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
self.groupBox_file_path_input_signal_Stage.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Stage\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_save_2.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_signal_Stage.setPlaceholderText("")
|
||||||
self.groupBox_file_path_input_label.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
self.groupBox_file_path_input_artifact.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4f53\u52a8Artifact_a\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_label.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_artifact.setPlainText("")
|
||||||
self.groupBox_file_path_input_signal_FlowP.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow P\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_artifact.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.label_6.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
|
||||||
self.plainTextEdit_file_path_input_signal_FlowP.setPlainText("")
|
|
||||||
self.plainTextEdit_file_path_input_signal_FlowP.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
|
||||||
self.plainTextEdit_file_path_input_signal_FlowP.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowP", None))
|
|
||||||
self.groupBox_file_path_input_signal_Tho.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Tho\u8def\u5f84", None))
|
|
||||||
self.label_3.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
|
||||||
self.plainTextEdit_file_path_input_signal_Tho.setPlainText("")
|
|
||||||
self.plainTextEdit_file_path_input_signal_Tho.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
|
||||||
self.plainTextEdit_file_path_input_signal_Tho.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Tho", None))
|
|
||||||
self.groupBox_file_path_input_signal_FlowT.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow T\u8def\u5f84", None))
|
self.groupBox_file_path_input_signal_FlowT.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow T\u8def\u5f84", None))
|
||||||
self.label_5.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
self.label_5.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
self.plainTextEdit_file_path_input_signal_FlowT.setPlainText("")
|
self.plainTextEdit_file_path_input_signal_FlowT.setPlainText("")
|
||||||
self.plainTextEdit_file_path_input_signal_FlowT.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_signal_FlowT.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_signal_FlowT.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowT", None))
|
self.plainTextEdit_file_path_input_signal_FlowT.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowT", None))
|
||||||
self.groupBox_file_path_input_artifact.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4f53\u52a8Artifact_a\u8def\u5f84", None))
|
self.groupBox_file_path_save.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fee\u6b63\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_artifact.setPlainText("")
|
self.plainTextEdit_file_path_save.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_artifact.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
|
||||||
self.groupBox_file_path_input_signal_SpO2.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684SpO2\u8def\u5f84", None))
|
self.groupBox_file_path_input_signal_SpO2.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684SpO2\u8def\u5f84", None))
|
||||||
self.label_7.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
self.label_7.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
self.plainTextEdit_file_path_input_signal_SpO2.setPlainText("")
|
self.plainTextEdit_file_path_input_signal_SpO2.setPlainText("")
|
||||||
self.plainTextEdit_file_path_input_signal_SpO2.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_signal_SpO2.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_signal_SpO2.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"SpO2", None))
|
self.plainTextEdit_file_path_input_signal_SpO2.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"SpO2", None))
|
||||||
|
self.groupBox_file_path_input_signal_Tho.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Tho\u8def\u5f84", None))
|
||||||
|
self.label_3.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
|
self.plainTextEdit_file_path_input_signal_Tho.setPlainText("")
|
||||||
|
self.plainTextEdit_file_path_input_signal_Tho.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
|
self.plainTextEdit_file_path_input_signal_Tho.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Tho", None))
|
||||||
|
self.groupBox_file_path_input_label.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
||||||
|
self.plainTextEdit_file_path_input_label.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.groupBox_file_path_input_signal_Abd.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Abd\u8def\u5f84", None))
|
self.groupBox_file_path_input_signal_Abd.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Effort Abd\u8def\u5f84", None))
|
||||||
self.label_4.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
self.label_4.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
self.plainTextEdit_file_path_input_signal_Abd.setPlainText("")
|
self.plainTextEdit_file_path_input_signal_Abd.setPlainText("")
|
||||||
self.plainTextEdit_file_path_input_signal_Abd.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_signal_Abd.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_signal_Abd.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Abd", None))
|
self.plainTextEdit_file_path_input_signal_Abd.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"Abd", None))
|
||||||
self.groupBox_file_path_save.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fee\u6b63\u540e\u7684\u547c\u5438\u6682\u505c\u6807\u7b7e\u4fdd\u5b58\u8def\u5f84", None))
|
|
||||||
self.plainTextEdit_file_path_save.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u4fdd\u5b58\u8def\u5f84", None))
|
|
||||||
self.groupBox_file_path_input_signal_OrgBCG.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684OrgBCG\u8def\u5f84", None))
|
self.groupBox_file_path_input_signal_OrgBCG.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684OrgBCG\u8def\u5f84", None))
|
||||||
self.label_2.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
self.label_2.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
self.spinBox_input_freq_signal_OrgBCG.setPrefix("")
|
self.spinBox_input_freq_signal_OrgBCG.setPrefix("")
|
||||||
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText("")
|
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlainText("")
|
||||||
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
self.plainTextEdit_file_path_input_signal_OrgBCG.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
self.plainTextEdit_file_path_input_signal_OrgBCG.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"OrgBCG", None))
|
self.plainTextEdit_file_path_input_signal_OrgBCG.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"OrgBCG", None))
|
||||||
self.checkBox_auto_find_file.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u5ffd\u7565\u91c7\u6837\u7387 \u81ea\u52a8\u5339\u914d\u6587\u4ef6", None))
|
self.groupBox_file_path_input_signal_FlowP.setTitle(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u540c\u6b65\u540e\u7684Flow P\u8def\u5f84", None))
|
||||||
|
self.label_6.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u91c7\u6837\u7387(Hz)\uff1a", None))
|
||||||
|
self.plainTextEdit_file_path_input_signal_FlowP.setPlainText("")
|
||||||
|
self.plainTextEdit_file_path_input_signal_FlowP.setPlaceholderText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u6587\u4ef6\u8def\u5f84", None))
|
||||||
|
self.plainTextEdit_file_path_input_signal_FlowP.setProperty("signal_type", QCoreApplication.translate("MainWindow_SA_label_input_setting", u"FlowP", None))
|
||||||
self.pushButton_confirm.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u786e\u5b9a", None))
|
self.pushButton_confirm.setText(QCoreApplication.translate("MainWindow_SA_label_input_setting", u"\u786e\u5b9a", None))
|
||||||
# retranslateUi
|
# retranslateUi
|
||||||
|
|
||||||
|
|||||||
@ -39,18 +39,24 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QGroupBox" name="groupBox_file_path_save_2">
|
<widget class="QGroupBox" name="groupBox_file_path_input_signal_Stage">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>新增的呼吸暂停标签保存路径</string>
|
<string>同步后的Stage路径</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_save_2">
|
<widget class="QPlainTextEdit" name="plainTextEdit_file_path_input_signal_Stage">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="undoRedoEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
<property name="placeholderText">
|
<property name="placeholderText">
|
||||||
<string>保存路径</string>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user