public IActionResult Delete(int id, PesquisaExameViewModel pesquisaExame, IFormCollection collection) { var exame = _exameContext.GetById(id); try { _exameContext.Delete(id); var situacoes = _situacaoPessoaContext.GetByIdPaciente(exame.Paciente.Idpessoa); var exames = _exameContext.GetByIdPaciente(exame.Paciente.Idpessoa); var pessoaTrabalhaEstado = _pessoaTrabalhaEstadoContext.GetByIdPessoa(exame.Paciente.Idpessoa); var pessoaTrabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(exame.Paciente.Idpessoa); var examesPaciente = _exameContext.GetByIdPaciente(exame.Paciente.Idpessoa); var examesNotificados = _exameContext.GetByIdAgente(exame.Paciente.Idpessoa, DateTime.MinValue, DateTime.MaxValue); if (situacoes.Count == 1 && pessoaTrabalhaEstado == null && pessoaTrabalhaMunicipio == null && examesPaciente.Count == 0 && examesNotificados.Count == 0) { var situacao = situacoes.First(); _situacaoPessoaContext.Delete(situacao.Idpessoa, situacao.IdVirusBacteria); _pessoaContext.Delete(exame.Paciente.Idpessoa); } } catch { TempData["mensagemErro"] = "Houve problemas na exclusão do exame. Tente novamente em alguns minutos." + " Se o erro persistir, entre em contato com a Fábrica de Software da UFS pelo email [email protected]"; return(RedirectToAction("Index", "Exame", pesquisaExame)); } TempData["mensagemSucesso"] = "O Exame foi removido com sucesso!"; return(RedirectToAction("Index", "Exame", pesquisaExame)); }
public async Task <IActionResult> EnviarSMS(int id, PesquisaExameViewModel pesquisaExame, IFormCollection collection) { ExameViewModel exameView = _exameContext.GetById(id); var usuario = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity); var trabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); var trabalhaEstado = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); try { string statusAnteriorSMS = exameView.Exame.StatusNotificacao; ExameModel exame = exameView.Exame; if (new Util.TelefoneCelularAttribute().IsValid(exameView.Paciente.FoneCelular)) { if (exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO)) { exame = await _smsService.ConsultarSMSExameAsync(trabalhaEstado, trabalhaMunicipio, exame); } else if (exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_NAO) || exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_PROBLEMAS)) { exame = await _smsService.EnviarSMSResultadoExameAsync(trabalhaEstado, trabalhaMunicipio, exame, exameView.Paciente); } } if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_SIM)) { TempData["mensagemSucesso"] = "SMS foi entregue com SUCESSO!"; } else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_NAO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO)) { TempData["mensagemSucesso"] = "SMS enviado com SUCESSO!"; } else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_NAO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_NAO)) { TempData["mensagemErro"] = "Ocorreram problemas no envio do SMS. Favor conferir telefone e repetir operação em alguns minutos."; } else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO)) { TempData["mensagemErro"] = "Ainda aguardando resposta da operadora. Favor repetir a consulta em alguns minutos."; } else if (statusAnteriorSMS.Equals(ExameModel.NOTIFICADO_ENVIADO) && exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_PROBLEMAS)) { TempData["mensagemErro"] = "Operadora não conseguiu entregar o SMS. Favor conferir telefone e repetir envio em alguns minutos."; } } catch (ServiceException se) { TempData["mensagemErro"] = se.Message; } return(RedirectToAction("Notificate", "Exame", pesquisaExame)); }
public PesquisaExameViewModel PreencheTotalizadores(PesquisaExameViewModel examesTotalizados) { foreach (var item in examesTotalizados.Exames) { switch (item.Exame.Resultado) { case ExameModel.RESULTADO_POSITIVO: examesTotalizados.Positivos++; break; case ExameModel.RESULTADO_NEGATIVO: examesTotalizados.Negativos++; break; case ExameModel.RESULTADO_INDETERMINADO: examesTotalizados.Indeterminados++; break; case ExameModel.RESULTADO_RECUPERADO: examesTotalizados.Recuperados++; break; case ExameModel.RESULTADO_AGUARDANDO: examesTotalizados.Aguardando++; break; case ExameModel.RESULTADO_IGMIGG: examesTotalizados.IgMIgGs++; break; } } return(examesTotalizados); }
public IActionResult Notificate(PesquisaExameViewModel pesquisaExame) { return(View(BuscaExamesViewModel(pesquisaExame))); }
public IActionResult Index(PesquisaExameViewModel pesquisaExame) { return(View(BuscaExamesViewModel(pesquisaExame))); }
public PesquisaExameViewModel BuscaExamesViewModel(PesquisaExameViewModel pesquisaExame) { var usuario = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity); var pessoaTrabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); bool dataInicialIndeterminada = pesquisaExame.DataInicial.Equals(DateTime.MinValue); var exames = new List <ExameBuscaModel>(); if (usuario.RoleUsuario.Equals("AGENTE") || usuario.RoleUsuario.Equals("ADM")) { if (dataInicialIndeterminada) { exames = _exameContext.GetByIdAgente(usuario.UsuarioModel.IdPessoa, 15); } else { exames = _exameContext.GetByIdAgente(usuario.UsuarioModel.IdPessoa, pesquisaExame.DataInicial, pesquisaExame.DataFinal); } } else if (usuario.RoleUsuario.Equals("GESTOR") || usuario.RoleUsuario.Equals("SECRETARIO")) { if (pessoaTrabalhaMunicipio != null) { if (dataInicialIndeterminada) { exames = _exameContext.GetByIdMunicipio(pessoaTrabalhaMunicipio.IdMunicipio, 15); } else { exames = _exameContext.GetByIdMunicipio(pessoaTrabalhaMunicipio.IdMunicipio, pesquisaExame.DataInicial, pesquisaExame.DataFinal); } } else { var pessoaTrabalhaEstado = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); if (pessoaTrabalhaEstado != null) { if (pessoaTrabalhaEstado.IdEmpresaExame != EmpresaExameModel.EMPRESA_ESTADO_MUNICIPIO) { if (dataInicialIndeterminada) { exames = _exameContext.GetByIdEmpresa(pessoaTrabalhaEstado.IdEmpresaExame, 15); } else { exames = _exameContext.GetByIdEmpresa(pessoaTrabalhaEstado.IdEmpresaExame, pesquisaExame.DataInicial, pesquisaExame.DataFinal); } } else { if (dataInicialIndeterminada) { exames = _exameContext.GetByIdEstado(pessoaTrabalhaEstado.IdEstado, 15); } else { exames = _exameContext.GetByIdEstado(pessoaTrabalhaEstado.IdEstado, pesquisaExame.DataInicial, pesquisaExame.DataFinal); } } } } } pesquisaExame.Exames = exames; /* * 2º Filtro - filtrando ViewModel por nome ou cpf e resultado */ pesquisaExame.Pesquisa = pesquisaExame.Pesquisa ?? ""; pesquisaExame.Resultado = pesquisaExame.Resultado ?? ""; pesquisaExame.Cidade = pesquisaExame.Cidade ?? ""; if (!pesquisaExame.Pesquisa.Equals("")) { if (Methods.SoContemLetras(pesquisaExame.Pesquisa)) { pesquisaExame.Exames = pesquisaExame.Exames.Where(exameViewModel => exameViewModel.NomePaciente.ToUpper().Contains(pesquisaExame.Pesquisa.ToUpper())).ToList(); } else { pesquisaExame.Exames = pesquisaExame.Exames.Where(exameViewModel => exameViewModel.Cpf.ToUpper().Contains(pesquisaExame.Pesquisa.ToUpper())).ToList(); } } if (!pesquisaExame.Resultado.Equals("") && !pesquisaExame.Resultado.Equals("Todas as Opçoes")) { pesquisaExame.Exames = pesquisaExame.Exames.Where(exameViewModel => exameViewModel.Exame.Resultado.ToUpper().Equals(pesquisaExame.Resultado.ToUpper())).ToList(); } if (!pesquisaExame.Cidade.Equals("")) { pesquisaExame.Exames = pesquisaExame.Exames.Where(exameViewModel => exameViewModel.Cidade.ToUpper().Contains(pesquisaExame.Cidade.ToUpper())).ToList(); } /* * Ordenando lista por data e pegando maior e menor datas... */ if (pesquisaExame.Exames.Count > 0) { pesquisaExame.Exames = pesquisaExame.Exames.OrderByDescending(ex => ex.Exame.DataExame).ToList(); pesquisaExame.DataFinal = pesquisaExame.Exames[0].Exame.DataExame; pesquisaExame.DataInicial = pesquisaExame.Exames[pesquisaExame.Exames.Count - 1].Exame.DataExame; } pesquisaExame.Exames = pesquisaExame.Exames.OrderBy(ex => ex.Exame.CodigoColeta).ToList(); return(PreencheTotalizadores(pesquisaExame)); }
public async Task <IActionResult> ConsultarSMSEnviados(List <ExameViewModel> exames, PesquisaExameViewModel pesquisaExame) { var usuario = _usuarioContext.RetornLoggedUser((ClaimsIdentity)User.Identity); var trabalhaMunicipio = _pessoaTrabalhaMunicipioContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); var trabalhaEstado = _pessoaTrabalhaEstadoContext.GetByIdPessoa(usuario.UsuarioModel.IdPessoa); try { int entregasSucesso = 0; int entregasFalhas = 0; int entregasAguardando = 0; foreach (ExameViewModel exame in exames) { ExameViewModel exameView = _exameContext.GetById(exame.Exame.IdExame); if (new Util.TelefoneCelularAttribute().IsValid(exameView.Paciente.FoneCelular)) { if (exameView.Exame.StatusNotificacao.Equals(ExameModel.NOTIFICADO_ENVIADO)) { var exameNotificado = await _smsService.ConsultarSMSExameAsync(trabalhaEstado, trabalhaMunicipio, exameView.Exame); if (exameNotificado.StatusNotificacao.Equals(ExameModel.NOTIFICADO_SIM)) { entregasSucesso++; } else if (exameNotificado.StatusNotificacao.Equals(ExameModel.NOTIFICADO_PROBLEMAS)) { entregasFalhas++; } else { entregasAguardando++; } } } } string mensagem = ""; mensagem += (entregasSucesso > 0) ? "Foram entregues " + entregasSucesso + " SMS com SUCESSO. " : ""; mensagem += (entregasFalhas > 0) ? "Ocorreram problemas no envio de " + entregasFalhas + " SMS. " : ""; mensagem += (entregasAguardando > 0) ? "Aguardando resposta da operadora de " + entregasAguardando + " SMS." : ""; TempData["mensagemSucesso"] = "Consultas aos SMS enviadas com sucesso! " + mensagem; } catch (ServiceException se) { TempData["mensagemErro"] = se.Message; } return(RedirectToAction("Notificate", "Exame", pesquisaExame)); }