Changelog
Changelog
Todas as alterações relevantes deste projeto são documentadas aqui, por release, na ordem em que foram implementadas (mais antiga primeiro — diferente da convenção usual de changelog, que lista a mais recente primeiro; a ordem cronológica foi uma escolha deliberada pra este documento, pra acompanhar a evolução do sistema do início até hoje).
Numeração de versão no padrão SemVer
(MAJOR.MINOR.PATCH), com a primeira release em 0.1.0:
- MAJOR: mudança grande que quebra compatibilidade com o funcionamento anterior.
- MINOR: nova funcionalidade, compatível com o que já existia.
- PATCH: correção de bug ou ajuste pequeno, sem funcionalidade nova.
O projeto ainda está na faixa 0.x — nenhuma mudança até agora quebrou
compatibilidade de verdade (é um sistema único, sempre implantado na
versão mais recente, sem clientes externos presos a uma versão antiga),
por isso a coluna MAJOR nunca subiu ainda.
As categorias dentro de cada versão seguem o padrão Keep a Changelog: Adicionado (funcionalidade nova), Corrigido (bug), Alterado (mudança de comportamento existente).
[0.1.0] — 2026-08-13
Adicionado
- Reconstrução completa do sistema do zero, conforme especificação formal, substituindo o MVP anterior (arquivado, não descartado).
- Stack inicial: Next.js + Socket.IO (tempo real) + PostgreSQL/Prisma + Auth.js (login por usuário/senha).
- Fluxo básico de chamado da Enfermagem: paciente aciona pelo QR Code do quarto, equipe recebe em tempo real, atende e finaliza.
- Trilha de auditoria imutável a nível de banco (
EventoAuditoria, comREVOKE UPDATE/DELETEpra role de runtime do app).
[0.1.1] — 2026-08-14
Corrigido
- Singleton do Socket.IO entre
server.tse as rotas de API — usava uma variável de módulo comum, que não é compartilhada entre o processo doserver.ts(roda viatsx, fora do bundler do Next) e as rotas (dentro do grafo do Next); corrigido guardando a instância emglobalThis.
Alterado
- Som de alerta e notificações push passam a ser ativados automaticamente ao carregar a tela (com botão manual de retaguarda se o navegador bloquear).
[0.2.0] — 2026-08-14
Adicionado
- Botão de emergência na tela do quarto, com prioridade máxima.
- Duas telas por setor: parede (só visualização, letras grandes) e atendimento (interativa, com os botões de ação).
- Suporte a múltiplos postos de Enfermagem, cada um com fila própria.
- Primeira versão do cadastro administrativo: postos, usuários e quartos.
[0.3.0] — 2026-08-14
Adicionado
- Tela "Início" com atalhos de navegação de acordo com o papel de quem logou.
- Escopo configurável do supervisor ("Meus setores") — cada supervisor escolhe quais postos acompanha.
- Modo escuro como padrão do sistema (pensado pro uso noturno/hospitalar).
Corrigido
- Uma tag
<script>inválida introduzida no dia anterior, causando aviso de hidratação.
[0.4.0] — 2026-08-14
Adicionado
- Login vira a tela inicial do sistema (raiz
/). - Central de Ajuda — documentação navegável e disponível pra download dentro do próprio sistema.
- Sete melhorias de produto de uma vez: acuidade do paciente por quarto, prioridade em 3 níveis (normal/urgente/emergência) com cor e som distintos, SLA configurável por posto, cadeia de escalonamento automático (supervisor → administração), relatórios por turno e carga por funcionário, checklist de rondas por posto/quarto, e chamada de áudio bidirecional (WebRTC) entre paciente e posto.
[0.5.0] — 2026-08-14
Adicionado
- Logo oficial da Unimed Norte Fluminense no cabeçalho e na tela de login.
- Modo "Visualizar como" para a Administração — abre qualquer tela do sistema sem precisar logar com outra conta.
Corrigido
- Bugs de navegação (histórico do navegador não refletia corretamente as trocas de tela).
[0.6.0] — 2026-08-14
Adicionado
- Botão "Voltar" global no cabeçalho, disponível em qualquer tela do sistema.
Alterado
- Ajustes de layout ao redor da logo.
[0.7.0] — 2026-08-14
Adicionado
- Cadastro de dispositivos de emergência físicos (botão/cordão IoT) em
/admin/dispositivos, com geração e rotação de chave de API (revelada só uma vez na criação).
[0.8.0] — 2026-08-14
Adicionado
- Generalização do conceito de "posto": Copa e Rouparia passam a ter postos e filas próprias, além da Enfermagem — deixa de ser um fluxo único.
[0.8.1] — 2026-08-14
Corrigido
- Login dentro do ambiente Docker.
- Links que deveriam abrir em nova aba e não abriam.
Alterado
- Logo aumentada.
[0.9.0] — 2026-08-14
Adicionado
- Cadastro de leitos em lote: um prefixo + lista de leitos cria vários quartos de uma vez, cada um com QR Code e fila de chamados próprios.
- SLA de finalização — limite de tempo independente entre "estamos a caminho" e concluir o atendimento (diferente do SLA de atendimento, que só olha até dar ciência do chamado).
Corrigido
- Diversos ajustes de UX identificados no uso.
[0.9.1] — 2026-08-14
Corrigido
- Documentação técnica e manual de uso atualizados pra cobrir postos, dispositivos, leitos em lote e o SLA de finalização.
[0.10.0] — 2026-08-14
Adicionado
- Edição de postos, usuários, quartos e dispositivos já cadastrados (antes só era possível criar, nunca editar).
Alterado
- Botão de tema do cabeçalho vira só ícone (economiza espaço).
[0.11.0] — 2026-08-14
Adicionado
- Papel do usuário (Enfermagem/Copa/Rouparia/Supervisão/Administração) passa a ser editável depois de criado.
- Logo do cabeçalho vira também um atalho pra tela Início.
Corrigido
- Erro 404 na tela pública
/chamar/<número do quarto>em alguns casos.
[0.11.1] — 2026-08-14
Corrigido
- Botões que ficavam inertes (sem resposta ao toque) ao acessar o
sistema pelo IP da rede local em vez de
localhost. - Tela do quarto ajustada pra caber sem rolar em celulares.
[0.11.2] — 2026-08-15
Corrigido
- Detecção automática do IP da rede local em
allowedDevOrigins— elimina a necessidade de configurar isso à mão a cada rede diferente.
[0.11.3] — 2026-08-15
Corrigido
- Repasse da variável de ambiente
DOMINIOpro Caddy, que não estava emitindo o certificado HTTPS automático pro domínio certo.
Adicionado
- Documentação do uso de DDNS (No-IP) pra hospitais sem domínio próprio.
[0.12.0] — 2026-08-15
Adicionado
- Política de senha forte obrigatória no cadastro de usuários: mínimo 12 caracteres, com maiúscula, minúscula, número e símbolo, e nunca pode conter o nome da pessoa, o setor ou o nome da empresa.
Corrigido
- Quebra de linha indevida na tabela de usuários.
[0.12.1] — 2026-08-15
Corrigido
- Quadro das telas de administração alargado pra a tabela de usuários não precisar rolar horizontalmente.
[0.13.0] — 2026-08-15
Adicionado
- Chat de texto por chamado entre paciente e equipe, com contador de mensagens não lidas.
- Rodapé com direitos autorais em todas as telas do sistema.
Alterado
- Chamada de voz volta sozinha pro estado inicial alguns segundos depois de encerrada, sem exigir toque manual.
[0.13.1] — 2026-08-15
Corrigido
- Erro 500 ao visualizar ou baixar documentos da Central de Ajuda quando rodando em Docker.
[0.14.0] — 2026-08-15
Adicionado
- Categorias "Comercial" (apresentação em slides) e "Treinamento em vídeo" (seis vídeos curtos, um por papel) na Central de Ajuda.
[0.15.0] — 2026-08-15
Adicionado
- Configuração de rondas por posto: exigir leitura de QR Code pra confirmar, e faixas de horário com intervalo esperado entre rondas (pode variar por horário do dia).
- Primeira versão da agenda de medicação por quarto, com alerta "5 minutos antes" do horário.
[0.15.1] — 2026-08-15
Corrigido
- Card de chamado que ficava travado no estado antigo (ex.: botão "Finalizar atendimento" não sumia depois de clicado) quando a conexão em tempo real caía — a tela não aplicava mais a atualização na hora, só esperava o evento de socket.
[0.15.2] — 2026-08-15
Corrigido
- Conexão em tempo real que ficava presa em "Reconectando…" sem se recuperar sozinha — causa identificada na época: várias conexões de socket da mesma página compartilhando uma única conexão em segundo plano sem o cliente perceber (mais tarde, na v0.18.0, foi encontrada a causa raiz real e completa desse mesmo sintoma).
[0.16.0] — 2026-08-15
Adicionado
- Recorrência por intervalo de horas na agenda de medicação (ex.: de 6 em 6h), além do horário fixo diário original.
- Menu de administração da Agenda de Medicação por posto (liga/desliga a feature e o campo de medicamento).
- Status de ocupação do quarto (Ocupado / Alta hospitalar / Liberado), alterado pela Enfermagem — marcar como Liberado limpa a agenda de medicação daquele quarto automaticamente.
[0.17.0] — 2026-08-15
Adicionado
- Opção "administrar somente uma vez" na agenda de medicação (além de horário fixo e recorrência por intervalo).
Corrigido
- Semântica do campo "medicamento" na agenda: era tratado como obrigatório/opcional, corrigido pra controlar se o campo aparece ou não no formulário — quando aparece, é sempre opcional.
- Reforço de resiliência na reconexão de socket (reconecta ao voltar a aba/rede).
- Ajustes de interface pendentes de revisão anterior.
[0.17.1] — 2026-08-15
Corrigido
- Texto do material comercial em PDF: "Cadastro de leitos em lote" (estava como "quartos", terminologia divergente da usada no próprio sistema).
[0.18.0] — 2026-08-16
Corrigido
- Causa raiz real do "Reconectando…" preso: o cookie de sessão
usado pra autenticar a conexão de tempo real da equipe não batia com
o protocolo configurado (
AUTH_URL), fazendo a autenticação do socket falhar silenciosamente pra sempre, independente de qualquer lógica de reconexão. - Aviso mais claro quando notificações push estão bloqueadas pelo navegador (antes, o botão "Ativar notificações push" clicava e parecia não fazer nada).
Adicionado
- Chat da equipe abre sozinho quando chega a primeira mensagem do paciente, sem precisar clicar em "Chat".
- Tela do paciente volta sozinha pro início alguns segundos depois do chamado ser concluído, sem precisar clicar em "Fazer outro chamado".
[0.18.1] — 2026-08-16
Alterado
- Cores dos botões de status de ocupação do quarto invertidas — Ocupado passa a vermelho, Liberado passa a verde, pra bater com o significado de cada estado.
[0.19.0] — 2026-08-16
Adicionado
- Relatório de taxa de ocupação de quartos: números (% Ocupado/Alta hospitalar/Liberado) e gráfico com curva de variação + linha de tendência ao longo do tempo, além de % de ocupação por quarto individual.
- Filtro de período compartilhado (24h, 48h, 72h, esta semana, semana passada, 15 dias, mês atual, mês anterior, último trimestre, este ano, ano anterior, ou personalizado), reaproveitado também na tela "Relatórios e SLA" (que antes não tinha filtro de data nenhum).
- Menu "Relatórios" na Administração, com a mesma visão de "Relatórios e SLA" da Supervisão, sem restrição de escopo — antes só alcançável de forma indireta via "Visualizar como".
[0.20.0] — 2026-08-16
Alterado
- Tela "Relatórios" (Supervisão e Administração) deixa de ser uma página só com as duas seções empilhadas e vira um hub com um botão pra cada relatório — "Relatórios e SLA" e "Taxa de ocupação de quartos" — cada um com seu próprio filtro de período, independente um do outro.
- Filtro de período reformulado no estilo do seletor de período do Zabbix 7: um botão colapsado mostrando o período atual, que abre um painel com "De"/"Até" personalizados de um lado e atalhos rápidos agrupados em colunas do outro — no lugar da fileira fixa de 12 botões sempre visível.
[0.21.0] — 2026-08-16
Adicionado
- Cadastro de quartos em lote por faixa numérica: informa o número inicial e o final (ex.: 101 a 110), em vez de digitar cada leito separado por vírgula — prefixo continua opcional, pra enfermarias com vários leitos por quarto físico.
- Campo "andar" (opcional) em Quarto e em Posto, pra facilitar localização e filtro no cadastro.
- Filtro na tabela de quartos (busca por número, ala, andar, status) — a lista cresce rápido e dificultava achar um quarto específico.
- Atalho "Relatórios" na tela Início da Administração, apontando
direto pro hub de relatórios (já existia no menu fixo do topo das
telas
/admin/*, mas não no lançador inicial por papel).
[0.21.1] — 2026-08-16
Alterado
- Quarto novo passa a nascer com status de ocupação Liberado em vez de Ocupado — o admin acabou de cadastrar, ainda não tem paciente ali. Quartos já existentes não são afetados (o padrão só vale pra cadastros novos).
- Checklist de rondas só lista quartos com status Ocupado — sem paciente, não tem o que rondar. Quarto marcado Liberado/Alta hospitalar some do checklist automaticamente até voltar a Ocupado.
[0.22.0] — 2026-08-16
Adicionado
- Visão consolidada por quarto na tela de atendimento da Enfermagem — um botão só com o número do quarto que, ao clicar, abre acuidade, status de ocupação, rondas (se estiver Ocupado) e a medicação agendada daquele quarto num único lugar. A medicação aparece ordenada com a próxima dose no topo, e reordena sozinha ao agendar uma nova medicação ou marcar alguma como administrada. Os painéis por tipo (Acuidade, Status, Rondas, Medicação) continuam existindo.
- Campo opcional "nº de registro do enfermeiro" (ex.: COREN) ao marcar uma medicação como administrada — habilitável/desabilitável por posto em Administração → Medicação (desligado por padrão).
Alterado
- Botão/rótulo "Medicação efetuada" passa a se chamar "Medicação administrada" em toda a tela de atendimento.
[0.22.1] — 2026-08-16
Alterado
- Visão por quarto: clicar no botão do quarto agora abre uma tela
própria (
/atendimento/enfermaria/quarto/[id]) só com as informações daquele quarto, em vez de expandir dentro da mesma página. Os botões deixam de ter o prefixo "Quarto" — mostram só o número (que já inclui o leito quando for o caso, ex.: "E101 Leito 01").