public PesquisaPacienteViewModel GetAllPacientesViewModel(PesquisaPacienteViewModel pesquisa) { var usuario = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity); var pessoaTrabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); var pessoaTrabalhaEstado = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); if (usuario.RoleUsuario.Equals("GESTOR") || usuario.RoleUsuario.Equals("SECRETARIO")) { if (pessoaTrabalhaMunicipio != null) { var municicpio = _municicpioContext.GetById(pessoaTrabalhaMunicipio.IdMunicipio); var estado = _estadoContext.GetByCodUf(Convert.ToInt32(municicpio.Uf)); pesquisa.Exames = _exameContext.GetByCidadeResidenciaPaciente(municicpio.Nome, estado.Uf.ToUpper(), pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList(); } if (pessoaTrabalhaEstado != null) { if (pessoaTrabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO) { var empresa = _empresaExameContext.GetById(pessoaTrabalhaEstado.IdEmpresaExame); if (empresa.FazMonitoramento) { pesquisa.Exames = _exameContext.GetByHospital(pessoaTrabalhaEstado.IdEmpresaExame, pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList(); } else { TempData["mensagemAviso"] = "Essa Funcionalidade Não está Disponível Para Organizações Privadas!"; return(new PesquisaPacienteViewModel()); } } else { var estado = _estadoContext.GetById(pessoaTrabalhaEstado.IdEstado); pesquisa.Exames = _exameContext.GetByEstadoResidenciaPaciente(estado.Uf.ToUpper(), pesquisa.VirusBacteria, pesquisa.DataInicial, pesquisa.DataFinal).ToList(); } } } /* * 2º Filtro - filtrando ViewModel por nome/cpf, resultado e exame */ pesquisa.Pesquisa = pesquisa.Pesquisa ?? ""; pesquisa.Resultado = pesquisa.Resultado ?? ""; if (!pesquisa.Pesquisa.Equals("")) { if (Methods.SoContemLetras(pesquisa.Pesquisa)) { pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.Paciente.Nome.ToUpper().Contains(pesquisa.Pesquisa.ToUpper())).ToList(); } else { pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.Paciente.Cpf.ToUpper().Contains(pesquisa.Pesquisa.ToUpper())).ToList(); } } if (!pesquisa.Resultado.Equals("") && !pesquisa.Resultado.Equals("Todas as Opçoes")) { pesquisa.Exames = pesquisa.Exames.Where(paciente => paciente.UltimoResultado.ToUpper().Equals(pesquisa.Resultado.ToUpper())).ToList(); } pesquisa.Exames = pesquisa.Exames.OrderByDescending(ex => ex.DataExame).ToList(); return(PreencheTotalizadores(pesquisa)); }