private void cargarDistritos()
        {
            if (lbxCanton.Items.Count == 1)
            {
                //ResultadoTablas cant = (ResultadoTablas)cantones.Resultados.ElementAt(cbxCanton.SelectedIndex);
                ResultadoTablas cant = getElement(cantones, lbxCanton.Items[0].ToString());

                DTO dto = controlador.consultarDistritos(provinciaSeleccionada.Codigo.ToString(), cant.Codigo.ToString());
                distritos = dto.Resultados;

                ResultadoTablas obs;

                for (Iterator iter = dto.Resultados.getIterador(); iter.hasNext();)
                {
                    obs = (ResultadoTablas)iter.next();
                    cbxDistrito.Items.Add(obs.Nombre);
                }
            }
            else
            {
                //limpia los distritos
                cbxDistrito.Text = "";
                cbxDistrito.Items.Clear();
                lbxDistrito.Items.Clear();
                dtoConsultaDinamica.Distritos = null;
            }
        }
        private void cargarLesiones()
        {
            DTO dto = controlador.consultarTabla("Lesiones");

            tiposLesion = dto.Resultados;

            ResultadoTablas obs;

            for (Iterator iter = dto.Resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoTablas)iter.next();
                cbxLesion.Items.Add(obs.Nombre);
            }
        }
        private void cargarAfectados()
        {
            DTO dto = controlador.consultarTabla("Roles");

            tiposAfectado = dto.Resultados;

            ResultadoTablas obs;

            for (Iterator iter = dto.Resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoTablas)iter.next();
                cbxAfectado.Items.Add(obs.Nombre);
            }
        }
        private void cargarProvincias()
        {
            DTO dto = controlador.consultarTabla("Provincias");

            provincias = dto.Resultados;

            ResultadoTablas obs;

            for (Iterator iter = dto.Resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoTablas)iter.next();
                cbxProvincia.Items.Add(obs.Nombre);
            }
        }
        //Este se usa para cargar cantones o distritos, según la provincia o cantón seleccionados
        private ResultadoTablas getElement(ResultadosConsulta resultados, string nombre)
        {
            ResultadoTablas obs;

            for (Iterator iter = resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoTablas)iter.next();
                if (obs.Nombre.Equals(nombre))
                {
                    return(obs);
                }
            }
            return(null);
        }
        private void cargarEdadQ()
        {
            DTO dto = controlador.consultarTabla("Quinquenal");

            edadQuinquenal = dto.Resultados;

            ResultadoTablas obs;

            for (Iterator iter = dto.Resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoTablas)iter.next();
                cbxIndicadorEspecifico.Items.Add(obs.Nombre);
            }
        }
        //para el primer gráfico
        private Dictionary <string, int> getDatosGenerales(ResultadosConsulta consulta)
        {
            Dictionary <string, int>   datos = new Dictionary <string, int>();
            ResultadoConsultaIndicador obs;

            for (Iterator iter = consulta.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoConsultaIndicador)iter.next();

                if (datos.ContainsKey(obs.nombre))
                {
                    datos[obs.nombre] += obs.cantidad;
                }
                else
                {
                    datos.Add(obs.nombre, obs.cantidad);
                }
            }

            return(datos);
        }
        //para los otros gráficos, cuando el indicador es específico
        private Dictionary <string, int> getDatosMes(ResultadosConsulta consulta, int anno, string indEspecifico)
        {
            Dictionary <string, int>   datos = new Dictionary <string, int>();
            ResultadoConsultaIndicador obs;

            for (Iterator iter = consulta.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoConsultaIndicador)iter.next();

                if (obs.anno == anno && obs.nombre.Equals(indEspecifico))
                {
                    if (datos.ContainsKey(obs.mes))
                    {
                        datos[obs.mes] += obs.cantidad;
                    }
                    else
                    {
                        datos.Add(obs.mes, obs.cantidad);
                    }
                }
            }

            return(ordenarPorMes(datos));
        }
        private void procesarGrafico(ResultadosConsulta resultados)
        {
            ResultadoObserver     obs;
            Dictionary <int, int> edadesHombre      = new Dictionary <int, int>();
            Dictionary <int, int> edadesMujer       = new Dictionary <int, int>();
            Dictionary <int, int> edadesDesconocido = new Dictionary <int, int>();

            for (Iterator iter = resultados.getIterador(); iter.hasNext();)
            {
                obs = (ResultadoObserver)iter.next();
                if (obs.Sexo.Equals("Hombre"))
                {
                    if (edadesHombre.ContainsKey(obs.Edad))
                    {
                        edadesHombre[obs.Edad] += 1;
                    }
                    else
                    {
                        edadesHombre.Add(obs.Edad, 1);
                    }
                }
                else if (obs.Sexo.Equals("Mujer"))
                {
                    if (edadesMujer.ContainsKey(obs.Edad))
                    {
                        edadesMujer[obs.Edad] += 1;
                    }
                    else
                    {
                        edadesMujer.Add(obs.Edad, 1);
                    }
                }
                else //Desconocido
                {
                    if (edadesDesconocido.ContainsKey(obs.Edad))
                    {
                        edadesDesconocido[obs.Edad] += 1;
                    }
                    else
                    {
                        edadesDesconocido.Add(obs.Edad, 1);
                    }
                }
            }

            grafGeneral.Series.Clear();
            grafGeneral.Series.Add("Hombre");
            grafGeneral.Series.Add("Mujer");
            grafGeneral.Series.Add("Desconocido");

            grafGeneral.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            grafGeneral.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            grafGeneral.Series[2].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

            grafGeneral.Series[0].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
            grafGeneral.Series[1].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
            grafGeneral.Series[2].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;

            SortedDictionary <int, int> ordenado = ordenarDictionary(edadesHombre);

            grafGeneral.Series[0].Points.DataBindXY(ordenado.Keys, ordenado.Values);
            ordenado = ordenarDictionary(edadesMujer);
            grafGeneral.Series[1].Points.DataBindXY(ordenado.Keys, ordenado.Values);
            ordenado = ordenarDictionary(edadesDesconocido);
            grafGeneral.Series[2].Points.DataBindXY(ordenado.Keys, ordenado.Values);
        }
        public void notify(object observado, string rol)
        {
            ResultadosConsulta resultados = (ResultadosConsulta)Controlador.update(observado, rol);

            procesarGrafico(resultados);
        }