Ejemplo n.º 1
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);
                }
            }
        }