/// <summary>
        /// Descripción: Registra los recepcion de la muestra en Labortorio
        /// Estado = 5
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="idOrdenMuestraRecepcion"></param>
        /// <param name="idUsuario"></param>
        public string ActualizaOrdenMuestraRecepcionLAB(List <MuestraResultadoVd> oLstMuestraRecepcion)
        {
            var result = "Ok";

            using (var ordenMuestraDal = new OrdenMuestraDal())
            {
                ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
                try
                {
                    foreach (var item in oLstMuestraRecepcion)
                    {
                        ordenMuestraDal.UpdateOrdenMuestraRecepcionLAB(item.idOrdenMuestraRecepcion, item.idUsuario, item.secuenObtencion);
                    }
                    ordenMuestraDal.Commit();
                }
                catch (SqlException sqlex)
                {
                    ordenMuestraDal.Rollback();
                    result = sqlex.Message;
                }
                catch (Exception ex)
                {
                    ordenMuestraDal.Rollback();
                    result = ex.Message;
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Descripción: Controlador para la actualizar la orden y generar la Recepcion de Muestra
        /// Author: SOTERO BUSTAMANTE.
        /// Fecha Creacion: 26/11/2017
        /// Fecha Modificación: 26/11/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="datos"></param>

        public bool RecepcionarMuestrasMasivo(string datos, int idUsuario)
        {
            bool strOk           = false;
            var  ordenMuestraDal = new OrdenMuestraDal();

            ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
            try
            {
                ordenMuestraDal.RecepcionarMuestrasMasivo(datos, idUsuario);
                ordenMuestraDal.Commit();
                strOk = true;
            }
            catch (Exception ex)
            {
                var mensaje = ex.Message;
                ordenMuestraDal.Rollback();
            }


            return(strOk);
        }
Ejemplo n.º 3
0
        public void RegistrarLevantarObservacion(string hddRECHAZOFECHAINGRESOROM, string hddRECHAZOPACIENTE, string hddRECHAZODATOCLINICO, string hddRECHAZOCODIFICACION, string hddRECHAZOFECHAEVALFICHA, string hddRECHAZOFECHASOL, string hddRECHAZOFECHAOBTENCIONMUESTRA, string hddRECHAZOSOLICITANTE, string hddRECHAZONROOFICIO, Orden orden)
        {
            var bFechaRom       = Convert.ToBoolean(hddRECHAZOFECHAINGRESOROM);
            var bPaciente       = Convert.ToBoolean(hddRECHAZOPACIENTE);
            var bDatoClinico    = Convert.ToBoolean(hddRECHAZODATOCLINICO);
            var bFechaEval      = Convert.ToBoolean(hddRECHAZOFECHAEVALFICHA);
            var bFechaSol       = Convert.ToBoolean(hddRECHAZOFECHASOL);
            var bFechaObtencion = Convert.ToBoolean(hddRECHAZOFECHAOBTENCIONMUESTRA);
            var bSolicitante    = Convert.ToBoolean(hddRECHAZOSOLICITANTE);
            var bNroOficio      = Convert.ToBoolean(hddRECHAZONROOFICIO);

            List <int> ListaRechazos = new List <int>();

            if (bFechaRom)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAINGRESOROM);
            }
            if (bPaciente)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOPACIENTE);
            }
            if (bDatoClinico)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZODATOCLINICO);
            }
            if (bFechaEval)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAEVALFICHA);
            }
            if (bFechaSol)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHASOL);
            }
            if (bFechaObtencion)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAOBTENCIONMUESTRA);
            }
            if (bSolicitante)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOSOLICITANTE);
            }
            if (bNroOficio)
            {
                ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZONROOFICIO);
            }
            using (var ordenMuestraDal = new OrdenMuestraDal())
            {
                ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
                try
                {
                    if (bFechaRom || bPaciente || bFechaEval || bFechaSol || bSolicitante || bNroOficio)
                    {
                        ordenMuestraDal.UpdateOrdenRechazo(orden); //Error de fecha!!!!!!
                    }
                    if (bDatoClinico)
                    {
                        foreach (var enfermedad in orden.enfermedadList)
                        {
                            foreach (var ordenDatoClinico in enfermedad.categoriaDatoList.Where(
                                         categoriaDato => categoriaDato.OrdenDatoClinicoList != null &&
                                         categoriaDato.OrdenDatoClinicoList.Count != 0).SelectMany(
                                         categoriaDato => categoriaDato.OrdenDatoClinicoList))
                            {
                                ordenDatoClinico.idOrden          = orden.idOrden;
                                ordenDatoClinico.IdUsuarioEdicion = orden.IdUsuarioEdicion;
                                ordenDatoClinico.estatus          = orden.estatus;
                                ordenDatoClinico.Enfermedad       = new Enfermedad {
                                    idEnfermedad = enfermedad.idEnfermedad
                                };
                                ordenMuestraDal.InsertOrdenDatoClinicoRechazo(ordenDatoClinico);
                            }
                        }
                    }
                    if (bFechaObtencion)
                    {
                        ordenMuestraDal.UpdateOrdenMuestraRechazo(orden);
                    }
                    foreach (var item in ListaRechazos)
                    {
                        ordenMuestraDal.UpdateOrdenMuestraResultadoRechazo(orden, item);
                    }

                    ordenMuestraDal.Commit();
                }
                catch (Exception ex)
                {
                    ordenMuestraDal.Rollback();
                    //ValidateOrderStateOnException(ex);
                }
            }
        }
Ejemplo n.º 4
0
        public string OrdenMuestraProcesoRom(OrdenMuestraRom xOrdenMuestraRom, Guid id, int idusuario, int IdEstablecimiento)
        {
            string Respuesta                  = "";
            var    totalMuestrasValidasR      = 0;
            var    totalMuestrasInvalidasR    = 0;
            var    totalMuestrasRecepcionadas = 0;
            var    totalMuestras              = 0;

            using (var ordenMuestraDal = new OrdenMuestraDal())
            {
                ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
                try
                {
                    //Referenciar muestras
                    if (xOrdenMuestraRom.listaOrdenesMuestra.Count > 0)
                    {
                        totalMuestrasInvalidasR = ValidaExamenes(1, xOrdenMuestraRom.listaOrdenesMuestra);
                        if (totalMuestrasInvalidasR > 0)
                        {
                            ordenMuestraDal.Rollback();
                            return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError);
                        }
                        else
                        {
                            ordenMuestraDal.ReferenciarMuestras(xOrdenMuestraRom.listaOrdenesMuestra, idusuario);
                        }
                    }
                    //Crear y Referenciar muestras
                    if (xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar.Count > 0)
                    {
                        totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar);
                        if (totalMuestrasInvalidasR > 0)
                        {
                            ordenMuestraDal.Rollback();
                            return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError);
                        }
                        else
                        {
                            ordenMuestraDal.RegistrarMuestras(xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar, id, idusuario);
                        }
                    }
                    //Derivar muestras juan muga
                    //revisar si se puede colocar mas abajo, donde se valida la variable lstNewGuid
                    var lstNewGuid = new List <OrdenMuestraRecepcion>();
                    if (xOrdenMuestraRom.listaOrdenesDerivarMuestra.Count > 0)
                    {
                        totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesDerivarMuestra);
                        if (totalMuestrasInvalidasR > 0)
                        {
                            ordenMuestraDal.Rollback();
                            return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError);
                        }
                        else
                        {
                            lstNewGuid = ordenMuestraDal.DerivarReferenciaMuestras(xOrdenMuestraRom.listaOrdenesDerivarMuestra, idusuario);
                        }
                    }
                    //Recepcion de Muestras
                    if (xOrdenMuestraRom.listaOrdenesMuestraRecepcionar.Count > 0)
                    {
                        //Obtener Lista de Examenes válidos por el laboratorio seleccionado
                        var laboratorioExamenBl  = new LaboratorioExamenBl();
                        var TipoMuestraExamenBl  = new ExamenTipoMuestraBl();//juanmuga
                        var listaExamenesValidos = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento);

                        if (listaExamenesValidos != null)
                        {
                            foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraRecepcionar)
                            {
                                var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen);             //juan muga
                                var examenValido      = listaExamenesValidos.FindAll(p => p.IdExamen == itemR.idExamen);
                                var tipomuestraValido = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra); //juan muga

                                //if (examenValido.Any())
                                if (examenValido.Any() && tipomuestraValido.Any())//juanmuga
                                {
                                    xOrdenMuestraRom.listaParaReferenciarCrear.Add(itemR);
                                    totalMuestrasValidasR = totalMuestrasValidasR + 1;
                                }
                                else
                                {
                                    totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1;
                                    ExamenError             = ExamenError + ", " + new ExamenBl().GetExamenById(itemR.idExamen).nombre;
                                }
                            }
                        }

                        //Existe muestras a rececepcionar válidas
                        if (xOrdenMuestraRom.listaParaReferenciarCrear.Any())
                        {
                            totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaReferenciarCrear.Count;
                            //derivar: cambio de guid = idordenmuestrarecpcionar juan muga
                            var listaParaDerivar = new List <OrdenMuestraRecepcion>();
                            foreach (var item in xOrdenMuestraRom.listaParaReferenciarCrear)
                            {
                                foreach (var itemD in lstNewGuid)
                                {
                                    if (item.idOrdenMuestraRecepcion == itemD.idOrdenMuestraRecepcion)
                                    {
                                        item.idOrdenMuestraRecepcion = itemD.NewidOrdenMuestraRecepcion;
                                        listaParaDerivar.Add(item);
                                    }
                                }
                            }
                            if (listaParaDerivar.Count > 0)
                            {
                                ordenMuestraDal.RecepcionarMuestras(listaParaDerivar, id, 1, idusuario);
                            }
                            if (xOrdenMuestraRom.listaParaReferenciarCrear.Count > 0)
                            {
                                ordenMuestraDal.RecepcionarMuestras(xOrdenMuestraRom.listaParaReferenciarCrear, id, 1, idusuario);
                            }
                        }
                    }

                    //Crear y Referenciar muestras
                    //if (listaOrdenesMuestraCrearReferenciar.Count > 0)
                    //{
                    //    ordenMuestraBl.RegistrarMuestras(listaOrdenesMuestraCrearReferenciar, Guid.Parse(id), Logueado.idUsuario);
                    //}

                    //Crear y Recepcionar Muestras
                    if (xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar.Count > 0)
                    {
                        //Obtener Lista de Examenes válidos por el laboratorio seleccionado
                        var laboratorioExamenBl     = new LaboratorioExamenBl();
                        var TipoMuestraExamenBl     = new ExamenTipoMuestraBl();
                        var listaExamenesValidosTmp = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento);

                        if (listaExamenesValidosTmp != null)
                        {
                            foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar)
                            {
                                var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen);
                                var tipomuestraValido          = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra);//juanmuga

                                var examenValido = listaExamenesValidosTmp.FindAll(p => p.IdExamen == itemR.idExamen);

                                if (examenValido.Any() && tipomuestraValido.Any())//juan muga
                                {
                                    xOrdenMuestraRom.listaParaRecepcionarCrear.Add(itemR);
                                    totalMuestrasValidasR = totalMuestrasValidasR + 1;
                                }
                                else
                                {
                                    itemR.fechaEnvio     = null;
                                    itemR.horaEnvio      = null;
                                    itemR.fechaRecepcion = null;
                                    itemR.horaRecepcion  = null;
                                    xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Add(itemR);
                                    totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1;
                                }
                            }
                        }

                        //Crear y Recepcionar Muestras
                        if (xOrdenMuestraRom.listaParaRecepcionarCrear.Any())
                        {
                            totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrear.Count;
                            ordenMuestraDal.RegistrarMuestrasConRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrear, id, idusuario);
                        }

                        //Crear Muestras - NO RECEPCIONA
                        if (!xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Any())
                        {
                            ordenMuestraDal.Rollback();
                            return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError + "_ ");
                        }
                        totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Count;
                        ordenMuestraDal.RegistrarMuestrasSinRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion, id, idusuario);
                    }
                    if (totalMuestrasInvalidasR == 0)
                    {
                        ordenMuestraDal.Commit();
                    }
                    else
                    {
                        ordenMuestraDal.Rollback();
                        return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError);
                    }
                }
                catch (Exception ex)
                {
                    ordenMuestraDal.Rollback();
                    Respuesta = ex.Message;
                }
            }


            return(Respuesta);
        }