O Opuspac é uma aplicação que permite a impressão de prescrições médicas utilizando a impressora Epson TM-T20x. Este projeto é composto por um backend escrito em C# e um frontend em Vue.js.
Para uma resposta rápida sobre se o projeto é capaz de imprimir, você pode pular para a seção Agente de Impressão. Certifique-se de atender aos requisitos necessários.
- StatusAPI for EPSON Advanced Printer Driver 6
- EPSON Advanced Printer Driver for TM-T20X
- TM Virtual Port Driver
- Site: Este é o painel administrativo do sistema.
- Servidor: Executa as regras de negócios e expõe uma API REST.
- Agente de Impressão: Este programa é responsável por efetuar a impressão e se comunica com o servidor por meio de websocket.
Você pode acessar a versão do agente em .NET em /docs/local.md
Observação: Você pode conferir a versão anterior do README.md na tag v0.1
- Website: https://opuspac.vercel.app
- Api: https://vmiho9xjf9.execute-api.us-east-2.amazonaws.com/prod/
Antes de executar o Agente de Impressão, é necessário fazer uma ou duas configurações:
- Configurar o driver da impressora, que pode ser encontrado no documento APD6_Install_en_revC.pdf que acompanha o instalador do EPSON Advanced Printer Driver for TM-T20X.
- Caso sua impressora esteja conectada usando a porta COM, você pode ignorar essa etapa, pois o agente atual utiliza a porta COM para enviar comandos ESC/POS. Após a instalação do TM Virtual Port Driver, abra-o, selecione COM2 e pressione "Assign Port"; por fim, selecione sua impressora.
Observação: É possível utilizar qualquer porta COM de 1 a 8, mas será necessário especificar qual porta está sendo usada como parâmetro para o executável do agente. Se utilizar COM2, não é necessário especificar para o agente.
Observação: Não é difícil disponibilizar a impressão com portas USB. No momento, o pacote do Node.js de impressoras feito pela comunidade (não é oficial) está desatualizado.
Observação: É possível fazer a mesma coisa com .NET, não é necessário todas aquelas dependências. Eu vi alguns pacotes que fazem algo parecido como o agente em Node.js, mas tive problemas com a versão .NET. O pior cenário seria não encontrar nenhuma compatível e precisar criar uma biblioteca para executar comandos ESC/POS, o que não seria difícil, pois é possível utilizar até mesmo bibliotecas de outras linguagens como referência de comandos.
Para verificar se a impressão está funcionando:
- Baixe o executável aqui. O motivo de ter 48MB é porque já vem com o Node.js embutido.
- Com o terminal aberto no mesmo local do executável, execute
.\printer-agent.exe
, - Se estiver funcionando corretamente, ele listará as opções disponíveis do programa.
O programa tem dois comandos
.\printer-agent.exe print <arquivo>
Caminho do arquivo JSON com os dados da prescrição. JSON de exemplo.\printer-agent.exe connect
Comando para se conectar ao servidor e escutar por tarefas de impressão.
Para especificar qual porta COM será utilizada, passe o argumento
-i
ou--interface
. Por exemplo,--interface COM1
.
Quando é realizada a tarefa de imprimir e a impressora não está conectada, está aparecendo a mensagem de sucesso, mesmo sendo o inverso.