Möjligheter
En deklarativ regelmotor för onkologirekommendationer. JSON profil i Plan med två alternativa spår (standard + aggressiv) ut, varje fordran frakt med ett citering till sin källa.
Kliniskt innehåll är informationellt, tekniska kontroller är inte godkännande av behandling.
En JSON- profil → två behandlingsplaner, varje anförda påstående.
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
- Avhjälp algoritm
- Resultat från Flat ut
- Eval 671 RödFlags
- Gå beslutsträd
- Materialisera spår
- Lös upp regimer
revise_plan() uppdaterar rekommendationen när nya biomarkörer eller fynd anländer.Vad finns i kunskapsbasen
Detta är en inventering av publicerade register, inte ett mått på klinisk fullständighet. Sjukdomsnivå täckning och kontroll status visas separat i matrisen nedan.
Sjukdomar med dedikerade strukturerade register.
MDT-roller representerade i routing.
Strukturerade behandlingar, inte automatiska recept.
Drogjournaler med maskinläsbar kontext.
Diagnostiska och molekylära tester representerade i KB.
Uppbyggnadssatta arbetssamlingar.
Signaler som kräver en kliniks andra titt.
Certifierade källkodsregister som är kopplade till fordringar.
Täckmatris
/diseases.html — per-sjukdom tabell: antalet biomarkörer / läkemedel / indikationer / röda flaggor, 1L+2L kontrollmärken, fyll% och verifierad%. Grupperade av lymfoid + myeloid hematologi och solida tumörer.
/disease_coverage.json.
→ Visa matris
/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.
→ Visa exempel
6-stage request processing
Klinikern ger motorn en JSON-profil. Motorn kör 6 steg i följd och returnerar en plan med ≥2 spår (CHARTER §15.2 C6 – alternativ aldrig dold).
disease.id + line_of_therapy + disease_state → Algoritm enhet.any_of/all_of/none_of med tröskelvärden).CIViC actionability
Aktiverbarhetsdata brukade komma från OncoKB — men deras ToS blockerade icke-kommersiella offentliga derivat (konflikt med CHARTER §2). Vi migrerade till CIViC (CC0) Motorn läser en lokal nattlig YAML-bild (knowledge_base/hosted/civic/<date>/) — deterministic + offline. The fusion-aware matcher handles both point mutations (BRAF V600E) and fusions (BCR::ABL1). Render: ESCAT tier — primary, CIViC evidence rating — in details. Monthly refresh CI opens a PR with the diff.
Flerfasregimer
Regimen.phases är en beställd lista över namngivna block (induktion → konsolidering → underhåll), var och en med sin egen cykel schema och övergångsutlösare. Real-world protokoll (R-CHOP × 6 → underhåll, AML 7+3 → HiDAC konsolidering, axiocel överbryggning → infusion).
bridging_options — bridging regimens between phases (for CAR-T). Legacy single-phase YAMLs auto-wrap into one-phase form via auto_wrap_legacy_components().
Citationsskydd — 3 lager
Ett trelagers kontrollsystem – tre platser där vi fångar outsourcade krav:
| Lager | Var | Vad |
|---|---|---|
| L1 · Lastare | YAML-belastning (Pydantisk) | SRC-* referential integrity. Unknown SRC-ID → load fail. |
| L2 · Verifierare | Bidragsgivare | Trelagers grundning: källan finns, omskrivningen grundad, ankare i avsnitt. |
| L3 · Teckningar | HTML- utdata | No citation → warn-badge (lenient) or skip cell (strict_citation_guard=True). |
Tre sätt att springa
python -m knowledge_base.engine.cli --patient profile.json --render plan.html- Offline.
Python WASM + mikropip + motor bunt (~2.4 MB). Första laddningen 8-15 s, sedan som en lokal CLI. Servicearbetare för offline.
from knowledge_base.engine import generate_plan, revise_plan — EHR/CSV/batch testning. Statligt, deterministisk.
Vad motorn läser från en profil
Only structured fields with explicit semantics. Unknown fields are ignored — no hidden effects.
| Kategori | Fält | Hur vi använder det |
|---|---|---|
| Sjukdom (ingångspunkt) | disease.id · icd_o_3_morphology · line_of_therapy · disease_state |
bestämmer vilken algoritm som ska köras |
| Diagnostiskt läge | suspicion.lineage_hint · tissue_locations · presentation |
aktiverar Diagnostiseringsplan istället för Plan |
| Demografi | age · ecog · fit_for_transplant · decompensated_cirrhosis · pregnancy_status |
filtrera på Indication.applicable_to.demographic_constraints |
| Biomarkörer | någon BIO-X från KB: BIO-CLL-HIGH-RISK-GENETICS, BIO-HCV-RNA, … |
utlöser RedFlags, filterindikationer, karta till CIViC |
| Resultat | Hundratals strukturerade fält — dominant_nodal_mass_cm, ldh_ratio_to_uln, tp53_mutation, … |
Trösklar i RedFlag-utlösare |
| Tidigare tester | prior_tests_completed: [TEST-IDs] |
utesluter redan avslutade tester från workup_steps |
Vad motorn återkommer – Plan
| Fält | Innehåll |
|---|---|
tracks[] | ≥2 alternative tracks (default first): indication + regimen (+ phases) + monitoring + supportive_care + contraindications |
access_matrix | Sammanlagda uppgifter per spår: registreringar, ersättning, kostnadsintervall, AccessPathway. Skådekostad varning > 180 dagar. |
experimental_options | Tredje spåret – enumerate_experimental_options() Frågar ClinicalTrials.gov v2. 7-dagars TTL cache. |
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 | step-by-step walk_algorithm history: step / outcome / branch / fired_red_flags |
warnings | schema/ref errors, time_critical disqualifications, missing data hints, citation-guard warnings |
supersedes / superseded_by | versionskedjan mellan planer för samma patient |
Alternativt aktiverad: MDT-kortfattat — orchestrate_mdt() lägger till obligatoriska/rekommendations-/valfria roller från 16 virtuella specialister + öppna frågor + ursprungsgraf.
Planuppdateringar – revise_plan()
Tre lagliga övergångar + en förbjuden. Den tidigare planen är inte muterad - en djup kopia returneras med superseded_by set. Per CHARTER § 10.2, gamla versioner kvarstår på obestämd tid.
| Från | Ändra | Övergång | Resultat |
|---|---|---|---|
| Diagnostiseringsplan vN | Endast misstanke | diagnostik → diagnostik | Diagnostisk plan v(N+1) |
| Diagnostiseringsplan vN | histologi bekräftad | diagnostik → behandling (främjande) | Plan v1 |
| Plan vN | uppdatering med histologi | behandling → behandling | Plan v(N+1) |
| Plan vN | Histologi borttagen | ILEGAL – värdefel, CHARTER §15.2 C7 | |
Plan.knowledge_base_state.algorithm_version registrerar KB-versionen → samma input + samma KB = samma utdata.
Öppna frågor – motor vägrar att besluta utan data
Istället för en tyst standard, motorn uttryckligen flaggar vilka fält som saknas och vilka test eller rapport behövs (MDT_ORCHESTRATOR_SPEC §3). Utgjord i planen som en separat sektion, aldrig dold.
| Kod | Utlösare | Vad motorn släpper ut |
|---|---|---|
| Q1 | Histos inte bekräftad | ”Behandlingsplan som genereras mot enbart ICD-O-3 kod; bekräfta primär histologi före behandling” |
| Q2 | Saknar steg | ”Lugano/Ann Arbor-stadiet som krävs för säker riskstratifiering” |
| Q3 | RF-klausulen är ofullständig | ”Cytogenetisk panel ofullständig; högriskstatus bedömd med deldata” |
| Q4 | Biomarkör saknas | ”IGHV-mutationsstatus + FISH del(17p) som krävs för att bekräfta 1L-rekommendation” |
| Q5 | Prestandastatus saknas | ”ECOG krävs för bedömning av transplantationsförmånen” går tillbaka till konservativ standard. |
| Q6 | Läkemedel som inte återbetalas | ”D-VRd: Daratumumab som för närvarande inte återbetalas; verifiera finansieringsvägen” |
| DQ1-4 | Diagnostisk-modus: vävnad / släkt / presentation / hypotes saknas | lowers workup match confidence; lineage_hint + tissue dominate |
Personlighetsluckor – avsiktligt
”Personalisering” i OpenOnco är regelbaserat urval från en fast katalog, inte AI-generation. Avslöjat arkitektonisk val (CHARTER §8.3).
No per-patient dose calculation
Lager för regulatorer standarddos ( Bortezomib 1,3 mg/m2), inte multiplicerat med patientens BSA, inte justerat automatiskt för CrCl 30. Med design – för att undvika klassificering av FDA-enhet.
No response-adapted cycles
Stiftstift total_cycles: 6 + 2 maintenance. Inte anpassat automatiskt genom respons (PR vs CR efter PET2). revise_plan.
Genomologisk matchning begränsad till CIViC
Utanför CIViC (sällsynt, nya varianter) ger en varning om att det inte finns några handlingsbesked utan kreativa tolkningar.
StödjandeCare identiskt i kohorten
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 som ett strukturerat fält; klinikern tolkar manuellt.
TJÄNSTERnas begränsningar – kommer inte att ändras
Principiella arkitektoniska beslut som går FDA / klinisk säkerhet.
LLM doesn't decide clinically
Endast LLM: pannaplåt, dok utkast, extraktion (med mänsklig kontroll), översättning med klinisk granskning. Inte: val av regim, doser, biomarkör tolkning.
No histology — no Plan
Behandlingsplan endast om disease.id bekräftas. Annars diagnosplanläge. revise_plan behandling → diagnostik är förbjuden.
No time-critical
Ej avsedd för akut onkologi (onokologiska nödsituationer). time_critical: true → diskvalificering varning.
Två-kontrollörssammanslagning
Solo-projektet. En underhållare levererar uppdateringar med automatiska kontroller och källspårbarhet. Extern klinisk granskning är valfri och registreras separat.
Antiautomation-bias
Alltid ≥2 spår sida vid sida. Alternativ är aldrig begravd, aldrig "klicka för att expandera". Klinikern ser ett val, inte ett direktiv.
Patientuppgifter finns aldrig i repo
patient_plans/ gitignorerad. Webbplatsen visar bara syntetiska exempel. Telemetri förbjuden utan uttryckligt samtycke.
Lista aldrig – vad motorn aldrig gör
Dölj alternativt spår
Both recommendations are always shown. The UI has no «expand to see alternative» pattern.
Generera indikation via LLM
Everything from the curated KB. No matching Indication → warning, not «creative invention».
Ändra doser
Doser kommer från standard NCCN/ESMO. Endast justeringar via uttrycklig dose_modification_rules.
Domare ”som är bättre”
The algorithm picks a default but doesn't claim it's superior. The clinician has full autonomy — automation_bias_warning.
Tolka bildbild
”Bulky disease” kommer som ett strukturerat fält, inte från bildanalys. Bildanalys = enhetsklassificering.
Cohortmatchning
”N patienter valde X i M% av fallen” – kräver en permanent patientregister + integritetsbedömning. Inte än.
Den nuvarande täckningen – status och brister i STUB
| Kategori | Tillstånd | Betydande |
|---|---|---|
| Sjukdomar med fullständig kedje | 86 / 103 | Resten är delvis modellerade |
| Indikationer 1L | 265 | Första raden för alla 103 sjukdomar |
| Indikationer 2L+ | 175 | 34 hem + 21 fast. Annat fast 2L+ partiellt. |
| Pediatrisk onkologi | 0 | Utom MVP-gränssnitt – separat spår |
| Strålbehandling | partiell | RT in multimodal Indications; not modeled as a standalone entity |
| Kirurgi | inte modellerade | Kirurgiska onkologiska indikationer saknas |
| Formularikt foder | statisk flagga | Hårdkodad på regimer; ej automatisk uppfriskning |
| Extern klinisk granskning | Valfritt | Inspelad separat, inte en utvecklings- eller publikationsportal. |
| Inställningsbord för levande springor | → länk | Bygggenererad revision (sign-off, solid 2L+, operation, RT, stödjande vård) |
Klinikiernas arbetsflöde
Motorn förbereder för en tumörbräda, det ersätter inte en. Klinikern:
1) verifierar källor (varje påstående citerad, vakt redan tappade ociterade celler) →
2) stänger öppna frågor (ordertest, samtal revise_plan) →
3) anpassas till patienten (doser, stödjande vård, regional tillgänglighet) →
4) diskuterar på tumörtavlan (MDT kort – strukturerad agenda). Motor: utkast. Klinikien: slutlig.
TaskTorrent – verifiera algoritmer med din AI: s tokens
Solo-projektet. En underhållare levererar uppdateringar med automatiska kontroller och källspårbarhet. Extern klinisk granskning är valfri och registreras separat.
En utvecklare publicerar en ”junk” – en egen uppgift (~100k–300k tokens): ”verifiera BMA-bevis för DLBCL × 17 enheter” eller ”backfill källlicens för 8 källor”. En bidragsgivare hävdar att biten, AI kör, PR öppnas.
Ett AI-verktyg med en symbolbudget (Claude Code Pro+, Codex, Cursor, ChatGPT med webben). GitHub + gh CLI. Python 3.10+. ~1-3 timmar av din tid. No clinical expertise required — du utlöser strukturerad textning; ansvarig verifierar ändringen; expertåterkoppling är valfri.
Kopiera 8-radsprompt från
CONTRIBUTOR_QUICKSTART.md
Den hittar en tillgänglig bit, hävdar det, kör arbetet, kör valideraren, öppnar en PR.
Den som sköter kontrollen källkällor, tester och scheman. Extern granskning är valfri. Sammanfoga → sidvagn landning → uppsert i värd KB → rendering. Tilldelningen registrerad i _contribution_meta.yaml.
Nyligen genomförd verksamhet
Under de senaste 4 dagarna TaskTorrent såg 7 vågar, dussintals bitar , ~73 BMA kandidater , 23 BMA utkast redo för klinisk avskrivning , 53 källkod stups , 1.251 UA-språk fält utarbetade . Senaste strukturella uppdateringar:
- CIViC pivot — motor + 29 BIO + 399 BMA YAMLs migrerade av OncoKB schema; månatlig uppdatering av ögonblicksbild CI.
- Flerfasregimer (PR1-3) —
Regimen.phases,bridging_options, fas-medveten regeneration, tillbaka-kompat auto-pack. - Citationsskydd L3 — kontroll av varje BMA-cell.
- Täckmatris — /diseases.html per-sjukdom borrning.
- 448 public examples in the gallery — Redoplaner, diagnostikblad och molekylära scenarier för granskning och kontroll.