Voltar ao índice
01Trabalho

e-Gestão

O hub de um ecossistema de saúde pública

Meu papel
Desenvolvedor full stack · condução do projeto · banco e infraestrutura
Cliente
Wi Consultoria
Setor
Saúde pública municipal · Brasil
Período
2023 — presente
Status
Em produção
Ver ao vivo(abre em nova aba)

Código proprietário. Sistema privado de cliente — o repositório não é público.

Números

400+

municípios atendidos

Em 26 estados. Cada um isolado como inquilino próprio.

200+

telas em produção

Relatórios, gestão, vigilância, portal do cidadão e painéis.

50+

módulos de API

Cada um com suas rotas, ACL e camada de exportação.

300+

migrations de banco

Schema versionado desde o primeiro dia.

7

sistemas sob o hub

R-SUS, SUS Direto, Willy, Painel, Visa, BPA Online, Nuvem PEC.

A

Contexto

Toda secretaria municipal de saúde do Brasil registra atendimento no PEC — o Prontuário Eletrônico do Cidadão do e-SUS APS, instalado localmente, município por município. O dado existe, mas fica preso: para responder “como está a atenção primária aqui?” o gestor depende de exportação manual, planilha e boa vontade. Quando a resposta chega, o mês já passou.

B

O problema

Transformar bases locais e heterogêneas de PEC em relatório confiável, comparável e auditável — para centenas de municípios ao mesmo tempo, com regra ditada por nota técnica do Ministério da Saúde que muda, e sem nunca deixar dado de um município aparecer para outro. E o detalhe que muda tudo: um número errado aqui não é bug de UI, é decisão de saúde tomada em cima de informação falsa.

C

A abordagem

Nada de consultar o PEC ao vivo. O sistema extrai, transforma e espelha em tabelas próprias no PostgreSQL, e todo relatório lê do espelho. Isso dá três coisas de graça: o PEC do município nunca sofre carga de leitura pesada, o schema fica sob nosso controle, e a mesma pergunta feita duas vezes dá a mesma resposta. Em cima do espelho, um shell de relatório padronizado — filtro, tabela, exportação — que se repete em mais de 200 telas sem cada uma reinventar a roda.

D

Arquitetura

  1. 01

    Extração

    Leitura das bases do PEC no município. Fonte da verdade clínica, tratada como read-only — o sistema nunca escreve no prontuário.

    • PostgreSQL
    • Knex
  2. 02

    Transformação em fila

    Pipeline assíncrono: normaliza, deduplica e materializa nas tabelas espelho. Fila observável, com tela de acompanhamento — sincronização travada é problema visível, não silencioso.

    • Bull
    • Redis
    • Node.js
  3. 03

    Camada de indicadores

    As regras de numerador e denominador de cada indicador viram código versionado, com a nota técnica que as originou registrada ao lado. Quando o Ministério muda a regra, a mudança é rastreável — e o gestor vê na tela de onde o número saiu.

    • TypeScript
    • SQL
  4. 04

    API com ACL por papel

    Express + Knex, mais de 50 módulos de rota. JWT em cookie httpOnly e autorização por papel — equipe interna, gestor municipal, profissional. O inquilino vem do código IBGE na URL e é verificado no servidor, nunca confiado no cliente.

    • Express
    • Knex
    • JWT
    • Zod
  5. 05

    Interface e exportação

    Next.js App Router com TanStack Query. O PDF não é montado à mão: existe uma rota de impressão que renderiza a mesma tela em layout de papel e o Puppeteer captura. Um relatório, uma verdade.

    • Next.js
    • React
    • TanStack Query
    • Puppeteer
    • XLSX
  6. 06

    Operação

    VPS Linux com Nginx e PM2, processo de API separado do worker de fila, S3 para arquivos e push para notificação. Configuração, endurecimento e deploy fazem parte do meu escopo.

    • Linux
    • Nginx
    • PM2
    • AWS S3
    • Web Push
E

As partes difíceis

Multi-inquilino que não pode falhar uma vez

O código IBGE de seis dígitos vive na URL, mas ele não é a autorização — é só a intenção. Cada requisição resolve o município no servidor e confere contra o papel do usuário. Com mais de 400 municípios na mesma instalação, vazar dado de saúde entre eles não é bug de severidade média; é o tipo de falha que encerra um produto.

A tela e o PDF têm que contar a mesma história

A geração de PDF era um gerador separado, em outra linguagem, com sua própria interpretação da regra — duas fontes de verdade e divergência garantida. A migração para renderizar a própria página em modo impressão e capturar matou a classe inteira de bug “o relatório não bate com a tela”.

Regra que muda por decreto

Indicador de saúde não é requisito estável: o Ministério publica nota técnica nova e o numerador muda. A resposta foi tratar a nota técnica como artefato de primeira classe, versionada junto ao código que a implementa e ligada à explicação que o gestor lê na tela.

Consistência em 200+ telas

Com essa quantidade de relatório, criatividade por tela é dívida. O shell de relatório existe para que uma tela nova nasça previsível: filtro no mesmo lugar, exportação com o mesmo comportamento, vazio com a mesma cara.

F

O que é meu

  • Desenvolvimento full stack das telas de relatório e das rotas de API que as alimentam
  • Modelagem do banco, escrita e otimização de query, e as migrations que versionam o schema
  • Pipeline de sincronização PEC → tabelas espelho, com fila e acompanhamento
  • Camada de exportação: rota de impressão, captura em PDF, CSV e XLSX
  • Autenticação, ACL por papel e isolamento por inquilino
  • Configuração, segurança e deploy dos servidores de produção
  • Condução dos projetos em andamento — priorização, escopo e organização da entrega
G

Resultado

Roda em produção, em uso diário dentro de secretarias municipais de saúde de mais de 400 municípios, em 26 estados. Cresceu de relatório para ecossistema: sete sistemas sob um portal único, com painel de chamadas na recepção e assistente com IA dentro da própria ferramenta. Para o gestor, a mudança concreta é enxergar o indicador durante o mês em vez de descobrir o resultado depois.

O que eu levei

  1. 01Domínio antes de código. A parte difícil de saúde pública não é React, é entender a regra que o Estado escreveu.
  2. 02Espelhar dado em vez de consultar a fonte viva resolveu performance, estabilidade e reprodutibilidade de uma vez.
  3. 03Uma fonte de verdade por resposta. Duas implementações da mesma regra sempre divergem — a questão é só quando.
  4. 04Padrão repetível vale mais que tela bonita quando existem mais de 200 delas.
  5. 05Escrever software que outra pessoa depende para trabalhar é a melhor escola de engenharia que existe.

Stack