//Precondiciones: No tiene. public void agregarConsulta(Consulta consulta) { using (var db = SARMContext.getTenant(tenant)) { db.consultas.Add(consulta); db.SaveChanges(); //creo los turnos DateTime turno = consulta.fecha_inicio; //Console.WriteLine(consulta.fecha_inicio.ToString()+consulta.fecha_fin.ToString()+" "+ consulta.numpacientes); double intervalo = ((consulta.fecha_fin - consulta.fecha_inicio).TotalMinutes) / consulta.numpacientes; //turno = turno.AddMinutes(minutos * numpacientes); //Console.WriteLine((consulta.fecha_fin - consulta.fecha_inicio).Minutes+"EL INTERVALO ES "+intervalo); for (short i = 0; i < consulta.numpacientes; i++) { PacienteConsultaAgenda pca = new PacienteConsultaAgenda { ConsultaID = consulta.ConsultaID, ConsultaIDTurno = i, ausencia = false, fueralista = false, turno = turno }; db.consultasagendadas.Add(pca); turno = turno.AddMinutes(intervalo); db.SaveChanges(); } db.SaveChanges(); } }
public void TestAgregarPacienteConsulta() { FabricaSAREM f = new FabricaSAREM(tenant); using(var db = SARMContext.getTenant(tenant)) { //Creo consulta Consulta c = new Consulta { EspecialidadID = 1, fecha_inicio = DateTime.UtcNow, fecha_fin = DateTime.UtcNow.AddMinutes(30), FuncionarioID = "17299999", LocalID = 1, numpacientes =10, maxpacientesespera =3 }; f.iagenda.agregarConsulta(c); //db.consultas.Add(c); //db.SaveChanges(); var pacientes = (from p in db.pacientes select p).Take(14).ToList(); int i = 0; foreach (var p in pacientes) { try { fabrica.iagenda.agregarConsultaPaciente(p.PacienteID, c.ConsultaID, (short)i); i++; /* if (date == null) Console.WriteLine(i + ")Paciente " + p.PacienteID + " agregado a lista de espera "); else Console.WriteLine(i + ")Paciente " + p.PacienteID + " agregado, consulta programada "+ date.ToString()); */ } catch (Exception max) { Console.WriteLine(i + "El paciente " + p.PacienteID + "no pudo se agregado... Max cola espera"); } } Console.WriteLine("Segundo TEST:: Cancelar consulta [3] y agregar el [14]"); fabrica.iagenda.cancelarConsultaPaciente(pacientes[3].PacienteID, c.ConsultaID); Console.WriteLine("Consulta cancelada..."); //veo a cual asigno... var enespera = fabrica.iagenda.obtenerPacientesConsultaEspera(c.ConsultaID); Console.WriteLine("Pacientes en lista de espera"); foreach (var p in enespera) Console.WriteLine(p.PacienteID); } }
//TODO: MAIL. public void modificarConsulta(Consulta consulta) { using (var db = SARMContext.getTenant(tenant)) { if (!db.consultas.Any(c => c.ConsultaID == consulta.ConsultaID)) throw new Exception("No existe consulta"); else { var c = db.consultas.Find(consulta.ConsultaID); c.LocalID = consulta.LocalID; c.EspecialidadID = consulta.EspecialidadID; //no modificable //c.fecha_fin = consulta.fecha_fin; //c.fecha_inicio = consulta.fecha_inicio; c.FuncionarioID = consulta.FuncionarioID; db.SaveChanges(); } } }
public JsonResult Edit(SAREM.Web.Models.Consulta consulta) { try { if (ModelState.IsValid) { SAREM.Shared.Entities.Consulta c = new SAREM.Shared.Entities.Consulta(); c.LocalID = Convert.ToInt64(consulta.localID); //c.local = fabrica.ilocales.obtenerLocal(c.LocalID); c.ConsultaID = Convert.ToInt64(consulta.consultaID); c.EspecialidadID = Convert.ToInt64(consulta.especialidadID); //c.especialidad = fabrica.iagenda.obtenerEspecialidad(c.EspecialidadID); c.FuncionarioID = consulta.medID; //c.medico = fabrica.iagenda.obtenerMedico(c.FuncionarioID); //c.fecha_fin = ParseDate(consulta.fecha_fin).ToUniversalTime(); //c.fecha_inicio = ParseDate(consulta.fecha_inicio).ToUniversalTime(); fabrica.iagenda.modificarConsulta(c); return Json(new { success = true }); } else { return Json(new { success = false }); } } catch { return Json(new { success = false }); } }
public JsonResult Create(SAREM.Web.Models.Consulta consulta) { if (ModelState.IsValid) { SAREM.Shared.Entities.Consulta c = new SAREM.Shared.Entities.Consulta(); c.LocalID = Convert.ToInt64(consulta.localID); //c.local = fabrica.ilocales.obtenerLocal(c.LocalID); c.EspecialidadID = Convert.ToInt64(consulta.especialidadID); //c.especialidad = fabrica.iagenda.obtenerEspecialidad(c.EspecialidadID); c.FuncionarioID = consulta.medID; //c.medico = fabrica.iagenda.obtenerMedico(c.FuncionarioID); c.fecha_fin = ParseDate(consulta.fecha_fin).ToUniversalTime(); c.fecha_inicio = ParseDate(consulta.fecha_inicio).ToUniversalTime(); short cP; if (!short.TryParse(consulta.cantPacientes, out cP)) { cP = 0; } c.numpacientes = cP; short cPE; if (!short.TryParse(consulta.cantPacientesEspera, out cPE)) { cPE = 0; } c.maxpacientesespera = cPE; fabrica.iagenda.agregarConsulta(c); return Json(new { success = true}); } return Json(new { success = false}); }
public ActionResult Upload(FormCollection formCollection) { ConsultaMasiva cM = new ConsultaMasiva(); Boolean okConsultas = true; cM.danger = false; cM.warning = false; cM.success = false; if (Request != null) { HttpPostedFileBase file = Request.Files["UploadedFile"]; if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); //Creo las consultas var consultaList = new List<SAREM.Shared.Entities.Consulta>(); try { using (var package = new ExcelPackage(file.InputStream)) { var currentSheet = package.Workbook.Worksheets; var workSheet = currentSheet.First(); var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { var c = new SAREM.Shared.Entities.Consulta(); Boolean ok = true; if(!(workSheet.Cells[rowIterator, 1].Value == null && workSheet.Cells[rowIterator, 2].Value == null && workSheet.Cells[rowIterator, 3].Value == null && workSheet.Cells[rowIterator, 4].Value == null && workSheet.Cells[rowIterator, 5].Value == null && workSheet.Cells[rowIterator, 6].Value == null && workSheet.Cells[rowIterator, 7].Value == null)) { for (int columnIterator = 1; (columnIterator <= 7 && ok); columnIterator++) { switch (columnIterator) { case 1: //ID LOCAL try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.LocalID = Convert.ToInt64(workSheet.Cells[rowIterator, columnIterator].Value.ToString()); // c.local = fabrica.ilocales.obtenerLocal(c.LocalID); } else { ok = false; } } catch (Exception e) { ok = false; } break; case 2: //ID ESPECIALIDAD try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.EspecialidadID = Convert.ToInt64(workSheet.Cells[rowIterator, columnIterator].Value.ToString()); // c.especialidad = fabrica.iagenda.obtenerEspecialidad(c.EspecialidadID); } else { ok = false; } } catch (Exception e) { ok = false; } break; case 3: //ID MEDICO try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { string nroDoc = workSheet.Cells[rowIterator, columnIterator].Value.ToString(); if (String.IsNullOrEmpty(nroDoc) || !Regex.IsMatch(nroDoc, @"^\d+$")) { ok = false; } else { c.FuncionarioID = nroDoc; } } else { ok = false; } } catch (Exception e) { ok = false; } break; case 4: //Fecha Inicio try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.fecha_inicio = DateTime.Parse(workSheet.Cells[rowIterator, columnIterator].Value.ToString()).ToUniversalTime(); } else { ok = false; } } catch (Exception e) { ok = false; } break; case 5: //Fecha Fin try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.fecha_fin = DateTime.Parse(workSheet.Cells[rowIterator, columnIterator].Value.ToString()).ToUniversalTime(); } else { ok = false; } } catch (Exception e) { ok = false; } break; case 6: //Cantidad de pacientes en consulta try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.numpacientes = Convert.ToInt16(workSheet.Cells[rowIterator, columnIterator].Value.ToString()); } else { ok = false; } } catch (Exception e) { ok = false; } break; case 7: //Cantidad de pacientes en lista de espera try { if (!String.IsNullOrEmpty(workSheet.Cells[rowIterator, columnIterator].Value.ToString())) { c.maxpacientesespera = Convert.ToInt16(workSheet.Cells[rowIterator, columnIterator].Value.ToString()); } else { ok = false; } } catch (Exception e) { ok = false; } break; } } if (ok) { fabrica.iagenda.agregarConsulta(c); } else { okConsultas = ok && okConsultas; } } } } } catch (Exception e) { cM.danger = true; cM.warning = false; cM.success = false; return View("CreateMasivo", cM); } } else { cM.danger = true; cM.warning = false; cM.success = false; return View("CreateMasivo", cM); } } if (okConsultas) { cM.danger = false; cM.warning = false; cM.success = true; } else { cM.danger = false; cM.warning = true; cM.success = false; } return View("CreateMasivo", cM); }