public async Task<ActionResult> InfoNuevoIngreso(INGRESOMODEL _model)
        {
            if (ModelState.IsValid)
            {
                // validar si no existe un egreso pendiente
                //tiene al menos un ingreso registrado (re-ingreso)
                if (await _context.INGRESO.FirstOrDefaultAsync(i => i.IDPERSONA == _model.IDPERSONA) != null)
                {
                    // comprueba que al menos un registro tenga fecha de egrso nula
                    if (await _context.INGRESO.FirstOrDefaultAsync(i => i.FECHAEGRESOPV != null) != null)
                    {
                        // duvuele un mesaje de egreso pendiente, no puede tener un egreso pendiente
                        ModelState.AddModelError("", "Este paciente tien un Egreso pendiente, por favor notificar al Director sobre este caso");
                        ViewBag.IDCRENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCRENTROTERAPEUTICO);
                        return View(_model);
                    }
                    else
                    {
                        // get y set entity
                        var _entity = new INGRESO
                        {
                            NUMEXPEDIENTE = _model.NUMEXPEDIENTE,
                            FECHAINGRESOSISTEMA = DateTime.Now,
                            OBSERVACIONES = _model.OBSERVACIONES,
                            STATUSFLOW = 1,
                            IDPERSONA = _model.IDPERSONA
                        };

                        // guardar 
                        _context.INGRESO.Add(_entity);
                        await _context.SaveChangesAsync();

                        // crear carpeta de documentos
                        var pathFichaDocus = Path.Combine(Server.MapPath("~/App_Data/DocumentosIngreso/" + _entity.IDPERSONA.ToString() + ""), _entity.ID.ToString());

                        //orden de crear carpeta
                        Directory.CreateDirectory(pathFichaDocus);

                        // establecer el centroterapéutico de desarrollo
                        var _entityCTD = new CENTRODESARROLLOINGRESO
                        {
                            
                            IDINGRESO = _entity.ID,
                            IDCENTROTERAPEUTICO = _model.IDCRENTROTERAPEUTICO,
                            FECHAREGISTRO = DateTime.Now,
                            
                        };

                        // guardar el registro
                        _context.CENTRODESARROLLOINGRESO.Add(_entityCTD);
                        await _context.SaveChangesAsync();

                        // redireccionar a los documentos
                        // los docuemtos son dependencia del ingreso
                        return RedirectToAction("EntregaDocumentosIngreso", "SolicitudIngreso", new { ID = _entity.ID });
                    }
                }
                else
                {
                    // get y set entity
                    var _entity = new INGRESO
                    {
                        NUMEXPEDIENTE = _model.NUMEXPEDIENTE,
                        FECHAINGRESOSISTEMA = DateTime.Now,
                        OBSERVACIONES = _model.OBSERVACIONES,
                        STATUSFLOW = 1,
                        IDPERSONA = _model.IDPERSONA
                    };

                    // guardar 
                    _context.INGRESO.Add(_entity);
                    await _context.SaveChangesAsync();

                    // establecer el centroterapéutico de desarrollo
                    var _entityCTD = new CENTRODESARROLLOINGRESO
                    {

                        IDINGRESO = _entity.ID,
                        IDCENTROTERAPEUTICO = _model.IDCRENTROTERAPEUTICO,
                        FECHAREGISTRO = DateTime.Now,

                    };

                    // guardar el registro
                    _context.CENTRODESARROLLOINGRESO.Add(_entityCTD);
                    await _context.SaveChangesAsync();

                    // crear carpeta de documentos por ingreso
                    // crear capeta de interno
                    // crear carpeta de documentos
                    var pathFichaDocus = Path.Combine(Server.MapPath("~/App_Data/DocumentosIngreso/" + _entity.IDPERSONA.ToString() + ""), _entity.ID.ToString());

                    //orden de crear carpeta
                    Directory.CreateDirectory(pathFichaDocus);
                    // redireccionar a los documentos
                    // los docuemtos son dependencia del ingreso
                    return RedirectToAction("EntregaDocumentosIngreso", "SolicitudIngreso", new { ID = _entity.ID });
                }

            }

            ViewBag.IDCRENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCRENTROTERAPEUTICO);
            return View(_model);
        }
        // modificación del estado
        public async Task<ActionResult> EditarEstadoIngreso(INGRESOMODEL _model)
        {
            Thread.Sleep(2000);

            try
            {

                // get entity 
                var _entity = new INGRESO();

                // find
                _entity = await _context.INGRESO.FindAsync(_model.ID);

                //set cambios
                // _entity.FECHAFIRMAACUERDO = _model.FECHAFIRMAACUERDO;
                _entity.FECHAUTORIZACION = _model.FECHAUTORIZACION;
                _entity.ACEPTADO = _model.ACEPTADO;
                //_entity.CONTRATO = _model.CONTRATO;
                _entity.OBSERVACIONES = _model.OBSERVACIONES;

                //save data 
                _context.Entry(_entity).State = EntityState.Modified;
                await _context.SaveChangesAsync();


                return Json(new { success = true, message = "Se ha cambiado el estado con éxito!" }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                return Json(new { success = false, message = ex.Message }, JsonRequestBehavior.AllowGet);
            }

        }