/// <summary>
 /// Inserta una solicitud de interconsulta
 /// </summary>
 /// <param name="entidad">Entidad de CANALIZACION a insertar</param>
 /// <param name="id_centro">ID del centro al cual se le van a enviar los parametros</param>
 /// <param name="id_mensaje_sol_int">ID del mensaje para canalizacion</param>
 /// <param name="fecha_servidor">Fecha del servidor</param>
 public void Insertar(CANALIZACION entidad, short id_centro, short id_mensaje, DateTime fecha_servidor)
 {
     try
     {
         using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
         {
             IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
         }))
         {
             Context.CANALIZACION.Add(entidad);
             var _nota_medica     = Context.NOTA_MEDICA.FirstOrDefault(w => w.ID_ATENCION_MEDICA == entidad.ID_ATENCION_MEDICA);
             var _cuerpo          = string.Empty;
             var _mensaje         = new MENSAJE_TIPO();
             var _nombre_completo = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
             _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje);
             if (_mensaje != null)
             {
                 var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                 _cuerpo = string.Format(_mensaje.DESCR + " para el imputado {0}/{1} {2}.", _nota_medica.ATENCION_MEDICA.INGRESO.ID_ANIO, _nota_medica.ATENCION_MEDICA.INGRESO.ID_IMPUTADO,
                                         _nombre_completo);
                 Context.MENSAJE.Add(new MENSAJE
                 {
                     CONTENIDO    = _cuerpo,
                     ENCABEZADO   = _mensaje.ENCABEZADO,
                     ID_CENTRO    = id_centro,
                     ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                     ID_MENSAJE   = _id_mensaje,
                     REGISTRO_FEC = fecha_servidor,
                 });
             }
             Context.SaveChanges();
             transaccion.Complete();
         }
     }
     catch (Exception ex)
     {
         throw new ApplicationException(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
     }
 }
Exemple #2
0
 public void Insertar(NOTA_DEFUNCION entidad, DateTime fecha_servidor, short id_mensaje_tipo, short id_mensaje_tipo_estatal, bool isAltaHospitalizacion, short?motivo_egreso_medico = null)
 {
     try
     {
         using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
         {
             IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
         }))
         {
             Context.NOTA_DEFUNCION.Add(entidad);
             Context.SaveChanges();
             if (isAltaHospitalizacion)
             {
                 var _hospitalizacion = Context.HOSPITALIZACION.FirstOrDefault(w => w.NOTA_MEDICA.ATENCION_MEDICA.ID_ANIO == entidad.ID_ANIO &&
                                                                               w.NOTA_MEDICA.ATENCION_MEDICA.ID_CENTRO == entidad.ID_CENTRO && w.NOTA_MEDICA.ATENCION_MEDICA.ID_IMPUTADO == entidad.ID_IMPUTADO &&
                                                                               w.NOTA_MEDICA.ATENCION_MEDICA.ID_INGRESO == entidad.ID_INGRESO && w.ID_HOSEST == 1);
                 if (_hospitalizacion == null)
                 {
                     throw new Exception("No existen hospitalizaciones activas para este imputado");
                 }
                 _hospitalizacion.ID_HOSEST             = 2;
                 _hospitalizacion.ALTA_FEC              = entidad.FECHA_DECESO;
                 _hospitalizacion.ALTA_MEDICO           = entidad.ID_EMPLEADO_COORDINADOR_MED;
                 _hospitalizacion.CAMA_HOSPITAL.ESTATUS = "S";
                 var _dias_hospitalizado = Convert.ToDecimal((_hospitalizacion.ALTA_FEC.Value - _hospitalizacion.INGRESO_FEC.Value).TotalDays);
                 Context.NOTA_EGRESO.Add(new NOTA_EGRESO {
                     DIAS_ESTANCIA    = _dias_hospitalizado,
                     ID_HOSPITA       = _hospitalizacion.ID_HOSPITA,
                     ID_CENTRO_UBI    = _hospitalizacion.ID_CENTRO_UBI,
                     FECHA_REGISTRO   = fecha_servidor,
                     USUARIO_REGISTRO = entidad.USUARIO_REGISTRO,
                     ID_MOEGMED       = motivo_egreso_medico.Value
                 });
                 Context.SaveChanges();
             }
             #region mensaje
             var _cuerpo  = string.Empty;
             var _mensaje = new MENSAJE_TIPO();
             var _ingreso = Context.INGRESO.FirstOrDefault(w => w.ID_ANIO == entidad.ID_ANIO &&
                                                           w.ID_CENTRO == entidad.ID_CENTRO && w.ID_IMPUTADO == entidad.ID_IMPUTADO &&
                                                           w.ID_INGRESO == entidad.ID_INGRESO);
             var _nombre_completo = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(_ingreso.IMPUTADO.NOMBRE) ?
                                                  _ingreso.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_ingreso.IMPUTADO.PATERNO) ? _ingreso.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_ingreso.IMPUTADO.MATERNO) ? _ingreso.IMPUTADO.MATERNO.Trim() : string.Empty);
             #endregion
             _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_tipo);
             if (_mensaje != null)
             {
                 var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                 _cuerpo = string.Format(_mensaje.CONTENIDO + " para el imputado {0}/{1} {2}", _ingreso.ID_ANIO, _ingreso.ID_IMPUTADO,
                                         _nombre_completo);
                 Context.MENSAJE.Add(new MENSAJE
                 {
                     CONTENIDO    = _cuerpo,
                     ENCABEZADO   = _mensaje.ENCABEZADO,
                     ID_CENTRO    = _ingreso.ID_UB_CENTRO,
                     ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                     ID_MENSAJE   = _id_mensaje,
                     REGISTRO_FEC = fecha_servidor,
                 });
                 Context.SaveChanges();
             }
             _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_tipo_estatal);
             if (_mensaje != null)
             {
                 var _id_entidad = Context.MUNICIPIO.First(w => w.CENTRO.Any(a => a.ID_CENTRO == entidad.ID_CENTRO)).ID_ENTIDAD;
                 var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                 _cuerpo = string.Format(_mensaje.CONTENIDO + " para el imputado {0}/{1} {2}", _ingreso.ID_ANIO, _ingreso.ID_IMPUTADO,
                                         _nombre_completo);
                 Context.MENSAJE.Add(new MENSAJE
                 {
                     CONTENIDO    = _cuerpo,
                     ENCABEZADO   = _mensaje.ENCABEZADO,
                     ID_ENTIDAD   = _id_entidad,
                     ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                     ID_MENSAJE   = _id_mensaje,
                     REGISTRO_FEC = fecha_servidor,
                 });
                 Context.SaveChanges();
             }
             transaccion.Complete();
         }
     }
     catch (Exception ex)
     {
         throw new ApplicationException(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
     }
 }
        /// <summary>
        /// Actualiza un registro de solcitud de interconsulta externa
        /// </summary>
        /// <param name="entidad">Solicitud de interconsulta externa a actualizar</param>
        /// <param name="fecha_servidor">Fecha del servidor</param>
        /// <param name="isReagenda">Indica si la actualizacion es una reagenda</param>
        /// <param name="servicios_aux_interconsulta">Nuevo listado de servicios auxiliares de diagnostico para la solicitud de interconsulta</param>
        /// <param name="hoja_referencia_medica">Hoja de referencia medica a actualizar</param>
        /// <param name="interconsulta_interna">Datos de la interconsulta interna a actualizar</param>
        /// <param name="id_mensaje_sol_ext_reag">Id del mensaje para reagenda de solicitudes de interconsulta externa</param>
        /// <param name="id_mensaje_sol_ext_canc">Id del mensaje para cancelacion de solicitudes de interconsulta externa </param>
        /// <param name="id_mensaje_sol_int_canc">Id del mensaje para cancelacion de solicitudes de interconsulta interna</param>
        /// <param name="canalizacion">Entidad de la canalizacion que se va a afectar</param>
        /// <param name="canalizacion_especialidad">Listado de la entidades de Canalizacion_Especialidades que se van a afectar</param>
        /// <param name="canalizacion_serv_aux">Listado de las entidades de Canalizacion_Serv_Aux que se van a afectar</param>
        public void Actualizar(INTERCONSULTA_SOLICITUD entidad, DateTime fecha_servidor, bool isReagenda, List <SERVICIO_AUX_INTERCONSULTA> servicios_aux_interconsulta = null,
                               HOJA_REFERENCIA_MEDICA hoja_referencia_medica = null, SOL_INTERCONSULTA_INTERNA interconsulta_interna = null, CANALIZACION canalizacion     = null, List <CANALIZACION_SERV_AUX> canalizacion_serv_aux = null,
                               List <CANALIZACION_ESPECIALIDAD> canalizacion_especialidad = null, short?id_mensaje_sol_ext_reag      = null, short?id_mensaje_sol_ext_canc = null, short?id_mensaje_sol_int_canc = null)
        {
            try
            {
                using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
                {
                    IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
                }))
                {
                    if (canalizacion != null)
                    {
                        Context.CANALIZACION.Attach(canalizacion);
                        Context.Entry(canalizacion).State = EntityState.Modified;
                    }
                    if (canalizacion_serv_aux != null && canalizacion_serv_aux.Count > 0)
                    {
                        foreach (var item in canalizacion_serv_aux)
                        {
                            Context.CANALIZACION_SERV_AUX.Attach(item);
                            Context.Entry(item).State = EntityState.Modified;
                        }
                    }
                    if (canalizacion_especialidad != null && canalizacion_especialidad.Count > 0)
                    {
                        foreach (var item in canalizacion_especialidad)
                        {
                            Context.CANALIZACION_ESPECIALIDAD.Attach(item);
                            Context.Entry(item).State = EntityState.Modified;
                        }
                    }
                    Context.SaveChanges();
                    if (canalizacion != null)
                    {
                        var _canalizacion_serv_aux     = Context.CANALIZACION_SERV_AUX.Where(a => a.ID_ATENCION_MEDICA == canalizacion.ID_ATENCION_MEDICA);
                        var _canalizacion_especialidad = Context.CANALIZACION_ESPECIALIDAD.Where(a => a.ID_ATENCION_MEDICA == canalizacion.ID_ATENCION_MEDICA);
                        var boolCanalizacionCompletada = true;
                        if (_canalizacion_serv_aux != null && _canalizacion_serv_aux.Any(w => w.ID_ESTATUS != "A") || _canalizacion_especialidad != null && _canalizacion_especialidad.Any(w => w.ID_ESTATUS != "A"))
                        {
                            boolCanalizacionCompletada = false;
                        }
                        if (boolCanalizacionCompletada)
                        {
                            canalizacion.ID_ESTATUS_CAN = "A";
                            Context.SaveChanges();
                        }
                    }
                    var _interconsulta_solicitud = Context.INTERCONSULTA_SOLICITUD.FirstOrDefault(w => w.ID_INTERSOL == entidad.ID_INTERSOL && w.ID_CENTRO_UBI == entidad.ID_CENTRO_UBI);

                    Context.Entry(_interconsulta_solicitud).CurrentValues.SetValues(entidad);
                    Context.SaveChanges();
                    if (servicios_aux_interconsulta != null && servicios_aux_interconsulta.Count > 0)
                    {
                        var algo = Context.INTERCONSULTA_SOLICITUD.First(w => w.ID_INTERSOL == entidad.ID_INTERSOL && w.ID_CENTRO_UBI == entidad.ID_CENTRO_UBI);
                        var _copia_solicitudes = Context.INTERCONSULTA_SOLICITUD.First(w => w.ID_INTERSOL == entidad.ID_INTERSOL).SERVICIO_AUX_INTERCONSULTA.ToList();

                        foreach (var item in _copia_solicitudes)
                        {
                            Context.SERVICIO_AUX_INTERCONSULTA.Remove(item);
                        }
                        Context.SaveChanges();
                        foreach (var item in servicios_aux_interconsulta)
                        {
                            Context.SERVICIO_AUX_INTERCONSULTA.Add(item);
                        }
                        Context.SaveChanges();
                    }
                    if (interconsulta_interna != null)
                    {
                        Context.SOL_INTERCONSULTA_INTERNA.Attach(interconsulta_interna);
                        Context.Entry(interconsulta_interna).State = EntityState.Modified;
                        Context.SaveChanges();
                    }
                    if (hoja_referencia_medica != null)
                    {
                        Context.HOJA_REFERENCIA_MEDICA.Attach(hoja_referencia_medica);
                        Context.Entry(hoja_referencia_medica).State = EntityState.Modified;
                        Context.SaveChanges();
                    }

                    if (id_mensaje_sol_ext_canc.HasValue || id_mensaje_sol_ext_reag.HasValue || id_mensaje_sol_int_canc.HasValue)
                    {
                        var _cuerpo          = string.Empty;
                        var _mensaje         = new MENSAJE_TIPO();
                        var _nota_medica     = Context.NOTA_MEDICA.First(w => w.ID_ATENCION_MEDICA == entidad.ID_NOTA_MEDICA);
                        var _nombre_completo = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE) ?
                                                             _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                             !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                             !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
                        if (entidad.ID_INTER == 1) // Si es interconsulta interna
                        {
                            if (entidad.ESTATUS == "C" && id_mensaje_sol_int_canc.HasValue)
                            {
                                _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_sol_int_canc.Value);
                            }
                        }
                        else
                        {
                            if (entidad.ESTATUS == "C" && id_mensaje_sol_ext_canc.HasValue)
                            {
                                _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_sol_ext_canc.Value);
                            }
                            else if (isReagenda && id_mensaje_sol_ext_reag.HasValue)
                            {
                                _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_sol_ext_reag.Value);
                            }
                        }
                        if (_mensaje != null && _mensaje.ID_MEN_TIPO > 0)
                        {
                            var _prioridad  = Context.INTERCONSULTA_NIVEL_PRIORIDAD.FirstOrDefault(w => w.ID_INIVEL == entidad.ID_INIVEL);
                            var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                            _cuerpo = string.Format(_mensaje.DESCR + " para el imputado {0}/{1} {2}", _nota_medica.ATENCION_MEDICA.INGRESO.ID_ANIO, _nota_medica.ATENCION_MEDICA.INGRESO.ID_IMPUTADO,
                                                    _nombre_completo, _prioridad.DESCR);
                            Context.MENSAJE.Add(new MENSAJE
                            {
                                CONTENIDO    = _cuerpo,
                                ENCABEZADO   = _mensaje.ENCABEZADO,
                                ID_CENTRO    = _nota_medica.ATENCION_MEDICA.INGRESO.ID_UB_CENTRO,
                                ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                                ID_MENSAJE   = _id_mensaje,
                                REGISTRO_FEC = fecha_servidor,
                            });
                            Context.SaveChanges();
                        }
                    }
                    transaccion.Complete();
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
            }
        }
        /// <summary>
        /// Inserta una solicitud de interconsulta
        /// </summary>
        /// <param name="entidad">Entidad de INTERCONSULTA_SOLICITUD a insertar</param>
        /// <param name="id_centro">ID del centro al cual se le van a enviar los parametros</param>
        /// <param name="id_mensaje_sol_int">ID del mensaje para enviar en caso de ser solicitud interna</param>
        /// <param name="id_mensaje_sol_ext">ID del mensaje para enviar en caso de ser solicitud externa</param>
        /// <param name="fecha_servidor">Fecha del servidor</param>
        public void Insertar(INTERCONSULTA_SOLICITUD entidad, short id_centro, short id_mensaje_sol_int, short id_mensaje_sol_ext, DateTime fecha_servidor)
        {
            try
            {
                using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
                {
                    IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
                }))
                {
                    var boolCanalizacionCompletada = true;
                    entidad.ID_INTERSOL = GetIDProceso <short>("INTERCONSULTA_SOLICITUD", "ID_INTERSOL", string.Format("ID_CENTRO_UBI={0}", entidad.ID_CENTRO_UBI));
                    if (entidad.SOL_INTERCONSULTA_INTERNA != null && entidad.SOL_INTERCONSULTA_INTERNA.Count > 0)
                    {
                        entidad.SOL_INTERCONSULTA_INTERNA.First().ID_SOLICITUD = GetIDProceso <int>("SOL_INTERCONSULTA_INTERNA", "ID_SOLICITUD", string.Format("ID_CENTRO_UBI={0}", entidad.ID_CENTRO_UBI));
                    }
                    if (entidad.HOJA_REFERENCIA_MEDICA != null && entidad.HOJA_REFERENCIA_MEDICA.Count > 0)
                    {
                        entidad.HOJA_REFERENCIA_MEDICA.First().ID_HOJA = GetIDProceso <int>("HOJA_REFERENCIA_MEDICA", "ID_HOJA", string.Format("ID_CENTRO_UBI={0}", entidad.ID_CENTRO_UBI));
                    }
                    Context.INTERCONSULTA_SOLICITUD.Add(entidad);
                    var _canalizacion = Context.CANALIZACION.First(w => w.ID_ATENCION_MEDICA == entidad.ID_NOTA_MEDICA);
                    if (entidad.SERVICIO_AUX_INTERCONSULTA != null && entidad.SERVICIO_AUX_INTERCONSULTA.Count > 0)
                    {
                        foreach (var item in entidad.SERVICIO_AUX_INTERCONSULTA)
                        {
                            _canalizacion.CANALIZACION_SERV_AUX.First(w => w.ID_SERV_AUX == item.ID_SERV_AUX).ID_ESTATUS = "A";
                            _canalizacion.CANALIZACION_SERV_AUX.First(w => w.ID_SERV_AUX == item.ID_SERV_AUX).ID_INIVEL  = entidad.ID_INIVEL;
                            _canalizacion.CANALIZACION_SERV_AUX.First(w => w.ID_SERV_AUX == item.ID_SERV_AUX).ID_INTER   = entidad.ID_INTER;
                        }
                        Context.SaveChanges();
                    }
                    if (entidad.ID_ESPECIALIDAD.HasValue)
                    {
                        _canalizacion.CANALIZACION_ESPECIALIDAD.First(w => w.ID_ESPECIALIDAD == entidad.ID_ESPECIALIDAD.Value).ID_ESTATUS = "A";
                        _canalizacion.CANALIZACION_ESPECIALIDAD.First(w => w.ID_ESPECIALIDAD == entidad.ID_ESPECIALIDAD.Value).ID_INTER   = entidad.ID_INTER;
                        _canalizacion.CANALIZACION_ESPECIALIDAD.First(w => w.ID_ESPECIALIDAD == entidad.ID_ESPECIALIDAD.Value).ID_INIVEL  = entidad.ID_INIVEL;
                        Context.SaveChanges();
                    }
                    if (_canalizacion.CANALIZACION_SERV_AUX.Any(w => w.ID_ESTATUS != "A") || _canalizacion.CANALIZACION_ESPECIALIDAD.Any(w => w.ID_ESTATUS != "A"))
                    {
                        boolCanalizacionCompletada = false;
                    }
                    if (boolCanalizacionCompletada)
                    {
                        _canalizacion.ID_ESTATUS_CAN = "A";
                        Context.SaveChanges();
                    }
                    var _nota_medica     = Context.NOTA_MEDICA.FirstOrDefault(w => w.ID_ATENCION_MEDICA == entidad.ID_NOTA_MEDICA);
                    var _cuerpo          = string.Empty;
                    var _mensaje         = new MENSAJE_TIPO();
                    var _nombre_completo = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                         !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                         !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
                    if (entidad.ID_INTER == 1)
                    {
                        _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_sol_int);
                    }
                    else
                    {
                        _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_sol_ext);
                    }

                    if (_mensaje != null)
                    {
                        var _prioridad  = Context.INTERCONSULTA_NIVEL_PRIORIDAD.FirstOrDefault(w => w.ID_INIVEL == entidad.ID_INIVEL);
                        var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                        _cuerpo = string.Format(_mensaje.DESCR + " para el imputado {0}/{1} {2}. Prioridad {3} ", _nota_medica.ATENCION_MEDICA.INGRESO.ID_ANIO, _nota_medica.ATENCION_MEDICA.INGRESO.ID_IMPUTADO,
                                                _nombre_completo, _prioridad.DESCR);
                        Context.MENSAJE.Add(new MENSAJE {
                            CONTENIDO    = _cuerpo,
                            ENCABEZADO   = _mensaje.ENCABEZADO,
                            ID_CENTRO    = id_centro,
                            ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                            ID_MENSAJE   = _id_mensaje,
                            REGISTRO_FEC = fecha_servidor,
                        });
                    }
                    Context.SaveChanges();
                    transaccion.Complete();
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
            }
        }
 public void Actualizar(CANALIZACION entidad, List <CANALIZACION_ESPECIALIDAD> canalizacion_especialidades, List <CANALIZACION_SERV_AUX> canalizacion_serv_aux, short id_centro, DateTime fecha_servidor, short?id_mensaje_edicion = null, short?id_mensaje_cancelacion = null)
 {
     try
     {
         using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions()
         {
             IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
         }))
         {
             if (canalizacion_serv_aux != null && canalizacion_serv_aux.Count > 0)
             {
                 var _servicios_aux = Context.CANALIZACION_SERV_AUX.Where(w => w.ID_ATENCION_MEDICA == entidad.ID_ATENCION_MEDICA).ToList();
                 if (_servicios_aux != null)
                 {
                     foreach (var item in _servicios_aux)
                     {
                         Context.CANALIZACION_SERV_AUX.Remove(item);
                     }
                 }
                 foreach (var item in canalizacion_serv_aux)
                 {
                     Context.CANALIZACION_SERV_AUX.Add(item);
                 }
             }
             if (canalizacion_especialidades != null && canalizacion_especialidades.Count > 0)
             {
                 var _canalizaciones_especialidades = Context.CANALIZACION_ESPECIALIDAD.Where(w => w.ID_ATENCION_MEDICA == entidad.ID_ATENCION_MEDICA).ToList();
                 foreach (var item in _canalizaciones_especialidades)
                 {
                     Context.CANALIZACION_ESPECIALIDAD.Remove(item);
                 }
                 foreach (var item in canalizacion_especialidades)
                 {
                     Context.CANALIZACION_ESPECIALIDAD.Add(item);
                 }
             }
             Context.SaveChanges();
             Context.CANALIZACION.Attach(entidad);
             Context.Entry(entidad).State = EntityState.Modified;
             Context.SaveChanges();
             var _nota_medica     = Context.NOTA_MEDICA.FirstOrDefault(w => w.ID_ATENCION_MEDICA == entidad.ID_ATENCION_MEDICA);
             var _cuerpo          = string.Empty;
             var _mensaje         = new MENSAJE_TIPO();
             var _nombre_completo = string.Format("{0} {1} {2}", !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.NOMBRE.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.PATERNO.Trim() : string.Empty,
                                                  !string.IsNullOrEmpty(_nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO) ? _nota_medica.ATENCION_MEDICA.INGRESO.IMPUTADO.MATERNO.Trim() : string.Empty);
             if (id_mensaje_edicion.HasValue)
             {
                 _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_edicion);
             }
             else
             {
                 _mensaje = Context.MENSAJE_TIPO.FirstOrDefault(w => w.ID_MEN_TIPO == id_mensaje_cancelacion);
             }
             if (_mensaje != null)
             {
                 var _id_mensaje = GetIDProceso <Int32>("MENSAJE", "ID_MENSAJE", "1=1");
                 _cuerpo = string.Format(_mensaje.DESCR + " para el imputado {0}/{1} {2}.", _nota_medica.ATENCION_MEDICA.INGRESO.ID_ANIO, _nota_medica.ATENCION_MEDICA.INGRESO.ID_IMPUTADO,
                                         _nombre_completo);
                 Context.MENSAJE.Add(new MENSAJE
                 {
                     CONTENIDO    = _cuerpo,
                     ENCABEZADO   = _mensaje.ENCABEZADO,
                     ID_CENTRO    = id_centro,
                     ID_MEN_TIPO  = _mensaje.ID_MEN_TIPO,
                     ID_MENSAJE   = _id_mensaje,
                     REGISTRO_FEC = fecha_servidor,
                 });
             }
             Context.SaveChanges();
             transaccion.Complete();
         }
     }
     catch (Exception ex)
     {
         throw new ApplicationException(ex.Message + " " + (ex.InnerException != null ? ex.InnerException.InnerException.Message : ""));
     }
 }
Exemple #6
0
        private bool Guardar()
        {
            try
            {
                var obj = new MENSAJE_TIPO();
                obj.DESCR      = Descripcion;
                obj.PRIORIDAD  = Prioridad;
                obj.COLOR      = Color;
                obj.ENCABEZADO = Encabezado;
                obj.CONTENIDO  = Contenido;
                obj.ESTATUS    = SelectedEstatus.DESCRIPCION == "ACTIVO" ? "S" : "N";
                var lRol = new List <MENSAJE_ROL>();
                if (SelectedItem == null)//INSERT
                {
                    #region Mensaje Rol
                    if (LstMensajeRol != null)
                    {
                        foreach (var x in LstMensajeRol)
                        {
                            lRol.Add(new MENSAJE_ROL()
                            {
                                ID_ROL = x.ID_ROL, DESCR = obj.DESCR
                            });
                        }
                    }
                    obj.MENSAJE_ROL = lRol;
                    #endregion

                    if (new cTipoMensaje().Agregar(obj) > 0)
                    {
                        return(true);
                    }
                }
                else//UPDATE
                {
                    obj.ID_MEN_TIPO = SelectedItem.ID_MEN_TIPO;
                    #region Mensaje Rol
                    if (LstMensajeRol != null)
                    {
                        foreach (var x in LstMensajeRol)
                        {
                            lRol.Add(new MENSAJE_ROL()
                            {
                                ID_MEN_TIPO = obj.ID_MEN_TIPO, ID_ROL = x.ID_ROL, DESCR = obj.DESCR
                            });
                        }
                    }
                    #endregion
                    if (new cTipoMensaje().Actualizar(obj, lRol))
                    {
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al guardar.", ex);
                return(false);
            }
        }