public ModulePanel() { InitializeComponent(); var ecgBaseline = new ModuleOption(AvailableOptions.ECG_BASELINE, this); ecgBaseline. AddSuboptionAndMoveDown(AvailableOptions.R_PEAKS). AddSuboption(AvailableOptions.HRV1). AddSuboption(AvailableOptions.HRV2). AddSuboptionAndMoveDown(AvailableOptions.WAVES). AddSuboption(AvailableOptions.ST_SEGMENT). AddSuboption(AvailableOptions.T_WAVE_ALT). AddSuboption(AvailableOptions.SLEEP_APNEA). AddSuboptionAndMoveDown(AvailableOptions.HEART_CLASS). AddSuboption(AvailableOptions.HRT). AddSuboptionAndMoveUp(AvailableOptions.HEART_AXIS). AddSuboption(AvailableOptions.ATRIAL_FIBER). AddSuboption(AvailableOptions.QT_DISP). AddSuboptionAndMoveUp(AvailableOptions.FLUTTER). AddSuboption(AvailableOptions.HRV_DFA). AddSuboptionAndMoveUp(AvailableOptions.SIG_EDR); var testModule = new ModuleOption(AvailableOptions.TEST_MODULE, this); Options.Add(ecgBaseline); Options.Add(testModule); this.treeViewModules.ItemsSource = this.Options; }
public ModuleOption(AvailableOptions code, ModulePanel panel, ModuleOption parent = null) { this.Code = code; this.Name = code.ToString(); this.Set = false; this.Parent = parent; this.Panel = panel; this.AnalysisName = panel.AnalysisName; switch (this.Code) { case AvailableOptions.ECG_BASELINE: this.ModuleParam = new ECG_Baseline_Params(); panel.OptionParams[this] = this.ModuleParam; panel.Params[this.Code] = this.ModuleParam; break; case AvailableOptions.R_PEAKS: this.ModuleParam = new R_Peaks_Params(R_Peaks_Method.EMD, this.getAnalysisName()); panel.OptionParams[this] = this.ModuleParam; panel.Params[this.Code] = this.ModuleParam; break; case AvailableOptions.WAVES: this.ModuleParam = new Waves_Params(); panel.OptionParams[this] = this.ModuleParam; panel.Params[this.Code] = this.ModuleParam; break; case AvailableOptions.ATRIAL_FIBER: this.ModuleParam = new Atrial_Fibr_Params(Detect_Method.POINCARE); panel.OptionParams[this] = this.ModuleParam; panel.Params[this.Code] = this.ModuleParam; break; default: this.ModuleParam = null; break; } }
public List<ModuleOption> getSuboptions(ModuleOption option, List<ModuleOption> currentOptions) { currentOptions.Add(option); if (option.Suboptions.Any()) { foreach (var suboption in option.Suboptions) { currentOptions = getSuboptions(suboption, currentOptions); } } return currentOptions; }
public ModuleOption AddSuboptionAndMoveDown(AvailableOptions code) { var suboption = new ModuleOption(code, this.Panel, this); this.Suboptions.Add(suboption); return suboption; }