public PesquisaPacienteViewModel PreencheTotalizadores(PesquisaPacienteViewModel pacientesTotalizados) { foreach (var item in pacientesTotalizados.Exames) { switch (item.UltimoResultado) { case ExameModel.RESULTADO_POSITIVO: pacientesTotalizados.Positivos++; break; case ExameModel.RESULTADO_INDETERMINADO: pacientesTotalizados.Indeterminados++; break; case ExameModel.RESULTADO_RECUPERADO: pacientesTotalizados.Recuperados++; break; case ExameModel.RESULTADO_AGUARDANDO: pacientesTotalizados.Aguardando++; break; case ExameModel.RESULTADO_IGMIGG: pacientesTotalizados.IgGIgM++; break; } switch (item.Paciente.SituacaoSaude) { case PessoaModel.SITUACAO_ISOLAMENTO: pacientesTotalizados.Isolamento++; break; case PessoaModel.SITUACAO_HOSPITALIZADO_INTERNAMENTO: pacientesTotalizados.Hospitalizado++; break; case PessoaModel.SITUACAO_UTI: pacientesTotalizados.UTI++; break; case PessoaModel.SITUACAO_SAUDAVEL: pacientesTotalizados.Saudavel++; break; case PessoaModel.SITUACAO_ESTABILIZACAO: pacientesTotalizados.Estabilizacao++; break; case PessoaModel.SITUACAO_OBITO: pacientesTotalizados.Obito++; break; } } return(pacientesTotalizados); }
/* O formulário só enviava os campos vazios. * Essa solução com a lista de parâmetros extensa é provisória.*/ public IActionResult Index(DateTime DataInicial, DateTime DataFinal, string Pesquisa, string Resultado, int VirusBacteria) { var virus = _virusBacteriaContext.GetAll(); ViewBag.VirusBacteria = new SelectList(virus, "IdVirusBacteria", "Nome"); ViewBag.AreaAtuacao = new SelectList(_areaAtuacaoContext.GetAll(), "IdAreaAtuacao", "Descricao"); if (VirusBacteria == 0) { VirusBacteria = virus.First().IdVirusBacteria; } int diasRecuperacao = virus.Where(v => v.IdVirusBacteria == VirusBacteria).First().DiasRecuperacao; var pesquisa = new PesquisaPacienteViewModel { Exames = new List <MonitoraPacienteViewModel>(), Resultado = Resultado, DataFinal = DataFinal.Equals(DateTime.MinValue) ? DateTime.Now : DataFinal, DataInicial = DataInicial.Equals(DateTime.MinValue) ? DateTime.Now.AddDays(-diasRecuperacao) : DataInicial, Pesquisa = Pesquisa, VirusBacteria = VirusBacteria, }; return(View(GetAllPacientesViewModel(pesquisa))); }
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)); }