# 🖥️ Documentação Completa: ScoreOdonto Dental Client (Windows) Este documento centraliza **TUDO** o que você precisa saber sobre o aplicativo Cliente Windows (Electron) da ScoreOdonto. Ele roda nos computadores das clínicas, escuta os sensores de Raio-X e envia as imagens em tempo real para o servidor. --- ## ⚙️ 1. Visão Geral e Arquitetura O **Dental Client** é construído em Electron. Ele roda minimizado na "Bandeja do Sistema" (System Tray) do Windows (ao lado do relógio). Suas principais responsabilidades são: - **Monitoramento contínuo:** Usando a biblioteca `chokidar`, ele vigia a pasta raiz do software de Raio-X. - **Processamento:** Quando uma imagem é salva, ele aguarda o término da gravação do arquivo e lê a imagem e seus metadados (como nome do paciente). - **Socket.IO:** Comunica-se bidirecionalmente e de forma autenticada (via JWT) com o backend (`https://rx.scoreodonto.com`). --- ## 🛠 2. Instalação e Auto-Updater A instalação é feita via arquivo `.exe` padrão que geramos. **Sistema de Atualização Invisível:** O cliente possui `electron-updater` nativo. - Quando lançamos uma nova versão no Servidor (VPS 1), o cliente das clínicas verifica silenciosamente o link de atualizações. - Se achar uma versão nova, ele baixa no fundo. O ícone da bandeja mostra o status "Baixando... 45%". - Quando o download termina, ele fica "Pronto". Ao reiniciar o computador ou fechar o aplicativo, a nova versão se instala automaticamente sem intervenção do dentista. --- ## 🔧 3. Como Configurar na Clínica Ao instalar em um novo PC da clínica, você precisará configurar as credenciais e o caminho do sensor. 1. Clique com o **botão direito** no ícone de "dente" verde na bandeja do relógio. 2. Selecione **"Abrir Configurações"**. 3. Ele pedirá usuário e senha de administrador para evitar que funcionários desconfigurem: - **Usuário Padrão:** `admin` - **Senha Padrão:** `admin` 4. Preencha os dados: - **Nome da Clínica/Máquina:** Identificador da máquina (Ex: `Sala 01 - Matriz`). - **Pasta do Sensor:** Geralmente `C:\ProgramData\RF\Dental Sensor\Images`. Altere de acordo com o software usado. - **Email e Senha:** Credenciais geradas no painel web para a clínica. O cliente usará para obter um Token JWT e logar no socket. 5. Clique em **Salvar e Reiniciar Monitoramento**. *Obs: O arquivo de configurações fica salvo invisível aos usuários em `%APPDATA%\rx.scoreodonto.com-client\config.json`.* --- ## 📡 4. Fluxo de Monitoramento das Imagens Como a mágica acontece por baixo dos panos (no arquivo `client-monitor.js`): 1. O aplicativo faz Login via API no backend e recebe um Token. 2. Ele conecta no WebSocket (`Socket.IO`) usando esse token. 3. Se a pasta configurada sofre uma adição (`add`) de arquivo `.png` ou `.jpg`, o Monitor espera 1 segundo para garantir que o software do Raio-X terminou de salvar o peso do arquivo. 4. O cliente tenta adivinhar o **Nome do Paciente** a partir da estrutura de pastas (pois muitos softwares de RX salvam as fotos dentro de pastas com o nome ou ID do paciente). 5. A imagem é encodada em `Base64` e disparada pelo evento `send-image` do Socket para o Servidor Central. 6. O Servidor Central (Backend) recebe a imagem, salva os metadados e imediatamente **faz o upload da imagem original e de sua miniatura (thumbnail) para o armazenamento em nuvem de alta segurança Wasabi (compatível com S3)**, garantindo backup perpétuo e disponibilidade. 7. Se a internet cair, o cliente exibe "Desconectado" no relógio e tenta reconectar em loop até a internet voltar. --- ## 🚀 5. Deploy e Desenvolvimento (Lançando novas versões) Sempre que você modificar o código (`index.js`, `client-monitor.js`, etc) na VPS 4 (Linux) e quiser lançar o update para todas as clínicas: 1. **Atualizar a Versão:** Abra o `package.json` e aumente a versão (ex: `"1.2.7"` -> `"1.2.8"`). 2. **Execute o Script Mágico:** ```bash cd /home/deploy/stack/rx.scoreodonto.com-client ./deploy-client.sh ``` 3. O script vai compilar a versão `.exe` Windows dentro do Linux e transferir os arquivos para a VPS 1 na pasta `/updates`. O Auto-Updater das clínicas começará a trabalhar imediatamente. 4. **Regra de Ouro (Documentação):** Sempre que você implementar edições grandes (major updates) ou mudanças drásticas na arquitetura do cliente, **É OBRIGATÓRIO** atualizar a documentação desta Wiki para refletir o novo comportamento. A Wiki deve ficar permanentemente versionada e alinhada com o código de produção! --- ## ⚠️ 6. Solução de Problemas Comuns - **"Desconectado do Servidor" na Bandeja:** Verifique se as credenciais de e-mail e senha inseridas em "Configurações" estão corretas. Se a senha foi alterada no painel Web, precisa atualizar no cliente. - **Erro de Autenticação na API:** A `apiKey` de segurança deve estar igual no frontend, cliente e backend. Padrão atual: `rf-dental-secure-key-2026`. - **Imagens não sobem:** Confira se o caminho da "Pasta do Sensor" existe no computador da clínica. Alguns softwares salvam em `C:\Arquivos de Programas` ao invés de `C:\ProgramData`.