Ejemplo n.º 1
0
        public ActionResult Guardar(CrearOrdenVM model)
        {
            var    watch            = Stopwatch.StartNew();
            string mensajeResultado = string.Empty;

            try
            {
                var datosclinicos = model.OrdenDatosClinicos.Where(x => !string.IsNullOrWhiteSpace(x.Valor)).ToList();
                datosclinicos.ForEach(dc => { dc.IdUsuarioRegistro = Logueado.idUsuario; });

                model.OrdenExamenes.ForEach(oe => { oe.ProyectoId = model.ProyectoId; });
                foreach (var items in model.OrdenExamenes.GroupBy(x => x.IdTipoMuestra))
                {
                    var item = items.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x.CodigoMuestra));
                    items.ToList().ForEach(i =>
                    {
                        i.CodigoMuestra = item.CodigoMuestra;
                    });
                }

                using (var bl = new CoreBl())
                {
                    var watch2 = Stopwatch.StartNew();
                    bl.CrearOrdenDatosClinicos(datosclinicos, model.OrdenExamenes);
                    watch2.Stop();
                    new bsPage().LogCrearOrdenInfo("LogNetLab", "Guardar - CrearOrdenDatosClinicos ", $" Info Guardar {datosclinicos.Count} datos clinicos - Tiempo transcurrido: {watch2.ElapsedMilliseconds} ms");
                    mensajeResultado = bl.FinalizarCreacionOrden(model);
                }

                var recepcionbl = new RecepcionBl();
                //rechazar
                foreach (var item in model.OrdenExamenes.Where(x => x.MotivoRechazo.Any()))
                {
                    item.IdUsuario = Logueado.idUsuario;
                    recepcionbl.RechazarMuestra(new OrdenMuestraRecepcionados
                    {
                        IdOrdenMuestraRecepcion = item.IdOrdenMuestraRecepcion,
                        IdUsuario     = item.IdUsuario,
                        MotivoRechazo = item.MotivoRechazo
                    });
                }

                watch.Stop();
                new bsPage().LogCrearOrdenInfo("LogNetLab", "OrdenNuevo - Guardar - Info ", $" Info OrdenNuevo - Guardar - Tiempo transcurrido: {watch.ElapsedMilliseconds} ms");

                if (!string.IsNullOrWhiteSpace(mensajeResultado))
                {
                    ViewBag.textoRegistro = mensajeResultado;
                }

                return(RedirectToAction("SearchRecepcion", "Paciente", new { mensajeregistro = mensajeResultado }));
            }
            catch (Exception ex)
            {
                watch.Stop();
                new bsPage().LogError(ex, "LogNetLab", "", $" OrdenNuevo - Guardar - Tiempo transcurrido: {watch.ElapsedMilliseconds} ms");
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public ActionResult FinalizarProceso(List <OrdenMuestraRecepcionados> model)
        {
            model.ForEach(m => { m.IdUsuario = Logueado.idUsuario; });

            //rechazar
            var bl = new RecepcionBl();

            foreach (var item in model.Where(x => x.MotivoRechazo.Any()))
            {
                bl.RechazarMuestra(item);
            }

            var listadoExcel = new List <OrdenMuestraRecepcionadosExcel>();

            //procesar
            foreach (var item in model.Where(x => !x.MotivoRechazo.Any()))
            {
                listadoExcel.Add(new OrdenMuestraRecepcionadosExcel
                {
                    CodigoMuestra = item.CodigoMuestra,
                    CodigoLineal  = item.CodigoLineal, //string.IsNullOrWhiteSpace(item.CodigoLineal) ? "No generado": item.CodigoLineal,
                    Paciente      = item.Paciente
                });
            }

            DataTable dt = new DataTable("muestrasrecepcionadas");

            dt           = ConvertToDataTable(listadoExcel);
            dt.TableName = "listado";

            using (XLWorkbook wb = new XLWorkbook())
            {
                wb.Worksheets.Add(dt);
                wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                wb.Style.Font.Bold            = true;

                return(new ExcelResult(wb, "MuestrasRecepcionadas"));
            }
        }