Funcionalidades

Um motor de regras declarativas para recomendações oncológicas. Perfil JSON em — Plano com duas faixas alternativas (standard + agressivo) fora, cada pedido de envio com uma citação para sua fonte.

Projeto individual. Uma pessoa responsável publica as atualizações com verificações automáticas e rastreabilidade das fontes. A revisão clínica externa é opcional e registada separadamente.

O conteúdo clínico é informativo; as verificações técnicas não constituem uma aprovação do tratamento.

103
doenças em KB
834
indications (265 1L · 175 2L+)
407
regimes de tratamento
321
medicamentos (ATC/RxNorm)
671
Sinais vermelhos
576
Fontes citadas
16
Aptidões do clínico (MDT)
Solo
One maintainer
01Não é uma caixa preta
Every algorithm step in the trace. LLM doesn't make clinical decisions (CHARTER §8.3).
02Cada reivindicação com uma citação
source_id + posição + citação parafraseada + página/seção. Render-time guard.
03Privacidade por design
CLI / Pyodide / Python import. No server. Patient JSON never leaves the machine.
04O plano mantém-se vivo
revise_plan() atualiza a recomendação à medida que chegam novos biomarcadores ou achados.

O que está na base de conhecimento

Trata-se de um inventário de registros publicados, não de medida de completude clínica, sendo a cobertura e o estado de verificação do nível de doença apresentados separadamente na matriz abaixo.

103
Doenças em KB

Doenças com registros estruturados dedicados.

16
Aptidões de Clínica

Papéis de MDT representados no encaminhamento.

407
Regimes de tratamento

Regimes estruturados, não prescrições automáticas.

321
Medicamentos

Registos de medicamentos com contexto legível por máquina.

131
Ensaios

Testes diagnósticos e moleculares representados no KB.

24
Apreciação

Conjuntos de trabalho estruturados.

671
Sinais de alerta

Sinais que requerem o segundo olhar de um médico.

576
Fontes

Registros de fontes relacionados a reclamações.

Matriz de cobertura

/diseases.html — tabela de per-doença: contagem de biomarcadores / fármacos / indicações / sinais vermelhos, 1L+2L marcas de checkmarks, preenchimento% e verificado%. agrupados por linfoide + hematologia mielóide e tumores sólidos. /disease_coverage.json. → Ver a matriz

/gallery.html — 448 public examples. Each contains a full Plan, Diagnostic Brief, or molecular scenario with source links. Internal QA profiles do not appear in the user-facing library. → Ver exemplos

Tratamento de pedidos em 6 fases

O médico alimenta o motor com um perfil JSON. O motor executa 6 etapas sequenciais e retorna um plano com ≥2 faixas (CARTER §15.2 C6 — alternativa nunca escondida).

Fase 1
Doença + Resolução de Algoritmo
disease.id + line_of_therapy + disease_state → Entidade Algoritm.
Fase 2
Achados aplacados
Merge demografia + biomarcadores + achados em um dito plano.
Fase 3
Avaliação da flameira vermelha
671 FRs contra os resultados (any_of/all_of/none_of com limiares).
Fase 4
Algoritmo caminhando
Árvore de decisão passo a passo. O registo documenta fired_red_flags em cada nó.
Fase 5
As faixas se materializam
Indicação → faixas (padrão / agressivo / vigilância) com filtro de biomarcador.
Fase 6
Resolução por trilha
Indicação → Regime (com fases) + Monitoramento + Cuidado de Apoio + AccessMatrix.

CIViC actionability

Actionability data used to come from OncoKB — but their ToS blocked non-commercial public derivatives (conflict with CHARTER §2). We migrated to CIViC (CC0) (WashU). O motor lê um instantâneo local YAML (knowledge_base/hosted/civic/<date>/) — determinista + offline. O combinador fusão-aware manipula mutações de pontos (BRAF V600E) e fusão (BCR::ABL1). Render: nível ESCAT — primário, classificação de evidências CIViC — em detalhes. Revisão mensal CI abre um PR com o diff.

Regimes multifásicos

Regimen.phases é uma lista ordenada de blocos nomeados (indução → consolidação → manutenção), cada um com seu próprio cronograma de ciclo e gatilho de transição. Protocolos do mundo real (R-CHOP × 6 → manutenção, AML 7+3 → consolidações HiDAC, ponte axi-cel → infusão). bridging_options — bridging regimens between phases (for CAR-T). Legacy single-phase YAMLs auto-wrap into one-phase form via auto_wrap_legacy_components().

Protetor de citação — 3 camadas

A three-layer verification system — three places where we catch unsourced claims:

CamadaOndeO quê?
L1 · Carregador Carga YAML (Pidântico) SRC-* referential integrity. Unknown SRC-ID → load fail.
L2 · Verificador Contribuidor PR (CI) Aterragem de três camadas: a fonte existe, parafrase aterrada, âncora na seção.
L3 · Renúncia Saída HTML Sem citação → alerta-badge (lenciente) ou pular a célula (strict_citation_guard=True).

Três maneiras de correr

CLI
Localmente

python -m knowledge_base.engine.cli --patient profile.json --render plan.htmlDesligada.

Pyodide
No navegador (try.html)

Python WASM + micropip + pacote de motor (~2,4 MB). Primeiro carregar 8-15 s, depois como um CLI local. Serviço de trabalho para offline.

Biblioteca
Importação de Python

from knowledge_base.engine import generate_plan, revise_plan — EHR / CSV / ensaios em lote. Apatridia, determinista.

O que o motor lê a partir de um perfil

Only structured fields with explicit semantics. Unknown fields are ignored — no hidden effects.

CategoriaCamposComo a usamos
Doença (ponto de entrada) disease.id · icd_o_3_morphology · line_of_therapy · disease_state determina qual Algoritmo executar
Modo diagnóstico suspicion.lineage_hint · tissue_locations · presentation ativa DiagnosticPlan em vez de Plano
Demografia age · ecog · fit_for_transplant · decompensated_cirrhosis · pregnancy_status filtro ligado Indication.applicable_to.demographic_constraints
Biomarcadores qualquer BIO-X a partir de KB: BIO-CLL-HIGH-RISK-GENETICS, BIO-HCV-RNA, … desencadear RedFlags, filtro Indicações, mapa para CIViC
Conclusões centenas de campos estruturados — dominant_nodal_mass_cm, ldh_ratio_to_uln, tp53_mutation, … limiares em desencadeadores RedFlag
Ensaios anteriores prior_tests_completed: [TEST-IDs] exclui testes já concluídos de workup_steps

O que o motor retorna — Plano

CampoÍndice
tracks[]≥2 alternative tracks (default first): indication + regimen (+ phases) + monitoring + supportive_care + contraindications
access_matrixagregado por faixa: registos, reembolso, intervalos de custos, AccessPathway. Aviso se a antiguidade dos dados de custos for > 180 dias.
experimental_optionsterceiro caminho — enumerate_experimental_options() consultas ClinicalTrials.gov v2. cache TTL de 7 dias.
actionability_hitsCIViC matches with ESCAT-primary + variant, evidence rating, clinical significance, source citations
fda_complianceCampos do critério 4 da FDA: intended_use, patient_population_match, algorithm_summary, automation_bias_warning
tracePasso a passo histórico walk_algorithm: passo / resultado / ramo / fired_red_flags
warningsschema/ref errors, time_critical disqualifications, missing data hints, citation-guard warnings
supersedes / superseded_bycadeia de versão entre planos para o mesmo paciente

Activado de forma opcional: Apresentação de um relatório de MDT — orchestrate_mdt() adiciona papéis necessários/recomendados/opcionais de 16 especialistas virtuais + perguntas abertas + gráfico de proveniência.

Avaliações do plano — revise_plan()

Três transições legais + uma proibida. O plano anterior não é mutado — uma cópia profunda é devolvida com superseded_by set. Por CARTA §10.2, versões antigas persistem indefinidamente.

DeAlteraçãoTransiçãoResultado
Plano Diagnóstico vNapenas suspeitadiagnóstico → diagnósticoPlano de Diagnóstico v(N+1)
Plano Diagnóstico vNhistologia confirmadadiagnóstico → tratamento (Promoção)Plano v1
Plano vNatualização com histologiatratamento → tratamentoPlano v(N+1)
Plano vNhistologia removidaILEGAL — Valor de erro, CARTA §15.2 C7
Privacidade. Patient JSON never leaves the user's machine. No logs, no DB. Reproducibility: Plan.knowledge_base_state.algorithm_version grava a versão KB → mesma entrada + mesma KB = mesma saída.

Perguntas abertas — o motor recusa-se a decidir sem dados

Em vez de um padrão silencioso, o motor marca explicitamente quais campos estão faltando e quais testes ou relatórios são necessários (MDT_ORCHESTRATOR_SPEC §3). Devolveu-se ao Plano como uma seção separada, nunca escondida.

CódigoActivadorO que o motor emite
Q1Histologia não confirmada«Plano de Tratamento gerado somente contra o código CID-O-3; confirmar histologia primária antes da terapia»
Q2Falha faltante«Estadio de Lugano/Ann Arbor necessário para uma estratificação de risco confiante»
Q3Cláusula RF incompleta«Painel citogenético incompleto; estado de alto risco avaliado com dados parciais»
Q4Biomarcador ausente«Estado da mutação IGHV + FISH del(17p) necessário para confirmar a recomendação 1L»
Q5Situação de desempenho em falta«ECOG necessário para avaliação da elegibilidade para transplante»; recua ao padrão conservador
Q6Medicamento não reembolsado«D-VRD: daratumumab não reembolsado atualmente; verificar a via de financiamento»
DQ1-4Modo diagnóstico: tecido / linhagem / apresentação / hipóteses faltandoreduz a confiança na correspondência da avaliação diagnóstica; predominam lineage_hint e o tecido
Why no silent default: CHARTER §15.2 C6 (anti automation-bias) — the engine cannot pretend to know when it doesn't.

Lacunas de personalização — deliberadas

A «Personalização» no OpenOnco é uma seleção baseada em regras de um catálogo fixo, não de AI-geração. Escolha arquitectónica deliberada (CHARTER §8.3).

Lacuna 1

Não foi calculado o cálculo da dose por paciente

Lojas de regimen a dose padrão (bortezomib 1,3 mg/m2), não multiplicado pelo paciente BSA, não ajustado automaticamente para CrCl 30. Por projeto — para evitar a classificação do dispositivo FDA.

Lacuna 2

Não há ciclos adaptados à resposta

Aparelhos de retenção total_cycles: 6 + 2 maintenance. Não adaptado automaticamente pela resposta (PR vs CR após PET2). revise_plan.

Lacuna 3

Genomic matching limited to CIViC

Outside CIViC (rare, novel variants) emits a warning «no actionability evidence», without creative interpretations.

Lacuna 4

ApoioCuidado idêntico em toda a coorte

PJP prophylaxis attached to D-VRd for everyone — the engine doesn't know alternatives (dapsone instead of bactrim). The clinician substitutes.

Lacuna 5

Não há monitorização da toxicidade cumulativa

2L plan for a patient who got bortezomib in 1L with grade 2 neuropathy — the profile doesn't carry prior_treatment_history como campo estruturado; o clínico interpreta manualmente.

Condições de encarte — não se altera

Decisões arquitetônicas de princípios que portão FDA / segurança clínica.

§8.3

LLM doesn't decide clinically

LLM apenas: caldeira, drafts, extração (com verificação humana), tradução com revisão clínica. Não.: escolha de regime, doses, interpretação de biomarcadores.

§15.2 C7

Sem histologia — sem Plano

Plano de tratamento apenas se disease.id Confirmado. Caso contrário, modo DiagnosticPlan. revise_plan tratamento → diagnóstico é proibido.

§15.2 C5

Não há tempo crítico

Não se destina a oncologia de emergência (emergencias oncológicas). time_critical: true → aviso de desqualificação.

§6.1

- Dois revisores fundem-se.

Projeto individual. Uma pessoa responsável publica as atualizações com verificações automáticas e rastreabilidade das fontes. A revisão clínica externa é opcional e registada separadamente.

§15.2 C6

Antiautomação-bias

Sempre ≥ 2 pistas lado a lado. Alternativa nunca é enterrada, nunca «clique para expandir». O clínico vê uma escolha, não uma diretiva.

§9.3

Dados do paciente nunca em repo

patient_plans/ o site mostra apenas exemplos sintéticos. A telemetria é proibida sem consentimento explícito.

Nunca lista — o que o motor nunca faz

Nunca

Esconder a pista alternativa

As duas recomendações são sempre apresentadas. A IU não tem um padrão «expansivo para ver alternativa».

Nunca

Gerar a Indicação através de LLM

Everything from the curated KB. No matching Indication → warning, not «creative invention».

Nunca

Modificar as doses

As doses provêm das diretrizes NCCN/ESMO. Os ajustes só são feitos por regras explícitas dose_modification_rules.

Nunca

Juiz «que é melhor»

The algorithm picks a default but doesn't claim it's superior. The clinician has full autonomy — automation_bias_warning.

Nunca

Interpretação de imagens

A «doença bullicia» chega como campo estruturado, não a partir da análise de imagens.

Nunca

Coorte de correspondência

«N pacientes escolheram X em M% dos casos» — requer um registro de pacientes persistido + revisão de privacidade. Ainda não.

Cobertura actual — Situação e lacunas do STUB

CategoriaEstadoSignificado
Doenças com cadeia completa86 / 103Os restantes são parcialmente modelados
Indicações 1L265Primeira linha para todas as 103 doenças
Indicações 2L+17534 heme + 21 sólidos. Outros sólidos 2L+ parcial.
Oncologia pediátrica0Fora do âmbito de aplicação do MVP — via separada
RadioterapiaparcialRT em Indicações multimodais; não modelado como entidade independente
Cirurgianão modeladosIndicações cirúrgicas oncológicas ausentes
Alimentação viva de fórmulasbandeira estáticaCodificados com o regime; não auto-refrescados
External clinical reviewOpcionalRecorded separately; not a development or publication gate.
Painel de abertura ao vivo→ ligaçãoAuditoria gerada pela construção (sign-off, sólido 2L+, cirurgia, RT, cuidados de suporte)
O que o STUB NÃO significa: structured data + algorithm + sources are already in place. STUB describes content maturity; it is not a solo-project release gate or treatment approval.

Fluxo de trabalho dos clínicos

O motor prepara-se para um quadro tumoral, não substitui um. 1) verifies sources (every claim cited, guard already dropped uncited cells) → 2) Fecha Perguntas Abertas (ordem de testes, chamadas revise_plan) → 3) adapta-se ao paciente (doses, cuidados de suporte, disponibilidade regional) → 4) discute no quadro tumoral (resumo do MDT — agenda estruturada).

TaskTorrent — verifique algoritmos com os símbolos da sua IA

Projeto individual. Uma pessoa responsável publica as atualizações com verificações automáticas e rastreabilidade das fontes. A revisão clínica externa é opcional e registada separadamente.

1
O que é

Um mantenedor publica um «chunk» — uma tarefa autónoma (~100k–300k tokens): «reverifique evidências BMA para DLBCL × 17 entidades» ou «recuperar fonte-licença para 8 fontes». Um contribuinte reclama o pedaço, AI executa, PR abre.

2
O que você precisa

Uma ferramenta de IA com um orçamento token (Claude Código Pro+, Codex, Cursor, ChatGPT com web). GitHub + gh CLI. Python 3.10+. ~1-3 horas do seu tempo. Não é necessário conhecimento clínico — you trigger structured drafting; the the maintainer verifies the change; expert feedback is optional.

3
Aparelho de 8 linhas

Copie a indicação de 8 linhas CONTRIBUTOR_QUICKSTART.md Ele encontra um pedaço disponível, afirma, executa o trabalho, executa a validação, abre uma RP.

4
O que acontece com a RP

The maintainer checks sources, tests and schemas. External review is optional. Merge → sidecar landing → upsert into hosted KB → render. Attribution recorded in _contribution_meta.yaml.

Impacto. Cada BMA verificado é uma reivindicação de ação que podemos apresentar como «aprovado» em vez de «STUB». Um contribuinte com fichas Pro+ em uma noite pode empurrar 10-20 BMAs através de preparação de sinalização — cerca de uma semana de trabalho para uma pessoa sob qualquer outro modelo.

Actividade recente

Durante os últimos 4 dias TaskTorrent viu 7 ondas, dezenas de pedaços, ~73 candidatos BMA, 23 rascunhos BMA prontos para assinatura clínica, 53 tocos fonte, 1.251 campos de língua UA redigidos.

  • Pivot CIViC — motor + 29 BIO + 399 YAMLs BMA migraram fora do esquema OncoKB; instantâneo mensal atualizar IC.
  • Regimes multifásicos (PR1-3) — Regimen.phases, bridging_options, renderização de fases-conhecido, back-compat auto-embalagem.
  • Proteção de citação L3 — verificação do tempo de renderização em cada célula BMA.
  • Matriz de cobertura — /diseases.html detalhamento por doença.
  • 448 public examples in the gallery — planos prontos, relatórios de diagnóstico e cenários moleculares para revisão e verificação.