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.
O conteúdo clínico é informativo; as verificações técnicas não constituem uma aprovação do tratamento.
Um perfil JSON → dois planos de tratamento, todas as alegações citadas.
No LLM in the clinical decision. No server. Patient JSON stays on the machine. Per-profile processing: 50-200 ms.
# example: DLBCL disease: DLBCL-NOS line_of_therapy: 1L biomarkers: CD79B_mut: true MYC_rearr: false COO: ABC findings: ipi: 3 ecog: 1 ldh_ratio: 1.8
- Algoritmo de resolução
- Descobertos aplacados
- Eval 671 RedFlags
- Árvore de decisão de caminhada
- Materializar as faixas
- Resolução de regimes
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.
Doenças com registros estruturados dedicados.
Papéis de MDT representados no encaminhamento.
Regimes estruturados, não prescrições automáticas.
Registos de medicamentos com contexto legível por máquina.
Testes diagnósticos e moleculares representados no KB.
Conjuntos de trabalho estruturados.
Sinais que requerem o segundo olhar de um médico.
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).
disease.id + line_of_therapy + disease_state → Entidade Algoritm.any_of/all_of/none_of com limiares).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:
| Camada | Onde | O 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
python -m knowledge_base.engine.cli --patient profile.json --render plan.htmlDesligada.
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.
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.
| Categoria | Campos | Como 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_matrix | agregado por faixa: registos, reembolso, intervalos de custos, AccessPathway. Aviso se a antiguidade dos dados de custos for > 180 dias. |
experimental_options | terceiro caminho — enumerate_experimental_options() consultas ClinicalTrials.gov v2. cache TTL de 7 dias. |
actionability_hits | CIViC matches with ESCAT-primary + variant, evidence rating, clinical significance, source citations |
fda_compliance | Campos do critério 4 da FDA: intended_use, patient_population_match, algorithm_summary, automation_bias_warning |
trace | Passo a passo histórico walk_algorithm: passo / resultado / ramo / fired_red_flags |
warnings | schema/ref errors, time_critical disqualifications, missing data hints, citation-guard warnings |
supersedes / superseded_by | cadeia 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.
| De | Alteração | Transição | Resultado |
|---|---|---|---|
| Plano Diagnóstico vN | apenas suspeita | diagnóstico → diagnóstico | Plano de Diagnóstico v(N+1) |
| Plano Diagnóstico vN | histologia confirmada | diagnóstico → tratamento (Promoção) | Plano v1 |
| Plano vN | atualização com histologia | tratamento → tratamento | Plano v(N+1) |
| Plano vN | histologia removida | ILEGAL — Valor de erro, CARTA §15.2 C7 | |
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ódigo | Activador | O que o motor emite |
|---|---|---|
| Q1 | Histologia não confirmada | «Plano de Tratamento gerado somente contra o código CID-O-3; confirmar histologia primária antes da terapia» |
| Q2 | Falha faltante | «Estadio de Lugano/Ann Arbor necessário para uma estratificação de risco confiante» |
| Q3 | Cláusula RF incompleta | «Painel citogenético incompleto; estado de alto risco avaliado com dados parciais» |
| Q4 | Biomarcador ausente | «Estado da mutação IGHV + FISH del(17p) necessário para confirmar a recomendação 1L» |
| Q5 | Situação de desempenho em falta | «ECOG necessário para avaliação da elegibilidade para transplante»; recua ao padrão conservador |
| Q6 | Medicamento não reembolsado | «D-VRD: daratumumab não reembolsado atualmente; verificar a via de financiamento» |
| DQ1-4 | Modo diagnóstico: tecido / linhagem / apresentação / hipóteses faltando | reduz a confiança na correspondência da avaliação diagnóstica; predominam lineage_hint e o tecido |
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).
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.
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.
Genomic matching limited to CIViC
Outside CIViC (rare, novel variants) emits a warning «no actionability evidence», without creative interpretations.
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.
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.
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.
Sem histologia — sem Plano
Plano de tratamento apenas se disease.id Confirmado. Caso contrário, modo DiagnosticPlan. revise_plan tratamento → diagnóstico é proibido.
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.
- 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.
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.
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
Esconder a pista alternativa
As duas recomendações são sempre apresentadas. A IU não tem um padrão «expansivo para ver alternativa».
Gerar a Indicação através de LLM
Everything from the curated KB. No matching Indication → warning, not «creative invention».
Modificar as doses
As doses provêm das diretrizes NCCN/ESMO. Os ajustes só são feitos por regras explícitas dose_modification_rules.
Juiz «que é melhor»
The algorithm picks a default but doesn't claim it's superior. The clinician has full autonomy — automation_bias_warning.
Interpretação de imagens
A «doença bullicia» chega como campo estruturado, não a partir da análise de imagens.
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
| Categoria | Estado | Significado |
|---|---|---|
| Doenças com cadeia completa | 86 / 103 | Os restantes são parcialmente modelados |
| Indicações 1L | 265 | Primeira linha para todas as 103 doenças |
| Indicações 2L+ | 175 | 34 heme + 21 sólidos. Outros sólidos 2L+ parcial. |
| Oncologia pediátrica | 0 | Fora do âmbito de aplicação do MVP — via separada |
| Radioterapia | parcial | RT em Indicações multimodais; não modelado como entidade independente |
| Cirurgia | não modelados | Indicações cirúrgicas oncológicas ausentes |
| Alimentação viva de fórmulas | bandeira estática | Codificados com o regime; não auto-refrescados |
| External clinical review | Opcional | Recorded separately; not a development or publication gate. |
| Painel de abertura ao vivo | → ligação | Auditoria gerada pela construção (sign-off, sólido 2L+, cirurgia, RT, cuidados de suporte) |
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.
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.
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.
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.
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.
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.