Initial Commit.
This commit is contained in:
270
func/utils/ConfigParams.py
Normal file
270
func/utils/ConfigParams.py
Normal file
@ -0,0 +1,270 @@
|
||||
from PySide6.QtGui import QIntValidator, QDoubleValidator
|
||||
from matplotlib.ticker import FuncFormatter
|
||||
|
||||
|
||||
class ConfigParams:
|
||||
|
||||
|
||||
# 公共
|
||||
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"
|
||||
GBK_ENCODING: str = "gbk"
|
||||
ENDSWITH_TXT: str = ".txt"
|
||||
ENDSWITH_CSV: str = ".csv"
|
||||
ENDSWITH_EDF: str = ".edf"
|
||||
FORMATTER = FuncFormatter(lambda x, p: f"{x:.0f}")
|
||||
ACTION_PAN_SHORTCUT_KEY: str = "X"
|
||||
ACTION_ZOOM_SHORTCUT_KEY: str = "C"
|
||||
|
||||
# 数据粗同步
|
||||
|
||||
# 预处理
|
||||
PREPROCESS_CONFIG_FILE_PATH: str = "./config/Config_preprocess.yaml"
|
||||
PREPROCESS_CONFIG_NEW_CONTENT = {
|
||||
"InputConfig": {
|
||||
"Freq": 1000
|
||||
},
|
||||
"Filter": {
|
||||
"BCGBandPassOrder": 4,
|
||||
"BCGBandPassLow": 2,
|
||||
"BCGBandPassHigh": 10,
|
||||
"ECGBandPassOrder": 3,
|
||||
"ECGBandPassLow": 1,
|
||||
"ECGBandPassHigh": 25
|
||||
}
|
||||
}
|
||||
PREPROCESS_INPUT_BCG_FILENAME: str = "orgBcg_Raw_"
|
||||
PREPROCESS_INPUT_ECG_FILENAME: str = "ECG I_"
|
||||
PREPROCESS_SAVE_BCG_FILENAME: str = "DSbcg_sig_"
|
||||
PREPROCESS_SAVE_ECG_FILENAME: str = "ECG_filter_"
|
||||
PREPROCESS_SAVE_CHUNK_SIZE: int = 1000000
|
||||
|
||||
# BCG的J峰算法定位
|
||||
DETECT_JPEAK_CONFIG_FILE_PATH: str = "./config/Config_detect_Jpeak.yaml"
|
||||
DETECT_JPEAK_CONFIG_NEW_CONTENT = {
|
||||
"InputConfig": {
|
||||
"Freq": 1000
|
||||
},
|
||||
"Filter": {
|
||||
"BandPassLow": 2,
|
||||
"BandPassHigh": 10
|
||||
},
|
||||
"ModelFolderPath": "./func/detect_Jpeak_model",
|
||||
"PeaksValue": 100,
|
||||
"AmpValue": 5,
|
||||
"IntervalLow": 50,
|
||||
"IntervalHigh": 140,
|
||||
"UseCPU": False,
|
||||
"DetectMethod": ""
|
||||
}
|
||||
DETECT_JPEAK_INPUT_BCG_FILENAME: str = "DSbcg_sig_"
|
||||
DETECT_JPEAK_SAVE_FILENAME: str = "JPeak_revise"
|
||||
DETECT_JPEAK_SAVE_CHUNK_SIZE: int = 100
|
||||
|
||||
|
||||
|
||||
# TODO:弃用
|
||||
|
||||
# 通用
|
||||
|
||||
# 目前用到这个编码的地方:
|
||||
# <BCG的质量评估打标>里的保存和读取csv文件的地方(注意的是,读取原始数据时依然使用UTF-8)
|
||||
|
||||
|
||||
VALIDATOR_INTEGER = QIntValidator(-2**31, 2**31 - 1)
|
||||
VALIDATOR_DOUBLE = QDoubleValidator(-1e100, 1e100, 10)
|
||||
|
||||
|
||||
|
||||
FONT: str = "Microsoft YaHei UI"
|
||||
|
||||
|
||||
# 菜单界面
|
||||
MATPLOTLIB_PLOT_PRECISION_PARAM: int = 10000
|
||||
|
||||
|
||||
# 数据粗同步
|
||||
APPROXIMATELY_ALIGN_INPUT_ORGBCG_FILENAME: str = "orgBcg_Raw_"
|
||||
APPROXIMATELY_ALIGN_INPUT_PSG_FILENAME: str = "A"
|
||||
APPROXIMATELY_ALIGN_SAVE_FILENAME: str = "Approximately_Align_Info"
|
||||
|
||||
APPROXIMATELY_ALIGN_INPUT_ORGBCG_DEFAULT_FS: int = 1000
|
||||
APPROXIMATELY_ALIGN_INPUT_PSG_DEFAULT_FS: int = 100
|
||||
|
||||
APPROXIMATELY_ALIGN_THO_CUSTOM_CHANNEL_DEFAULT: int = 3
|
||||
APPROXIMATELY_ALIGN_ABD_CUSTOM_CHANNE_DEFAULT: int = 4
|
||||
APPROXIMATELY_ALIGN_BUTTERORDER_DEFAULT: int = 4
|
||||
APPROXIMATELY_ALIGN_BUTTERLOWPASSFREQ_CHANNE_DEFAULT: float = 0.01
|
||||
APPROXIMATELY_ALIGN_BUTTERHIGHPASSFREQ_DEFAULT: float = 0.70
|
||||
APPROXIMATELY_ALIGN_APPLYFREQ_DEFAULT: float = 5
|
||||
|
||||
|
||||
# 预处理
|
||||
# PREPROCESS_INPUT_BCG_FILENAME: str = "orgBcg_Raw_"
|
||||
# PREPROCESS_INPUT_ECG_FILENAME: str = "ECG I_"
|
||||
# PREPROCESS_SAVE_BCG_FILENAME: str = "DSbcg_sig_"
|
||||
# PREPROCESS_SAVE_ECG_FILENAME: str = "ECG_filter_"
|
||||
|
||||
# PREPROCESS_INPUT_BCG_DEFAULT_FS: int = 1000
|
||||
# PREPROCESS_INPUT_BCG_SAVE_DEFAULT_FS: int = 1000
|
||||
# PREPROCESS_INPUT_ECG_DEFAULT_FS: int = 1000
|
||||
# PREPROCESS_INPUT_ECG_SAVE_DEFAULT_FS: int = 1000
|
||||
#
|
||||
# PREPROCESS_BANDPASS_LOW_DEFAULT: int = 2
|
||||
# PREPROCESS_BANDPASS_HIGH_DEFAULT: int = 10
|
||||
# PREPROCESS_FILTER_ORDER_DEFAULT: int = 4
|
||||
#
|
||||
# PREPROCESS_FILTER_BCG: str = "bandpass"
|
||||
# PREPROCESS_FILTER_ECG: str = "bandpass"
|
||||
|
||||
|
||||
# ECG的R峰算法定位
|
||||
DETECT_R_PEAK_INPUT_ECG_FILENAME: str = "ECG_filter_"
|
||||
DETECT_R_PEAK_SAVE_RPEAK_FILENAME: str = "final_Rpeak"
|
||||
|
||||
DETECT_R_PEAK_INPUT_ECG_DEFAULT_FS: int = 1000
|
||||
|
||||
DETECT_R_PEAK_PEAKS_VALUE_DEFAULT: int = 200
|
||||
DETECT_R_PEAK_BANDPASS_LOW_DEFAULT: int = 2
|
||||
DETECT_R_PEAK_BANDPASS_HIGH_DEFAULT: int = 15
|
||||
|
||||
DETECT_R_PEAK_DETECT_METHOD_PT: str = "pt"
|
||||
DETECT_R_PEAK_DETECT_METHOD_TA: str = "ta"
|
||||
DETECT_R_PEAK_DETECT_METHOD_WT: str = "Wt"
|
||||
DETECT_R_PEAK_DETECT_METHOD_HAMILTON: str = "Hamilton"
|
||||
DETECT_R_PEAK_DETECT_METHOD_ENGZEE: str = "Engzee"
|
||||
|
||||
|
||||
# BCG的J峰算法定位
|
||||
DETECT_J_PEAK_INPUT_BCG_FILENAME: str = "DSbcg_sig_"
|
||||
DETECT_J_PEAK_SAVE_JPEAK_FILENAME: str = "JPeak_revise"
|
||||
|
||||
DETECT_J_PEAK_INPUT_BCG_DEFAULT_FS: int = 1000
|
||||
|
||||
DETECT_J_PEAK_BANDPASS_LOW_DEFAULT: int = 2
|
||||
DETECT_J_PEAK_BANDPASS_HIGH_DEFAULT: int = 10
|
||||
DETECT_J_PEAK_PEAKS_VALUE_DEFAULT: int = 100
|
||||
DETECT_J_PEAK_AMP_VALUE_DEFAULT: int = 5
|
||||
DETECT_J_PEAK_INTERVAL_LOW_DEFAULT: int = 50
|
||||
DETECT_J_PEAK_INTERVAL_HIGH_DEFAULT: int = 140
|
||||
|
||||
DETECT_J_PEAK_UNET_MODEL1_PKL_PATH: str = "./func/result/Fivelayer_Unet/1.pkl"
|
||||
DETECT_J_PEAK_UNET_MODEL2_PKL_PATH: str = "./func/result/Fivelayer_Unet/2.pkl"
|
||||
DETECT_J_PEAK_LSTMUNET_MODEL1_PKL_PATH: str = "./func/result/Fivelayer_Lstm_Unet/1.pkl"
|
||||
DETECT_J_PEAK_LSTMUNET_MODEL2_PKL_PATH: str = "./func/result/Fivelayer_Lstm_Unet/2.pkl"
|
||||
|
||||
DETECT_J_PEAK_UNET_MODEL1_NAME: str = "Fivelayer_Unet_1"
|
||||
DETECT_J_PEAK_UNET_MODEL2_NAME: str = "Fivelayer_Unet_2"
|
||||
DETECT_J_PEAK_LSTMUNET_MODEL1_NAME: str = "Fivelayer_Lstm_Unet_1"
|
||||
DETECT_J_PEAK_LSTMUNET_MODEL2_NAME: str = "Fivelayer_Lstm_Unet_2"
|
||||
|
||||
|
||||
# 人工纠正
|
||||
LABEL_CHECK_INPUT_BCG_FILENAME: str = "DSbcg_sig_"
|
||||
LABEL_CHECK_INPUT_JPEAK_FILENAME: str = "JPeak_revise"
|
||||
LABEL_CHECK_SAVE_JPEAK_FILENAME: str = "JPeak_revise_corrected"
|
||||
LABEL_CHECK_INPUT_ECG_FILENAME: str = "ECG_filter_"
|
||||
LABEL_CHECK_INPUT_RPEAK_FILENAME: str = "final_Rpeak"
|
||||
LABEL_CHECK_SAVE_RPEAK_FILENAME: str = "final_Rpeak_corrected"
|
||||
|
||||
LABEL_CHECK_INPUT_DEFAULT_FS: int = 1000
|
||||
|
||||
LABEL_CHECK_DATA1_FILTER_ORDER_DEFAULT: int = 2
|
||||
LABEL_CHECK_DATA1_BANDPASS_LOW_DEFAULT: int = 2
|
||||
LABEL_CHECK_DATA1_BANDPASS_HIGH_DEFAULT: int = 10
|
||||
LABEL_CHECK_DATA2_FILTER_ORDER_DEFAULT: int = 2
|
||||
LABEL_CHECK_DATA2_BANDPASS_LOW_DEFAULT: int = 2
|
||||
LABEL_CHECK_DATA2_BANDPASS_HIGH_DEFAULT: int = 15
|
||||
LABEL_CHECK_FINDPEAKS_MIN_INTERVAL_DEFAULT: int = 1000
|
||||
LABEL_CHECK_FINDPEAKS_MIN_HEIGHT_DEFAULT: int = 0.5
|
||||
LABEL_CHECK_MOVELENGTH_DEFAULT: int = 15000
|
||||
LABEL_CHECK_MAXRANGE_DEFAULT: int = 60000
|
||||
LABEL_CHECK_MOVESPEED_DEFAULT: int = 1000
|
||||
|
||||
LABEL_CHECK_FILTER: str = "bandpass"
|
||||
|
||||
LABEL_CHECK_LABEL_TRANSPARENCY: float = 0.2
|
||||
|
||||
LABEL_CHECK_ACTION_LABEL_MULTIPLE_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
|
||||
# 体动打标
|
||||
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"
|
||||
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):
|
||||
raise AttributeError("Cannot modify constants")
|
||||
Reference in New Issue
Block a user