189 lines
4.6 KiB
Markdown
189 lines
4.6 KiB
Markdown
# 🦷 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
|
|
```bash
|
|
cd /www/wwwroot/dental-server
|
|
npm install
|
|
```
|
|
|
|
### 3. Configurar `.env`
|
|
```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
|
|
```bash
|
|
mysql -u root -p dental_images < migration-v2.sql
|
|
```
|
|
|
|
### 5. Iniciar PM2
|
|
```bash
|
|
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 imagens
|
|
- `GET /api/images/:id` - Buscar imagem
|
|
- `GET /api/images/:id/transformations` - Gerar transformações
|
|
- `POST /api/images/:id/transform` - Salvar transformação
|
|
- `PUT /api/images/:id/patient-info` - Atualizar dados do paciente
|
|
- `GET /api/images/:id/download` - Download da imagem
|
|
- `DELETE /api/images/:id` - Apagar versão
|
|
- `PUT /api/images/:id/toggle-enabled` - Habilitar/Desabilitar
|
|
|
|
### Socket.IO
|
|
- `client-identify` - Identificar cliente
|
|
- `send-image` - Enviar imagem
|
|
- `new-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`
|
|
```sql
|
|
- 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
|