Commit Graph

180 Commits

Author SHA1 Message Date
VPS 4 Deploy Agent ba9897ee31 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-02 21:01:16 +02:00
VPS 4 Deploy Agent 5d2ba1a178 feat: Adicionado timeout assíncrono para ACK do Cliente Windows
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-02 20:55:21 +02:00
VPS 4 Deploy Agent 34ef3efe1f chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-02 01:33:01 +02:00
VPS 4 Deploy Agent 49c677b996 feat: implement remote CRUD for patients and update version
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-02 01:28:23 +02:00
VPS 4 Deploy Agent bad4347e6e chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 03:52:24 +02:00
VPS 4 Deploy Agent d86def2f12 feat(observation): separar observacao de imagem da observacao global do paciente (image_remark)
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 03:48:34 +02:00
VPS 4 Deploy Agent 241a194f2a chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 03:21:36 +02:00
VPS 4 Deploy Agent c3704fdc27 fix(clipboard): corrigir erro de permissao de escrita e adicionar botao copiar nome
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 03:18:36 +02:00
VPS 4 Deploy Agent e929f108ff chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 03:13:16 +02:00
VPS 4 Deploy Agent 0e71d2a88b feat(gtos): adicionar edicao inline de observacao de imagem na GTO
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 03:10:22 +02:00
VPS 4 Deploy Agent 8ba1691a33 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 03:06:07 +02:00
VPS 4 Deploy Agent 84346d455a feat(gtos): adicionar botao abrir imagem com opcoes de baixar e copiar customizados
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 03:02:29 +02:00
VPS 4 Deploy Agent c00c0a3646 feat(routes): simplificar rotas de paciente e imagens e ajustar redirecionamentos 2026-06-01 02:48:17 +02:00
VPS 4 Deploy Agent 2fd4ab91d4 fix(details): corrige erro de id null (RETURNING id) e implementa navegação baseada em rotas (/patient/:patientName)
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 02:45:06 +02:00
VPS 4 Deploy Agent bc457b0d51 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 01:58:35 +02:00
VPS 4 Deploy Agent aa3f353979 style(cards): exibe a radiografia completa (object-fit contain) nos cards com fundo escuro
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 01:55:27 +02:00
VPS 4 Deploy Agent c4f463344d chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 01:44:26 +02:00
VPS 4 Deploy Agent 0cbb65acea fix(navigation): redireciona o botão voltar e resetar da imagem para a pasta de RX do paciente no Dashboard
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 01:39:39 +02:00
VPS 4 Deploy Agent c85c991c7f chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 01:33:51 +02:00
VPS 4 Deploy Agent 1dbdcfdb58 feat(clipboard): adiciona funcionalidade de copiar imagem transformada para a área de transferência
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 01:30:18 +02:00
VPS 4 Deploy Agent 52fe81f1cd chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 01:23:39 +02:00
VPS 4 Deploy Agent 80d491b0f2 fix(details): altera comportamento do salvamento para não redirecionar e muda texto do botão para Salvar
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 01:20:27 +02:00
VPS 4 Deploy Agent fd43b1d2dd chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 00:59:01 +02:00
VPS 4 Deploy Agent 7e0fdf5093 fix(layout): corrige container da página de detalhes e melhora scroll da sidebar (itens 3 e 4)
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 00:54:49 +02:00
VPS 4 Deploy Agent 98bfd37ab2 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 00:42:25 +02:00
VPS 4 Deploy Agent 6f2eab4f53 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 00:26:19 +02:00
VPS 4 Deploy Agent 1d2bb21ab9 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-06-01 00:11:53 +02:00
VPS 4 Deploy Agent 0d0ad5e4a6 fix: sidebar height scroll, saveTransform bypassing flip config and api gto insert syntax parse
continuous-integration/webhook Deploy concluído (VPS4)
2026-06-01 00:09:05 +02:00
VPS 4 Deploy Agent 8a6923af54 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 23:59:36 +02:00
VPS 4 Deploy Agent b6745a196d feat(ui): simplify orientation step replacing degree rotation array by basic transforms
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-31 23:56:14 +02:00
VPS 4 Deploy Agent 4b4a4208ce chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 21:42:33 +02:00
VPS 4 Deploy Agent 9bda1dbb03 hotfix: remove undefined isMobile from DashboardPage
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-31 21:38:16 +02:00
VPS 4 Deploy Agent fa9208189f chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 21:31:14 +02:00
VPS 4 Deploy Agent 3700f5c493 fix(mobile): refactor headers and orientation choose UI to avoid layout break
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-31 21:27:03 +02:00
VPS 4 Deploy Agent 4fb6181289 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 21:12:13 +02:00
VPS 4 Deploy Agent f8ddbc0743 feat(mobile): improve search UX and ImageDetails orientation UX
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-31 21:08:27 +02:00
VPS 4 Deploy Agent cacacfe9e7 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 20:01:20 +02:00
VPS 4 Deploy Agent bcad7c4720 feat: layout mobile responsivo completo
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-31 19:57:15 +02:00
VPS 4 Deploy Agent 0df3cb41d0 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 16:46:33 +02:00
VPS 4 Deploy Agent 9f02c41c31 feat(ui): responsividade mobile profissional (320px+) sem alterar desktop
continuous-integration/webhook Deploy concluído (VPS4)
Todo o tratamento mobile é aditivo e isolado atrás de @media (max-width:1023px/
480px/360px) — o visual desktop (≥1024px) permanece pixel-idêntico.

Navegação:
- Sidebar.jsx: vira drawer deslizante no mobile (top-bar fixo + hambúrguer +
  backdrop + botão fechar). Trava scroll do body, fecha ao navegar/tocar item.
  No desktop continua sidebar fixa idêntica.

Componente novo:
- DropdownMenu.jsx: menu flutuante chevron-down reutilizável (fecha em
  outside-click/ESC). Usado para colapsar ações secundárias no mobile.

Headers (GtosPage, PatientsPage):
- Busca full-width; botões "+ Novo/Atualizar" em linha no desktop (.hide-mobile)
  e colapsados em DropdownMenu no mobile (.show-mobile).

Tabelas → cards empilhados (PatientsPage, GtosPage, AdminClinicsPage):
- classe .responsive-table + data-label em cada td. No mobile thead some e
  cada linha vira card com rótulo:valor. Desktop mantém tabela normal.

CSS (index.css):
- Sistema de breakpoints completo, drawer, dropdown, cards de tabela,
  grid de thumbs reduzido, modais fullscreen, 100dvh, inputs 16px (anti-zoom
  iOS), alvos de toque ≥40px, paginação/stat-cards que quebram linha.

Fix: remove chave 'border' duplicada no style do stat card da GtosPage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 16:43:19 +02:00
VPS 4 Deploy Agent 5f8a4836b5 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 16:29:34 +02:00
VPS 4 Deploy Agent 35248fb27b fix(gtos): compatibilidade TransformModal com novo formato da API
continuous-integration/webhook Deploy concluído (VPS4)
A refatoração do GET /api/gtos para retornar { rows, total, pages }
quebrou o TransformModal que esperava um array direto.

Correções:
- routes/gtos.js: restaura suporte a ?patient=NOME (match exato) para
  o TransformModal continuar filtrando só as GTOs do paciente exibido,
  sem retornar resultados de outros pacientes via ILIKE.
- TransformModal.jsx: lê data.rows (novo formato) com fallback para
  array direto (compatibilidade durante transição).

As duas superfícies (TransformModal e GtosPage) agora usam a mesma
API, mesmos dados, sem lógica duplicada ou conflitante.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:25:37 +02:00
VPS 4 Deploy Agent b18e78cc6c chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 16:09:48 +02:00
VPS 4 Deploy Agent f027842c76 feat(gtos): página de gerenciamento de GTOs com filtros e paginação
continuous-integration/webhook Deploy concluído (VPS4)
Backend:
- routes/gtos.js: GET /api/gtos reescrito com filtros (all/vinculada/enviada),
  busca ILIKE por patient_name e gto_number, paginação (page/limit),
  retorna { rows, total, pages } + thumb_url da primeira imagem vinculada.

Frontend:
- GtosPage.jsx (/gtos): cards de stats clicáveis (Todas/Vinculadas/Enviadas)
  com contadores em tempo real; tabela com colunas: thumb, número, paciente,
  qtd imagens (badge colorido), descrição, data, status, ações; paginação
  numérica; busca com debounce 350ms.
- StatusBadge: Pendente / Vinculada / Enviada com cores distintas.
- GtoDetailModal: info completa, grid de imagens vinculadas com thumb +
  botão desvincular, toggle enviada/pendente com feedback visual.
- CreateGtoModal: formulário com número, paciente, descrição.
- Sidebar: item GTOs (fa-file-medical) entre Pacientes e Novo Paciente.
- App.jsx: rota /gtos (ProtectedRoute).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 16:06:42 +02:00
VPS 4 Deploy Agent 98dcb729a5 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 16:00:51 +02:00
VPS 4 Deploy Agent b6a1d3d68e fix(clinics): 3 bugs de unicidade e wipe corrigidos
continuous-integration/webhook Deploy concluído (VPS4)
1. admin-clinics.js — bloqueia cadastro de clinic_name + pc_name duplicados:
   Antes só validava email único. Agora verifica se já existe dispositivo com
   a mesma combinação clinic_name + pc_name (case-insensitive). Sem isso, dois
   PCs com mesmo nome na mesma clínica sobrescreveriam arquivos um do outro
   no Wasabi (caminho idêntico).

2. admin-clinics.js — wipe usava client_name ao invés de clinic_name no banco:
   'DELETE FROM images WHERE client_name = clinic_name' deletava o conjunto
   errado de imagens (client_name é o nome do PC, não da clínica). Corrigido
   para 'WHERE clinic_name = $1'. Wasabi continua usando sanitize(clinic_name)/
   como prefixo (correto).

3. server.js — verificação de duplicata no connect incluía clinicName:
   O check usava só clientName (pc_name), causando falso positivo: dois PCs
   de clínicas diferentes com o mesmo nome (ex: ambos "PC-SALA-1") — o segundo
   era desconectado. Agora verifica clinicName + clientName juntos.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 15:57:37 +02:00
VPS 4 Deploy Agent 32ac1f119f chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 15:40:24 +02:00
VPS 4 Deploy Agent 62e3ded5a7 feat(auth): token-first — device-info endpoint + pc_name autoritativo
continuous-integration/webhook Deploy concluído (VPS4)
- GET /api/auth/device-info?token=xxx: valida machine_token e retorna
  clinic_name e pc_name sem exigir email/senha. Usado pelo client para
  preview antes de salvar e para validação no save.

- client-identify: quando autenticado via machine_token, usa
  socket.user.pcName como nome autoritativo (ignora o que o client enviou).

- server-identified: clientInfo agora inclui 'pcName' para o client
  manter o nome em sincronia com o cadastro do servidor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 15:36:56 +02:00
VPS 4 Deploy Agent c43e752694 chore(deploy): bump version
continuous-integration/webhook Ignorado: bump version
2026-05-31 09:10:41 +02:00
VPS 4 Deploy Agent 526f3f2eae fix(auth): machine_token não exige email+senha no socket + case-insensitive
continuous-integration/webhook Deploy concluído (VPS4)
Bugs corrigidos:

1. Condição bloqueante: 'if (email && password && token.includes("-"))' fazia
   o machine_token ser ignorado se o client conectasse só com o token (sem
   email/senha). A conexão caía para o check de JWT, falhava e era rejeitada.
   Agora o machine_token é verificado sempre que o token contém hífens —
   email+senha são opcionais (validados se presentes, ignorados se ausentes).

2. Comparação de email case-sensitive: 'device.email === email' falhava
   se houver diferença de maiúsculas/minúsculas entre o cadastro e o config
   do client. Corrigido para .toLowerCase() em ambos os lados.

3. Log de autenticação: emite mensagem clara no console quando machine_token
   é aceito, incluindo nome da clínica e do PC, facilitando diagnóstico.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 09:06:29 +02:00