TheraTrials Oncology — Painel de Auditoria

Relatório gerado em 21 de maio de 2026 • Claude Code (Opus 4.6)
Versão 1.0
Estudos Analisados
144
40 campos por estudo • 17 categorias
Explorer Global
426+
ClinicalTrials.gov API v2
Páginas HTML
20+
6 deep-dive radiofármacos
Erros Críticos
5
Requerem correção imediata
Issues Acessibilidade
7
ARIA, labels, teclado
Mercado 2030
US$ 18B+
CAGR 25-30% • Teranóstica

Issues por Severidade

Pontuação por Área

Saúde Geral do Projeto

70 de 100
85
Conteúdo
72
UX/Design
55
Código
45
Infra

Status das Áreas

ÁreaStatusNota
Curadoria de dadosExcelente144 estudos, 40 campos
PWA / OfflineFuncionalService Worker v1.2.0
Design SystemSólidoCSS custom properties
ResponsividadeBomGrid + Flexbox
AcessibilidadeParcial7 issues ARIA/labels
Error HandlingFraco5 erros críticos
TestesInexistente0 testes unitários
Backend / AuthAusenteBloqueia monetização
AnalyticsAusenteSem métricas de uso
i18nApenas PTSem inglês
Build PipelineAusenteSem minificação
SegurançaBásicaSem CSP
Stack Tecnológico
Frontend
HTML5 + Alpine.js 3.13.5 (CDN)
Estilo
CSS puro + Design System
Tipografia
Outfit • Inter • JetBrains Mono
PWA / Offline
Service Worker v1.2.0
Dados
JSON + JS embeddado (144 estudos)
Pipeline
Python 3 (stdlib) → ClinicalTrials.gov API
Ícones
Lucide (CDN unpkg)
Versão
Git (tag v1.0)
Backend
NENHUM — 100% estático
Banco de dados
NENHUM — arquivos JS/JSON
Autenticação
NENHUMA — acesso público
Build System
NENHUM — sem bundler

Fluxo de Dados

ClinicalTrials.gov
API v2
Python Scripts
fetch + curate (offline)
JSON / JS
explorer.json • data.js
Alpine.js
filtros + render
Browser
PWA + Service Worker

Estrutura de Páginas

PáginaComplexidadeFunção
database.htmlAltaBase principal, filtros, favoritos, CSV
explorer.htmlAltaTracker global radioligantes
ensaios-clinicos.htmlMédia14 ensaios ativos no Brasil
tumor-boards.htmlMédiaVisão por tipo tumoral
ferramentas.htmlMédiaAJCC TNM, CTCAE, calculadoras
lu-psma.htmlBaixaDeep-dive ¹&sup7;&sup7;Lu-PSMA
lu-dotatate.htmlBaixaDeep-dive ¹&sup7;&sup7;Lu-DOTATATE
ra-223.htmlBaixaDeep-dive ²²³Ra
y90.htmlBaixaDeep-dive &sup9;⁰Y (TARE)
index.htmlBaixaLanding page

Arquivos-chave

ArquivoTamanhoFunção
data.js~1.2 MB144 estudos embeddados
common.js682 linhasLógica de classificação
trials_br.js2.571 linhasEnsaios brasileiros
explorer.json~1.2 MBDados ClinicalTrials.gov
theratrials.css~800 linhasDesign system global
sw.js161 linhasService Worker
manifest.json139 linhasManifesto PWA
fetch_trials.py~400 linhasAPI fetcher
Críticos
5
Correção imediata
Acessibilidade
7
WCAG 2.1
Qualidade Código
12
Code smells
Funcionalidades
9
Features faltantes
Segurança
5
Vulnerabilidades

Distribuição de Issues

Impacto vs. Esforço

Erros Críticos — requerem correção imediata
1
Formspree não configurado
Endpoint é placeholder "REPLACE_WITH_YOUR_FORM_ID". Formulário de contato não funciona, fallback para mailto: apenas.
ensaios-clinicos.html • FORMSPREE_ENDPOINT
2
Sem fallback se Alpine.js CDN falhar
Se cdn.jsdelivr.net estiver offline, toda a interatividade quebra sem mensagem de erro ao usuário.
database.html, explorer.html • <script defer>
3
localStorage sem try/catch
Gravação de feedback/favoritos no localStorage pode falhar silenciosamente se quota excedida.
database.html • submitFeedback(), localStorage.setItem()
4
Sem retry no fetch do explorer.json
Falha de rede resulta em página vazia sem botão de retry ou auto-reload.
explorer.html • init() fetch
5
Race condition com Lucide
lucide.createIcons() pode executar antes do CDN carregar em conexões lentas, resultando em ícones ausentes.
Todas as páginas • lucide.createIcons()
Acessibilidade — WCAG 2.1
1
ARIA labels ausentes
Botões de filtro, sort, compare e favorito sem aria-label.
2
Formulário sem <label>
Inputs de feedback usam x-model mas sem label for="..." explícito.
3
Cores sem texto alternativo
Fases indicadas apenas por badge colorido, sem padrão alternativo para daltônicos.
4
Modal sem aria-modal
Diálogos nativos <dialog> sem aria-modal="true" e aria-labelledby.
5
Links NCT genéricos
Links para ClinicalTrials.gov usam apenas "NCT" sem contexto descritivo.
6
Alt text incompleto
Imagens decorativas e SVGs podem estar sem alt="" ou aria-hidden="true".
7
Navegação por teclado limitada
Botões de fechar modais podem não ser acessíveis via Tab.
Mercado Global 2025
US$ 5.3B
Teranóstica oncológica
Projeção 2030
US$ 18B+
CAGR 25-30%
Lu-PSMA (Pluvicto)
US$ 1B+
Vendas anuais Novartis
Público Brasil
~3.000
Médicos nucleares ativos

Crescimento do Mercado de Teranóstica (US$ Bilhões)

Análise Competitiva

Comparação Competitiva Detalhada

PlataformaTeranósticaCuradoriaFiltrosOfflinePT-BRGratuito
TheraTrials Foco total Manual Avançado PWA Nativo Sim
ClinicalTrials.gov Parcial Nenhuma Básico Não Não Sim
PubMed Disperso Nenhuma Avançado Não Não Sim
UpToDate Mínimo Expert Médio App Parcial ~US$50/m
NCCN / ESMO Secção Comitê Não PDF Não Parcial

Segmentos de Público-Alvo

Potencial Total / ano
R$ 2.4M+
7 canais combinados (cenário otimista)
Canais de Receita
7
SaaS, institucional, pharma, CME, API, consultoria, newsletter
Meta Fase 3 (12m)
R$ 30K/m
Receita recorrente mensal
Canais de Receita
Assinaturas SaaS (Pro)
Médicos nucleares e oncologistas • R$ 29-49/mês
R$ 468K/ano
1.000 assinantes × R$ 39/mês
Licenciamento Institucional
Hospitais, serviços de medicina nuclear • R$ 2K-10K/ano
R$ 250K/ano
50 instituições × R$ 5K/ano
Patrocínio Pharma
Novartis, Bayer, AAA, Lantheus • R$ 5K-20K/mês
R$ 360K/ano
3 patrocinadores × R$ 10K/mês
Educação Médica (CME)
Cursos certificados • R$ 99-299/curso
R$ 298K/ano
500 alunos × R$ 199 × 3 cursos
API de Dados
CROs, pharma, pesquisadores • R$ 500-5K/mês
R$ 480K/ano
20 clientes × R$ 2K/mês
Consultoria / Intel. Competitiva
Empresas de radiofarmácia • R$ 5K-50K/relatório
R$ 150K/ano
10 relatórios × R$ 15K
Newsletter Premium
Análise mensal ASCO/ESMO/EANM • R$ 19/mês
R$ 456K/ano
2.000 assinantes × R$ 19/mês

Modelo Freemium

TierConteúdoPreço
Free 50 estudos, fundamentos, ferramentas, Explorer (limitado) Gratuito
Pro 144+ estudos, Explorer completo, favoritos, CSV, comparação R$ 29-49/mês
R$ 249-399/ano
Institucional Multi-usuário, API, dashboard personalizado, analytics R$ 199-499/mês

Receita por Canal (R$ mil/ano)

Roadmap de Monetização

Fase 1 — Agora (0-3 meses)
Validação & Audiência
• Adicionar analytics (Plausible/Umami)
• Capturar emails com newsletter gratuita
• Ativar Formspree no formulário de contato
• Presença em redes sociais (Instagram + LinkedIn)
• Corrigir erros críticos (5 bugs)
Meta: validar demanda, construir audiência
Fase 2 — Tração (3-6 meses)
Primeiras Receitas
• Landing page com waitlist para versão Pro
• Newsletter premium paga (R$ 19/mês)
• Conteúdo freemium (limitar database gratuito a 50 estudos)
• Parcerias acadêmicas (SBMN, residências)
Meta: primeiros 100 assinantes pagantes
Fase 3 — Monetização (6-12 meses)
Receita Recorrente
• Implementar autenticação (Auth0/Supabase)
• Assinaturas Pro + Institucional
• Primeiro patrocinador pharma
• Internacionalização (inglês)
Meta: R$ 30.000/mês em MRR
Fase 4 — Escala (12-24 meses)
Diversificação
• API de dados para pesquisa
• Cursos CME/EMC certificados
• Consultoria de inteligência competitiva
• Apresentações em conferências (EANM, SNMMI, SBMN)
Meta: R$ 100.000+/mês em MRR

Prioridades Técnicas

#AçãoImpactoEsforço
1Adicionar analyticsCríticoBaixo
2Corrigir FormspreeAltoBaixo
3Error boundaries (try/catch)AltoMédio
4Implementar autenticaçãoCríticoAlto
5Migrar para SSG (Astro/11ty)MédioAlto
6Internacionalização (i18n)AltoAlto
7Testes unitários (common.js)MédioMédio
8CSP headersMédioBaixo
9Minificação e bundlingBaixoMédio
10Lazy loading do data.jsMédioMédio

Prioridades de Negócio

#AçãoImpacto
1Validar demanda (waitlist)Crítico
2Newsletter gratuitaAlto
3Parcerias acadêmicas (SBMN)Alto
4Presença redes sociaisMédio
5Apresentar em conferênciasMédio
6Primeiro patrocinador pharmaAlto
7Registro de marcaMédio