Exemple #1
0
 //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();
     }
 }
Exemple #2
0
        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);

            }
        }
Exemple #3
0
 //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);
        }