Pediatria-HRT
Plataforma full-stack de gestão para residência médica — PWA com ferramentas clínicas, fórum, gestão acadêmica e 2 pacotes npm publicados. Desenvolvida solo com Claude Code em ~5 meses.
O contexto
Sou preceptor da residência em Pediatria do Hospital Regional de Taguatinga desde 2011. Durante mais de uma década, protocolos, doses, rotinas e materiais didáticos ficaram espalhados entre PDFs, e-mails e WhatsApp. Cada turma nova começava quase do zero.
Decidi resolver isso construindo uma plataforma completa — sozinho, usando Claude Code como copiloto de desenvolvimento. Do zero à produção em ~5 meses (out/2025 – mar/2026), incluindo arquitetura, implementação, testes e documentação.
O que construí
Uma Progressive Web App que centraliza 79 rotinas médicas, ferramentas clínicas com cálculos baseados em evidência, fórum de discussões e gestão acadêmica — instalável, offline-first e acessível.






| Métrica | Valor |
|---|---|
| Linhas de TypeScript | ~23.000 |
| Componentes React | 163+ |
| Testes automatizados | 365+ |
| Migrations SQL | 21 |
| Pacotes npm publicados | 2 |
| Commits | 347 |
Ferramentas clínicas
As calculadoras são o diferencial técnico do projeto. O core de cálculos foi extraído em dois pacotes npm open-source zero-dependency, mantidos no mesmo monorepo:
- Calculadora Antropométrica (
@pedi-growth/core) — z-scores e percentis com 3 conjuntos de curvas: OMS (0–19a), Síndrome de Down / Zemel 2015 (0–18a) e Paralisia Cerebral / Brooks 2011 (2–20a, por nível GMFCS). Classificação nutricional SISVAN, gráficos interativos Recharts, BSA e cópia para prontuário. 194 testes. - PA Pediátrica (
@pedi-bp/core) — 5 fontes de referência (Gemelli, AAP 2017, ERICA, Lo 2013, NHLBI) com cascata automática por idade/sexo/estatura. Detecção de hipotensão (PALS + P5). 100 testes. - Classificação Neonatal — PIG/AIG/GIG por Intergrowth-21st (24–42 semanas), índice ponderal de Rohrer e alertas clínicos automáticos.
Fórum e gestão acadêmica
- Fórum — threading em 3 níveis, editor rich text TipTap com @menções e imagens inline, enquetes com votação, reações like/dislike, notificações, sanitização XSS com DOMPurify
- Calendário teórico — CRUD de atividades com impressão mensal em HTML
- Escalas de plantão — upload e visualização de PDFs/imagens
- Documentos — repositório de artigos, protocolos e materiais de estudo
- Admin — gestão de usuários, convites em lote, reenvio de convites expirados
Arquitetura e padrões
A stack foi pensada para ser moderna, type-safe e performática:
- Roteamento — TanStack Router com code-based routing e type-safe params
- Server state — TanStack Query v5 com query key factory, invalidação precisa e optimistic updates
- Formulários — React Hook Form + Zod v4 com schemas centralizados
- RBAC — 5 roles (admin, supervisor, preceptor, residente, egresso) com Row Level Security granular em todas as tabelas
- Segurança — DOMPurify, CSP headers, CORS restrito, 30 testes XSS dedicados, 0 vulnerabilidades npm
- Performance — code-splitting (lazy routes + import() dinâmico), React.memo em componentes de lista, Promise.all para queries paralelas
- PWA — instalável, offline-first, service worker com cache strategy e notificação de atualização
- Acessibilidade — WAI-ARIA compliant: skip nav, landmarks, roving tabindex, aria-live
- Qualidade — ESLint + Prettier + Husky + lint-staged + 21 migrations SQL versionadas
Desenvolvimento com Claude Code
Este projeto é um exemplo concreto de como Claude Code viabiliza a construção individual de plataformas complexas. Atuei como único desenvolvedor — definindo requisitos, arquitetura e UX — enquanto Claude Code acelerou a implementação, escrita de testes, refatorações e documentação. O resultado: uma plataforma de produção com 23.000 linhas de código, 365+ testes e 2 pacotes npm publicados, entregue em ~5 meses.
Impacto
A plataforma atende residentes e preceptores de Pediatria do HRT em produção. Serve como referência de como tecnologia pode potencializar ensino médico — centralizando material, ferramentas clínicas e comunicação num único lugar acessível e sempre atualizado.