public void Init(int idSesion1, int idSession2) { try { using (var entidades = new Entidades()) { var relajacion = entidades.Sesiones .Where(s => s.Id == idSesion1) .Include(s => s.FrecuenciaCardiacas) .Include(s => s.Eegs) .Include(s => s.Temperaturas) .FirstOrDefault(); var atencion = entidades.Sesiones .Where(s => s.Id == idSession2) .Include(s => s.FrecuenciaCardiacas) .Include(s => s.Eegs) .Include(s => s.Temperaturas) .FirstOrDefault(); if (relajacion.Comentarios == "Relajación") { this.SesionRelajacion = relajacion; this.SesionConduccion = atencion; } else { this.SesionRelajacion = atencion; this.SesionConduccion = relajacion; } } //Frecuencia Cardiaca this.FrecuenciaCardiacasSc = new SeriesCollection(); var frecuenciasCardiacasR = new List <int>(); foreach (var item in this.SesionRelajacion.FrecuenciaCardiacas) { if (item.Valor > 60) { frecuenciasCardiacasR.Add((int)item.Valor); } } var lineSeriesHRRelajacion = new ColumnSeries { Title = "Relajación", Values = new ChartValues <int> { (int)frecuenciasCardiacasR.Average() }, Stroke = System.Windows.Media.Brushes.White, Fill = System.Windows.Media.Brushes.White, }; var frecuenciasCardiacasC = new List <int>(); foreach (var item in this.SesionConduccion.FrecuenciaCardiacas) { if (item.Valor > 60) { frecuenciasCardiacasC.Add((int)item.Valor); } } var lineSeriesHRConduccion = new ColumnSeries { Title = "Conducción", Values = new ChartValues <int> { (int)frecuenciasCardiacasC.Average() }, Stroke = System.Windows.Media.Brushes.Red, Fill = System.Windows.Media.Brushes.Red, }; FrecuenciaCardiacasSc.Add(lineSeriesHRRelajacion); FrecuenciaCardiacasSc.Add(lineSeriesHRConduccion); //Temperatura this.TemperaturasSc = new SeriesCollection(); var temperaturasR = new List <double>(); foreach (var item in this.SesionRelajacion.Temperaturas) { temperaturasR.Add((double)item.Valor); } var lineSeriesTempRelajacion = new ColumnSeries { Title = "Relajación", Values = new ChartValues <double> { (double)temperaturasR.Average() }, Stroke = System.Windows.Media.Brushes.White, Fill = System.Windows.Media.Brushes.White, }; var temperaturasC = new List <double>(); foreach (var item in this.SesionConduccion.Temperaturas) { temperaturasC.Add((double)item.Valor); } var lineSeriesTempConduccion = new ColumnSeries { Title = "Conducción", Values = new ChartValues <double> { (double)temperaturasC.Average() }, Stroke = System.Windows.Media.Brushes.Red, Fill = System.Windows.Media.Brushes.Red, }; TemperaturasSc.Add(lineSeriesTempRelajacion); TemperaturasSc.Add(lineSeriesTempConduccion); //Atencion EEG this.EegAtencionSc = new SeriesCollection(); var atencionR = new List <int>(); foreach (var item in this.SesionRelajacion.Eegs) { atencionR.Add((int)item.Attention); } var lineSeriesEegRelajacion = new ColumnSeries { Title = "Relajación", Values = new ChartValues <int> { (int)atencionR.Average() }, Stroke = System.Windows.Media.Brushes.White, Fill = System.Windows.Media.Brushes.White, }; var atencionC = new List <int>(); foreach (var item in this.SesionConduccion.Eegs) { atencionC.Add((int)item.Attention); } var lineSeriesEegConduccion = new ColumnSeries { Title = "Conducción", Values = new ChartValues <int> { (int)atencionC.Average() }, Stroke = System.Windows.Media.Brushes.Red, Fill = System.Windows.Media.Brushes.Red, }; EegAtencionSc.Add(lineSeriesEegRelajacion); EegAtencionSc.Add(lineSeriesEegConduccion); } catch (Exception ex) { var message = ex.Message; MessageBox.Show( "Ocurrió un problema al leer los datos registrados o no hay datos registrados", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Debug.WriteLine(ex.Message); Logger.Log.Error("Mensaje: ", ex); } }
/// <summary> /// Método de inicialización de la clase en la cual se /// trae de la base de datos el registro de los sensores /// y se crean SeriesCollection para el dibujado de los graficos /// </summary> /// <param name="idSesion"></param> public void Init(int idSesion) { try { Labels = new[] { 0, 50, 100 }; using (var entidades = new Entidades()) { this.Sesion = entidades.Sesiones .Where(s => s.Id == idSesion) .Include(s => s.FrecuenciaCardiacas) .Include(s => s.Eegs) .Include(s => s.Temperaturas) .FirstOrDefault(); } this.Fecha = String.Format("{0:dd/MM/yyyy - hh:mm t}", this.Sesion.Fecha); this.Comentario = this.Sesion.Comentarios; //Frecuencia Cardiaca FrecuenciaCardiacasSc = new SeriesCollection(); LabelsTimeHR = new string[this.Sesion.FrecuenciaCardiacas.Count]; int countH = 0; var lineSeriesHr = new LineSeries { Title = "BPM", Values = new ChartValues <int>(), Stroke = System.Windows.Media.Brushes.Yellow, PointGeometry = null, }; var avgHr = new List <int>(); foreach (var item in this.Sesion.FrecuenciaCardiacas) { lineSeriesHr.Values.Add((int)item.Valor); if (item.Valor > 60) { avgHr.Add((int)item.Valor); } LabelsTimeHR[countH] = item.FechaHora.TimeOfDay.ToString(@"hh\:mm\:ss"); countH++; } FrecuenciaCardiacasSc.Add(lineSeriesHr); //Temperaturas this.TemperaturasSc = new SeriesCollection(); LabelsTimeTemp = new string[this.Sesion.Temperaturas.Count]; int countT = 0; var lineSeriesTemp = new LineSeries { Title = "Centigrados", Values = new ChartValues <double>(), PointGeometry = null, }; var avgTemp = new List <double>(); foreach (var item in this.Sesion.Temperaturas) { lineSeriesTemp.Values.Add(Math.Round((double)item.Valor, 2)); avgTemp.Add((double)item.Valor); LabelsTimeTemp[countT] = item.FechaHora.TimeOfDay.ToString(@"hh\:mm\:ss"); countT++; } TemperaturasSc.Add(lineSeriesTemp); var mediaHr = Math.Round((double)avgHr.Average(), 2); var mediaTemp = Math.Round((double)avgTemp.Average(), 2); //Eeg ondas Alpha this.EegAlphaSc = new SeriesCollection(); var lineSeriesAlpha = new LineSeries { Title = "Alpha", Values = new ChartValues <float>(), PointGeometry = null, Stroke = System.Windows.Media.Brushes.Green, }; var maxAlpha = this.Sesion.Eegs.Max(s => s.LowAlpha); //var maxDelta = this.Sesion.Eegs.Max(s => s.Delta); List <decimal> datosAlpha = new List <decimal>(); LabelsTimeAplha = new string[this.Sesion.Eegs.Count]; int countA = 0; foreach (var item in this.Sesion.Eegs) { float valAlpha = ((item.LowAlpha * 100) / maxAlpha); lineSeriesAlpha.Values.Add(valAlpha); datosAlpha.Add((decimal)valAlpha); LabelsTimeAplha[countA] = item.FechaHora.TimeOfDay.ToString(@"hh\:mm\:ss"); countA++; } decimal resultA = datosAlpha.Average(); EegAlphaSc.Add(lineSeriesAlpha); //Eeg ondas Beta this.EegBetaSc = new SeriesCollection(); var lineSeriesBeta = new LineSeries { Title = "Beta ", Values = new ChartValues <float>(), PointGeometry = null, Stroke = System.Windows.Media.Brushes.Red }; var maxBeta = this.Sesion.Eegs.Max(s => s.LowBeta); List <decimal> datosBeta = new List <decimal>(); LabelsTimeBeta = new string[this.Sesion.Eegs.Count]; int countB = 0; foreach (var item in this.Sesion.Eegs) { float valBeta = ((item.LowBeta * 100) / maxBeta); lineSeriesBeta.Values.Add(valBeta); datosBeta.Add((decimal)valBeta); LabelsTimeBeta[countB] = item.FechaHora.TimeOfDay.ToString(@"hh\:mm\:ss"); countB++; } decimal resultB = datosBeta.Average(); EegBetaSc.Add(lineSeriesBeta); } catch (Exception ex) { MessageBox.Show( "Ocurrió un problema al leer los datos registrados o no hay datos registrados", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Debug.WriteLine(ex.Message); Logger.Log.Error("Mensaje: ", ex); } }