Exemplo n.º 1
0
 public RespuestaBD AgregarTicketConsultaExterna(NuevoTicketConsultaExterna nuevoTicketConsultaExterna)
 {
     return(_gestorDeTickets.AgregarTicketConsultaExterna(nuevoTicketConsultaExterna));
 }
Exemplo n.º 2
0
        public RespuestaBD AgregarTicketConsultaExterna(NuevoTicketConsultaExterna nuevoTicketConsultaExterna)
        {
            using (GalenPlusBD dbGalenPlus = new GalenPlusBD())
                using (InoBD dbIno = new InoBD())
                {
                    PacienteCitado pacienteCitado = this._gestorDePacientes.ListarPacienteCitadoDelDia(new PacientePorHcDni
                    {
                        NroHistoriaClinica = null,
                        NroDocumento       = nuevoTicketConsultaExterna.NumeroDocumento,
                        IdEspecialidad     = nuevoTicketConsultaExterna.IdEspecialidad
                    });

                    if (pacienteCitado != null)
                    {
                        TicketConsultaExterna pacienteEncontrado = dbIno.TicketConsultaExterna.Where(x => x.FechaCreacion.Day == DateTime.Now.Day &&
                                                                                                     x.FechaCreacion.Month == DateTime.Now.Month &&
                                                                                                     x.FechaCreacion.Year == DateTime.Now.Year &&
                                                                                                     x.HistoriaClinica == nuevoTicketConsultaExterna.HistoriaClinica &&
                                                                                                     x.IdEspecialidad == nuevoTicketConsultaExterna.IdEspecialidad).FirstOrDefault();
                        nuevoTicketConsultaExterna.Medico = (nuevoTicketConsultaExterna.Medico == "<SELECCIONAR>") ? " " : nuevoTicketConsultaExterna.Medico ?? " ";
                        if (pacienteEncontrado == null)
                        {
                            int pacienteTotalHoy = dbIno.TicketConsultaExterna.Where(x => x.FechaCreacion.Day == DateTime.Now.Day &&
                                                                                     x.FechaCreacion.Month == DateTime.Now.Month &&
                                                                                     x.FechaCreacion.Year == DateTime.Now.Year &&
                                                                                     x.IdTurno == nuevoTicketConsultaExterna.IdTurno).Count();
                            TicketConsultaExterna ticketConsultaExterna = Mapper.Map <TicketConsultaExterna>(nuevoTicketConsultaExterna);
                            if (pacienteTotalHoy == 0)
                            {
                                ticketConsultaExterna.Contador = 1;
                            }
                            else
                            {
                                ticketConsultaExterna.Contador = pacienteTotalHoy + 1;
                            }
                            //Edad
                            int edad = dbGalenPlus.Database.SqlQuery <int>("dbo.Invision_ObtenerEdadPaciente @IdPaciente",
                                                                           new SqlParameter("IdPaciente", ticketConsultaExterna.IdPaciente)).FirstOrDefault();
                            ticketConsultaExterna.Edad = edad;

                            //Nro Boleta o Fua
                            string nroBoletaFua = dbGalenPlus.Database.SqlQuery <string>("dbo.Invision_ObtenerNroBoletaFua @Fecha,@IdEspecialidad,@IdPaciente",
                                                                                         new SqlParameter("Fecha", ticketConsultaExterna.FechaCreacion),
                                                                                         new SqlParameter("IdEspecialidad", ticketConsultaExterna.IdEspecialidad),
                                                                                         new SqlParameter("IdPaciente", ticketConsultaExterna.IdPaciente)).FirstOrDefault();

                            if (nroBoletaFua != null)
                            {
                                ticketConsultaExterna.NroBoletaFua = nroBoletaFua;

                                dbIno.TicketConsultaExterna.Add(ticketConsultaExterna);
                                dbIno.SaveChanges();

                                //Mensaje de respuesta
                                respuesta.Id      = ticketConsultaExterna.IdTicketConsultaExterna;
                                respuesta.Mensaje = "Se ingresó los datos correctamente.";

                                // Auditoria
                                AuditoriaGeneral auditoria = new AuditoriaGeneral
                                {
                                    Accion          = "Agregar",
                                    NombreTabla     = "TicketConsultaExterna",
                                    ValoresAntiguos = null,
                                    ValoresNuevos   = JsonConvert.SerializeObject(nuevoTicketConsultaExterna),
                                    IdUsuario       = nuevoTicketConsultaExterna.IdUsuarioCreacion
                                };
                                this._gestorDeAuditoria.AgregarAuditoria(auditoria);
                            }
                            else
                            {
                                //Mensaje de respuesta
                                respuesta.Id      = 0;
                                respuesta.Mensaje = "El paciente no cuenta con número de boleta o número de FUA.";
                            }
                        }
                        else
                        {
                            //Mensaje de respuesta
                            respuesta.Id      = 0;
                            respuesta.Mensaje = "El paciente ya ha sido ingresado con los mismos datos.";
                        }
                    }
                    else
                    {
                        //Mensaje de respuesta
                        respuesta.Id      = 0;
                        respuesta.Mensaje = "El paciente no se encuentra citado.";
                    }

                    return(respuesta);
                }
        }