Merge branch 'master' into cxh_dev
# Conflicts: # func/Module_approximately_align.py
This commit is contained in:
@ -2,23 +2,82 @@ from PySide6.QtGui import QIntValidator, QDoubleValidator
|
||||
from matplotlib.ticker import FuncFormatter
|
||||
|
||||
|
||||
class ConfigParams:
|
||||
class Filename:
|
||||
# 文件命名
|
||||
PATH_ORGBCG_TEXT: str = "OrgBCG_Text"
|
||||
PATH_PSG_TEXT: str = "PSG_Text"
|
||||
PATH_ORGBCG_ALIGNED: str = "OrgBCG_Aligned"
|
||||
PATH_PSG_ALIGNED: str = "PSG_Aligned"
|
||||
PATH_ORGBCG_ORIGIN: str = "OrgBCG_Origin"
|
||||
PATH_PSG_ORIGIN: str = "PSG_Origin"
|
||||
PATH_LABEL: str = "Label"
|
||||
PATH_REVEIVE_ORIGIN: str = "Receive_Origin"
|
||||
PATH_REPORT: str = "Report"
|
||||
PATH_SAMPID: str = "<sampID>"
|
||||
SUFFIX_FREQ: str = "采样率"
|
||||
|
||||
# Folder: OrgBCG_Text
|
||||
ORGBCG_RAW: str = "OrgBCG_Raw_"
|
||||
BCG_FILTER: str = "BCG_Filter_"
|
||||
JPEAK_REVISE: str = "Jpeak_revise_"
|
||||
JPEAK_REVISE_CORRECTED: str = "Jpeak_revise_corrected_"
|
||||
|
||||
# Folder: PSG_Text
|
||||
ECG_RAW: str = "ECG II_Raw_"
|
||||
THO_RAW: str = "Effort Tho_Raw_"
|
||||
ABD_RAW: str = "Effort Abd_Raw_"
|
||||
FLOWT_RAW: str = "Flow T_Raw_"
|
||||
FLOWP_RAW: str = "Flow P_Raw_"
|
||||
SNORE_RAW: str = "Snore_Raw_"
|
||||
SPO2_RAW: str = "SpO2_Raw_"
|
||||
FIVE_CLASS_RAW: str = "5_class_Raw_"
|
||||
STARTTIME_RAW: str = "StartTime_Raw"
|
||||
SA_LABEL_RAW: str = "SA Label_Raw"
|
||||
ECG_FILTER: str = "ECG_Filter_"
|
||||
RPEAK_FINAL: str = "Rpeak_final_"
|
||||
RPEAK_FINAL_CORRECTED: str = "Rpeak_final_corrected_"
|
||||
|
||||
# Folder: OrgBCG_Aligned
|
||||
ORGBCG_SYNC: str = "OrgBCG_Sync_"
|
||||
BCG_SYNC: str = "BCG_Sync_"
|
||||
|
||||
# Folder: PSG_Aligned
|
||||
ECG_SYNC: str = "ECG_Sync_"
|
||||
THO_SYNC: str = "Effort Tho_Sync_"
|
||||
ABD_SYNC: str = "Effort Abd_Sync_"
|
||||
FLOWT_SYNC: str = "Flow T_Sync_"
|
||||
FLOWP_SYNC: str = "Flow P_Sync_"
|
||||
SNORE_SYNC: str = "Snore_Sync_"
|
||||
SPO2_SYNC: str = "SpO2_Sync_"
|
||||
FIVE_CLASS_SYNC: str = "5_class_Sync_"
|
||||
SA_LABEL_SYNC: str = "SA Label_Sync"
|
||||
JPEAK_SYNC: str = "Jpeak_Sync_"
|
||||
RPEAK_SYNC: str = "Rpeak_Sync_"
|
||||
|
||||
# Folder: Label
|
||||
APPROXIMATELY_ALIGN_INFO: str = "Approximately_Align_Info"
|
||||
PRECISELY_ALIGN_INFO: str = "Precisely_Align_Info"
|
||||
ARTIFACT_A: str = "Artifact_a_"
|
||||
ARTIFACT_B: str = "Artifact_b_"
|
||||
ARTIFACT_C: str = "Artifact_c_"
|
||||
SA_LABEL_CORRECTED: str = "SA Label_corrected"
|
||||
SA_LABEL_ADD: str = "SA Label_add"
|
||||
RESP_QUALITY_LABEL: str = "Resp_quality_label"
|
||||
THO_PEAK: str = "Tho_peak_"
|
||||
SQ_LABEL_10S: str = "SQ_label_10s"
|
||||
SQ_LABEL_30S: str = "SQ_label_30s"
|
||||
|
||||
|
||||
class Params:
|
||||
|
||||
# 公共
|
||||
PUBLIC_CONFIG_FILE_PATH: str = "./config/Config_public.yaml"
|
||||
PUBLIC_PATH_ORGBCG_TEXT: str = "OrgBCG_Text"
|
||||
PUBLIC_PATH_PSG_TEXT: str = "PSG_Text"
|
||||
PUBLIC_PATH_ORGBCG_ALIGNED: str = "OrgBCG_Aligned"
|
||||
PUBLIC_PATH_PSG_ALIGNED: str = "PSG_Aligned"
|
||||
PUBLIC_PATH_LABEL: str = "Label"
|
||||
PUBLIC_CONFIG_NEW_CONTENT = {
|
||||
"Path": {
|
||||
"Root": ""
|
||||
}
|
||||
}
|
||||
UTF8_ENCODING: str = "utf-8"
|
||||
# 目前用到这个编码的地方:
|
||||
# <BCG的质量评估打标>里的保存和读取csv文件的地方(注意的是,读取原始数据时依然使用UTF-8)
|
||||
GBK_ENCODING: str = "gbk"
|
||||
ENDSWITH_TXT: str = ".txt"
|
||||
ENDSWITH_CSV: str = ".csv"
|
||||
@ -30,45 +89,6 @@ class ConfigParams:
|
||||
VALIDATOR_INTEGER = QIntValidator(-2**31, 2**31 - 1)
|
||||
VALIDATOR_DOUBLE = QDoubleValidator(-1e100, 1e100, 10)
|
||||
|
||||
# 文件命名
|
||||
ORGBCG_RAW: str = "OrgBCG_Raw_"
|
||||
ECG_RAW: str = "ECG II_Raw_"
|
||||
THO_RAW: str = "Effort Tho_Raw_"
|
||||
ABD_RAW: str = "Effort Abd_Raw_"
|
||||
FLOWT_RAW: str = "Flow T_Raw_"
|
||||
FLOWP_RAW: str = "Flow P_Raw_"
|
||||
SNORE_RAW: str = "Snore_Raw_"
|
||||
SPO2_RAW: str = "SpO2_Raw_"
|
||||
FIVE_CLASS_RAW: str = "5_class_Raw_"
|
||||
STARTTIME_RAW: str = "StartTime_Raw_"
|
||||
SA_LABEL_RAW: str = "SA Label_Raw_"
|
||||
BCG_FILTER: str = "BCG_Filter_"
|
||||
ECG_FILTER: str = "ECG_Filter_"
|
||||
JPEAK_REVISE: str = "Jpeak_revise_"
|
||||
RPEAK_FINAL: str = "Rpeak_final_"
|
||||
JPEAK_REVISE_CORRECTED: str = "Jpeak_revise_corrected_"
|
||||
RPEAK_FINAL_CORRECTED: str = "Rpeak_final_corrected_"
|
||||
APPROXIMATELY_ALIGN_INFO: str = "Approximately_Align_Info"
|
||||
PRECISELY_ALIGN_INFO: str = "Precisely_Align_Info"
|
||||
ARTIFACT_A: str = "Artifact_a"
|
||||
ARTIFACT_B: str = "Artifact_b"
|
||||
ARTIFACT_C: str = "Artifact_c"
|
||||
BCG_SYNC: str = "BCG_Sync_"
|
||||
ECG_SYNC: str = "ECG_Sync_"
|
||||
JPEAK_SYNC: str = "Jpeak_Sync_"
|
||||
RPEAK_SYNC: str = "Rpeak_Sync_"
|
||||
ORGBCG_SYNC: str = "OrgBCG_Sync_"
|
||||
THO_SYNC: str = "Effort Tho_Sync_"
|
||||
ABD_SYNC: str = "Effort Abd_Sync_"
|
||||
FLOWT_SYNC: str = "Flow T_Sync_"
|
||||
FLOWP_SYNC: str = "Flow P_Sync_"
|
||||
SNORE_SYNC: str = "Snore_Sync_"
|
||||
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"
|
||||
APPROXIMATELY_ALIGN_CONFIG_NEW_CONTENT: dict = {
|
||||
@ -195,29 +215,29 @@ class ConfigParams:
|
||||
CUT_PSG_CONFIG_NEW_CONTENT: dict = {
|
||||
"ECGFreq": 1000,
|
||||
"ChannelInput": {
|
||||
"Effort Tho": THO_RAW,
|
||||
"Effort Abd": ABD_RAW,
|
||||
"Flow T": FLOWT_RAW,
|
||||
"Flow P": FLOWP_RAW,
|
||||
"Snore": SNORE_RAW,
|
||||
"SpO2": SPO2_RAW,
|
||||
"5_class": FIVE_CLASS_RAW
|
||||
"Effort Tho": Filename.THO_RAW,
|
||||
"Effort Abd": Filename.ABD_RAW,
|
||||
"Flow T": Filename.FLOWT_RAW,
|
||||
"Flow P": Filename.FLOWP_RAW,
|
||||
"Snore": Filename.SNORE_RAW,
|
||||
"SpO2": Filename.SPO2_RAW,
|
||||
"5_class": Filename.FIVE_CLASS_RAW
|
||||
},
|
||||
"LabelInput": {
|
||||
"SA Label": SA_LABEL_RAW
|
||||
"SA Label": Filename.SA_LABEL_RAW
|
||||
},
|
||||
"StartTime": STARTTIME_RAW,
|
||||
"StartTime": Filename.STARTTIME_RAW,
|
||||
"ChannelSave": {
|
||||
"Effort Tho": THO_SYNC,
|
||||
"Effort Abd": ABD_SYNC,
|
||||
"Flow T": FLOWT_SYNC,
|
||||
"Flow P": FLOWP_SYNC,
|
||||
"Snore": SNORE_SYNC,
|
||||
"SpO2": SPO2_SYNC,
|
||||
"5_class": FIVE_CLASS_SYNC
|
||||
"Effort Tho": Filename.THO_SYNC,
|
||||
"Effort Abd": Filename.ABD_SYNC,
|
||||
"Flow T": Filename.FLOWT_SYNC,
|
||||
"Flow P": Filename.FLOWP_SYNC,
|
||||
"Snore": Filename.SNORE_SYNC,
|
||||
"SpO2": Filename.SPO2_SYNC,
|
||||
"5_class": Filename.FIVE_CLASS_SYNC
|
||||
},
|
||||
"LabelSave": {
|
||||
"SA Label": SA_LABEL_SYNC
|
||||
"SA Label": Filename.SA_LABEL_SYNC
|
||||
},
|
||||
"EndWith": {
|
||||
"Effort Tho": ENDSWITH_TXT,
|
||||
@ -251,6 +271,44 @@ class ConfigParams:
|
||||
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
# BCG的质量标注
|
||||
BCG_QUALITY_LABEL_CONFIG_FILE_PATH: str = "./config/Config_bcg_quality_label.yaml"
|
||||
BCG_QUALITY_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||
"InputConfig": {
|
||||
"BCGFreq": 1000,
|
||||
"UseFreq": 1000
|
||||
}
|
||||
}
|
||||
BCG_QUALITY_LABEL_BTN_PREV_SHORTCUT_KEY: str = "A"
|
||||
BCG_QUALITY_LABEL_BTN_NEXT_SHORTCUT_KEY: str = "D"
|
||||
|
||||
# 呼吸可用性及间期标注
|
||||
RESP_QUALITY_LABEL_CONFIG_FILE_PATH: str = "./config/Config_resp_quality_label.yaml"
|
||||
RESP_QUALITY_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||
"InputConfig": {
|
||||
"OrgBCGFreq": 1000,
|
||||
"ThoFreq": 100,
|
||||
"OrgBCGUseFreq": 1000,
|
||||
"ThoUseFreq": 100
|
||||
},
|
||||
"Threshold": {
|
||||
"Low": 0.65,
|
||||
"High": 0.8
|
||||
},
|
||||
"FindPeaks" : {
|
||||
"MinInterval": 300,
|
||||
"MinHeight": 0.1
|
||||
},
|
||||
"Filter": {
|
||||
"BandPassLow": 0.1,
|
||||
"BandPassHigh": 1
|
||||
}
|
||||
}
|
||||
RESP_QUALITY_LABEL_PREPROCESS_FC: int = 1
|
||||
RESP_QUALITY_LABEL_PARTS_TIME_SEC: int = 30
|
||||
RESP_QUALITY_LABEL_LABEL_TRANSPARENCY: float = 0.2
|
||||
RESP_QUALITY_LABEL_ACTION_LABEL_MULTIPLE_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
# 睡眠呼吸暂停事件标注
|
||||
SA_LABEL_CONFIG_FILE_PATH: str = "./config/Config_SA_label.yaml"
|
||||
SA_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||
@ -281,62 +339,10 @@ class ConfigParams:
|
||||
SA_LABEL_RADIOBUTTON_2_CLASS_SHORTCUT_KEY: str = "I"
|
||||
SA_LABEL_RADIOBUTTON_3_CLASS_SHORTCUT_KEY: str = "O"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 质量打标
|
||||
BCG_QUALITY_LABEL_INPUT_BCG_FILENAME: str = "BCG_sync_"
|
||||
BCG_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME: str = "Artifact_a"
|
||||
BCG_QUALITY_LABEL_SAVE_FILENAME: str = "SQ_label_"
|
||||
|
||||
BCG_QUALITY_LABEL_INPUT_DEFAULT_FS: int = 1000
|
||||
|
||||
BCG_QUALITY_LABEL_SAVE_MODE_10S: str = "10s"
|
||||
BCG_QUALITY_LABEL_SAVE_MODE_30S: str = "30s"
|
||||
|
||||
BCG_QUALITY_LABEL_MODE_10S_LENGTH = 10 * BCG_QUALITY_LABEL_INPUT_DEFAULT_FS
|
||||
BCG_QUALITY_LABEL_MODE_30S_LENGTH = 30 * BCG_QUALITY_LABEL_INPUT_DEFAULT_FS
|
||||
|
||||
# 呼吸可用性及间期标注
|
||||
RESP_QUALITY_LABEL_INPUT_XINXIAO_FILENAME: str = "orgBcg_sync_"
|
||||
RESP_QUALITY_LABEL_INPUT_THO_FILENAME: str = "Effort_Tho_sync_"
|
||||
RESP_QUALITY_LABEL_INPUT_ARTIFACT_FILENAME: str = "Artifact_a"
|
||||
RESP_QUALITY_LABEL_SAVE_RESP_QUALITY_LABNEL_FILENAME: str = "Resp_quality_label"
|
||||
RESP_QUALITY_LABEL_SAVE_THO_PEAK_FILENAME: str = "Tho_peak"
|
||||
|
||||
RESP_QUALITY_LABEL_INPUT_XINXIAO_DEFAULT_FS: int = 1000
|
||||
RESP_QUALITY_LABEL_INPUT_THO_DEFAULT_FS: int = 200
|
||||
|
||||
RESP_QUALITY_LABEL_PARTS_TIME_SEC: int = 30
|
||||
RESP_QUALITY_LABEL_PREPROCESS_FC: int = 1
|
||||
|
||||
RESP_QUALITY_LABEL_THRESHOLD1_DEFAULT: float = 0.65
|
||||
RESP_QUALITY_LABEL_THRESHOLD2_DEFAULT: float = 0.8
|
||||
RESP_QUALITY_LABEL_FINDPEAKS_MIN_INTERVAL_DEFAULT: int = 300
|
||||
RESP_QUALITY_LABEL_FINDPEAKS_MIN_HEIGHT_DEFAULT: float = 0.1
|
||||
RESP_QUALITY_LABEL_CUSTOM_LOW_DEFAULT: float = 0.1
|
||||
RESP_QUALITY_LABEL_CUSTOM_HIGH_DEFAULT: float = 1
|
||||
|
||||
RESP_QUALITY_LABEL_LABEL_TRANSPARENCY: float = 0.2
|
||||
|
||||
RESP_QUALITY_LABEL_ACTION_LABEL_MULTIPLE_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
|
||||
# 睡眠呼吸暂停事件打标
|
||||
|
||||
|
||||
# 禁止实例化
|
||||
def __new__(cls):
|
||||
raise TypeError("Constants class cannot be instantiated")
|
||||
|
||||
|
||||
# 禁止修改常量
|
||||
@classmethod
|
||||
def __setattr__(cls, key, value):
|
||||
|
||||
Reference in New Issue
Block a user