dc5a2d89ae
Novo módulo de logística do lab (doc/AGENDA-COLETA-LAB): - protese_coleta: agendamento de coleta (lab busca) / entrega (lab leva), com data/hora, endereço, responsável, status. Ligado à OS. - POST /protese/os/:id/coleta (agendar), GET /protese/lab/agenda (cronológica), POST /protese/coleta/:id/status. 'realizada' MOVE a custódia automaticamente (coleta→laboratorio, entrega→clinica) — fonte única do movimento físico. GET detalhe traz coletas[]. - UI: tela AGENDA (lab-agenda) agrupada por dia com "marcar realizada"; seção Coleta/entrega na aba Monitoramento da OS (clínica e lab). Validado em DEV: agenda coleta → realizada → custódia=laboratorio; lab vê na agenda. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Agenda & Coleta do laboratório
Desenho + implementação (24/jun/2026). Gap apontado na auditoria: o lab não tem agenda de produção nem coleta logística (só "próximas entregas" por prazo e custódia de posse).
Conceito
- Coleta = o lab busca o trabalho na clínica (trabalho vai p/ o laboratório).
- Entrega = o lab leva o trabalho de volta (trabalho volta p/ a clínica).
- Cada agendamento tem data/hora, endereço, responsável, observação e status
(
agendada | realizada | cancelada). Ligado a uma OS. - Integra com a custódia: ao marcar
realizada, a custódia muda automaticamente (coleta→laboratorio, entrega→clinica) e entra no histórico da OS. Sem dado duplicado.
Modelo
CREATE TABLE protese_coleta (
id TEXT PRIMARY KEY,
os_id TEXT NOT NULL,
clinica_id TEXT,
laboratorio_id TEXT,
protetico_id TEXT,
tipo TEXT NOT NULL, -- coleta | entrega
data_hora TIMESTAMPTZ,
endereco TEXT,
responsavel TEXT,
observacao TEXT,
status TEXT DEFAULT 'agendada', -- agendada | realizada | cancelada
created_by TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Endpoints
POST /api/protese/os/:id/coleta— agenda (clínica ou lab).GET /api/protese/lab/agenda— coletas/entregas do lab (cronológica) + próximas entregas por prazo.POST /api/protese/coleta/:id/status—realizada(move a custódia) |cancelada.- GET detalhe da OS passa a trazer
coletas[].
UI
- Lab — tela Agenda (
lab-agenda, novo item de menu): linha do tempo de coletas/entregas agendadas + entregas previstas (prazo da OS), com ação "marcar realizada". - OS (aba Monitoramento) — agendar coleta/entrega ao lado da custódia (mesmo contexto físico).
Decisões
- 1 coleta por OS (MVP). Agrupar várias OS numa rota/motoboy fica como evolução.
realizadaé a fonte única do movimento físico (atualiza custódia) — evita registrar custódia e coleta em separado.