Example #1
0
        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));
        }