新增脚本filename_regulation_generator.py,有命名规范需要修改时,只需要修改ConfigParams.py的Filename类里面的变量的值,之后直接运行脚本filename_regulation_generator.py即可获取最新版本的数据结构化输入和输出命名规范.html
This commit is contained in:
@ -17,8 +17,9 @@ from resampy import resample
|
||||
from scipy.signal import find_peaks
|
||||
from yaml import dump, load, FullLoader
|
||||
|
||||
from func.utils.ConfigParams import Filename, Params
|
||||
from func.utils.PublicFunc import PublicFunc
|
||||
from func.utils.Constants import Constants, ConfigParams
|
||||
from func.utils.Constants import Constants
|
||||
from func.utils.Result import Result
|
||||
|
||||
from ui.MainWindow.MainWindow_precisely_align import Ui_MainWindow_precisely_align
|
||||
@ -102,40 +103,40 @@ class SettingWindow(QMainWindow):
|
||||
self.ui.pushButton_cancel.clicked.connect(self.close)
|
||||
|
||||
def __read_config__(self):
|
||||
if not Path(ConfigParams.PRECISELY_ALIGN_CONFIG_FILE_PATH).exists():
|
||||
with open(ConfigParams.PRECISELY_ALIGN_CONFIG_FILE_PATH, "w") as f:
|
||||
dump(ConfigParams.PRECISELY_ALIGN_CONFIG_NEW_CONTENT, f)
|
||||
if not Path(Params.PRECISELY_ALIGN_CONFIG_FILE_PATH).exists():
|
||||
with open(Params.PRECISELY_ALIGN_CONFIG_FILE_PATH, "w") as f:
|
||||
dump(Params.PRECISELY_ALIGN_CONFIG_NEW_CONTENT, f)
|
||||
|
||||
with open(ConfigParams.PRECISELY_ALIGN_CONFIG_FILE_PATH, "r") as f:
|
||||
with open(Params.PRECISELY_ALIGN_CONFIG_FILE_PATH, "r") as f:
|
||||
file_config = load(f.read(), Loader=FullLoader)
|
||||
Config.update(file_config)
|
||||
self.config = file_config
|
||||
|
||||
Config.update({
|
||||
"Path": {
|
||||
"Input_OrgBCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_TEXT /
|
||||
"Input_OrgBCG": str((Path(self.root_path) / Filename.PATH_ORGBCG_TEXT /
|
||||
Path(str(self.sampID)))),
|
||||
"Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_TEXT /
|
||||
"Input_BCG": str((Path(self.root_path) / Filename.PATH_ORGBCG_TEXT /
|
||||
Path(str(self.sampID)))),
|
||||
"Input_Jpeak": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_TEXT /
|
||||
"Input_Jpeak": str((Path(self.root_path) / Filename.PATH_ORGBCG_TEXT /
|
||||
Path(str(self.sampID)))),
|
||||
"Input_ECG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_PSG_TEXT /
|
||||
"Input_ECG": str((Path(self.root_path) / Filename.PATH_PSG_TEXT /
|
||||
Path(str(self.sampID)))),
|
||||
"Input_Rpeak": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_PSG_TEXT /
|
||||
"Input_Rpeak": str((Path(self.root_path) / Filename.PATH_PSG_TEXT /
|
||||
Path(str(self.sampID)))),
|
||||
"Input_Approximately_Align": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||
"Input_Approximately_Align": str((Path(self.root_path) / Filename.PATH_LABEL /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_AlignInfo": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_OrgBCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
"Save_AlignInfo": str((Path(self.root_path) / Filename.PATH_LABEL /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_OrgBCG": str((Path(self.root_path) / Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
"Save_BCG": str((Path(self.root_path) / Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_ECG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_PSG_ALIGNED /
|
||||
"Save_ECG": str((Path(self.root_path) / Filename.PATH_PSG_ALIGNED /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_Jpeak": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_Rpeak": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_PSG_ALIGNED /
|
||||
"Save_Jpeak": str((Path(self.root_path) / Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)))),
|
||||
"Save_Rpeak": str((Path(self.root_path) / Filename.PATH_PSG_ALIGNED /
|
||||
Path(str(self.sampID))))
|
||||
},
|
||||
"Coordinate": {
|
||||
@ -221,7 +222,7 @@ class SettingWindow(QMainWindow):
|
||||
self.config["InputConfig"]["BCGFreq"] = self.ui.spinBox_input_freq_BCG.value()
|
||||
self.config["InputConfig"]["ECGFreq"] = self.ui.spinBox_input_freq_ECG.value()
|
||||
|
||||
with open(ConfigParams.PRECISELY_ALIGN_CONFIG_FILE_PATH, "w") as f:
|
||||
with open(Params.PRECISELY_ALIGN_CONFIG_FILE_PATH, "w") as f:
|
||||
dump(self.config, f)
|
||||
|
||||
self.close()
|
||||
@ -232,60 +233,60 @@ class SettingWindow(QMainWindow):
|
||||
def __update_ui__(self):
|
||||
self.ui.plainTextEdit_file_path_input_orgBcg.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_TEXT /
|
||||
Filename.PATH_ORGBCG_TEXT /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ORGBCG_RAW +
|
||||
Path(Filename.ORGBCG_RAW +
|
||||
str(self.ui.spinBox_input_freq_orgBcg.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_input_BCG.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_TEXT /
|
||||
Filename.PATH_ORGBCG_TEXT /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.BCG_FILTER +
|
||||
Path(Filename.BCG_FILTER +
|
||||
str(self.ui.spinBox_input_freq_BCG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_input_ECG.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_PSG_TEXT /
|
||||
Filename.PATH_PSG_TEXT /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ECG_FILTER +
|
||||
Path(Filename.ECG_FILTER +
|
||||
str(self.ui.spinBox_input_freq_ECG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_save_orgBcg.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ORGBCG_SYNC +
|
||||
Path(Filename.ORGBCG_SYNC +
|
||||
str(self.ui.spinBox_input_freq_orgBcg.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_save_BCG.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.BCG_SYNC +
|
||||
Path(Filename.BCG_SYNC +
|
||||
str(self.ui.spinBox_input_freq_BCG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_save_ECG.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_PSG_ALIGNED /
|
||||
Filename.PATH_PSG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ECG_SYNC +
|
||||
Path(Filename.ECG_SYNC +
|
||||
str(self.ui.spinBox_input_freq_ECG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_save_Jpeak.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Filename.PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.JPEAK_SYNC +
|
||||
Path(Filename.JPEAK_SYNC +
|
||||
str(self.ui.spinBox_input_freq_BCG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_save_Rpeak.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_PSG_ALIGNED /
|
||||
Filename.PATH_PSG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.RPEAK_SYNC +
|
||||
Path(Filename.RPEAK_SYNC +
|
||||
str(self.ui.spinBox_input_freq_ECG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
Params.ENDSWITH_TXT))))
|
||||
|
||||
|
||||
class MainWindow_precisely_align(QMainWindow):
|
||||
@ -463,10 +464,10 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.fig.subplots_adjust(top=0.95, bottom=0.05, right=0.98, left=0.05, hspace=0.15, wspace=0)
|
||||
self.ax0 = self.fig.add_subplot(self.gs[0])
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax0.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
self.ax1 = self.fig.add_subplot(self.gs[1], sharex=self.ax0, sharey=self.ax0)
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax1.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
|
||||
Jpeak = self.data.Jpeak[:-2]
|
||||
Rpeak = self.data.Rpeak[:-2]
|
||||
@ -500,16 +501,16 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.fig.subplots_adjust(top=0.88, bottom=0.05, right=0.98, left=0.05, hspace=0.15, wspace=0.15)
|
||||
self.ax0 = self.fig.add_subplot(self.gs[0])
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax0.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
self.ax1 = self.fig.add_subplot(self.gs[2])
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax1.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
self.ax2 = self.fig.add_subplot(self.gs[1])
|
||||
self.ax2.grid(True)
|
||||
self.ax2.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax2.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
self.ax3 = self.fig.add_subplot(self.gs[3])
|
||||
self.ax3.grid(True)
|
||||
self.ax3.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax3.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
|
||||
self.ax0.set_title(
|
||||
"front\ncorre_IIV: {}, corre_II: {}\nsame_sign_rate:{}, total_time_ratio: {}\nshift: {}, alignment offset: {} seconds\noffset_interval: {}, anchor_J: {}, anchor_R: {}".format(
|
||||
@ -566,7 +567,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.fig.subplots_adjust(top=0.95, bottom=0.05, right=0.98, left=0.05, hspace=0, wspace=0)
|
||||
self.ax4 = self.fig.add_subplot(self.gs[0])
|
||||
self.ax4.grid(True)
|
||||
self.ax4.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax4.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
|
||||
self.ax4.set_title("offset correct")
|
||||
self.ax4.plot(plot_element["cut_ECG"], color=Constants.PLOT_COLOR_GREEN, label=Constants.PRECISELY_ALIGN_PLOT_LABEL_ECG)
|
||||
@ -587,7 +588,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.fig.subplots_adjust(top=0.95, bottom=0.05, right=0.98, left=0.05, hspace=0, wspace=0)
|
||||
self.ax4 = self.fig.add_subplot(self.gs[0])
|
||||
self.ax4.grid(True)
|
||||
self.ax4.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax4.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
|
||||
self.ax4.set_title("result preview")
|
||||
self.ax4.plot(self.data.cut_ECG, color=Constants.PLOT_COLOR_GREEN, label=Constants.PRECISELY_ALIGN_PLOT_LABEL_ECG)
|
||||
@ -839,7 +840,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
PublicFunc.progressbar_update(self, 2, 6, Constants.PRECISELY_ALIGN_SAVING_RES_ORGBCG, 0)
|
||||
|
||||
total_rows = len(DataFrame(self.data.res_orgBcg.reshape(-1)))
|
||||
chunk_size = ConfigParams.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
chunk_size = Params.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
with open(Config["Path"]["Save_OrgBCG"], 'w') as f:
|
||||
for start in range(0, total_rows, chunk_size):
|
||||
end = min(start + chunk_size, total_rows)
|
||||
@ -861,7 +862,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
PublicFunc.progressbar_update(self, 3, 6, Constants.PRECISELY_ALIGN_SAVING_RES_BCG, 0)
|
||||
|
||||
total_rows = len(DataFrame(self.data.res_BCG.reshape(-1)))
|
||||
chunk_size = ConfigParams.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
chunk_size = Params.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
with open(Config["Path"]["Save_BCG"], 'w') as f:
|
||||
for start in range(0, total_rows, chunk_size):
|
||||
end = min(start + chunk_size, total_rows)
|
||||
@ -883,7 +884,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
PublicFunc.progressbar_update(self, 4, 6, Constants.PRECISELY_ALIGN_SAVING_CUT_ECG, 0)
|
||||
|
||||
total_rows = len(DataFrame(self.data.cut_ECG.reshape(-1)))
|
||||
chunk_size = ConfigParams.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
chunk_size = Params.PRECISELY_ALIGN_SAVE_CHUNK_SIZE
|
||||
with open(Config["Path"]["Save_ECG"], 'w') as f:
|
||||
for start in range(0, total_rows, chunk_size):
|
||||
end = min(start + chunk_size, total_rows)
|
||||
@ -905,7 +906,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
PublicFunc.progressbar_update(self, 5, 6, Constants.PRECISELY_ALIGN_SAVING_CUT_JPEAK, 0)
|
||||
|
||||
total_rows = len(DataFrame(self.data.cut_Jpeak.reshape(-1)))
|
||||
chunk_size = ConfigParams.PRECISELY_ALIGN_SAVE_PEAK_CHUNK_SIZE
|
||||
chunk_size = Params.PRECISELY_ALIGN_SAVE_PEAK_CHUNK_SIZE
|
||||
with open(Config["Path"]["Save_Jpeak"], 'w') as f:
|
||||
for start in range(0, total_rows, chunk_size):
|
||||
end = min(start + chunk_size, total_rows)
|
||||
@ -927,7 +928,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
PublicFunc.progressbar_update(self, 6, 6, Constants.PRECISELY_ALIGN_SAVING_CUT_RPEAK, 0)
|
||||
|
||||
total_rows = len(DataFrame(self.data.cut_Rpeak.reshape(-1)))
|
||||
chunk_size = ConfigParams.PRECISELY_ALIGN_SAVE_PEAK_CHUNK_SIZE
|
||||
chunk_size = Params.PRECISELY_ALIGN_SAVE_PEAK_CHUNK_SIZE
|
||||
with open(Config["Path"]["Save_Rpeak"], 'w') as f:
|
||||
for start in range(0, total_rows, chunk_size):
|
||||
end = min(start + chunk_size, total_rows)
|
||||
@ -1014,23 +1015,23 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
if self.ax0 is not None:
|
||||
self.ax0.clear()
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax0.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
if self.ax1 is not None:
|
||||
self.ax1.clear()
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax1.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
if self.ax2 is not None:
|
||||
self.ax2.clear()
|
||||
self.ax2.grid(True)
|
||||
self.ax2.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax2.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
if self.ax3 is not None:
|
||||
self.ax3.clear()
|
||||
self.ax3.grid(True)
|
||||
self.ax3.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax3.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
if self.ax4 is not None:
|
||||
self.ax4.clear()
|
||||
self.ax4.grid(True)
|
||||
self.ax4.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax4.xaxis.set_major_formatter(Params.FORMATTER)
|
||||
|
||||
def redraw_calculate_coordination(self, plot_element=None):
|
||||
if plot_element is not None and plot_element["mode"] == "select":
|
||||
@ -1327,26 +1328,26 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
if self.figToolbar.ax0_BCG_rectangle_front is None and self.is_left_button_pressed:
|
||||
self.figToolbar.ax0_BCG_rectangle_front = patches.Rectangle((0, 0), 1, 1,
|
||||
fill=True,
|
||||
alpha=ConfigParams.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
alpha=Params.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
self.ax0.add_patch(self.figToolbar.ax0_BCG_rectangle_front)
|
||||
if self.figToolbar.ax0_BCG_rectangle_back is None and self.is_left_button_pressed:
|
||||
self.figToolbar.ax0_BCG_rectangle_back = patches.Rectangle((0, 0), 1, 1,
|
||||
fill=True,
|
||||
alpha=ConfigParams.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
fill=True,
|
||||
alpha=Params.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
self.ax0.add_patch(self.figToolbar.ax0_BCG_rectangle_back)
|
||||
if self.figToolbar.ax1_ECG_rectangle_front is None and self.is_left_button_pressed:
|
||||
self.figToolbar.ax1_ECG_rectangle_front = patches.Rectangle((0, 0), 1, 1,
|
||||
fill=True,
|
||||
alpha=ConfigParams.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
alpha=Params.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
self.ax1.add_patch(self.figToolbar.ax1_ECG_rectangle_front)
|
||||
if self.figToolbar.ax1_ECG_rectangle_back is None and self.is_left_button_pressed:
|
||||
self.figToolbar.ax1_ECG_rectangle_back = patches.Rectangle((0, 0), 1, 1,
|
||||
fill=True,
|
||||
alpha=ConfigParams.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
fill=True,
|
||||
alpha=Params.PRECISELY_ALIGN_LABEL_TRANSPARENCY,
|
||||
color=Constants.PLOT_COLOR_PINK)
|
||||
self.ax1.add_patch(self.figToolbar.ax1_ECG_rectangle_back)
|
||||
|
||||
if self.ui.radioButton_BCG_front.isChecked():
|
||||
@ -1454,7 +1455,7 @@ class Data:
|
||||
if Path(Config["Path"]["Input_Approximately_Align"]).is_file():
|
||||
Config["Path"]["Input_Approximately_Align"] = str(Path(Config["Path"]["Input_Approximately_Align"]).parent)
|
||||
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_OrgBCG"], ConfigParams.ORGBCG_RAW, ConfigParams.ENDSWITH_TXT)
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_OrgBCG"], Filename.ORGBCG_RAW, Params.ENDSWITH_TXT)
|
||||
if result.status:
|
||||
Config["Path"]["Input_OrgBCG"] = result.data["path"]
|
||||
Config["InputConfig"]["orgBcgFreq"] = result.data["freq"]
|
||||
@ -1462,29 +1463,29 @@ class Data:
|
||||
return result
|
||||
Config["Path"]["Input_Approximately_Align"] = str(
|
||||
Path(Config["Path"]["Input_Approximately_Align"]) / Path(
|
||||
ConfigParams.APPROXIMATELY_ALIGN_INFO + ConfigParams.ENDSWITH_CSV))
|
||||
Filename.APPROXIMATELY_ALIGN_INFO + Params.ENDSWITH_CSV))
|
||||
Config["Path"]["Save_AlignInfo"] = str(
|
||||
Path(Config["Path"]["Save_AlignInfo"]) / Path(
|
||||
ConfigParams.PRECISELY_ALIGN_INFO + ConfigParams.ENDSWITH_TXT))
|
||||
Filename.PRECISELY_ALIGN_INFO + Params.ENDSWITH_TXT))
|
||||
Config["Path"]["Save_OrgBCG"] = str(
|
||||
Path(Config["Path"]["Save_OrgBCG"]) / Path(
|
||||
ConfigParams.ORGBCG_SYNC + str(Config["InputConfig"]["orgBcgFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_BCG"], ConfigParams.BCG_FILTER, ConfigParams.ENDSWITH_TXT)
|
||||
Filename.ORGBCG_SYNC + str(Config["InputConfig"]["orgBcgFreq"]) + Params.ENDSWITH_TXT))
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_BCG"], Filename.BCG_FILTER, Params.ENDSWITH_TXT)
|
||||
if result.status:
|
||||
Config["Path"]["Input_BCG"] = result.data["path"]
|
||||
Config["InputConfig"]["BCGFreq"] = result.data["freq"]
|
||||
else:
|
||||
return result
|
||||
Config["Path"]["Input_Jpeak"] = str(
|
||||
Path(Config["Path"]["Input_Jpeak"]) / Path(ConfigParams.JPEAK_REVISE_CORRECTED + str(
|
||||
Config["InputConfig"]["BCGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
Path(Config["Path"]["Input_Jpeak"]) / Path(Filename.JPEAK_REVISE_CORRECTED + str(
|
||||
Config["InputConfig"]["BCGFreq"]) + Params.ENDSWITH_TXT))
|
||||
Config["Path"]["Save_BCG"] = str(
|
||||
Path(Config["Path"]["Save_BCG"]) / Path(
|
||||
ConfigParams.BCG_SYNC + str(Config["InputConfig"]["BCGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
Filename.BCG_SYNC + str(Config["InputConfig"]["BCGFreq"]) + Params.ENDSWITH_TXT))
|
||||
Config["Path"]["Save_Jpeak"] = str(
|
||||
Path(Config["Path"]["Save_Jpeak"]) / Path(
|
||||
ConfigParams.JPEAK_SYNC + str(Config["InputConfig"]["BCGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_ECG"], ConfigParams.ECG_FILTER, ConfigParams.ENDSWITH_TXT)
|
||||
Filename.JPEAK_SYNC + str(Config["InputConfig"]["BCGFreq"]) + Params.ENDSWITH_TXT))
|
||||
result = PublicFunc.examine_file(Config["Path"]["Input_ECG"], Filename.ECG_FILTER, Params.ENDSWITH_TXT)
|
||||
if result.status:
|
||||
Config["Path"]["Input_ECG"] = result.data["path"]
|
||||
Config["InputConfig"]["ECGFreq"] = result.data["freq"]
|
||||
@ -1492,45 +1493,45 @@ class Data:
|
||||
return result
|
||||
Config["Path"]["Input_Rpeak"] = str(
|
||||
Path(Config["Path"]["Input_Rpeak"]) / Path(
|
||||
ConfigParams.RPEAK_FINAL_CORRECTED + str(Config["InputConfig"]["ECGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
Filename.RPEAK_FINAL_CORRECTED + str(Config["InputConfig"]["ECGFreq"]) + Params.ENDSWITH_TXT))
|
||||
Config["Path"]["Save_ECG"] = str(
|
||||
Path(Config["Path"]["Save_ECG"]) / Path(
|
||||
ConfigParams.ECG_SYNC + str(Config["InputConfig"]["ECGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
Filename.ECG_SYNC + str(Config["InputConfig"]["ECGFreq"]) + Params.ENDSWITH_TXT))
|
||||
Config["Path"]["Save_Rpeak"] = str(
|
||||
Path(Config["Path"]["Save_Rpeak"]) / Path(
|
||||
ConfigParams.RPEAK_SYNC + str(Config["InputConfig"]["ECGFreq"]) + ConfigParams.ENDSWITH_TXT))
|
||||
Filename.RPEAK_SYNC + str(Config["InputConfig"]["ECGFreq"]) + Params.ENDSWITH_TXT))
|
||||
|
||||
if not Path(Config["Path"]["Input_Jpeak"]).exists():
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + "\n" +
|
||||
ConfigParams.JPEAK_REVISE_CORRECTED + ":" +
|
||||
Filename.JPEAK_REVISE_CORRECTED + ":" +
|
||||
Config["Path"]["Input_Jpeak"] +
|
||||
Constants.FAILURE_REASON["Path_Not_Exist"])
|
||||
if not Path(Config["Path"]["Input_Rpeak"]).exists():
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + "\n" +
|
||||
ConfigParams.RPEAK_FINAL_CORRECTED + ":" +
|
||||
Filename.RPEAK_FINAL_CORRECTED + ":" +
|
||||
Config["Path"]["Input_Rpeak"] +
|
||||
Constants.FAILURE_REASON["Path_Not_Exist"])
|
||||
if not Path(Config["Path"]["Input_Approximately_Align"]).exists():
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + "\n" +
|
||||
ConfigParams.APPROXIMATELY_ALIGN_INFO + ":" +
|
||||
Filename.APPROXIMATELY_ALIGN_INFO + ":" +
|
||||
Config["Path"]["Input_Approximately_Align"] +
|
||||
Constants.FAILURE_REASON["Path_Not_Exist"])
|
||||
|
||||
try:
|
||||
self.raw_orgBcg = read_csv(Config["Path"]["Input_OrgBCG"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
encoding=Params.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
self.raw_BCG = read_csv(Config["Path"]["Input_BCG"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
encoding=Params.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
self.Jpeak = read_csv(Config["Path"]["Input_Jpeak"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
encoding=Params.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
self.raw_ECG = read_csv(Config["Path"]["Input_ECG"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
encoding=Params.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
self.Rpeak = read_csv(Config["Path"]["Input_Rpeak"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
encoding=Params.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
self.argmax_BCG = np_argmax(self.raw_BCG)
|
||||
self.argmax_ECG = np_argmax(self.raw_ECG)
|
||||
@ -2004,19 +2005,19 @@ class CustomNavigationToolbar(NavigationToolbar2QT):
|
||||
super().__init__(canvas, parent)
|
||||
# 初始化画框工具栏
|
||||
self.action_Get_Range = QAction(Constants.PRECISELY_ALIGN_ACTION_GET_RANGE_NAME, self)
|
||||
self.action_Get_Range.setFont(QFont(ConfigParams.FONT, 14))
|
||||
self.action_Get_Range.setFont(QFont(Params.FONT, 14))
|
||||
self.action_Get_Range.setCheckable(True)
|
||||
self.action_Get_Range.setShortcut(QCoreApplication.translate(
|
||||
"MainWindow",
|
||||
ConfigParams.PRECISELY_ALIGN_ACTION_GET_RANGE_SHORTCUT_KEY))
|
||||
Params.PRECISELY_ALIGN_ACTION_GET_RANGE_SHORTCUT_KEY))
|
||||
self.insertAction(self._actions['pan'], self.action_Get_Range)
|
||||
|
||||
self._actions['pan'].setShortcut(QCoreApplication.translate(
|
||||
"MainWindow",
|
||||
ConfigParams.ACTION_PAN_SHORTCUT_KEY))
|
||||
Params.ACTION_PAN_SHORTCUT_KEY))
|
||||
self._actions['zoom'].setShortcut(QCoreApplication.translate(
|
||||
"MainWindow",
|
||||
ConfigParams.ACTION_ZOOM_SHORTCUT_KEY))
|
||||
Params.ACTION_ZOOM_SHORTCUT_KEY))
|
||||
|
||||
# 用于存储事件连接ID
|
||||
self.cid_mouse_press = None
|
||||
|
||||
Reference in New Issue
Block a user