public IActionResult DatosParaVacunacion(string Municipio)//Creacion Para Verificar a los primeros de la cola
        {
            Singleton.Instance.ListaMuesraPrimerosCola.Clear();
            Singleton.Instance.ListaParaFechas.Clear();
            if (Municipio != null)
            {
                DelegadosN    Prioridad       = new DelegadosN(CallDatosPersona.CompareToPrioridad);
                DatosPaciente PrimerPaciente  = new DatosPaciente();
                DatosPaciente SegundoPaciente = new DatosPaciente();
                DatosPaciente TercerPaciente  = new DatosPaciente();
                DatosPaciente NodoDefault     = new DatosPaciente();
                NodoDefault.NombrePaciente = "Ya no se encuentra ninguno mas";

                PrimerPaciente = Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).returnNode(Prioridad, NodoDefault);
                Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).HeapSort(Prioridad);
                Singleton.Instance.ListaMuesraPrimerosCola.Add(PrimerPaciente);
                Singleton.Instance.ListadePacientesParaV.Add(PrimerPaciente);

                SegundoPaciente = Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).returnNode(Prioridad, NodoDefault);
                Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).HeapSort(Prioridad);
                Singleton.Instance.ListaMuesraPrimerosCola.Add(SegundoPaciente);
                Singleton.Instance.ListadePacientesParaV.Add(SegundoPaciente);

                TercerPaciente = Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).returnNode(Prioridad, NodoDefault);
                Singleton.Instance.HospitalesColas.RetornarEstructura(Regex.Replace(Municipio, @"\s", "").ToUpper()).HeapSort(Prioridad);
                Singleton.Instance.ListaMuesraPrimerosCola.Add(TercerPaciente);
                Singleton.Instance.ListadePacientesParaV.Add(TercerPaciente);

                return(View(Singleton.Instance.ListaMuesraPrimerosCola));
            }
            return(View(Singleton.Instance.ListaMuesraPrimerosCola));
        }
        public IActionResult DatosParaAceptarPaciente(string ValidarCe, string DeclinarCe)
        {
            Singleton.Instance.ListaParaFechas.Clear();
            if (ValidarCe != null && Singleton.Instance.ListadePacientesParaV.Count != 0)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (Singleton.Instance.ListadePacientesParaV[i].Edad != 0)
                    {
                        if (Singleton.Instance.Contador >= 0 && Singleton.Instance.Contador <= 2)
                        {
                            DateTime Nueva = LLamadoFecha.FechaParaAsignar();
                            Singleton.Instance.EstructuraParaCitas.RetornarEstructura(Singleton.Instance.ListadePacientesParaV[i].Municipio).InsertarFecha(Singleton.Instance.ListadePacientesParaV[i], Nueva);
                            Singleton.Instance.ListaParaFechas.Add(Singleton.Instance.ListadePacientesParaV[i]);
                        }
                        else if (Singleton.Instance.Contador >= 3 && Singleton.Instance.Contador <= 5)
                        {
                            DateTime Nueva = LLamadoFecha.FechaParaAsignar();
                            Singleton.Instance.EstructuraParaCitas.RetornarEstructura(Singleton.Instance.ListadePacientesParaV[i].Municipio).InsertarFecha(Singleton.Instance.ListadePacientesParaV[i], Nueva);
                            Singleton.Instance.ListaParaFechas.Add(Singleton.Instance.ListadePacientesParaV[i]);
                        }
                        else
                        {
                            DateTime Nueva = LLamadoFecha.FechaParaAsignar();
                            Singleton.Instance.EstructuraParaCitas.RetornarEstructura(Singleton.Instance.ListadePacientesParaV[i].Municipio).InsertarFecha(Singleton.Instance.ListadePacientesParaV[i], Nueva);
                            Singleton.Instance.ListaParaFechas.Add(Singleton.Instance.ListadePacientesParaV[i]);
                        }
                    }
                }
                Singleton.Instance.ListadePacientesParaV.Clear();
                return(RedirectToAction("FechadeCitas"));
            }
            else if (DeclinarCe != null && Singleton.Instance.ListadePacientesParaV.Count != 0)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (Singleton.Instance.ListadePacientesParaV[i].Edad > 0)
                    {
                        DelegadosN Ordenar = new DelegadosN(CallDatosPersona.CompareToPrioridad);
                        Singleton.Instance.HospitalesColas.RetornarEstructura(Singleton.Instance.ListadePacientesParaV[i].Municipio).InsertQueue(Singleton.Instance.ListadePacientesParaV[i]);
                        Singleton.Instance.HospitalesColas.RetornarEstructura(Singleton.Instance.ListadePacientesParaV[i].Municipio).HeapSort(Ordenar);
                    }
                }
                Singleton.Instance.ListadePacientesParaV.Clear();

                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public IActionResult CrearCita(IFormCollection collection)
        {
            FuncionesDeApoyo CallFunc = new FuncionesDeApoyo();
            int PrioridadEdad = 0, PrioridadEnfermedad = 16, PrioridadTrabajo = 0;

            if (collection["Enfermedades"] == "1")
            {
                PrioridadEnfermedad = 7;
            }

            if (Singleton.Instance.ListaParaView[0].Edad >= 70)
            {
                PrioridadEdad = 7;
            }
            else if (Singleton.Instance.ListaParaView[0].Edad >= 50 && Singleton.Instance.ListaParaView[0].Edad <= 69)
            {
                PrioridadEdad = 8;
            }
            else if (Singleton.Instance.ListaParaView[0].Edad >= 40 && Singleton.Instance.ListaParaView[0].Edad <= 49)
            {
                PrioridadEdad = 13;
            }
            else
            {
                PrioridadEdad = 14;
            }
            PrioridadTrabajo = Convert.ToInt32(collection["Trabajo"]);
            int PrioridadTotal = CallFunc.Menor(PrioridadEdad, PrioridadEnfermedad, PrioridadTrabajo);
            var NuevaCrearCita = new Models.DatosPaciente
            {
                NombrePaciente         = Singleton.Instance.ListaParaView[0].NombrePaciente,
                ApellidoPaciente       = Singleton.Instance.ListaParaView[0].ApellidoPaciente,
                DPIPartidadenacimiento = Singleton.Instance.ListaParaView[0].DPIPartidadenacimiento,
                Edad           = Singleton.Instance.ListaParaView[0].Edad,
                Departamento   = Singleton.Instance.ListaParaView[0].Departamento,
                Enfermedades   = Regex.Replace(collection["Enfermedades"], @"\s", ""),
                Municipio      = Regex.Replace(collection["Municipio"], @"\s", "").ToUpper(),
                Prioridad      = PrioridadTotal,
                EstadoVacunado = "No"
            };

            novacunados += 1;

            //Ingreso de la posicion a la estructura de tabla hash

            int posicion = Singleton.Instance.TablaHashPacientes.FuncionHash(NuevaCrearCita.NombrePaciente, NuevaCrearCita.ApellidoPaciente, NuevaCrearCita.DPIPartidadenacimiento);
            NodoHash <DatosPaciente> datospaciente = new NodoHash <DatosPaciente>();

            datospaciente = Singleton.Instance.TablaHashPacientes.CrearNodo(NuevaCrearCita);
            Singleton.Instance.TablaHashPacientes.ArrayHash[posicion].insertarNodo(datospaciente);


            //Insertar datos en los arboles AVL
            //Nombre
            DelegadosN InvocarNombre = new DelegadosN(CallDatosPersona.CompareToNombre);

            Singleton.Instance.AccesoArbol.Insertar(NuevaCrearCita, InvocarNombre);
            //Apellido
            DelegadosN InvocarApellido = new DelegadosN(CallDatosPersona.CompareToApellido);

            Singleton.Instance.ArbolGeneralApellido.Insertar(NuevaCrearCita, InvocarApellido);
            //DPI
            DelegadosN InvocarDPI = new DelegadosN(CallDatosPersona.CompareToDPI);

            Singleton.Instance.ArbolGeneralDPI.Insertar(NuevaCrearCita, InvocarApellido);

            //Insertar en los hospitales
            DelegadosN Ordenar = new DelegadosN(CallDatosPersona.CompareToPrioridad);

            Singleton.Instance.HospitalesColas.RetornarEstructura(NuevaCrearCita.Municipio).InsertQueue(NuevaCrearCita);
            Singleton.Instance.HospitalesColas.RetornarEstructura(NuevaCrearCita.Municipio).HeapSort(Ordenar);
            Singleton.Instance.BusquedadHospitales.RetornarEstructura(NuevaCrearCita.Municipio).Insertar(NuevaCrearCita, InvocarNombre);
            Singleton.Instance.BusquedadHospitalApellido.RetornarEstructura(NuevaCrearCita.Municipio).Insertar(NuevaCrearCita, InvocarApellido);
            Singleton.Instance.BusquedadHospitalDPI.RetornarEstructura(NuevaCrearCita.Municipio).Insertar(NuevaCrearCita, InvocarDPI);


            Singleton.Instance.ListaParaView.Clear();

            return(RedirectToAction("Index"));
        }