public ActionResult ImprimirPDFSimplificado(FiltroProntuarioViewModel filtro) { if (filtro.Valido()) { List <Prontuario> prontuarios = this.ProntuarioRepository.ListarDetalhado(filtro.DataInicial, filtro.DataFinal, filtro.NumeroAtendimento, filtro.CodigoEspecialidade, null); List <EspecialidadeAtendimento> especialidades = this.EspecialidadeAtendimentoRepository.ListarAtivos().Where(_ => filtro.CodigoEspecialidade == null || _.CodigoEspecialidade == filtro.CodigoEspecialidade).ToList(); List <TipoAtendimento> tipos = this.TipoAtendimentoRepository.ListarAtivos(); List <AtendimentoSimplificadoPDFViewModel> lista = this.ConverterParaProntuarioSimplificadoViewModel(prontuarios, especialidades, tipos); LocalReport relatorio = new LocalReport(); relatorio.ReportPath = Request.MapPath(Request.ApplicationPath) + @"\Reports\ReportProntuarioGeral.rdlc"; relatorio.DataSources.Add(new ReportDataSource("Prontuario", lista)); //parametros relatorio.SetParameters(new ReportParameter("DataImpressao", DateTime.Now.ToString("dd/MM/yyyy"))); relatorio.SetParameters(new ReportParameter("Nome", UserAuthentication.ObterNome())); relatorio.SetParameters(new ReportParameter("Periodo", $"{filtro.DataInicial.ToString("dd/MM/yyyy")} a {filtro.DataFinal.ToString("dd/MM/yyyy")}")); string descricaoTipoAtendimento = "Todos"; if (filtro.CodigoTipoAtendimento.HasValue) { TipoAtendimento tipo = this.TipoAtendimentoRepository.Obter(filtro.CodigoTipoAtendimento.Value); if (!(tipo == default(TipoAtendimento))) { descricaoTipoAtendimento = tipo.DescricaoTipoAtendimento; } } relatorio.SetParameters(new ReportParameter("Atendimento", descricaoTipoAtendimento)); string descricaoEspecialidade = "Todos"; if (filtro.CodigoEspecialidade.HasValue) { EspecialidadeAtendimento especialidade = this.EspecialidadeAtendimentoRepository.Obter(filtro.CodigoEspecialidade.Value); if (!(especialidade == default(EspecialidadeAtendimento))) { descricaoEspecialidade = especialidade.DescricaoEspecialidade; } } relatorio.SetParameters(new ReportParameter("Especialidade", descricaoEspecialidade)); return(GerarArquivoPDF(relatorio)); } return(View("BuscarAtendimentos", filtro)); }
public ActionResult Cadastrar(AtendimentoViewModel viewModel) { ViewBag.NomePagina = "Finalização de Atendimento - Token"; if (viewModel.Valido()) { // Cadastro de Atendimento. Atendimento atendimento = Mapper.Map<AtendimentoViewModel, Atendimento>(viewModel); atendimento.DataAtendimento = DateTime.Now; atendimento.CodigoMedico = Convert.ToInt32(UserAuthentication.ObterCodigoInternoUsuarioLogado()); atendimento = this.AtendimentoRepository.Cadastrar(atendimento); // Geração do Token. string codigoToken = Utils.GenerateRandomNumber(); string codigoTokenBase64 = Utils.Base64Encode(codigoToken); TokenAtendimento token = new TokenAtendimento(atendimento.NumeroAtendimento, codigoTokenBase64); this.TokenAtendimentoRepository.Cadastrar(token); // Envio de Email para paciente com token de verificação PessoaFisica pessoa = this.PessoaFisicaRepository.Obter(atendimento.CodigoPessoaFisica); EspecialidadeAtendimento especialidade = this.EspecialidadeAtendimentoRepository.Obter(atendimento.CodigoEspecialidade); Medico medico = this.MedicoRepository.Obter(atendimento.CodigoMedico); if (pessoa == default(PessoaFisica)) return Json("Paciente não encontrado"); if (especialidade == default(EspecialidadeAtendimento)) return Json("Especialidade não encontrado"); if (medico == default(Medico)) return Json("Médico não encontrado"); Utils.SendEmail(pessoa.Email, $"Olá, {pessoa.Nome}, seu atendimento realidado com o(a) Dr(a). {medico.NomeGuerra} da especialidade {especialidade.DescricaoEspecialidade} realidado dia {atendimento.DataAtendimento.ToString("dd/MM/yyyy HH:mm:ss")} gerou um token de validação: {codigoToken}", $" #{atendimento.NumeroAtendimento} Atendimento Realizado"); ViewBag.CodigoAtendimento = atendimento.NumeroAtendimento; ViewBag.NomePessoa = pessoa.Nome; return View("FinalizarCadastro"); } return RedirectToAction("Index", "Atendimento"); }