from func.utils.ConfigParams import ConfigParams class Constants: # 公共 TIPS_TYPE_INFO: str = "Info" TIPS_TYPE_ERROR: str = "Error" MSGBOX_TYPE_INFO: str = "Info" MSGBOX_TYPE_WARNING: str = "Warning" MSGBOX_TYPE_ERROR: str = "Error" MSGBOX_TYPE_QUESTION: str = "Question" MAINWINDOW_ROOT_PATH_NOT_EXIST: str = "根目录路径输入错误" MAINWINDOW_SAMPID_EMPTY: str = "样本ID为空" MAINWINDOW_MSGBOX_TITLE: str = "消息" INPUTTING_DATA: str = "正在导入数据" INPUT_FINISHED: str = "导入完成" INPUT_FAILURE: str = "导入失败" DRAWING_DATA: str = "正在绘制图形" DRAWING_FINISHED: str = "绘制完成" DRAWING_FAILURE: str = "绘制失败" UPDATING_TABLEWIDGET_AND_INFO: str = "正在更新表格和信息" UPDATING_FINISHED: str = "更新完成" UPDATING_FAILURE: str = "更新失败" SAVING_DATA: str = "正在保存数据" SAVING_FINISHED: str = "保存完成" SAVING_FAILURE: str = "保存失败" OPERATION_FINISHED: str = "操作完成" OPERATION_FAILURE: str = "操作失败" OPERATION_CANCELED: str = "操作取消" UNKNOWN_ERROR: str = "未知错误" SHUTTING_DOWN: str = "正在释放内存资源" QUESTION_TITLE: str = "警告:确认操作" QUESTION_CONTENT: str = "你确定要保存结果到" PLOT_UPPER_RIGHT: str = "upper right" STRING_IS_EMPTY: str = "" STRING_IS_NAN: str = "nan" PLOT_COLOR_RED: str = "r" PLOT_COLOR_GREEN: str = "g" PLOT_COLOR_BLUE: str = "b" PLOT_COLOR_ORANGE: str = "orange" PLOT_COLOR_WHITE: str = "white" PLOT_COLOR_BLACK: str = "black" PLOT_COLOR_PINK: str = "#ff00ff" PLOT_COLOR_PURPLE: str = "m" PLOT_COLOR_GRAY: str = "gray" PLOT_COLOR_DEEP_YELLOW: str = "#ffa500" PLOT_COLOR_YELLOW: str = "#ffff00" PLOT_COLOR_AQUA: str = "#00ffff" PLOT_COLOR_PURPLE_PINK: str = "#ee82ee" PLOT_COLOR_DEEP_GREY: str = "#808080" PROGRESSBAR_STYLE: str = """ QProgressBar { border: 1px solid #020066; border-radius: 6px; font-size: 16px; color: black; text-align: center; height: 20px; background: #E5E4E4; } QProgressBar::chunk { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #9AFF99, stop:1 #9A9AFE); border-radius: 6px; } """ # 数据粗同步 APPROXIMATELY_ONLY_ALIGN_RESAMPLING: str = "正在仅重采样" APPROXIMATELY_ONLY_ALIGN_RESAMPLE_FINISHED: str = "仅重采样完成" APPROXIMATELY_ONLY_ALIGN_RESAMPLE_FAILURE: str = "仅重采样失败" APPROXIMATELY_RESP_GETTING: str = "正在呼吸提取" APPROXIMATELY_RESP_GET_FINISHED: str = "呼吸提取完成" APPROXIMATELY_RESP_GET_FAILURE: str = "呼吸提取失败" APPROXIMATELY_PRE_ALIGN_RESAMPLING: str = "正在预重采样" APPROXIMATELY_PRE_ALIGN_RESAMPLE_FINISHED: str = "预重采样完成" APPROXIMATELY_PRE_ALIGN_RESAMPLE_FAILURE: str = "预重采样失败" APPROXIMATELY_DELETING_BASE: str = "正在去基线" APPROXIMATELY_DELETE_BASE_FINISHED: str = "去基线完成" APPROXIMATELY_DELETE_BASE_FAILURE: str = "去基线失败" APPROXIMATELY_STANDARDIZING: str = "正在标准化" APPROXIMATELY_STANDARDIZE_FINISHED: str = "标准化完成" APPROXIMATELY_STANDARDIZE_FAILURE: str = "标准化失败" APPROXIMATELY_ALIGN_RESAMPLING: str = "正在重采样" APPROXIMATELY_ALIGN_RESAMPLE_FINISHED: str = "重采样完成" APPROXIMATELY_ALIGN_RESAMPLE_FAILURE: str = "重采样失败" APPROXIMATELY_CORRELATION_CALCULATING1: str = "正在计算互相关1/2" APPROXIMATELY_CORRELATION_CALCULATE1_FINISHED: str = "计算互相关1/2完成" APPROXIMATELY_CORRELATION_CALCULATE1_FAILURE: str = "计算互相关1/2失败" APPROXIMATELY_CORRELATION_CALCULATING2: str = "正在计算互相关2/2" APPROXIMATELY_CORRELATION_CALCULATE2_FINISHED: str = "计算互相关2/2完成" APPROXIMATELY_CORRELATION_CALCULATE2_FAILURE: str = "计算互相关2/2失败" APPROXIMATELY_MAXVALUE_POS_CALCULATING: str = "正在计算最大值位置" APPROXIMATELY_MAXVALUE_POS_CALCULATE_FINISHED: str = "计算最大值位置完成" APPROXIMATELY_MAXVALUE_POS_CALCULATE_FAILURE: str = "计算最大值位置失败" APPROXIMATELY_EPOCH_GETTING: str = "正在获取epoch" APPROXIMATELY_EPOCH_GET_FINISHED: str = "获取epoch完成" APPROXIMATELY_EPOCH_GET_FAILURE: str = "获取epoch失败" APPROXIMATELY_ALIGN_FAILURE_REASON = { "Data_Path_Not_Exist": "(路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Raw_Data_Not_Exist": "(原始数据不存在)", "Only_Resample_Exception": "(仅重采样异常)", "Resp_Get_Exception": "(呼吸提取异常)", "Pre_Resample_Exception": "(预重采样异常)", "Delete_Base_Exception": "(去基线异常)", "Standardize_Exception": "(标准化异常)", "Resample_Exception": "(重采样异常)", "Calculate_Correlation1_Exception": "(计算互相关1/2异常)", "Calculate_Correlation2_Exception": "(计算互相关2/2异常)", "Calculate_Maxvalue_Pos_Exception": "(计算最大值位置异常)", "Get_Epoch_Exception": "(获取epoch异常)", "Processed_Data_Not_Exist": "(处理后数据不存在)", "Save_Exception": "(保存异常)" } # 预处理 PREPROCESS_PROCESSING_DATA: str = "正在处理数据" PREPROCESS_PROCESS_FINISHED: str = "处理完成" PREPROCESS_PROCESS_FAILURE: str = "处理失败" PREPROCESS_FAILURE_REASON = { "Data_Path_Not_Exist": "(路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Raw_Data_Not_Exist": "(原始数据不存在)", "Filter_Exception": "(滤波器异常)", "Processed_Data_Not_Exist": "(处理后数据不存在)", "Save_Exception": "(保存异常)" } PREPROCESS_PLOT_LABEL_ORIGINAL_DATA: str = "Original_Data" PREPROCESS_PLOT_LABEL_PROCESSED_DATA: str = "Processed_Data" PREPROCESS_OUTPUT_INPUT_AMP_OFFSET: int = 1850 # BCG的J峰算法定位 DETECT_JPEAK_LOADING_MODEL: str = "正在读取模型" DETECT_JPEAK_LOAD_FINISHED: str = "读取完成" DETECT_JPEAK_LOAD_FAILURE: str = "读取失败" DETECT_JPEAK_PROCESSING_DATA: str = "正在处理数据" DETECT_JPEAK_PROCESS_FINISHED: str = "处理完成" DETECT_JPEAK_PROCESS_FAILURE: str = "处理失败" DETECT_JPEAK_PREDICTING_PEAK: str = "正在预测峰值" DETECT_JPEAK_PREDICT_FINISHED: str = "预测完成" DETECT_JPEAK_PREDICT_FAILURE: str = "预测失败" DETECT_JPEAK_FAILURE_REASON = { "Data_Path_Not_Exist": "(数据路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Model_Path_Not_Exist": "(模型路径不存在)", "Model_File_Not_Exist": "(模型文件不存在)", "Read_Model_Exception": "(读取模型异常)", "Predict_Exception": "(峰值预测异常)", "Raw_Data_Not_Exist": "(原始数据不存在)", "Filter_Exception": "(滤波器异常)", "Processed_Data_Not_Exist": "(处理后数据不存在)", "Peak_Not_Exist": "(预测的峰值不存在)", "Save_Exception": "(保存异常)" } DETECT_JPEAK_DATA_LENGTH_POINTS: str = "数据长度(点数):" DETECT_JPEAK_DURATION_MIN: str = "数据时长(分钟):" DETECT_JPEAK_PEAK_AMOUNT: str = "J峰个数:" DETECT_JPEAK_PLOT_LABEL_BCG: str = "BCG_Processed" DETECT_JPEAK_PLOT_LABEL_J_PEAKS: str = "J_Peaks" DETECT_JPEAK_PLOT_LABEL_INTERVAL: str = "Interval" # ECG的R峰算法定位 DETECT_RPEAK_LOADING_METHOD: str = "正在读取方法" DETECT_RPEAK_LOAD_FINISHED: str = "读取完成" DETECT_RPEAK_LOAD_FAILURE: str = "读取失败" DETECT_RPEAK_PROCESSING_DATA: str = "正在处理数据" DETECT_RPEAK_PROCESS_FINISHED: str = "处理完成" DETECT_RPEAK_PROCESS_FAILURE: str = "处理失败" DETECT_RPEAK_PREDICTING_PEAK: str = "正在预测峰值" DETECT_RPEAK_PREDICT_FINISHED: str = "预测完成" DETECT_RPEAK_PREDICT_FAILURE: str = "预测失败" DETECT_RPEAK_FAILURE_REASON = { "Data_Path_Not_Exist": "(数据路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Method_Not_Exist": "(检测方法不存在)", "Read_Method_Exception": "(读取方法异常)", "Predict_Exception": "(峰值预测异常)", "Raw_Data_Not_Exist": "(原始数据不存在)", "Filter_Exception": "(滤波器异常)", "Processed_Data_Not_Exist": "(处理后数据不存在)", "Peak_Not_Exist": "(预测的峰值不存在)", "Save_Exception": "(保存异常)" } DETECT_RPEAK_DATA_LENGTH_POINTS: str = "数据长度(点数):" DETECT_RPEAK_DURATION_MIN: str = "数据时长(分钟):" DETECT_RPEAK_PEAK_AMOUNT: str = "R峰个数:" DETECT_RPEAK_PLOT_LABEL_RRIV: str = "RRIV" DETECT_RPEAK_PLOT_LABEL_ECG: str = "ECG" DETECT_RPEAK_PLOT_LABEL_R_PEAKS: str = "R_Peaks" DETECT_RPEAK_PLOT_LABEL_INTERVAL: str = "Interval" # 人工纠正 LABEL_CHECK_PROCESSING_DATA: str = "正在处理数据" LABEL_CHECK_PROCESS_FINISHED: str = "处理完成" LABEL_CHECK_PROCESS_FAILURE: str = "处理失败" LABEL_CHECK_LOADING_ARCHIVE: str = "正在获取历史存档" LABEL_CHECK_ARCHIVE_EXIST: str = "找到历史存档,成功读取" LABEL_CHECK_ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档" LABEL_CHECK_FAILURE_REASON = { "Data_Path_Not_Exist": "(数据路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Raw_Data_Not_Exist": "(原始数据不存在)", "Filter_Exception": "(滤波器异常)", "Processed_Data_Not_Exist": "(处理后数据不存在)", "Peak_Not_Exist": "(峰值不存在)", "Save_Exception": "(保存异常)" } LABEL_CHECK_PLOT_LABEL_SIGNAL: str = "Data_Processed" LABEL_CHECK_PLOT_LABEL_PEAK_ORIGINAL: str = "Peaks_Original" LABEL_CHECK_PLOT_LABEL_PEAK_CORRECTED: str = "Peaks_Corrected" LABEL_CHECK_PREV_MOVE: str = "向前移动" LABEL_CHECK_NEXT_MOVE: str = "向后移动" LABEL_CHECK_PAUSE: str = "暂停移动" LABEL_CHECK_SWITCH_PRESET_1: str = "变更为预设1" LABEL_CHECK_SWITCH_PRESET_2: str = "变更为预设2" LABEL_CHECK_SWITCH_PRESET_3: str = "变更为预设3" LABEL_CHECK_SWITCH_CUSTOM: str = "变更为自定义,请注意,自定义的参数未经校验,过大或过小的参数可能导致程序异常" LABEL_CHECK_JUMP_X_INDEX: str = "跳转到x坐标: " LABEL_CHECK_RECOVER_SCALE: str = "尺度恢复" LABEL_CHECK_ADD_POINTS_SUCCESSFULLY: str = "成功新增点,横坐标:" LABEL_CHECK_REMOVE_POINTS_SUCCESSFULLY: str = "成功删除点,横坐标:" LABEL_CHECK_NO_POINT_IN_THE_INTERVAL: str = "所选区间内无新增或删除点" LABEL_CHECK_ACTION_LABEL_MULTIPLE_NAME: str = f"批量更改标签({ConfigParams.LABEL_CHECK_ACTION_LABEL_MULTIPLE_SHORTCUT_KEY})" # 数据精同步 PRECISELY_ALIGN_PROCESSING_DATA: str = "正在处理数据" PRECISELY_ALIGN_PROCESS_FINISHED: str = "处理完成" PRECISELY_ALIGN_PROCESS_FAILURE: str = "处理失败" PRECISELY_ALIGN_CALCULATING_CORRELATION_FRONT: str = "正在计算前段相关性" PRECISELY_ALIGN_CALCULATE_FINISHED_FRONT: str = "计算前段相关性完成" PRECISELY_ALIGN_CALCULATE_FAILURE_FRONT: str = "计算前段相关性失败" PRECISELY_ALIGN_CALCULATING_CORRELATION_BACK: str = "正在计算后段相关性" PRECISELY_ALIGN_CALCULATE_FINISHED_BACK: str = "计算后段相关性完成" PRECISELY_ALIGN_CALCULATE_FAILURE_BACK: str = "计算后段相关性失败" PRECISELY_ALIGN_ALIGNING_CORRELATION: str = "正在处理相关对齐" PRECISELY_ALIGN_ALIGN_CORRELATION_FINISHED: str = "处理相关对齐完成" PRECISELY_ALIGN_ALIGN_CORRELATION_FAILURE: str = "处理相关对齐失败" PRECISELY_ALIGN_POSTPROCESSING_VIEW: str = "正在数据后处理" PRECISELY_ALIGN_POSTPROCESS_VIEW_FINISHED: str = "数据后处理完成" PRECISELY_ALIGN_POSTPROCESS_VIEW_FAILURE: str = "数据后处理失败" PRECISELY_ALIGN_SAVING_ALIGNINFO: str = "正在保存对齐信息" PRECISELY_ALIGN_SAVING_ALIGNINFO_FINISHED: str = "保存对齐信息完成" PRECISELY_ALIGN_SAVING_ALIGNINFO_FAILURE: str = "保存对齐信息失败" PRECISELY_ALIGN_SAVING_RES_ORGBCG: str = "正在保存切割后orgBcg" PRECISELY_ALIGN_SAVING_RES_ORGBCG_FINISHED: str = "保存切割后orgBcg完成" PRECISELY_ALIGN_SAVING_RES_ORGBCG_FAILURE: str = "保存切割后orgBcg失败" PRECISELY_ALIGN_SAVING_RES_BCG: str = "正在保存切割后BCG" PRECISELY_ALIGN_SAVING_RES_BCG_FINISHED: str = "保存切割后BCG完成" PRECISELY_ALIGN_SAVING_RES_BCG_FAILURE: str = "保存切割后BCG失败" PRECISELY_ALIGN_SAVING_CUT_ECG: str = "正在保存切割后ECG" PRECISELY_ALIGN_SAVING_CUT_ECG_FINISHED: str = "保存切割后ECG完成" PRECISELY_ALIGN_SAVING_CUT_ECG_FAILURE: str = "保存切割后ECG失败" PRECISELY_ALIGN_SAVING_CUT_JPEAK: str = "正在保存切割后J峰" PRECISELY_ALIGN_SAVING_CUT_JPEAK_FINISHED: str = "保存切割后J峰完成" PRECISELY_ALIGN_SAVING_CUT_JPEAK_FAILURE: str = "保存切割后J峰失败" PRECISELY_ALIGN_SAVING_CUT_RPEAK: str = "正在保存切割后R峰" PRECISELY_ALIGN_SAVING_CUT_RPEAK_FINISHED: str = "保存切割后R峰完成" PRECISELY_ALIGN_SAVING_CUT_RPEAK_FAILURE: str = "保存切割后R峰失败" PRECISELY_ALIGN_FAILURE_REASON = { "Data_Path_Not_Exist": "(数据路径不存在)", "Read_Data_Exception": "(读取数据异常)", "Data_Not_Exist": "(数据不存在)", "Process_Data_Exception": "(处理数据异常)", "Calculate_Correlation_Value_Equal": "(计算相关性参数相同)", "Calculate_Correlation_JJIVRange_too_Large": "(计算相关性JJIV范围大于RRIV范围)", "Calculate_Correlation_Exception": "(计算相关性异常)", "Correlation_Align_Exception": "(处理相关对齐异常)", "PostProcess_Align_Exception": "(数据后处理异常)", "res_orgBcg_Not_Exist": "(切割后orgBcg不存在)", "res_BCG_Not_Exist": "(切割后BCG不存在)", "cut_ECG_Not_Exist": "(切割后ECG不存在)", "cut_Jpeak_Not_Exist": "(切割后J峰不存在)", "cut_Rpeak_Not_Exist": "(切割后R峰不存在)", "Save_Exception": "(保存异常)" } PRECISELY_ALIGN_PLOT_LABEL_JJIV: str = "JJIV" PRECISELY_ALIGN_PLOT_LABEL_RRIV: str = "RRIV" PRECISELY_ALIGN_PLOT_LABEL_CORRE_RRIV_JJIV: str = "corre(RRIV, JJIV)" PRECISELY_ALIGN_PLOT_LABEL_ECG: str = "ECG" PRECISELY_ALIGN_PLOT_LABEL_BCG: str = "BCG" PRECISELY_ALIGN_PLOT_LABEL_RPEAK: str = "peak_ECG" PRECISELY_ALIGN_PLOT_LABEL_JPEAK: str = "peak_BCG" PRECISELY_ALIGN_PLOT_LABEL_SELECTED_POINT: str = "Selected Point" PRECISELY_ALIGN_NO_POINT_IN_THE_INTERVAL: str = "所选区间内无有效点" PRECISELY_ALIGN_RECOVER_SCALE: str = "尺度恢复" PRECISELY_ALIGN_ACTION_GET_RANGE_NAME: str = f"设置范围({ConfigParams.PRECISELY_ALIGN_ACTION_GET_RANGE_SHORTCUT_KEY})" # 冗余数据切割和标签映射 CUT_PSG_GETTING_FILE_AND_FREQ: str = "正在获取文件及其采样率" CUT_PSG_GET_FILE_AND_FREQ_FINISHED: str = "获取文件及其采样率完成" CUT_PSG_GET_FILE_AND_FREQ_FAILURE: str = "获取文件及其采样率失败" CUT_PSG_CUTTING_DATA: str = "正在切割数据" CUT_PSG_CUT_DATA_FINISHED: str = "切割数据完成" CUT_PSG_CUT_DATA_FAILURE: str = "切割数据失败" CUT_PSG_ALIGNING_LABEL: str = "正在映射标签" CUT_PSG_ALIGN_LABEL_FINISHED: str = "映射标签完成" CUT_PSG_ALIGN_LABEL_FAILURE: str = "映射标签失败" CUT_PSG_FAILURE_REASON: str = { "Filename_Format_not_Correct": "(文件名格式不正确)", "File_not_Exist": "(需要处理的文件不存在)", "Get_File_and_Freq_Excepetion": "(检查文件是否存在并获取其数据采样率异常)", "Read_Data_Exception": "(读取数据异常)", "Cut_Data_Length_not_Correct": "(切割数据时长度不正确)", "Cut_Data_Exception": "(切割数据异常)", "Align_Label_SALabel_Format_not_Correct": "(映射标签时SA Label中的文件格式不正确)", "Align_Label_Exception": "(映射标签异常)", "Save_Data_not_Exist": "(需要保存的数据不存在)", "Save_Exception": "(保存异常)" } # 体动标注 ARTIFACT_LABEL_LOADING_ARCHIVE: str = "正在获取历史存档" ARTIFACT_LABEL_ARCHIVE_EXIST: str = "找到历史存档,成功读取" ARTIFACT_LABEL_ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档" ARTIFACT_LABEL_UPDATING_TABLE: str = "正在更新表格" ARTIFACT_LABEL_UPDATING_INFO: str = "正在更新信息" ARTIFACT_LABEL_UPDATE_FINISHED: str = "更新完成" ARTIFACT_LABEL_UPDATE_FAILURE: str = "更新失败" ARTIFACT_LABEL_FAILURE_REASON: str = { "Data_Path_Not_Exist": "(数据路径不存在)", "Read_Data_Exception": "(读取数据异常)", "File_not_Exist": "(需要处理的文件不存在)", "Data_Length_not_Correct": "(orgBcg和BCG长度不匹配)", "Artifact_Format_Not_Correct": "(体动长度或格式不正确)", "Get_Artifact_Format_Exception": "(获取体动长度或格式异常)", "Update_tableWidget_Exception": "(更新表格异常)", "Update_Info_Exception": "(更新信息异常)", "Save_Data_not_Exist": "(需要保存的数据不存在)", "Save_Exception": "(保存异常)" } ARTIFACT_LABEL_PLOT_LABEL_ORGBCG_SYNC: str = "orgBcg_sync" ARTIFACT_LABEL_PLOT_LABEL_BCG_SYNC: str = "BCG_sync" ARTIFACT_LABEL_PREV_MOVE: str = "向前移动" ARTIFACT_LABEL_NEXT_MOVE: str = "向后移动" ARTIFACT_LABEL_PAUSE: str = "暂停移动" ARTIFACT_LABEL_SWITCH_PRESET_1: str = "变更为预设1" ARTIFACT_LABEL_SWITCH_PRESET_2: str = "变更为预设2" ARTIFACT_LABEL_SWITCH_PRESET_3: str = "变更为预设3" ARTIFACT_LABEL_SWITCH_CUSTOM: str = "变更为自定义,请注意,自定义的参数未经校验,过大或过小的参数可能导致程序异常" ARTIFACT_LABEL_JUMP_ARTIFACT: str = "跳转到体动" ARTIFACT_LABEL_RECOVER_SCALE: str = "尺度恢复" ARTIFACT_LABEL_MISS_ARGS: str = "打标参数未填写" ARTIFACT_LABEL_OVERLAPPING: str = "当前所打标的片段存在重合,重合片段序号:" ARTIFACT_LABEL_DELETE_ARTIFACT_SUCCESSFULLY: str = "体动被删除" ARTIFACT_LABEL_DELETE_ARTIFACT_FAILURE: str = "需要被删除的体动不存在" ARTIFACT_LABEL_ACTION_LABEL: str = f"标注体动({ConfigParams.ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY})" ARTIFACT_LABEL_LABELBTN_STYLE_1: str = """ QPushButton { background-color: #ffa500; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: #00ff00; /* 鼠标悬停时的背景颜色 */ }""" ARTIFACT_LABEL_LABELBTN_STYLE_2: str = """ QPushButton { background-color: #ffff00; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: #00ff00; /* 鼠标悬停时的背景颜色 */ }""" ARTIFACT_LABEL_LABELBTN_STYLE_3: str = """ QPushButton { background-color: #00ffff; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: #00ff00; /* 鼠标悬停时的背景颜色 */ }""" ARTIFACT_LABEL_LABELBTN_STYLE_4: str = """ QPushButton { background-color: #ee82ee; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: #00ff00; /* 鼠标悬停时的背景颜色 */ }""" ARTIFACT_LABEL_LABELBTN_STYLE_5: str = """ QPushButton { background-color: #808080; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: #00ff00; /* 鼠标悬停时的背景颜色 */ }""" # TODO:弃用 # 质量打标 BCG_QUALITY_LABEL_FILES_NOT_FOUND: str = f"无法找到{ConfigParams.BCG_QUALITY_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}或{ConfigParams.BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT},无法执行" BCG_QUALITY_LABEL_FILES_FOUND: str = f"找到{ConfigParams.BCG_QUALITY_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}和{ConfigParams.BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT}" BCG_QUALITY_LABEL_HISTORICAL_SAVE_FOUND: str = f"找到历史存档文件{ConfigParams.BCG_QUALITY_LABEL_SAVE_FILENAME}{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_10S}{ConfigParams.ENDSWITH_CSV}或{ConfigParams.BCG_QUALITY_LABEL_SAVE_FILENAME}{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_30S}{ConfigParams.ENDSWITH_CSV},已成功读取" BCG_QUALITY_LABEL_MODE_UNSELECTED: str = "显示模式未选择" BCG_QUALITY_LABEL_INPUT_SIGNAL_FAILURE: str = "导入信号失败,请检查信号长度" BCG_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_FORMAT: str = "导入体动失败,请检查体动标签格式" BCG_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_LENGTH: str = "导入体动失败,请检查体动长度是否为4的倍数" BCG_QUALITY_LABEL_RUNNING: str = "开始执行任务" BCG_QUALITY_LABEL_10S_MODE: str = f"{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_10S}_MODE" BCG_QUALITY_LABEL_30S_MODE: str = f"{ConfigParams.BCG_QUALITY_LABEL_SAVE_MODE_30S}_MODE" BCG_QUALITY_LABEL_COLUMN_LABEL: str = "label" BCG_QUALITY_LABEL_COLUMN_REMARK: str = "remark" BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART: str = "你正在查看第1段信号" BCG_QUALITY_LABEL_VIEWING_THE_LAST_PART: str = "你正在查看最后1段信号" BCG_QUALITY_LABEL_VIEWING_THE_FIRST_PART_UNLABELED: str = "前面的片段都被打标,将跳转至第1段信号" BCG_QUALITY_LABEL_VIEWING_THE_LAST_PART_UNLABELED: str = "后面的片段都被打标,将跳转至最后1段信号" BCG_QUALITY_LABEL_LABELED_FINISHED: str = "该份数据打标已全部完成" BCG_QUALITY_LABEL_VIEWING_PART: str = "正在查看信号段" BCG_QUALITY_LABEL_JUMP_PART: str = "跳转到片段" BCG_QUALITY_LABEL_CLICKED_CHECKBOX_HIGHLIGHT_LONGEST_CONTINUOUS: str = "点击了<高亮最长连续>" BCG_QUALITY_LABEL_CLICKED_CHECKBOX_DISPLAY_AFTERFILTER: str = "点击了<去除工频噪声>" BCG_QUALITY_LABEL_CLICKED_CHECKBOX_EXAMINE_TOBOLABELED: str = "点击了<仅查未标片段>" BCG_QUALITY_LABEL_LABEL_ALL_TO_TYPE_C_QUESTION_CONTENT: str = "你确定要将所有片段标记为类型C" BCG_QUALITY_LABEL_LABEL_ALL_TO_TYPE_C: str = "已将所有片段标记为类型C" BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C_QUESTION_CONTENT: str = "你确定要将所有带有体动的片段标记为类型C" BCG_QUALITY_LABEL_LABEL_ARTIFACT_TO_TYPE_C: str = "已将所有带有体动的片段标记为类型C" BCG_QUALITY_LABEL_PLOT_LABEL_SIGNAL: str = "BCG" BCG_QUALITY_LABEL_PLOT_LABEL_ARTIFACT: str = "Artifact" BCG_QUALITY_LABEL_PLOT_LABEL_LONGEST_CONTINUOUS: str = "Longest_Continuous" BCG_QUALITY_LABEL_10S_A: str = "a" BCG_QUALITY_LABEL_10S_B: str = "b" BCG_QUALITY_LABEL_10S_C: str = "c" BCG_QUALITY_LABEL_10S_A_LIST: str = "label_a" BCG_QUALITY_LABEL_10S_B_LIST: str = "label_b" BCG_QUALITY_LABEL_10S_C_LIST: str = "label_c" BCG_QUALITY_LABEL_30S_A1: str = "a" BCG_QUALITY_LABEL_30S_A2: str = "b" BCG_QUALITY_LABEL_30S_B1: str = "c" BCG_QUALITY_LABEL_30S_B2: str = "d" BCG_QUALITY_LABEL_30S_C: str = "e" BCG_QUALITY_LABEL_30S_A1_LIST: str = "label_a1" BCG_QUALITY_LABEL_30S_A2_LIST: str = "label_a2" BCG_QUALITY_LABEL_30S_B1_LIST: str = "label_b1" BCG_QUALITY_LABEL_30S_B2_LIST: str = "label_b2" BCG_QUALITY_LABEL_30S_C_LIST: str = "label_c" BCG_QUALITY_LABEL_tobeLabeled: str = "f" BCG_QUALITY_LABEL_tobeLabeled_LIST: str = "label_tobeLabeled" BCG_QUALITY_LABEL_LABELBTN_STYLE: str = """ QPushButton { background-color: orange; /* 设置背景颜色 */ padding: 10px; /* 设置内边距 */ border: 2px solid darkblue; /* 设置边框 */ border-radius: 10px; /* 设置圆角 */ } QPushButton:hover { background-color: yellow; /* 鼠标悬停时的背景颜色 */ }""" # 呼吸可用性及间期标注 RESP_QUALITY_LABEL_FILES_NOT_FOUND: str = f"无法找到{ConfigParams.RESP_QUALITY_LABEL_INPUT_XINXIAO_FILENAME}{ConfigParams.ENDSWITH_TXT}或{ConfigParams.RESP_QUALITY_LABEL_INPUT_THO_FILENAME}{ConfigParams.ENDSWITH_TXT}或{ConfigParams.RESP_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT},无法执行<呼吸可用性及间期标注>" RESP_QUALITY_LABEL_FILES_FOUND: str = f"找到{ConfigParams.RESP_QUALITY_LABEL_INPUT_XINXIAO_FILENAME}{ConfigParams.ENDSWITH_TXT}和{ConfigParams.RESP_QUALITY_LABEL_INPUT_THO_FILENAME}{ConfigParams.ENDSWITH_TXT}和{ConfigParams.RESP_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME}{ConfigParams.ENDSWITH_TXT}" RESP_QUALITY_LABEL_HISTORICAL_SAVE1_FOUND: str = f"找到历史存档文件{ConfigParams.RESP_QUALITY_LABEL_SAVE_RESP_QUALITY_LABNEL_FILENAME}{ConfigParams.ENDSWITH_TXT},已成功读取" RESP_QUALITY_LABEL_HISTORICAL_SAVE2_FOUND: str = f"找到历史存档文件{ConfigParams.RESP_QUALITY_LABEL_SAVE_THO_PEAK_FILENAME}{ConfigParams.ENDSWITH_TXT},已成功读取" RESP_QUALITY_LABEL_INPUT_SIGNAL_FAILURE: str = "导入信号失败,请检查信号长度" RESP_QUALITY_LABEL_INPUT_SUCCESSFULLY: str = "导入数据成功" RESP_QUALITY_LABEL_PREPROCESS_SUCCESSFULLY: str = "导入数据成功" RESP_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_FORMAT: str = "导入体动失败,请检查体动标签格式" RESP_QUALITY_LABEL_INPUT_ARTIFACT_FAILURE_LENGTH: str = "导入体动失败,请检查体动长度是否为4的倍数" RESP_QUALITY_LABEL_RUNNING: str = "开始执行任务<呼吸可用性及间期标注>" RESP_QUALITY_LABEL_PLOT_LABEL_ORGBCG: str = "BDR_sync by filter orgBcg_sync" RESP_QUALITY_LABEL_PLOT_LABEL_THO: str = "THO_sync after preprocess" RESP_QUALITY_LABEL_PLOT_LABEL_THO_PEAKS: str = "THO_peak" RESP_QUALITY_LABEL_PLOT_LABEL_ARTIFACT: str = "Artifact" RESP_QUALITY_LABEL_VIEWING_THE_FIRST_PART: str = "你正在查看第1段信号" RESP_QUALITY_LABEL_VIEWING_THE_LAST_PART: str = "你正在查看最后1段信号" RESP_QUALITY_LABEL_ACTION_LABEL_MULTIPLE_NAME: str = f"批量更改标签({ConfigParams.RESP_QUALITY_LABEL_ACTION_LABEL_MULTIPLE_SHORTCUT_KEY})" RESP_QUALITY_LABEL_CUSTOM_NAVIGATIONTOOLBAR_WIDGET_NAME: str = "MainWindow" RESP_QUALITY_LABEL_BUTTON_PRESS_EVENT: str = "button_press_event" RESP_QUALITY_LABEL_BUTTON_RELEASE_EVENT: str = "button_release_event" RESP_QUALITY_LABEL_MOTION_NOTIFY_EVENT: str = "motion_notify_event" RESP_QUALITY_LABEL_ADD_POINTS_SUCCESSFULLY: str = "成功新增点,横坐标:" RESP_QUALITY_LABEL_REMOVE_POINTS_SUCCESSFULLY: str = "成功删除点,横坐标:" RESP_QUALITY_LABEL_NO_POINT_IN_THE_INTERVAL: str = "所选区间内无新增或删除点" RESP_QUALITY_LABEL_SAVE_PEAKS_SUCCESSFULLY: str = "保存峰值成功" RESP_QUALITY_LABEL_DATA_NOT_FOUND: str = "数据未导入" RESP_QUALITY_LABEL_LABEL_SUCCESSFULLY: str = "片段标注并保存成功" RESP_QUALITY_LABEL_RESET_SUCCESSFULLY: str = "片段重置并保存成功" RESP_QUALITY_LABEL_PLOT_LABEL_VLINE: str = "vline" RESP_QUALITY_LABEL_PLOT_LABEL_HLINE: str = "hline" RESP_QUALITY_LABEL_A_QUALITY: int = 1 RESP_QUALITY_LABEL_B_QUALITY: int = 0 RESP_QUALITY_LABEL_C_QUALITY: int = -1 RESP_QUALITY_LABEL_LABELED: str = "已标注" RESP_QUALITY_LABEL_TOBELABELED: str = "未标注" RESP_QUALITY_LABEL_SPECTRUM_BDR_TITLE: str = "Spectrum of BDR_sync by filter orgBcg_sync" RESP_QUALITY_LABEL_SPECTRUM_THO_TITLE: str = "Spectrum of THO_sync after preprocess" RESP_QUALITY_LABEL_SPECTRUM_ORGBCG_LABEL: str = "orgBcg" RESP_QUALITY_LABEL_SPECTRUM_BDR_LABEL: str = "BDR" RESP_QUALITY_LABEL_SPECTRUM_THO_LABEL: str = "THO" RESP_QUALITY_LABEL_CUSTOM_FILTER_ARGS_ERROR: str = "orgBcg带通滤波频率设置范围应为数字,范围是0~1" RESP_QUALITY_LABEL_AUTOLABEL_ARGS_ERROR: str = "人工标注阈值设置范围应为数字,范围是0~1" RESP_QUALITY_LABEL_CHECK_ARGS_QUESTION_CONTENT: str = "你确定要执行此操作吗,请确保参数输入正确" RESP_QUALITY_LABEL_KEY_VALUE = { 1: "Good", 0: "Bad", -1: "None" } # 睡眠呼吸暂停事件打标 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" # 禁止实例化 def __new__(cls): raise TypeError("Constants class cannot be instantiated") # 禁止修改常量 @classmethod def __setattr__(cls, key, value): raise AttributeError("Cannot modify constants")