public ActionResult FichaPacienteReporte(TurnosPorPacienteViewModel viewModel) { //Si es sólo paciente, puede ver sus atenciones únicamente if (User.IsInRole<Paciente>() && User.Roles.Count == 1) viewModel.PacienteId = User.As<Paciente>().Id; if (!viewModel.PacienteId.HasValue) return RedirectToAction("SeleccionPaciente"); var paciente = SessionFactory.GetCurrentSession().Get<Paciente>(viewModel.PacienteId); if (paciente == null) return HttpNotFound(); viewModel.PacienteSeleccionado = MappingEngine.Map<InfoViewModel>(paciente); var report = ReportFactory.Create<IFichaPacienteReporte>(); report.FechaDesde = viewModel.Filters.Desde; report.FechaHasta = viewModel.Filters.Hasta; report.Filtro = viewModel.Filters.Filtro; report.PacienteId = paciente.Id; var reportEngine = new ReportEngine(); var reportBytes = reportEngine.BuildReport(report); return File(reportBytes, "application/pdf", string.Format("FichaPaciente_{0}.pdf", viewModel.PacienteSeleccionado.Descripcion.SanitanizeForFileName())); }