Atualização do Sistema de Senhas

← Voltar ao menu

Resultado desta execução

ℹ️ Versão 1.0.0 já estava aplicada.
ℹ️ Versão 1.1.0 já estava aplicada.
ℹ️ Versão 1.2.0 já estava aplicada.
ℹ️ Versão 1.3.0 já estava aplicada.
ℹ️ Versão 1.3.1 já estava aplicada.
ℹ️ Versão 1.4.0 já estava aplicada.
ℹ️ Versão 1.5.0 já estava aplicada.
✅ Versão 1.6.0 aplicada agora com sucesso: Solução definitiva para navegadores de TV sem voz local funcional: criada a página tts.php, que gera (e guarda em cache) um áudio MP3 falado em português a partir de um texto. Quando o autodiagnóstico do painel detecta que a fala local do navegador não funciona de verdade, o painel passa a reproduzir automaticamente esse áudio via uma tag <audio> comum — que tem suporte muito mais amplo do que a API de voz do navegador, inclusive no navegador nativo de TVs Samsung/Tizen. Não é mais necessário nenhum hardware adicional para a TV falar as senhas.

O banco de dados está pronto para uso. Sempre que uma nova modificação for feita no sistema, acesse esta página novamente para atualizar automaticamente a estrutura do banco de dados.

📜 Histórico de todas as atualizações

VersãoDescriçãoExecutado em
1.6.0 Solução definitiva para navegadores de TV sem voz local funcional: criada a página tts.php, que gera (e guarda em cache) um áudio MP3 falado em português a partir de um texto. Quando o autodiagnóstico do painel detecta que a fala local do navegador não funciona de verdade, o painel passa a reproduzir automaticamente esse áudio via uma tag <audio> comum — que tem suporte muito mais amplo do que a API de voz do navegador, inclusive no navegador nativo de TVs Samsung/Tizen. Não é mais necessário nenhum hardware adicional para a TV falar as senhas. 05/09/2026 21:37
1.5.0 Painel da TV ficou resiliente a navegadores embarcados com suporte fraco ou inexistente a voz (caso conhecido do navegador nativo "Internet" de TVs Samsung/Tizen): a fala agora tem um limite de segurança para nunca travar a fila de anúncios caso o navegador não emita nenhum áudio; o botão de ativar som ganhou foco automático para ser acionado pelo controle remoto (não apenas por toque); e foi adicionado um autodiagnóstico que detecta se a voz realmente funciona e exibe um aviso na tela recomendando o uso de um Chromecast, Fire TV Stick, Android TV Box ou mini PC com Google Chrome quando a TV não conseguir falar. 09/07/2026 20:51
1.3.0 Redesign premium da tela do totem: selo de teclado numérico circular, visor de CPF em estilo "display digital" com brilho dourado, selo de sucesso animado e barra de progresso mostrando o tempo até o retorno automático à tela inicial. 09/07/2026 20:17
1.3.1 Correção crítica no painel da TV (senhas.php): o script de som estava marcado como "defer" e era executado depois do script da própria página, fazendo a função de ocultar o cursor disparar um erro que travava todo o restante do script — o botão "Ativar som" e a busca automática por novas senhas paravam de funcionar. O carregamento de assets/js/som.js deixou de usar "defer" em todas as páginas para garantir que as funções de som/voz já existam quando cada página precisar delas. 09/07/2026 20:17
1.4.0 Cache-busting automático do CSS e do JS: os links para assets/css/estilo.css e assets/js/som.js agora incluem um parâmetro de versão baseado na data de modificação do arquivo (função asset() em includes/funcoes.php). Assim, toda vez que o visual ou o comportamento do sistema for atualizado no servidor, o navegador é obrigado a baixar a versão nova em vez de usar uma cópia antiga guardada em cache. 09/07/2026 20:17
1.1.0 Melhoria de experiência e visual: totem passou a usar teclado numérico touchscreen com emissão de senha via requisição assíncrona (garantindo a fala "Senha Emitida..." e o retorno automático à tela inicial); painel da TV recebeu identidade visual premium e passou a ocultar o cursor do mouse após 3 segundos parado; a fala em voz foi removida das páginas de recepção e consultório — apenas totem.php e senhas.php falam, as demais páginas usam somente um bipe de confirmação. 09/07/2026 20:03
1.2.0 Painel da TV (senhas.php) passou a repetir cada chamada de senha duas vezes, tocando o sinal sonoro de atenção antes de cada uma das falas. 09/07/2026 20:03
1.0.0 Criação da estrutura inicial do banco de dados: tabela de senhas (fila de atendimento), tabela de chamadas (histórico exibido na TV) e configurações do sistema. 09/07/2026 19:44

📖 Documentação do sistema — funções, regras e funcionalidades de cada página

bancodedadosconfig.php

Arquivo de configuração central. Guarda os dados de acesso ao banco de dados MySQL (host, nome do banco, usuário e senha) e cria a conexão PDO ($pdo) usada por todas as outras páginas. Nenhuma outra página deve se conectar ao banco diretamente — todas incluem este arquivo.

at.php (esta página)

Responsável por atualizar a estrutura do banco de dados sempre que houver uma modificação no sistema. Executa as migrações pendentes de forma automática e segura (sem apagar dados existentes), registra cada atualização aplicada na tabela log_atualizacoes e exibe nesta página o histórico completo de tudo o que já foi atualizado, além desta documentação com as regras de cada página.

totem.php

Tela touchscreen usada pelo paciente. O paciente digita o CPF em um teclado numérico na própria tela (sem depender de teclado físico ou do teclado virtual do sistema operacional) e toca em "Confirmar e Emitir Senha". Nesse momento o sistema:

  • Valida o CPF informado (formato e dígitos verificadores);
  • Gera um novo número de senha sequencial, reiniciado automaticamente todos os dias;
  • Grava a nova senha no banco com status "aguardando recepção";
  • Exibe na tela e fala em voz alta: "Senha Emitida. Sua senha é a número X";
  • Permite imprimir o comprovante da senha (formato de cupom, 80mm);
  • Retorna sozinho à tela inicial (teclado numérico) alguns segundos depois de falar, pronto para o próximo paciente — sem precisar recarregar a página.

A emissão da senha é feita por uma requisição assíncrona disparada pelo toque no botão de confirmação. Isso é importante: os navegadores só autorizam áudio/voz automático quando ele decorre de uma interação real do usuário — por isso o totem fala normalmente (o toque no botão libera o som), enquanto uma página carregada sozinha, sem toque nenhum, ficaria muda.

recepcao.php

Página usada pelo atendente da recepção. Permite selecionar o guichê (1, 2 ou 3) em que o atendente está. Ao clicar em "Chamar Próxima":

  • Se já havia uma senha em atendimento naquele guichê, ela é finalizada na recepção e passa para o status "aguardando consultório" (fila do médico);
  • O sistema busca a senha mais antiga com status "aguardando recepção" e a chama para o guichê selecionado;
  • A chamada é registrada e imediatamente exibida e falada no painel da TV (senhas.php);
  • É possível "Chamar Novamente" para repetir o anúncio da senha atual no painel, sem alterar a fila;
  • Esta página não fala em voz alta — toca apenas um bipe curto de confirmação para o atendente. Quem anuncia a senha por voz é sempre o painel da TV.

consultorio.php

Página usada pelo médico/profissional em cada consultório (1, 2 ou 3). Funciona de forma equivalente à recepção, mas chama apenas senhas que já passaram pela recepção (status "aguardando consultório"). Ao clicar em "Chamar Próxima":

  • A senha em atendimento no consultório é finalizada (status "finalizado");
  • A próxima senha aguardando é chamada para aquele consultório;
  • A chamada é exibida e falada automaticamente no painel da TV;
  • Esta página também não fala em voz alta — apenas um bipe de confirmação.

senhas.php

Painel exibido na TV da sala de espera, com visual premium (tema escuro, tipografia elegante e animações sutis). Não requer nenhuma interação manual para funcionar: a página verifica automaticamente (a cada poucos segundos) se uma nova senha foi chamada. Quando isso ocorre, ela:

  • Exibe em destaque o número da senha e o local (guichê ou consultório);
  • Toca um sinal sonoro de atenção seguido da fala: "Senha número X, guichê X" ou "Senha número X, consultório X" — e repete esse ciclo (sinal + fala) duas vezes para cada senha chamada, reforçando o chamado;
  • Mantém visível um histórico das últimas senhas chamadas, destacando as mais recentes;
  • Atualiza-se sozinha, sem necessidade de intervenção do usuário;
  • Exibe, ao carregar, uma tela pedindo para tocar uma vez e ativar o som — exigência dos navegadores para páginas sem interação, feita apenas uma vez ao ligar a TV;
  • Oculta automaticamente o cursor do mouse depois de 3 segundos parado, para não atrapalhar a exibição;
  • Testa, ao ativar o som, se a voz local realmente funciona no navegador — se não funcionar, troca automaticamente para um áudio de voz gerado pelo servidor (tts.php) e exibe um aviso discreto na tela informando isso.

Observação sobre TVs Samsung: o navegador nativo "Internet" de algumas Smart TVs Samsung (Tizen) tem suporte fraco ou inexistente à fala por voz do navegador, mesmo quando a API existe. Para esses casos o painel detecta automaticamente a falha e passa a usar o áudio gerado por tts.php (veja abaixo) — a TV continua falando as senhas normalmente, sem precisar de nenhum equipamento externo.

tts.php

Página de apoio que gera um áudio MP3 falado em português a partir de um texto (ex.: tts.php?texto=Senha+12,+guich%C3%AA+2) e o entrega como um arquivo de áudio comum. É usada automaticamente pelo painel da TV (senhas.php) somente quando o autodiagnóstico de voz detecta que a fala local do navegador não funciona de verdade. Os áudios gerados ficam guardados em cache na pasta cache/tts/ para não precisar gerar o mesmo áudio repetidas vezes.

Regra de voz do sistema

Somente totem.php e senhas.php falam em voz alta. As páginas recepcao.php e consultorio.php usam apenas um bipe sonoro de confirmação para o atendente, nunca voz — o anúncio falado da senha para o paciente acontece exclusivamente no painel da TV.

index.php

Menu principal do sistema, com atalhos para todas as páginas: Totem, Recepção, Consultório, Painel da TV e Atualização do Sistema.

Regras gerais do fluxo de atendimento

  1. Paciente retira a senha no totem (aguardando recepção);
  2. Recepção chama e atende a senha, depois a envia para o consultório (aguardando consultório);
  3. Consultório chama e atende a senha (finalizado);
  4. A numeração das senhas reinicia automaticamente à meia-noite;
  5. Cada guichê e cada consultório atende sua própria fila de chamada, mas todos compartilham a mesma fila de espera.
Menu principal · Totem · Recepção · Consultório · Painel da TV