public RespuestaBD AgregarTicketConsultaExterna(NuevoTicketConsultaExterna nuevoTicketConsultaExterna) { return(_gestorDeTickets.AgregarTicketConsultaExterna(nuevoTicketConsultaExterna)); }
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); } }