//VISTA LISTA DE  PACIENTES NO VACUNADOS
        public ActionResult ListaDePacientes()
        {
            var lista     = Singleton.Instance.ListaDeEspera;
            var heap      = Singleton.Instance.MinheapPacientes;
            var hashtable = Singleton.Instance.TablaHashPacientes;

            foreach (Paciente paciente1 in lista)
            {
                lista.Remove(0);
            }



            for (int i = 0; i < heap.elementos.Count(); i++)
            {
                string key      = heap.elementos.Nodeatposition(i).Data.DPI;
                var    paciente = new Models.Data.Paciente();
                paciente = hashtable.GetNode(key);
                paciente.FechaDeVacunacion = fecha;
                if (paciente.Vacunado == false && paciente.Municipio == municipiologgeado)
                {
                    lista.AddLast(paciente);
                }
            }



            return(View(heap.elementos));
        }
        //VISTA PARA ASIGNAR FECHA  DE VACUNACION
        public ActionResult CalendarizarVacunacion()
        {
            csvPacientes = "";
            var lista = Singleton.Instance.ListaDeEspera;

            foreach (Paciente paciente1 in lista)
            {
                lista.Remove(0);
            }

            var heap              = Singleton.Instance.MinheapPacientes;
            var hashtable         = Singleton.Instance.TablaHashPacientes;
            int contadorPacientes = 0;

            for (int i = 0; i < heap.elementos.Count(); i++)
            {
                string key      = heap.elementos.Nodeatposition(i).Data.DPI;
                var    paciente = new Models.Data.Paciente();
                paciente = hashtable.GetNode(key);
                paciente.FechaDeVacunacion = fecha;
                contadorPacientes++;
                //COMPRUEBA LA CANTIDAD DE  VACUNADOS AL MISMO TIEMPO (MODIFICABLE)
                if (contadorPacientes == CantidadAVacunar)
                {
                    fecha             = fecha.AddDays(1);
                    contadorPacientes = 0;
                }
                lista.AddLast(paciente);
                EscribirTablaPacientes(paciente);
            }
            foreach (Paciente paciente in Singleton.Instance.ListaAuxiliar)
            {
                EscribirTablaPacientes(paciente);
            }
            foreach (Paciente paciente in Singleton.Instance.ListaDeVacunados)
            {
                EscribirTablaPacientes(paciente);
            }

            calendarizado = true;



            return(View(lista));
        }
        //METODO PARA AGREGAR PACIENTE
        public ActionResult AgregarPaciente(IFormCollection collection)
        {
            try
            {
                //PACIENTE CON TODA LA  INFORMACION
                var paciente = new Models.Data.Paciente();
                //PACIENTE SOLO CON NOMBRE
                var paciente2 = new Models.Data.Paciente();
                //PACIENTE SOLO CON APELLIDO
                var paciente3 = new Models.Data.Paciente();
                //PACIENTE SOLO CON DPI
                var paciente4 = new Models.Data.Paciente();

                {
                    paciente.Nombre       = collection["Nombre"];
                    paciente2.Nombre      = collection["Nombre"];
                    paciente.Apellido     = collection["Apellido"];
                    paciente3.Apellido    = collection["Apellido"];
                    paciente.DPI          = collection["DPI"];
                    paciente4.DPI         = collection["DPI"];
                    paciente.Departamento = collection["Departamento"];
                    paciente.Municipio    = municipiologgeado;
                    paciente.Edad         = Convert.ToInt32(collection["Edad"]);
                    paciente.Profesion    = collection["Profesion"];

                    paciente.Prioridad = calcularprioridad(paciente.Profesion, paciente.Edad);
                }
                //COMPROBACION DE QUE NO HAYA  UN DPI REPETIDO
                if (Singleton.Instance.TablaHashPacientes.GetNodeByKey(paciente.DPI) != (null, null))
                {
                    MostrarDialogo("El DPI ingresado no es válido");
                    return(View());
                }
                else
                {
                    Singleton.Instance.TablaHashPacientes.Add(paciente.DPI, paciente);


                    if (paciente.Municipio == municipiologgeado)
                    {
                        Singleton.Instance.MinheapPacientes.Add(paciente);
                        Singleton.Instance.ListaDeEspera.AddLast(paciente);
                    }
                    else
                    {
                        Singleton.Instance.ListaAuxiliar.AddLast(paciente);
                    }


                    Singleton.Instance.Buscarpaciente.AddTo(paciente4, Singleton.Instance.Buscarpaciente.Root, paciente.DPI);
                    Singleton.Instance.BuscarNombre.AddTo(paciente2, Singleton.Instance.BuscarNombre.Root, paciente.DPI);
                    Singleton.Instance.BuscarApellido.AddTo(paciente3, Singleton.Instance.BuscarApellido.Root, paciente.DPI);
                    ActualizarTablaPacientes();
                    LeerTablaPacientes();

                    calendarizado = false;


                    return(RedirectToAction(nameof(Index)));
                }
            }
        //VISTA PARA LA  BUSQUEDA
        public ActionResult BuscarPersona(string Buscado)
        {
            ViewData["GetDev"] = Buscado;
            var lista            = Singleton.Instance.Listabuscar;
            var pacienteDpi      = new Models.Data.Paciente();
            var pacienteapellido = new Models.Data.Paciente();
            var pacientenombre   = new Models.Data.Paciente();


            pacienteDpi.DPI           = Buscado;
            pacienteapellido.Apellido = Buscado;
            pacientenombre.Nombre     = Buscado;
            Paciente selectedDPI;
            Paciente selectedName;
            Paciente selectApellido;

            foreach (Paciente paciente5 in lista)
            {
                lista.Remove(0);
            }
            if (!string.IsNullOrEmpty(Buscado))

            {
                //búsqueda por DPI
                var selectedbuscadordpi = Singleton.Instance.Buscarpaciente.find(pacienteDpi, "-1", Singleton.Instance.Buscarpaciente.Root);
                if (selectedbuscadordpi.DPI != "-1")
                {
                    selectedDPI = Singleton.Instance.TablaHashPacientes.GetNode(selectedbuscadordpi.DPI);
                    if (selectedDPI.Municipio == municipiologgeado)
                    {
                        lista.AddLast(selectedDPI);
                    }

                    return(View(lista));
                }
                // búsqueda por apellido

                var selectedbuscadorapellido = Singleton.Instance.BuscarApellido.find(pacienteapellido, "-1", Singleton.Instance.BuscarApellido.Root);
                if (selectedbuscadorapellido.DPI != "-1")
                {
                    foreach (string dpi in selectedbuscadorapellido.Treelist)
                    {
                        selectApellido = Singleton.Instance.TablaHashPacientes.GetNode(dpi);
                        if (selectApellido.Municipio == municipiologgeado)
                        {
                            lista.AddLast(selectApellido);
                        }
                    }

                    return(View(lista));
                }
                //busqueda por  nombre
                var selectedbuscadornombre = Singleton.Instance.BuscarNombre.find(pacientenombre, "-1", Singleton.Instance.BuscarNombre.Root);
                if (selectedbuscadornombre.DPI != "-1")
                {
                    foreach (string dpi in selectedbuscadornombre.Treelist)
                    {
                        selectedName = Singleton.Instance.TablaHashPacientes.GetNode(dpi);
                        if (selectedName.Municipio == municipiologgeado)
                        {
                            lista.AddLast(selectedName);
                        }
                    }

                    return(View(lista));
                }
            }
            return(View(lista));
        }