完成了<体动标注>功能的重构
This commit is contained in:
1294
func/Module_artifact_label.py
Normal file
1294
func/Module_artifact_label.py
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,6 +14,7 @@ from func.Module_detect_Rpeak import MainWindow_detect_Rpeak
|
||||
from func.Module_label_check import MainWindow_label_check
|
||||
from func.Module_precisely_align import MainWindow_precisely_align
|
||||
from func.Module_cut_PSG import MainWindow_cut_PSG
|
||||
from func.Module_artifact_label import MainWindow_artifact_label
|
||||
|
||||
from func.utils.Constants import Constants, ConfigParams
|
||||
|
||||
@ -50,6 +51,7 @@ class MainWindow(QMainWindow, Ui_Signal_Label):
|
||||
self.label_check = None
|
||||
self.precisely_align = None
|
||||
self.cut_PSG = None
|
||||
self.artifact_label = None
|
||||
|
||||
# 绑定槽函数
|
||||
self.ui.pushButton_open.clicked.connect(self.__slot_btn_open__)
|
||||
@ -62,6 +64,7 @@ class MainWindow(QMainWindow, Ui_Signal_Label):
|
||||
self.ui.pushButton_label_check_ECG.clicked.connect(self.__slot_btn_label_check__)
|
||||
self.ui.pushButton_precisely_align.clicked.connect(self.__slot_btn_precisely_align__)
|
||||
self.ui.pushButton_cut_PSG.clicked.connect(self.__slot_btn_cut_PSG__)
|
||||
self.ui.pushButton_artifact_label.clicked.connect(self.__slot_btn_artifact_label__)
|
||||
|
||||
@staticmethod
|
||||
def __read_config__():
|
||||
@ -181,6 +184,16 @@ class MainWindow(QMainWindow, Ui_Signal_Label):
|
||||
return
|
||||
self.cut_PSG.show(root_path, int(sampID))
|
||||
|
||||
def __slot_btn_artifact_label__(self):
|
||||
self.artifact_label = MainWindow_artifact_label()
|
||||
root_path = self.ui.plainTextEdit_root_path.toPlainText()
|
||||
sampID = self.ui.comboBox_sampID.currentText()
|
||||
if not self.check_root_path():
|
||||
return
|
||||
if not self.check_sampID():
|
||||
return
|
||||
self.artifact_label.show(root_path, int(sampID))
|
||||
|
||||
def seek_sampID(self, path):
|
||||
if not Path(path).exists():
|
||||
PublicFunc.msgbox_output(self, Constants.MAINWINDOW_ROOT_PATH_NOT_EXIST, Constants.MSGBOX_TYPE_ERROR)
|
||||
|
||||
@ -216,31 +216,35 @@ class ConfigParams:
|
||||
|
||||
|
||||
# 体动标注
|
||||
ARTIFACT_LABEL_CONFIG_FILE_PATH: str = "./config/Config_artifact_label.yaml"
|
||||
ARTIFACT_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||
"InputConfig": {
|
||||
"orgBcgFreq": 1000,
|
||||
"BCGFreq": 1000
|
||||
},
|
||||
"CustomAutoplayArgs": {
|
||||
"MoveLength": 15000,
|
||||
"MaxRange": 60000,
|
||||
"MoveSpeed": 1000
|
||||
}
|
||||
}
|
||||
ARTIFACT_LABEL_INPUT_ORGBCG_FILENAME: str = "orgBcg_Sync_"
|
||||
ARTIFACT_LABEL_INPUT_BCG_FILENAME: str = "BCG_Sync_"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_A: str = "Artifact_a"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_B: str = "Artifact_b"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_C: str = "Artifact_c"
|
||||
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# TODO:弃用
|
||||
# 通用
|
||||
VALIDATOR_INTEGER = QIntValidator(-2**31, 2**31 - 1)
|
||||
VALIDATOR_DOUBLE = QDoubleValidator(-1e100, 1e100, 10)
|
||||
|
||||
# 体动打标
|
||||
ARTIFACT_LABEL_INPUT_BCG_FILENAME: str = "BCG_sync_"
|
||||
ARTIFACT_LABEL_INPUT_XINXIAO_FILENAME: str = "orgBcg_sync_"
|
||||
ARTIFACT_LABEL_SAVE_TXT_ARTIFACT_FILENAME: str = "Artifact_a"
|
||||
ARTIFACT_LABEL_SAVE_TXT_ARTIFACT_AMOUNT_FILENAME: str = "Artifact_b"
|
||||
ARTIFACT_LABEL_SAVE_CSV_ARTIFACT_FILENAME: str = "Artifact_c"
|
||||
|
||||
ARTIFACT_LABEL_INPUT_XINXIAO_DEFAULT_FS: int = 1000
|
||||
ARTIFACT_LABEL_INPUT_BCG_DEFAULT_FS: int = 1000
|
||||
|
||||
ARTIFACT_LABEL_MOVELENGTH_DEFAULT: int = 15000
|
||||
ARTIFACT_LABEL_MAXRANGE_DEFAULT: int = 60000
|
||||
ARTIFACT_LABEL_MOVESPEED_DEFAULT: int = 1000
|
||||
|
||||
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
||||
|
||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
|
||||
# 质量打标
|
||||
BCG_QUALITY_LABEL_INPUT_BCG_FILENAME: str = "BCG_sync_"
|
||||
BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME: str = "Artifact_a"
|
||||
|
||||
@ -357,40 +357,45 @@ class Constants:
|
||||
}
|
||||
|
||||
# 体动标注
|
||||
ARTIFACT_LABEL_LOADING_ARCHIVE: str = "正在获取历史存档"
|
||||
ARTIFACT_LABEL_ARCHIVE_EXIST: str = "找到历史存档,成功读取"
|
||||
ARTIFACT_LABEL_ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档"
|
||||
|
||||
# TODO:弃用
|
||||
# 体动打标
|
||||
ARTIFACT_LABEL_FILES_NOT_FOUND: str = f"无法找到{ConfigParams.ARTIFACT_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}或{ConfigParams.ARTIFACT_LABEL_INPUT_XINXIAO_FILENAME}{ConfigParams.ENDSWITH_TXT},无法执行<体动标注>"
|
||||
ARTIFACT_LABEL_FILES_FOUND: str = f"找到{ConfigParams.ARTIFACT_LABEL_INPUT_BCG_FILENAME}{ConfigParams.ENDSWITH_TXT}和{ConfigParams.ARTIFACT_LABEL_INPUT_XINXIAO_FILENAME}{ConfigParams.ENDSWITH_TXT}"
|
||||
ARTIFACT_LABEL_HISTORICAL_SAVE_FOUND: str = "找到历史存档文件,已成功读取"
|
||||
ARTIFACT_LABEL_UPDATING_TABLE: str = "正在更新表格"
|
||||
ARTIFACT_LABEL_UPDATING_INFO: str = "正在更新信息"
|
||||
ARTIFACT_LABEL_UPDATE_FINISHED: str = "更新完成"
|
||||
ARTIFACT_LABEL_UPDATE_FAILURE: str = "更新失败"
|
||||
|
||||
ARTIFACT_LABEL_RUNNING: str = "开始执行任务<体动标注>"
|
||||
ARTIFACT_LABEL_INPUT_FAILURE_LENGTH: str = "导入失败,两个输入信号的长度不相等"
|
||||
ARTIFACT_LABEL_INPUT_ARTIFACT_FAILURE_FORMAT: str = "导入体动失败,请检查体动标签格式"
|
||||
ARTIFACT_LABEL_INPUT_ARTIFACT_FAILURE_LENGTH: str = "导入体动失败,请检查体动长度是否为4的倍数"
|
||||
ARTIFACT_LABEL_DELETE_ARTIFACT_SUCCESSFULLY: str = "体动被删除"
|
||||
ARTIFACT_LABEL_DELETE_ARTIFACT_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_COLUMN_ORGBCG_SYNC: str = "orgBcg_sync"
|
||||
ARTIFACT_LABEL_COLUMN_BCG_SYNC: str = "BCG_sync"
|
||||
ARTIFACT_LABEL_AUTOPLAY_LEFT: str = "LEFT"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PAUSE: str = "PAUSE"
|
||||
ARTIFACT_LABEL_AUTOPLAY_RIGHT: str = "RIGHT"
|
||||
ARTIFACT_LABEL_AUTOPLAY_LEFT_INFO: str = "开始自动播放-向左"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PAUSE_INFO: str = "暂停自动播放"
|
||||
ARTIFACT_LABEL_AUTOPLAY_RIGHT_INFO: str = "开始自动播放-向右"
|
||||
ARTIFACT_LABEL_RECOVER_SCALE: str = "尺度恢复"
|
||||
ARTIFACT_LABEL_BUTTON_PRESS_EVENT: str = "button_press_event"
|
||||
ARTIFACT_LABEL_BUTTON_RELEASE_EVENT: str = "button_release_event"
|
||||
ARTIFACT_LABEL_MOTION_NOTIFY_EVENT: str = "motion_notify_event"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PRESET1_INFO: str = "切换到自动播放-预设1"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PRESET2_INFO: str = "切换到自动播放-预设2"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PRESET3_INFO: str = "切换到自动播放-预设3"
|
||||
ARTIFACT_LABEL_AUTOPLAY_PRESET_CUSTOM_INFO: str = "切换到自动播放-自定义"
|
||||
ARTIFACT_LABEL_CUSTOM_NAVIGATIONTOOLBAR_WIDGET_NAME: str = "MainWindow"
|
||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_NAME: str = f"标注体动({ConfigParams.ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY})"
|
||||
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; /* 设置背景颜色 */
|
||||
@ -443,6 +448,12 @@ class Constants:
|
||||
}"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 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的质量标注>"
|
||||
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}"
|
||||
|
||||
Reference in New Issue
Block a user