Capacità
Un motore di regola dichiarativa per le raccomandazioni oncologiche. Piano con due tracce alternative (standard + aggressive) fuori, ogni richiesta di spedizione con una citazione alla sua fonte.
Il contenuto clinico è informativo; i controlli tecnici non sono l'approvazione del trattamento.
Un profilo JSON → due piani di trattamento, ogni affermazione citata.
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
- Risoluzione algoritmo
- Risultati appiattiti
- Eval 671 RedFlags
- albero di decisione di camminare
- Materializza le tracce
- Risolvi i regimi
revise_plan() aggiorna la raccomandazione quando arrivano nuovi biomarcatori o risultati.Ciò che è nella base di conoscenza
Si tratta di un inventario dei registri pubblicati, non di una misura di completezza clinica. La copertura a livello di malattia e lo stato di verifica sono mostrati separatamente nella matrice sottostante.
Malattie con archivi strutturati dedicati.
Ruoli MDT rappresentati nel percorso.
Regimi strutturati, non prescrizioni automatiche.
Registrazione di farmaci con contesto leggibile da macchina.
Test diagnostici e molecolari rappresentati nel KB.
Set di lavoro strutturati.
Segnali che richiedono il secondo sguardo di un clinico.
Citato i registri di sorgente collegati alle richieste.
Matrice di copertura
/diseases.html — tabella per malattia: conta di biomarcatori / farmaci / indicazioni / bandiere rosse, segni di controllo 1L+2L, riempimento% e verificato%. Raggruppato da linfoide + ematologia mieloide e tumori solidi.
/disease_coverage.json.
→ Visualizza la matrice
/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.
→ Visualizza esempi
Trattamento delle domande in 6 fasi
Il clinico alimenta il motore con un profilo JSON. Il motore esegue 6 fasi sequenziali e restituisce un piano con ≥2 tracce (CHARTER §15.2 C6 — alternativa mai nascosta).
disease.id + line_of_therapy + disease_state → Ente Algoritmo.any_of/all_of/none_of con soglie).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). Il motore legge una foto locale YAML ogni notte (knowledge_base/hosted/civic/<date>/) — deterministica + offline. Il combinatore di fusione-aware gestisce sia mutazioni punti (BRAF V600E) e fusioni (BCR::ABL1). Renditore: livello ESCAT — primario, CIVIC evidence rating — in dettaglio.
Regimi multifasi
Regimen.phases è un elenco ordinato di blocchi nominati (induzione → consolidamento → manutenzione), ognuno con il proprio ciclo programma e il trigger di transizione. Protocolli del mondo reale (R-CHOP × 6 → manutenzione, AML 7+3 → consolidazione HiDAC, ponti axi-cel → infusione).
bridging_options — bridging regimens between phases (for CAR-T). Legacy single-phase YAMLs auto-wrap into one-phase form via auto_wrap_legacy_components().
Protezione di citazione — 3 strati
A three-layer verification system — three places where we catch unsourced claims:
| Livello | Dove | Cosa? |
|---|---|---|
| L1 · Caricatore | Carico YAML (Pidanzia) | SRC-* referential integrity. Unknown SRC-ID → load fail. |
| L2 · Verificatore | Contributo PR (CI) | Tristrato di terra: sorgente esiste, parafrase a terra, ancora in sezione. |
| L3 · Render | Uscita HTML | No citation → warn-badge (lenient) or skip cell (strict_citation_guard=True). |
Tre modi per correre
python -m knowledge_base.engine.cli --patient profile.json --render plan.html. Offline.
Python WASM + micropip + pacchetto motore (~2,4 MB). In primo luogo caricare 8-15 s, poi come un locale CLI. Lavoratore di servizio per offline.
from knowledge_base.engine import generate_plan, revise_plan — test di controllo EHR / CSV / lotto. apatrido, deterministico.
Quello che il motore legge da un profilo
Only structured fields with explicit semantics. Unknown fields are ignored — no hidden effects.
| Categoria | Campi | Come lo usiamo |
|---|---|---|
| Malattia (punto di ingresso) | disease.id · icd_o_3_morphology · line_of_therapy · disease_state |
determina quale Algoritmo eseguire |
| Modalità diagnostica | suspicion.lineage_hint · tissue_locations · presentation |
attiva DiagnosticPlan invece di Plan |
| Demografiche | age · ecog · fit_for_transplant · decompensated_cirrhosis · pregnancy_status |
filtro su Indication.applicable_to.demographic_constraints |
| Biomarcatori | qualsiasi BIO-X da KB: BIO-CLL-HIGH-RISK-GENETICS, BIO-HCV-RNA, … |
scattare RedFlags, filtro Indicazioni, mappa a CiviC |
| Constatazioni | centinaia di campi strutturati — dominant_nodal_mass_cm, ldh_ratio_to_uln, tp53_mutation, … |
soglie in trigger RedFlag |
| Esami precedenti | prior_tests_completed: [TEST-IDs] |
esclude i test già completati da workup_steps |
Cosa restituisce il motore — Piano
| Campo | Contenuto |
|---|---|
tracks[] | ≥2 alternative tracks (default first): indication + regimen (+ phases) + monitoring + supportive_care + contraindications |
access_matrix | per aggregato: iscrizioni, rimborsi, intervalli di costi, AccessPathway. Avviso di costo di stallo > 180 giorni. |
experimental_options | terza pista — enumerate_experimental_options() cherys ClinicalTrials.gov v2. cache TTL 7 giorni. |
actionability_hits | CIViC matches with ESCAT-primary + variant, evidence rating, clinical significance, source citations |
fda_compliance | FDA Criterion 4 fields: intended_use, patient_population_match, algorithm_summary, automation_bias_warning |
trace | history passo a passo walk_algorithm: passo / esito / branch / fired_red_flags |
warnings | schema/ref errors, time_critical disqualifications, missing data hints, citation-guard warnings |
supersedes / superseded_by | versione catena tra piani per lo stesso paziente |
Opzionalmente abilitato: Breve scheda MDT — orchestrate_mdt() aggiunge ruoli richiesti/consigliati/facoltativi da 16 specialisti virtuali + domande aperte + grafico di provenienza.
Aggiornamenti del piano — revise_plan()
Tre transizioni legali + una vietata. Il piano precedente non è mutato — una copia profonda viene restituita con superseded_by set. Per CARTA §10.2, le vecchie versioni persistono indefinitamente.
| Da | Cambia | Trasizione | Risultato |
|---|---|---|---|
| Piano diagnostico vN | solo sospetto | diagnostica → diagnostica | Piano diagnostico v(N+1) |
| Piano diagnostico vN | istologia confermata | diagnosi → trattamento (promozione) | Piano v1 |
| Piano vN | aggiornamento con istologia | trattamento → trattamento | Piano v(N+1) |
| Piano vN | istologia rimossa | ILLEGALE — ValoreErrore, CARTA §15.2 C7 | |
Plan.knowledge_base_state.algorithm_version registra la versione KB → stesso input + stesso KB = stesso output.
Domande aperte — il motore rifiuta di decidere senza dati
Invece di un default silenzioso, il motore indica esplicitamente quali campi mancano e quali prove o rapporti sono necessari (MDT_ORCHESTRATOR_SPEC §3). Renditi nel piano come sezione separata, mai nascosti.
| Codice | Disattivatore | Ciò che il motore emana |
|---|---|---|
| Q1 | Istologia non confermata | «Plan di trattamento generato solo contro il codice ICD-O-3; confermare l'istologia primaria prima della terapia» |
| Q2 | Stadio mancante | «Lo stadio di Arbor Lugano/Ann richiesto per la sicurezza di stratificazione del rischio» |
| Q3 | Cláusula RF incompleta | «Palazzo citogenetico incompleto; stato ad alto rischio valutato con dati parziali» |
| Q4 | Biomarcatore mancante | «Stato della mutazione IGHV + FISH del(17p) necessario per confermare la raccomandazione 1L» |
| Q5 | Stato di prestazione mancante | «ECOG richiesto per la valutazione dell'ammissibilità al trapianto»; rientra nel default conservatore |
| Q6 | Non rimborsato | «D-VRD: daratumumab non rimborsato attualmente; verificare la via di finanziamento» |
| DQ1-4 | Modo diagnostico: tessuto/linea/presentazione/ipotesi mancanti | abbassa la confidenza del workup; lineage_hint + tessuto domina |
Lacuni di personalizzazione — deliberati
«Personalization» in OpenOnco is rule-based selection from a fixed catalog, not AI-generation. Deliberate architectural choice (CHARTER §8.3).
No per-patient dose calculation
Negozi di regimi la dose standard (bortezomib 1,3 mg/m2), non moltiplicato per il paziente BSA, non regolato automaticamente per CrCl 30. Progettato per evitare la classificazione del dispositivo FDA.
No response-adapted cycles
Perni di regime total_cycles: 6 + 2 maintenance. Non adattato automaticamente per risposta (PR vs CR dopo PET2). revise_plan.
Genomic matching limited to CIViC
Fuori CIVIC (rare, nuove varianti) emana un avvertimento «non c'è alcuna prova di azione», senza interpretazioni creative.
SupportiveCare identico in tutta la coorte
PJP prophylaxis attached to D-VRd for everyone — the engine doesn't know alternatives (dapsone instead of bactrim). The clinician substitutes.
No cumulative-toxicity tracking
2L plan for a patient who got bortezomib in 1L with grade 2 neuropathy — the profile doesn't carry prior_treatment_history come campo strutturato; il clinico interpreta manualmente.
Le restrizioni alla carta non cambieranno
Principi di decisioni architettoniche che cancellano FDA / sicurezza clinica.
LLM doesn't decide clinically
Solo LLM: caldera, doc sbocchi, estrazione (con verifica umana), traduzione con revisione clinica. Non è così.: scelta del regime, dosi, interpretazione di biomarcatori.
No histology — no Plan
Piano di trattamento solo se disease.id è confermato. Altrimenti modalità DiagnosticPlan. revise_plan trattamento → diagnostica è vietato.
No time-critical
Non destinato ad oncologia di emergenza (emergenza oncologica). time_critical: true → Avviso di squalificazione.
Due revisori uniscono
Progetto singolo. Un manutentore fornisce aggiornamenti con controlli automatizzati e tracciabilità delle sorgenti. La revisione clinica esterna è opzionale e viene registrata separatamente.
Antiautomazione-bias
Always ≥2 tracks side-by-side. Alternative is never buried, never «click to expand». The clinician sees a choice, not a directive.
Dati sui pazienti mai in restituzione
patient_plans/ gitignored. Il sito mostra solo esempi sintetici. Telemetria vietata senza esplicito consenso.
Never list — what the engine never does
Nascondi la traccia alternativa
Entrambe le raccomandazioni sono sempre mostrate. L'interfaccia utente non ha un modello «espanso per vedere alternativa».
Generare l'indicazione tramite LLM
Everything from the curated KB. No matching Indication → warning, not «creative invention».
Modificare le dosi
Le dosi provengono dalla NCCN standard/ESMO. Aggiustamenti solo tramite esplicito dose_modification_rules.
Giudice «che è meglio»
The algorithm picks a default but doesn't claim it's superior. The clinician has full autonomy — automation_bias_warning.
Interpretazione dell'immagine
«Bulky disease» arriva come un campo strutturato, non dall'analisi delle immagini. Analisi delle immagini = classificazione dei dispositivi.
Coorte corrispondenti
«N pazienti hanno scelto X in M% dei casi» — richiede un registro dei pazienti persistente + revisione della privacy. Non ancora.
Copertura corrente — Stato e lacune dello STUB
| Categoria | Stato | Significato |
|---|---|---|
| Malattie a catena piena | 86 / 103 | Il resto è parzialmente modellato |
| Indicazioni 1L | 265 | Prima linea per tutte le 103 malattie |
| Indicazioni 2L+ | 175 | 34 etichette + 21 solide. Altre solide parziali 2L+. |
| Oncologia pediatrica | 0 | Il metodo di calcolo è stato utilizzato per determinare la durata del ciclo di prova. |
| Radioterapia | parziale | RT in Indicazioni multimodali; non modellata come entità indipendente |
| Chirurgia | non modellato | Indicazioni oncologiche chirurgiche assenti |
| Mangimi in diretta di formulazione | bandiera statica | Codificato in modo duro su regimi; non auto-frescato |
| Revisione clinica esterna | Facoltativo | Registrato separatamente; non è un cancello di sviluppo o pubblicazione. |
| Dashboard di interruzione dal vivo | → collegamento | Audit generato da costruzione (segnalazione, solido 2L+, chirurgia, RT, assistenza di supporto) |
Flusso di lavoro dei clinici
Il motore si prepara per una scheda tumorale, non ne sostituisce una.
1) verifies sources (every claim cited, guard already dropped uncited cells) →
2) Chiude domande aperte (ordina test, chiamate revise_plan) →
3) si adatta al paziente (dosi, assistenza di supporto, disponibilità regionale) →
4) discute al cartone tumorale (MDT breve — programma strutturato). Motore: bozza. Clinicista: finale.
TaskTorrent — verifica algoritmi con i token della tua IA
Progetto singolo. Un manutentore fornisce aggiornamenti con controlli automatizzati e tracciabilità delle sorgenti. La revisione clinica esterna è opzionale e viene registrata separatamente.
Un manutentore pubblica un «chunk» — un'attività autonoma (~100k–300k token): «riverifica le prove BMA per DLBCL × 17 entità» o «backfill source-licence per 8 fonti». Un contribuitore reclama il pezzo, AI esegue, PR apre.
Uno strumento di IA con un budget token (Claude Code Pro+, Codex, Cursor, ChatGPT con web). GitHub + gh CLI. Python 3.10+. ~1-3 ore del vostro tempo. Non è richiesta alcuna esperienza clinica — si attiva la redazione strutturata; il manutentore verifica il cambiamento; il feedback degli esperti è facoltativo.
Copia l'invite di 8 righe da
CONTRIBUTOR_QUICKSTART.md
nel tuo agente di AI. Trova un pezzo disponibile, lo afferma, esegue il lavoro, esegui il validatore, apre una PR.
Il manutentore controlla le fonti, i test e gli schemi. La revisione esterna è opzionale. Merge → atterraggio sidecar → upsert in KB ospitato → render. Attribuzione registrata in _contribution_meta.yaml.
Attività recente
Negli ultimi 4 giorni TaskTorrent ha visto 7 onde, decine di pezzi, ~73 candidati BMA, 23 bozze BMA pronte per la firma clinica, 53 stub sorgenti, 1.251 campi in lingua UA redatto. Recenti aggiornamenti strutturali:
- Pivot CIViC — motore + 29 BIO + 399 BMA YAML migrati fuori dello schema OncoKB; istantanea mensile aggiornare CI.
- Regimi multifase (PR1-3) —
Regimen.phases,bridging_options, rendering fasi-aware, back-compat auto-wrap. - Protezione di citazione L3 — controllo del tempo di rendering su ogni cella BMA.
- Matrice di copertura — /diseases.html per malattia, trap-down.
- 448 public examples in the gallery — piani pronti, schede diagnostiche e scenari molecolari per la revisione e la verifica.