Files
cuidamais_med/docs/04_DetalhePacienteActivity.md
2026-04-22 12:41:12 +01:00

2.1 KiB
Raw Blame History

🏥 DetalhePacienteActivity.java — Detalhes do Paciente

Ficheiro: app/src/main/java/com/example/medcuida/pro/DetalhePacienteActivity.java
Layout: activity_detalhe_paciente.xml | Linhas: 150


Descrição Geral

Mostra os dados detalhados de um paciente selecionado, incluindo a sua medicação ativa. Permite abrir o chat com o paciente.


Dados Apresentados

Campo Origem Firestore
Nome utilizadores/{id}.nome_completo
Idade utilizadores/{id}.idade
Nº Utente utilizadores/{id}.numero_utente
Sexo utilizadores/{id}.sexo
Email utilizadores/{id}.email
Medicação Coleção medicamentos (filtrada por userId)

Inicialização (onCreate) — Linhas 2764

  1. Associa as views do layout (TextViews + botões)
  2. Recebe via Intent:
    • PACIENTE_ID → ID do paciente (obrigatório)
    • CONSULTA_ID → ID da consulta (opcional, para o chat)
  3. Botão "Sair"finish() (volta à Activity anterior)
  4. Botão "Chat":
    • Se tem consultaId → abre chat diretamente
    • Se não tem → procura uma consulta existente via buscarConsultaEParaChat()

buscarConsultaEParaChat() — Linhas 6679

db.collection("consultas")
    .whereEqualTo("pacienteId", pacienteId)
    .limit(1)
    .get()
  • Procura uma consulta associada ao paciente
  • Se encontrar → abre o ChatActivity com o consultaId
  • Se não encontrar → mostra aviso "Não existe consulta ativa"

carregarDadosPaciente() — Linhas 88148

Parte 1: Dados pessoais (Linhas 89111)

  • Lê o documento do paciente em utilizadores/{pacienteId}
  • Preenche nome, idade, nº utente, sexo e email
  • Campos nulos aparecem como "N/D"

Parte 2: Medicação (Linhas 113138)

db.collection("medicamentos")
    .whereEqualTo("userId", pacienteId)
    .get()
  • Pesquisa na coleção medicamentos todos os registos do paciente
  • Suporta nomes de campos em PT (nome, hora) e EN (name, time)
  • Formata como lista: • Paracetamol (08:00)
  • Se não houver medicação → mostra "Nenhuma medicação ativa"