falta so o chat
This commit is contained in:
71
docs/04_DetalhePacienteActivity.md
Normal file
71
docs/04_DetalhePacienteActivity.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 🏥 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 27–64
|
||||
|
||||
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 66–79
|
||||
|
||||
```java
|
||||
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 88–148
|
||||
|
||||
### Parte 1: Dados pessoais (Linhas 89–111)
|
||||
- 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 113–138)
|
||||
```java
|
||||
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"
|
||||
Reference in New Issue
Block a user