优化了<体动标注>的数据导入

This commit is contained in:
Yorusora
2025-05-21 14:09:23 +08:00
parent 4ec1a69093
commit 88b2a0875a
3 changed files with 46 additions and 59 deletions

View File

@ -92,22 +92,15 @@ class SettingWindow(QMainWindow):
Config.update({ Config.update({
"Path": { "Path": {
"Input_orgBcg": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED / "Input_orgBcg": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
Path(str(self.sampID)) / Path(ConfigParams.ORGBCG_SYNC + Path(str(self.sampID)))),
str(Config["InputConfig"]["orgBcgFreq"]) +
ConfigParams.ENDSWITH_TXT))),
"Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED / "Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
Path(str(self.sampID)) / Path(ConfigParams.BCG_SYNC + Path(str(self.sampID)))),
str(Config["InputConfig"]["BCGFreq"]) +
ConfigParams.ENDSWITH_TXT))),
"Save_a": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / "Save_a": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_A + Path(str(self.sampID)))),
ConfigParams.ENDSWITH_TXT))),
"Save_b": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / "Save_b": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_B + Path(str(self.sampID)))),
ConfigParams.ENDSWITH_TXT))),
"Save_c": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL / "Save_c": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_C + Path(str(self.sampID))))
ConfigParams.ENDSWITH_CSV)))
} }
}) })
@ -1207,9 +1200,35 @@ class Data:
self.df_Artifact_a = DataFrame(columns=["number", "type", "startTime", "endTime"]) self.df_Artifact_a = DataFrame(columns=["number", "type", "startTime", "endTime"])
def open_file(self): 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()): 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"]) 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: try:
self.orgBcg = read_csv(Config["Path"]["Input_orgBcg"], self.orgBcg = read_csv(Config["Path"]["Input_orgBcg"],
encoding=ConfigParams.UTF8_ENCODING, encoding=ConfigParams.UTF8_ENCODING,

View File

@ -4,7 +4,6 @@ from matplotlib.ticker import FuncFormatter
class ConfigParams: class ConfigParams:
# 公共 # 公共
PUBLIC_CONFIG_FILE_PATH: str = "./config/Config_public.yaml" PUBLIC_CONFIG_FILE_PATH: str = "./config/Config_public.yaml"
PUBLIC_PATH_ORGBCG_TEXT: str = "OrgBCG_Text" PUBLIC_PATH_ORGBCG_TEXT: str = "OrgBCG_Text"
@ -65,6 +64,8 @@ class ConfigParams:
SPO2_SYNC: str = "SpO2_Sync_" SPO2_SYNC: str = "SpO2_Sync_"
FIVE_CLASS_SYNC: str = "5_class_Sync_" FIVE_CLASS_SYNC: str = "5_class_Sync_"
SA_LABEL_SYNC: str = "SA Label_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" 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_FILE_PATH: str = "./config/Config_SA_label.yaml"
SA_LABEL_CONFIG_NEW_CONTENT: dict = { SA_LABEL_CONFIG_NEW_CONTENT: dict = {
"InputConfig": { "InputConfig": {
"orgBcgFreq": 1000, "OrgBCGFreq": 1000,
"ThoFreq": 100, "ThoFreq": 100,
"AbdFreq": 100, "AbdFreq": 100,
"FlowTFreq": 100, "FlowTFreq": 10,
"FlowPFreq": 100, "FlowPFreq": 100,
"SpO2Freq": 1, "SpO2Freq": 1,
"PlotFreq": 100 "PlotFreq": 100
@ -264,16 +265,10 @@ class ConfigParams:
"Back": 60 "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"

View File

@ -132,6 +132,7 @@ class Constants:
"Get_File_and_Freq_Excepetion": "(检查文件是否存在并获取其数据采样率异常)", "Get_File_and_Freq_Excepetion": "(检查文件是否存在并获取其数据采样率异常)",
"Update_tableWidget_Exception": "(更新表格异常)", "Update_tableWidget_Exception": "(更新表格异常)",
"Update_Info_Exception": "(更新信息异常)", "Update_Info_Exception": "(更新信息异常)",
"Label_Format_Exception": "(获取标签格式异常)",
"res_orgBcg_Not_Exist": "切割后orgBcg不存在", "res_orgBcg_Not_Exist": "切割后orgBcg不存在",
"res_BCG_Not_Exist": "切割后BCG不存在", "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_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"