O que é
Enfy é um aplicativo para enfermeiros e profissionais de saúde gerenciarem seus atendimentos: cadastro de pacientes, avaliação clínica, cuidado com feridas, agenda e controle financeiro. É um PWA pensado para o trabalho de campo, onde a conexão é ruim e a mão está ocupada, com duas apostas que definem o produto: registrar o atendimento por voz, com ajuda de IA, e funcionar offline.
A IA no atendimento
A ideia central é simples de descrever e difícil de fazer com responsabilidade: o enfermeiro grava um áudio falando o que observou no paciente, e o sistema preenche a avaliação clínica a partir dali. Por baixo, o áudio vai para uma Edge Function que transcreve com o Whisper e extrai dados estruturados com um modelo GPT, devolvendo um JSON com sinais vitais, comorbidades, características da ferida e por aí vai.
O detalhe que separa um brinquedo de uma ferramenta clínica é o que vem depois do modelo. Em saúde, um dado inventado é perigoso, então a extração passa por uma camada de saneamento defensiva antes de chegar perto do formulário. A regra é “omissão é o padrão”: o modelo só pode preencher um campo que foi de fato mencionado, e o servidor confere, termo por termo, se aquilo aparece na transcrição. Valores fora do vocabulário clínico esperado são descartados, campos com alto risco de alucinação só entram com menção explícita, e datas viram formato ISO com validação.
E nada disso é salvo automaticamente. A IA propõe, o humano decide. As mudanças sugeridas aparecem em uma gaveta de revisão, separadas entre o que é novo e o que mudou, e o enfermeiro aceita ou rejeita campo a campo antes de mesclar no formulário. É a mesma postura que levo para qualquer uso de IA: útil onde paga o trabalho que dá, auditada por humanos, nunca uma caixa preta. Em prontuário, isso deixa de ser preferência e vira requisito.
Offline-first de verdade
Enfermeiro atende na casa do paciente, no posto, em lugar sem sinal. Então o app não pode depender da rede para o que importa. Um paciente novo, com toda a avaliação e até as fotos da ferida, é criado e guardado localmente no IndexedDB via Dexie, com status de sincronização. Quando a conexão volta, um sync-manager sobe tudo para o Supabase em ordem: o paciente, as tabelas normalizadas de cada categoria clínica e as fotos para o Storage. Um ouvinte de rede dispara a sincronização sozinho ao reconectar.
O aprendizado de offline-first é que o difícil não é guardar local, é a volta: decidir o que sincroniza, em que ordem, e o que fazer quando a foto subiu mas o registro não. Manter o estado local como fonte da verdade até o sync confirmar foi o que deixou isso confiável.
Cuidado com feridas
A parte clínica mais rica é a de feridas. A localização é marcada em um mapa corporal interativo, com frente e costas e quase trinta regiões anatômicas. A foto é capturada pela câmera do aparelho, com preferência pela traseira e compressão antes de subir. Cada ferida guarda características em vocabulário clínico (perilesão, bordas, leito, exsudato, odor, etiologia e dimensões), e as evoluções seguintes montam uma linha do tempo com galeria de fotos para acompanhar a cicatrização.
Arquitetura
O front é React 19 com Vite e React Router, empacotado como PWA instalável. O back é Supabase: Postgres com RLS, Auth, Storage e Edge Functions em Deno. O isolamento é por usuário, com RLS amarrando cada linha ao dono via profile_id = auth.uid(). A cobrança é assinatura via Stripe, com um conjunto de Edge Functions cuidando de assinatura, métodos de pagamento e webhooks, e um portão que libera o app conforme o status. O deploy é na AWS, com S3 e CloudFront, por GitHub Actions.
Status
Está em fase de testes, com enfermeiros usando o app em atendimentos reais para validar a ideia, e o retorno até aqui tem sido positivo. A cobrança por assinatura já está pronta, mas o foco do momento é ouvir quem usa, ajustando o fluxo de voz e a avaliação clínica ao jeito real de trabalhar de quem atende à beira do leito.