From 88b2a0875a6e2c021ab1f10f35839f0c61181e6e Mon Sep 17 00:00:00 2001 From: Yorusora <2944763079@qq.com> Date: Wed, 21 May 2025 14:09:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86<=E4=BD=93=E5=8A=A8?= =?UTF-8?q?=E6=A0=87=E6=B3=A8>=E7=9A=84=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- func/Module_artifact_label.py | 43 +++++++++++++++++++++++++---------- func/utils/ConfigParams.py | 21 +++++++---------- func/utils/Constants.py | 41 ++++++--------------------------- 3 files changed, 46 insertions(+), 59 deletions(-) diff --git a/func/Module_artifact_label.py b/func/Module_artifact_label.py index 8611a7f..95ff1a4 100644 --- a/func/Module_artifact_label.py +++ b/func/Module_artifact_label.py @@ -92,22 +92,15 @@ class SettingWindow(QMainWindow): Config.update({ "Path": { "Input_orgBcg": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED / - Path(str(self.sampID)) / Path(ConfigParams.ORGBCG_SYNC + - str(Config["InputConfig"]["orgBcgFreq"]) + - ConfigParams.ENDSWITH_TXT))), + Path(str(self.sampID)))), "Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED / - Path(str(self.sampID)) / Path(ConfigParams.BCG_SYNC + - str(Config["InputConfig"]["BCGFreq"]) + - ConfigParams.ENDSWITH_TXT))), + Path(str(self.sampID)))), "Save_a": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / - Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_A + - ConfigParams.ENDSWITH_TXT))), + Path(str(self.sampID)))), "Save_b": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / - Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_B + - ConfigParams.ENDSWITH_TXT))), + Path(str(self.sampID)))), "Save_c": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / - Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_C + - ConfigParams.ENDSWITH_CSV))) + Path(str(self.sampID)))) } }) @@ -1207,9 +1200,35 @@ class Data: self.df_Artifact_a = DataFrame(columns=["number", "type", "startTime", "endTime"]) def open_file(self): + if Path(Config["Path"]["Input_orgBcg"]).is_file(): + Config["Path"]["Input_orgBcg"] = str(Path(Config["Path"]["Input_orgBcg"]).parent) + if Path(Config["Path"]["Input_BCG"]).is_file(): + Config["Path"]["Input_BCG"] = str(Path(Config["Path"]["Input_BCG"]).parent) + if (not Path(Config["Path"]["Input_orgBcg"]).exists()) or (not Path(Config["Path"]["Input_BCG"]).exists()): return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Path_Not_Exist"]) + result = PublicFunc.examine_file(Config["Path"]["Input_orgBcg"], ConfigParams.ORGBCG_SYNC) + if result.status: + Config["Path"]["Input_orgBcg"] = result.data["path"] + Config["InputConfig"]["orgBcgFreq"] = result.data["freq"] + else: + return result + + result = PublicFunc.examine_file(Config["Path"]["Input_BCG"], ConfigParams.BCG_SYNC) + if result.status: + Config["Path"]["Input_BCG"] = result.data["path"] + Config["InputConfig"]["BCGFreq"] = result.data["freq"] + else: + return result + + Config["Path"]["Save_a"] = str( + Path(Config["Path"]["Save_a"]) / Path(ConfigParams.ARTIFACT_A + ConfigParams.ENDSWITH_TXT)) + Config["Path"]["Save_b"] = str( + Path(Config["Path"]["Save_b"]) / Path(ConfigParams.ARTIFACT_B + ConfigParams.ENDSWITH_TXT)) + Config["Path"]["Save_c"] = str( + Path(Config["Path"]["Save_c"]) / Path(ConfigParams.ARTIFACT_C + ConfigParams.ENDSWITH_CSV)) + try: self.orgBcg = read_csv(Config["Path"]["Input_orgBcg"], encoding=ConfigParams.UTF8_ENCODING, diff --git a/func/utils/ConfigParams.py b/func/utils/ConfigParams.py index c839a56..1a007ad 100644 --- a/func/utils/ConfigParams.py +++ b/func/utils/ConfigParams.py @@ -4,7 +4,6 @@ from matplotlib.ticker import FuncFormatter class ConfigParams: - # 公共 PUBLIC_CONFIG_FILE_PATH: str = "./config/Config_public.yaml" PUBLIC_PATH_ORGBCG_TEXT: str = "OrgBCG_Text" @@ -65,6 +64,8 @@ class ConfigParams: SPO2_SYNC: str = "SpO2_Sync_" FIVE_CLASS_SYNC: str = "5_class_Sync_" SA_LABEL_SYNC: str = "SA Label_Sync_" + SA_LABEL_CORRECTED: str = "SA Label_corrected" + SA_LABEL_ADD: str = "SA Label_add" # 数据粗同步 APPROXIMATELY_ALIGN_CONFIG_FILE_PATH: str = "./config/Config_approximately_align.yaml" @@ -251,10 +252,10 @@ class ConfigParams: SA_LABEL_CONFIG_FILE_PATH: str = "./config/Config_SA_label.yaml" SA_LABEL_CONFIG_NEW_CONTENT: dict = { "InputConfig": { - "orgBcgFreq": 1000, + "OrgBCGFreq": 1000, "ThoFreq": 100, "AbdFreq": 100, - "FlowTFreq": 100, + "FlowTFreq": 10, "FlowPFreq": 100, "SpO2Freq": 1, "PlotFreq": 100 @@ -264,16 +265,10 @@ class ConfigParams: "Back": 60 } } - SA_LABEL_INPUT_ORGBCG_FILENAME: str = "OrgBCG_Sync_" - SA_LABEL_INPUT_THO_FILENAME: str = "Effort Tho_Sync_" - SA_LABEL_INPUT_ABD_FILENAME: str = "Effort Abd_Sync_" - SA_LABEL_INPUT_FLOWT_FILENAME: str = "Flow T_Sync_" - SA_LABEL_INPUT_FLOWP_FILENAME: str = "Flow P_Sync_" - SA_LABEL_INPUT_SPO2_FILENAME: str = "SpO2_Sync_" - SA_LABEL_INPUT_ARTIFACT_FILENAME: str = "Artifact_a" - SA_LABEL_INPUT_LABEL_FILENAME: str = "SA Label_Sync" - SA_LABEL_SAVE_FILENAME: str = "SA Label_corrected" - SA_LABEL_SAVE2_FILENAME: str = "SA Label_add" + + + + diff --git a/func/utils/Constants.py b/func/utils/Constants.py index c68dd92..bd0f805 100644 --- a/func/utils/Constants.py +++ b/func/utils/Constants.py @@ -132,6 +132,7 @@ class Constants: "Get_File_and_Freq_Excepetion": "(检查文件是否存在并获取其数据采样率异常)", "Update_tableWidget_Exception": "(更新表格异常)", "Update_Info_Exception": "(更新信息异常)", + "Label_Format_Exception": "(获取标签格式异常)", "res_orgBcg_Not_Exist": "(切割后orgBcg不存在)", "res_BCG_Not_Exist": "(切割后BCG不存在)", @@ -377,35 +378,14 @@ class Constants: }""" # 睡眠呼吸暂停事件标注 - SA_LABEL_LOADING_ARCHIVE: str = "正在获取历史存档" - SA_LABEL_ARCHIVE_EXIST: str = "找到历史存档,成功读取" - SA_LABEL_ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档" - - SA_LABEL_UPDATING_TABLE: str = "正在更新表格" - SA_LABEL_UPDATING_INFO: str = "正在更新信息" - SA_LABEL_UPDATE_FINISHED: str = "更新完成" - SA_LABEL_UPDATE_FAILURE: str = "更新失败" - - SA_LABEL_PROCESSING_DATA: str = "正在处理数据" - SA_LABEL_PROCESS_FINISHED: str = "处理完成" - SA_LABEL_PROCESS_FAILURE: str = "处理失败" - - SA_LABEL_FAILURE_REASON = { - "Data_Path_Not_Exist": "(数据路径不存在)", - "Read_Data_Exception": "(读取数据异常)", - "Raw_Data_Not_Exist": "(原始数据不存在)", - "Filter_Exception": "(滤波器异常)", - "Resample_Exception": "(重采样异常)", - "Artifact_Format_Not_Correct": "(体动长度或格式不正确)", - "Get_Artifact_Format_Exception": "(获取体动长度或格式异常)", - "Label_Format_Exception": "(获取标签格式异常)", - "Update_tableWidget_Exception": "(更新表格异常)", - "Update_Info_Exception": "(更新信息异常)", - "Process_Data_Exception": "(处理数据异常)", - "Save_Exception": "(保存异常)" - } SA_LABEL_JUMP: str = "跳转到事件" + # SA_LABEL_CHANNEL_NAME_FLOWT: str = "Flow T" + # SA_LABEL_CHANNEL_NAME_FLOWP: str = "Flow P" + # SA_LABEL_CHANNEL_NAME_EFFORTTHO: str = "Effort Tho" + # SA_LABEL_CHANNEL_NAME_EFFORTABD: str = "Effort Abd" + # SA_LABEL_CHANNEL_NAME_SPO2: str = "SpO2" + @@ -525,13 +505,6 @@ class Constants: } - # 睡眠呼吸暂停事件打标 - SA_LABEL_CHANNEL_NAME_FLOWT: str = "Flow T" - SA_LABEL_CHANNEL_NAME_FLOWP: str = "Flow P" - SA_LABEL_CHANNEL_NAME_EFFORTTHO: str = "Effort Tho" - SA_LABEL_CHANNEL_NAME_EFFORTABD: str = "Effort Abd" - SA_LABEL_CHANNEL_NAME_SPO2: str = "SpO2" -