예제 #1
0
        public IActionResult ListarPorProntuario()
        {
            try
            {
                int usuarioId = Convert.ToInt32(HttpContext.User.Claims.First(c => c.Type == JwtRegisteredClaimNames.Jti).Value);

                ProntuarioPaciente pacienteProcurado = ProntuarioRepository.BuscarPorIdUsuario(usuarioId);

                if (pacienteProcurado == null)
                {
                    return(NotFound(new
                    {
                        mensagem = "Paciente não encontrado."
                    }));
                }

                return(Ok(ConsultaRepository.ListarPorProntuario(pacienteProcurado.Id)));
            }
            catch (Exception ex)
            {
                return(BadRequest(new
                {
                    mensagem = "Erro: " + ex
                }));
            }
        }
        public ProntuarioPaciente Cadastrar(ProntuarioPaciente paciente)
        {
            Usuarios usuario = new Usuarios();

            using (SpMedGroupContext ctx = new SpMedGroupContext())
            {
                usuario = ctx.Usuarios.Find(paciente.IdUsuario);

                if (usuario.IdTipoUsuarios != 3)
                {
                    return(null);
                }

                if (ctx.ProntuarioPaciente.Find(paciente.IdUsuario) != null) //Pra que ele não possa cadastrar um paciente num usuário que já exista!
                {
                    return(null);
                }
                if (paciente.DataNasc > DateTime.Now)
                {
                    return(null);
                }
                else
                {
                    ctx.ProntuarioPaciente.Add(paciente);
                    ctx.SaveChanges();
                    return(paciente);
                }
            }
        }
 public void CadastrarProntuario(ProntuarioPaciente prontuario)
 {
     using (SPMedGroupContext ctx = new SPMedGroupContext())
     {
         ctx.ProntuarioPaciente.Add(prontuario);
         ctx.SaveChanges();
     }
 }
 public int BuscarIdUsuario(int IdProntuarioPaciente)
 {
     using (SpMedGroupContext ctx = new SpMedGroupContext())
     {
         ProntuarioPaciente Paciente = new ProntuarioPaciente();
         Paciente = ctx.ProntuarioPaciente.FirstOrDefault(x => x.Id == IdProntuarioPaciente);
         return(Paciente.IdUsuario);
     }
 }
예제 #5
0
 public IActionResult CadastrarProntuario(ProntuarioPaciente prontuario)
 {
     try
     {
         UsuarioRepository.CadastrarProntuario(prontuario);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public IActionResult Cadastrar(ProntuarioPacienteViewModel paciente)
        {
            try
            {
                if (paciente.DataNasc.Year >= DateTime.Now.Year)
                {
                    return(BadRequest("Insira uma data de nascimento válida"));
                }

                UsuarioRepository            usuarioRepository            = new UsuarioRepository();
                EnderecosPacientesRepository enderecoPacienteRepository   = new EnderecosPacientesRepository();
                ProntuarioPacienteRepository prontuarioPacienteRepository = new ProntuarioPacienteRepository();

                Usuarios usuario = new Usuarios();
                //atribuindo as informações do view model ao usuário
                usuario.IdTipoUsuarios = paciente.IdTipoUsuarios;
                usuario.Email          = paciente.Email;
                usuario.Senha          = paciente.Senha;
                //cadastrando o usuário
                usuarioRepository.Cadastrar(usuario);

                EnderecosPacientes endereco = new EnderecosPacientes();
                //atribuindo as informações do view model ao endereço
                endereco.Estado     = paciente.Estado;
                endereco.Cidade     = paciente.Cidade;
                endereco.Bairro     = paciente.Bairro;
                endereco.Logradouro = paciente.Logradouro;
                endereco.Endereco   = paciente.Endereco;
                endereco.Cep        = paciente.Cep;
                //cadastrando endereço
                enderecoPacienteRepository.Cadastrar(endereco);

                ProntuarioPaciente prontuariopaciente = new ProntuarioPaciente();
                prontuariopaciente.Nome       = paciente.Nome;
                prontuariopaciente.Rg         = paciente.Rg;
                prontuariopaciente.Cpf        = paciente.Cpf;
                prontuariopaciente.DataNasc   = paciente.DataNasc.Date;
                prontuariopaciente.Telefone   = paciente.Telefone;
                prontuariopaciente.IdEndereco = endereco.Id;
                prontuariopaciente.IdUsuario  = usuario.Id;
                //cadastrando prontuario/paciente
                prontuarioPacienteRepository.Cadastrar(prontuariopaciente);

                return(Ok("Paciente cadastrado com sucesso!"));
            }
            catch
            {
                return(BadRequest("Algo deu errado :/"));
            }
        }
예제 #7
0
        public List <Consultas> ListarConsultasPac(int id)
        {
            using (SPMedGroupContext ctx = new SPMedGroupContext())
            {
                ProntuarioPaciente prontuario = ctx.ProntuarioPaciente.FirstOrDefault(x => x.IdUsuario == id);

                List <Consultas> listaConsultas = ctx.Consultas.Include(x => x.IdProntuarioNavigation.IdUsuarioNavigation).Include(x => x.IdTipoSituacaoNavigation).Include(x => x.IdMedicoNavigation).Where(x => x.IdProntuarioNavigation.Id == prontuario.Id).ToList();

                foreach (var item in listaConsultas)
                {
                    item.IdMedicoNavigation.Consultas       = null;
                    item.IdProntuarioNavigation.Consultas   = null;
                    item.IdTipoSituacaoNavigation.Consultas = null;
                }

                return(listaConsultas);
            }
        }
예제 #8
0
        public List <Consulta> ListarMinhasConsultas(int pegaUsuarioId, int tipoLogado)
        {
            List <Consulta> minhasConsultas = new List <Consulta>();

            switch (tipoLogado)
            {
            case 1:
                TipoMedico medicoBuscado = ctx.TipoMedico.Where(m => m.IdUsuario == pegaUsuarioId).FirstOrDefault();

                minhasConsultas = ctx.Consulta.ToList().FindAll(c => c.IdMedico == medicoBuscado.Id);

                break;

            case 2:
                ProntuarioPaciente prontuarioBuscado = ctx.ProntuarioPaciente.Where(p => p.IdUsuario == pegaUsuarioId).FirstOrDefault();

                minhasConsultas = ctx.Consulta.ToList().FindAll(c => c.IdPaciente == prontuarioBuscado.Id);

                break;
            }

            return(minhasConsultas);
        }
예제 #9
0
        public IActionResult Post(LoginViewModel login)
        {
            try
            {
                Usuarios usuario = UsuarioRepository.BuscarPorEmailSenha(login.Email, login.Senha);

                //Se o usuário não foi encontrado, então
                if (usuario == null)
                {
                    //Retorna o erro "NotFound"
                    return(NotFound("Email ou senha inválido!"));
                }

                //Se foi encontrado...
                else
                {
                    string nome;
                    using (SpMedGroupContext ctx = new SpMedGroupContext())
                    {
                        Medicos            medico   = new Medicos();
                        ProntuarioPaciente paciente = new ProntuarioPaciente();

                        if (ctx.Medicos.FirstOrDefault(x => x.IdUsuario == usuario.Id) != null)
                        {
                            medico = ctx.Medicos.FirstOrDefault(x => x.IdUsuario == usuario.Id);
                            nome   = medico.Nome;
                        }
                        else if (ctx.ProntuarioPaciente.FirstOrDefault(x => x.IdUsuario == usuario.Id) != null)
                        {
                            paciente = ctx.ProntuarioPaciente.FirstOrDefault(x => x.IdUsuario == usuario.Id);
                            nome     = paciente.Nome;
                        }
                        else
                        {
                            nome = "Administrador";
                        }
                    }
                    //Estabelecendo quais dados estarão no payload para serem acessados
                    var claims = new[]
                    {
                        new Claim(JwtRegisteredClaimNames.Jti, usuario.Id.ToString()),
                        new Claim(JwtRegisteredClaimNames.Email, usuario.Email),
                        new Claim(ClaimTypes.Role, usuario.IdTipoUsuarios.ToString()),
                        new Claim("Role", usuario.IdTipoUsuarios.ToString()),
                        new Claim("Nome", nome)
                    };


                    //Chave para acesso ao token
                    var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("D0Mlmccm14D0Mlmccm14D0Mlmccm14D0Mlmccm14"));

                    //Header, credenciais, geradas automaticamente.
                    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                    //Gerando o token
                    var token = new JwtSecurityToken(
                        issuer: "SPMedGroup.WebApi",
                        audience: "SPMedGroup.WebApi",
                        claims: claims,
                        expires: DateTime.Now.AddMinutes(10),
                        signingCredentials: creds
                        );

                    //Retorna Ok + o Token com as informações que queremos.
                    return(Ok(new
                    {
                        token = new JwtSecurityTokenHandler().WriteToken(token)
                    }));
                }
            }

            catch
            {
                return(BadRequest("Alguma coisa deu errado"));
            }
        }
 public ProntuarioPaciente Create(ProntuarioPaciente objeto)
 {
     return(_context.ProntuariosPacientes.Add(objeto).Entity);
 }