//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)); }