public void Load() { R_Peaks_Data basicData = new R_Peaks_Data(); XMLConverter converter = new XMLConverter(analysisName); XmlDocument file = new XmlDocument(); string fileName = analysisName + "_Data.xml"; file.Load(System.IO.Path.Combine(directory, fileName)); XmlNodeList modules = file.SelectNodes("EKG/module"); string moduleName = this.GetType().Name; moduleName = moduleName.Replace("_Data_Worker", ""); foreach (XmlNode module in modules) { if (module.Attributes["name"].Value == moduleName) { List<Tuple<string, Vector<double>>> RPeaks = new List<Tuple<string, Vector<double>>>(); XmlNodeList rPeaks = module.SelectNodes("RPeaks"); foreach (XmlNode rPeak in rPeaks) { XmlNode lead = rPeak["lead"]; string readLead = lead.InnerText; XmlNode indices = rPeak["indices"]; string readIndices = indices.InnerText; Vector<double> readDigits = converter.stringToVector(readIndices); Tuple<string, Vector<double>> readRPeak = Tuple.Create(readLead, readDigits); RPeaks.Add(readRPeak); } basicData.RPeaks = RPeaks; List<Tuple<string, Vector<double>>> RRInterval = new List<Tuple<string, Vector<double>>>(); XmlNodeList intervals = module.SelectNodes("RRInterval"); foreach (XmlNode interval in intervals) { XmlNode lead = interval["lead"]; string readLead = lead.InnerText; XmlNode samples = interval["intervals"]; string readSamples = samples.InnerText; Vector<double> readDigits = converter.stringToVector(readSamples); Tuple<string, Vector<double>> readInterval = Tuple.Create(readLead, readDigits); RRInterval.Add(readInterval); } basicData.RRInterval = RRInterval; } } this.Data = basicData; }
public void Init(ModuleParams parameters) { Params = parameters as R_Peaks_Params; Aborted = false; if (!Runnable()) _ended = true; else { _ended = false; InputWorker_basic = new Basic_Data_Worker(Params.AnalysisName); InputWorker_basic.Load(); InputData_basic = InputWorker_basic.BasicData; InputWorker = new ECG_Baseline_Data_Worker(Params.AnalysisName); InputWorker.Load(); InputData = InputWorker.Data; OutputWorker = new R_Peaks_Data_Worker(Params.AnalysisName); OutputData = new R_Peaks_Data(); _currentChannelIndex = 0; _samplesProcessed = 0; _lastRPeak = 0; _numRPeaks = 0; NumberOfChannels = InputData.SignalsFiltered.Count; _currentChannelLength = InputData.SignalsFiltered[_currentChannelIndex].Item2.Count; _currentVector = Vector<Double>.Build.Dense(_currentChannelLength); _currentVectorRRInterval = Vector<Double>.Build.Dense(_currentChannelLength); _totalVector = Vector<Double>.Build.Dense(_currentChannelLength); } }