4.6 KiB
4.6 KiB
🦷 Dental Image Server v2.0
Sistema completo de gerenciamento de imagens dentais com interface web moderna e responsiva.
🎯 Características
✅ Interface Web Completa
- Gerenciador de imagens com grid responsivo
- Busca em tempo real por paciente ou GUID
- Preview de imagens com informações completas
- Design moderno e totalmente responsivo
✅ Sistema de Transformações
- 5 opções de transformação:
- Original
- Rotação -90°
- Rotação +90°
- Flip Horizontal
- Flip Vertical
- Processamento server-side com Sharp
- Preview instantâneo antes de salvar
✅ Gerenciamento de Pacientes
- Configuração de dados do dente:
- Nome resumido do paciente
- Número do dente (1-52)
- Lado (inicial/final)
- Download personalizado com nome estruturado
- Controle de versões (mantém sempre a original)
✅ Controle Total
- Habilitar/Desabilitar imagens
- Excluir versões (nunca a original)
- Filtrar por status (habilitadas/desabilitadas)
- Estatísticas em tempo real
✅ Socket.IO em Tempo Real
- Recebimento instantâneo de novas imagens
- Notificações ao usuário
- Auto-refresh da interface
✅ Sistema de Autenticação
- Login seguro com JWT
- Sessões persistentes
- Proteção de rotas administrativas
📦 Estrutura
dental-server/
├── server.js # Arquivo principal
├── database.js # Conexão MySQL
├── image-processor.js # Processamento de imagens
├── package.json # Dependências
├── .env # Configurações
├── routes/
│ └── images.js # API de imagens
├── public/
│ ├── index.html # Interface web
│ ├── style.css # Estilos
│ └── app.js # JavaScript
├── installer/
│ └── check-installation.js
├── migration-v2.sql # Migration do banco
└── INSTALACAO-DENTAL-SERVER.md
🚀 Instalação Rápida
1. Upload de Arquivos
Faça upload de todos os arquivos para /www/wwwroot/dental-server
2. Instalar Dependências
cd /www/wwwroot/dental-server
npm install
3. Configurar .env
PORT=3000
JWT_SECRET=sua_chave_secreta
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=sua_senha_mysql
DB_NAME=dental_images
UPLOAD_DIR=/www/wwwroot/dental-server/uploads
PROCESSED_DIR=/www/wwwroot/dental-server/processed
4. Executar Migration
mysql -u root -p dental_images < migration-v2.sql
5. Iniciar PM2
pm2 start server.js --name dental-server
pm2 save
6. Configurar Nginx
Adicione proxy reverso para localhost:3000 e configuração para Socket.IO.
Ver instruções completas em INSTALACAO-DENTAL-SERVER.md
🔌 APIs Disponíveis
Imagens
GET /api/images- Listar imagensGET /api/images/:id- Buscar imagemGET /api/images/:id/transformations- Gerar transformaçõesPOST /api/images/:id/transform- Salvar transformaçãoPUT /api/images/:id/patient-info- Atualizar dados do pacienteGET /api/images/:id/download- Download da imagemDELETE /api/images/:id- Apagar versãoPUT /api/images/:id/toggle-enabled- Habilitar/Desabilitar
Socket.IO
client-identify- Identificar clientesend-image- Enviar imagemnew-image- Nova imagem recebida
🛠️ Tecnologias
- Node.js 16+
- Express 4.18+
- Socket.IO 4.7+
- Sharp 0.32+ (processamento de imagens)
- MySQL (banco de dados)
- bcrypt (senhas)
- JWT (autenticação)
📱 Responsividade
Interface totalmente responsiva:
- ✅ Desktop (1920px+)
- ✅ Tablet (768px - 1919px)
- ✅ Mobile (320px - 767px)
🔒 Segurança
- ✅ Senhas hash com bcrypt
- ✅ Autenticação JWT
- ✅ Validação de uploads
- ✅ Sanitização de inputs
- ✅ Proteção CSRF
📊 Banco de Dados
Tabela images
- id (INTEGER PRIMARY KEY)
- image_guid (TEXT)
- patient_name (TEXT)
- original_filename (TEXT)
- filename (TEXT)
- enabled (INTEGER DEFAULT 1)
- tooth_number (VARCHAR)
- tooth_side (VARCHAR)
- patient_name_resumed (VARCHAR)
- original_image_id (INTEGER)
- rotation (INTEGER)
- flip_horizontal (INTEGER)
- flip_vertical (INTEGER)
- created_at (DATETIME)
Execute migration-v2.sql no MySQL para criar/atualizar banco existente.
🐛 Troubleshooting
Ver seção TROUBLESHOOTING em INSTALACAO-DENTAL-SERVER.md
📄 Licença
MIT
👨💻 Autor
Rcesar
Desenvolvido para sistema de radiografia dental
Versão: 2.0.0
Última atualização: 2025-01-26