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 Heart_Class_Params; Aborted = false; if (!Runnable()) _ended = true; else { _ended = false; InputEcGbaselineWorker = new ECG_Baseline_Data_Worker(Params.AnalysisName); InputEcGbaselineWorker.Load(); InputECGbaselineData = InputEcGbaselineWorker.Data; InputRpeaksWorker = new R_Peaks_Data_Worker(Params.AnalysisName); InputRpeaksWorker.Load(); InputRpeaksData = InputRpeaksWorker.Data; InputWavesWorker = new Waves_Data_Worker(Params.AnalysisName); InputWavesWorker.Load(); InputWavesData = InputWavesWorker.Data; OutputWorker = new Heart_Class_Data_Worker(Params.AnalysisName); OutputData = new Heart_Class_Data(); _currentChannelIndex = 0; _samplesProcessed = 0; NumberOfChannels = InputECGbaselineData.SignalsFiltered.Count; _currentChannelLength = InputECGbaselineData.SignalsFiltered[_currentChannelIndex].Item2.Count; _currentVector = Vector<Double>.Build.Dense(_currentChannelLength); qrsEndStep = 10; i = 10; step = InputWavesData.QRSEnds[_currentChannelIndex].Item2[qrsEndStep]; //ilośc próbek, aż do indeksu końca 10 załamka _tempClassResult = new List<Tuple<int, int>>(); } }