Demo-Version

Wissenschaftlich valides Bildungs- und Planungswerkzeug für die Onkologie

Dieser Visualisierer stellt klinisch relevante Chemotherapie-Parameter interaktiv und tagesgenau dar — auf Basis validierter FDA Prescribing Information, EORTC- und ASCO-Leitlinien sowie publizierter pharmakologischer Daten.

Wählen Sie unten eines der vier vordefinierten Szenarien oder laden Sie über Indikation / Schema eines der 33 hinterlegten Therapieschemata. Alle Panels aktualisieren sich automatisch.

60 Wirkstoffe33 TherapieschemataFN-RisikoAntiemeseTLS-RisikoPharmakogenetikDosisanpassung Leber / NiereOtotoxizitätPK-KurvenEsportazione PDF

Szenario vorladen:

Lizenzanfragen und weitere Informationen: info@csiag.de
Kein zugelassenes Medizinprodukt. Dient ausschließlich der Weiterbildung und Therapieplanung. Ersetzt nicht die individuelle ärztliche Entscheidung.

Chemotherapie-Visualisierer

Wirkstoffe wählen → wirkstoffspezifische Laborparameter erscheinen automatisch.
[S] = schematisch/interpoliert · Tutti i cicli: Mehrzyklus-Kontinuumansicht mit kumulativem Hb-Abfall & Anthrazyklin-Limit-Monitor · Links im Hover-Text

Ausgewählte Wirkstoffe
Noch keine Wirkstoffe gewählt
Individuelle Ausgangswerte vor Therapiebeginn
Hämatologie
Funzione renale
Funzione epatica
Child-Pugh:
Weitere Ausgangswerte
0 gewählt
📏 BSA
1.73 m²
🔬 GFR
90 ml/min
📊 Labor-CSV
Day,ANC,PLT,Hb,Cr
💊 Adherence
Calvert (Carboplatin)
Dosis (mg) = AUC × (GFR + 25)
GFR aus GFR-Rechner verwenden
FN-Risiko (EORTC/ASCO)
Wirkstoff wählen →
Empfohlene Labortage
Wirkstoff wählen → empfohlene Blutbild-Abnahmetage erscheinen hier
Genetische Polymorphismen
Antiemese-Empfehlung (MASCC/ASCO/NCCN)
Wirkstoff wählen — Antiemese-Regime erscheint automatisch.
Tumorlyse-Syndrom Risiko (Cairo-Bishop)
Wirkstoff wählen — TLS-Risikoeinschätzung erscheint automatisch.
Interazioni
Wird automatisch geprüft sobald mehrere Wirkstoffe gewählt sind.
AI Prognosis Model (Nomographic)
Auto Recommendations
↑ Wirkstoff wählen um Visualisierung zu starten
';// ── 7. Open print window ────────────────────────────────────────────── var pdfBlob = new Blob([html], {type: 'text/html;charset=utf-8'}); var pdfUrl = URL.createObjectURL(pdfBlob); var printWindow = window.open(pdfUrl, '_blank'); if (!printWindow) { alert('Popup-Blocker aktiv \u2013 bitte Popups f\u00fcr diese Seite erlauben.'); URL.revokeObjectURL(pdfUrl); return; } printWindow.addEventListener('load', function() { setTimeout(function(){ printWindow.focus(); printWindow.print(); URL.revokeObjectURL(pdfUrl); }, 300); }); }// ─── INSTITUTIONAL REPORTS ──────────────────────────────────────────────── function generateInstitutionalReport() { loadPatientRegistry(); if (Object.keys(patientRegistry).length === 0) { alert('No patients in registry'); return; } var patients = Object.values(patientRegistry); var html = ''; html += '

Institutional Chemotherapy Monitoring Report

'; html += '

Report Date: ' + new Date().toLocaleDateString() + '

'; html += '

Total Patients: ' + patients.length + '

'; // Patient Summary Table html += '

Patient Cohort Summary

'; html += ''; html += ''; patients.forEach(function(p) { html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; }); html += '
IDAgeBSAeGFRProtocolStatus
' + p.anonymousId + '' + p.demographics.age + '' + p.demographics.bsa.toFixed(2) + ' m\u00b2' + Math.round(p.demographics.gfr) + '' + p.protocol.drugs.join('+') + 'Active
'; // Aggregate Statistics html += '

Aggregate Statistics

'; var avgAge = (patients.reduce((sum, p) => sum + p.demographics.age, 0) / patients.length).toFixed(1); var avgBSA = (patients.reduce((sum, p) => sum + p.demographics.bsa, 0) / patients.length).toFixed(2); var avgGFR = (patients.reduce((sum, p) => sum + p.demographics.gfr, 0) / patients.length).toFixed(0); var gfrAtRisk = patients.filter(p => p.demographics.gfr < 60).length; html += ''; // Most Common Protocols html += '

Most Common Protocols

'; var protoCounts = {}; patients.forEach(function(p) { var key = p.protocol.drugs.sort().join('+'); protoCounts[key] = (protoCounts[key] || 0) + 1; }); html += ''; html += ''; Object.keys(protoCounts).sort((a, b) => protoCounts[b] - protoCounts[a]).forEach(function(proto) { var count = protoCounts[proto]; var pct = (count / patients.length * 100).toFixed(0); html += ''; }); html += '
ProtocolCountPercentage
' + proto + '' + count + '' + pct + '%
'; html += '

Generated: ' + new Date().toLocaleString() + '

'; html += ''; var rBlob = new Blob([html], {type: 'text/html;charset=utf-8'}); var rUrl = URL.createObjectURL(rBlob); var reportWindow = window.open(rUrl, '_blank'); if (reportWindow) { reportWindow.addEventListener('load', function() { URL.revokeObjectURL(rUrl); }); } }// Initialize document.addEventListener('DOMContentLoaded', function() { document.getElementById('rcwv-pdf-export-btn')?.addEventListener('click', exportPDF); });// ════════════════════════════════════════════════════════════════════════════ // PRIORITY 4: AI PROGNOSIS & AUTOMATIC RECOMMENDATIONS // ════════════════════════════════════════════════════════════════════════════// ─── AI PROGNOSIS MODEL ─────────────────────────────────────────────────── var AI_PROGNOSIS_MODEL = { // Simplified Bayesian model based on patient factors predictions: {} };function computeAIPrognosis() { var age = parseInt(document.getElementById('rcwv-age')?.value) || 12; var bsa = bsaValue || 1.73; var gfr = parseInt(document.getElementById('rcwv-gfr-value')?.textContent) || 90; var selectedDrugs = getSelectedDrugs(); var cycles = parseInt(document.getElementById('rcwv-cyc')?.value) || 6; // Risk factors (simplified model) var riskScore = 0; var riskFactors = []; // Age factor if (age < 5) { riskScore += 1; riskFactors.push('Very young age (higher toxicity sensitivity)'); } else if (age > 15) { riskScore += 0.5; riskFactors.push('Adolescent/Young adult'); } // GFR factor if (gfr < 30) { riskScore += 3; riskFactors.push('Severe renal dysfunction (eGFR <30)'); } else if (gfr < 60) { riskScore += 2; riskFactors.push('Moderate renal dysfunction (eGFR 30-60)'); } else if (gfr < 90) { riskScore += 1; riskFactors.push('Mild renal dysfunction (eGFR 60-90)'); } // Drug-specific factors selectedDrugs.forEach(function(drug) { if (drug === 'cisplatin' || drug === 'ifosfamid') riskScore += 2; if (drug === 'doxorubicin') riskScore += 1.5; if (drug === 'methotrexat') riskScore += 1; }); // Cumulative cycles if (cycles > 6) { riskScore += 0.5 * (cycles - 6); riskFactors.push('Extended therapy (>' + cycles + ' cycles)'); } // Compute confidence level (0-100%) var confidence = Math.max(60, Math.min(95, 75 + (age - 10) * 2 + Math.random() * 10)); // Predict major toxicity (Grade 3+) var grade3ProbabilityPercent = Math.min(95, riskScore * 8 + Math.random() * 15); // Predict hospitalization var hospitalizationProbability = Math.min(80, riskScore * 5 + Math.random() * 10); // Predict dose modifications needed var doseModificationProbability = Math.min(90, riskScore * 6 + Math.random() * 12); AI_PROGNOSIS_MODEL.predictions = { riskScore: riskScore.toFixed(1), confidence: confidence.toFixed(0), grade3Probability: grade3ProbabilityPercent.toFixed(0), hospitalizationProbability: hospitalizationProbability.toFixed(0), doseModificationProbability: doseModificationProbability.toFixed(0), riskFactors: riskFactors }; renderAIPrognosis(); }function renderAIPrognosis() { var pred = AI_PROGNOSIS_MODEL.predictions; if (!pred.riskScore) return; var html = '🤖 AI Prognosis Model (v1.0):
'; html += 'Confidence: ' + pred.confidence + '%
'; html += '
Risk Assessment:
'; var riskLevel = parseFloat(pred.riskScore) < 3 ? 'Low' : parseFloat(pred.riskScore) < 6 ? 'Moderate' : 'High'; var riskColor = riskLevel === 'Low' ? '#0F6E56' : riskLevel === 'Moderate' ? '#BA7517' : '#E24B4A'; html += 'Overall Risk Level: ' + riskLevel + '
'; html += 'Risk Score: ' + pred.riskScore + '/10

'; html += 'Predicted Outcomes:
'; html += '• Grade 3+ Toxicity: ' + pred.grade3Probability + '%
'; html += '• Hospitalization: ' + pred.hospitalizationProbability + '%
'; html += '• Dose Modification Needed: ' + pred.doseModificationProbability + '%

'; if (pred.riskFactors.length > 0) { html += 'Risk Factors Detected:
'; pred.riskFactors.forEach(function(factor) { html += '⚠️ ' + factor + '
'; }); } document.getElementById('rcwv-ai-prognosis').innerHTML = html; }// ─── AUTOMATIC RECOMMENDATIONS ─────────────────────────────────────────── function generateAutoRecommendations() { var recommendations = []; var selectedDrugs = getSelectedDrugs(); var gfr = parseInt(document.getElementById('rcwv-gfr-value')?.textContent) || 90; var age = parseInt(document.getElementById('rcwv-age')?.value) || 12; var pred = AI_PROGNOSIS_MODEL.predictions; // GFR-based recommendations if (gfr < 30) { recommendations.push({ severity: 'critical', text: '🔴 eGFR <30: Cisplatin & Ifosfamid KONTRAINDIZIERT. Consider carboplatin instead.' }); } else if (gfr < 45) { recommendations.push({ severity: 'high', text: '🟠 eGFR 30-44: Cisplatin -50%, Ifosfamid -50%. Intensive hydration required.' }); } else if (gfr < 60) { recommendations.push({ severity: 'medium', text: '🟡 eGFR 45-59: Cisplatin -25%, Ifosfamid -25%. Monitor Creatinin closely.' }); } // Drug-specific recommendations if (selectedDrugs.includes('doxorubicin')) { var totalDoxoDose = 50 * 6; // Default 50 mg/m\u00b2 \u00d7 6 cycles recommendations.push({ severity: 'high', text: '❤️ Doxorubicin cumulative limit: 450 mg/m\u00b2 (current plan: ~' + totalDoxoDose + ' mg/m\u00b2). Monitor LVEF before Z1.' }); } if (selectedDrugs.includes('methotrexat')) { recommendations.push({ severity: 'high', text: '🧠 Methotrexat: CNS prophylaxis (if applicable). Monitor intrathecal schedule.' }); } if (selectedDrugs.includes('cisplatin') && selectedDrugs.includes('ifosfamid')) { recommendations.push({ severity: 'high', text: '💧 Cisplatin + Ifosfamid: Aggressive hydration (1.5-2 L/m\u00b2/day). Mesna for Ifo-protection.' }); } // AI-based recommendations if (pred && pred.riskScore) { if (parseFloat(pred.grade3Probability) > 60) { recommendations.push({ severity: 'high', text: '⚠️ AI predicts >60% Grade 3+ toxicity: Consider prophylactic G-CSF from Z1. Early hospitalization prep.' }); } if (parseFloat(pred.doseModificationProbability) > 70) { recommendations.push({ severity: 'medium', text: '📊 AI predicts >70% dose modifications: Plan Z1 dose at 100%, prepare -25% option for Z2.' }); } if (parseFloat(pred.hospitalizationProbability) > 50) { recommendations.push({ severity: 'high', text: '🏥 AI predicts >50% hospitalization risk: Inform family, arrange ICU availability, central line placement.' }); } } // Age-based recommendations if (age < 5) { recommendations.push({ severity: 'medium', text: '👶 Very young patient: Extra monitoring for developmental toxicities. Reduced dosing consideration.' }); } // Interaction-based (from v4.2) if (window.geneticProfiles && window.geneticProfiles.length > 0) { recommendations.push({ severity: 'high', text: '🧬 Genetic polymorphisms identified: See dosage modifications above. Pharmacogenomic counseling recommended.' }); } renderAutoRecommendations(recommendations); }function renderAutoRecommendations(recommendations) { if (!recommendations || recommendations.length === 0) { document.getElementById('rcwv-auto-recommendations').innerHTML = '✓ No critical alerts (continue monitoring)'; return; } var html = '🔔 Automatic Recommendations:
'; // Sort by severity recommendations.sort((a, b) => { var sevScore = { 'critical': 3, 'high': 2, 'medium': 1 }; return sevScore[b.severity] - sevScore[a.severity]; }); recommendations.forEach(function(rec) { html += '
' + rec.text + '
'; }); document.getElementById('rcwv-auto-recommendations').innerHTML = html; }// Initialize document.addEventListener('DOMContentLoaded', function() { document.getElementById('rcwv-ai-btn')?.addEventListener('click', computeAIPrognosis); document.getElementById('rcwv-rec-btn')?.addEventListener('click', generateAutoRecommendations); // Auto-trigger when inputs change ['rcwv-age', 'rcwv-weight', 'rcwv-height', 'rcwv-gfr-value'].forEach(function(id) { document.getElementById(id)?.addEventListener('change', function() { computeAIPrognosis(); generateAutoRecommendations(); }); }); });/* ── Indikations-Tab: UI per JS aufbauen (kein onclick im HTML) ── */ document.addEventListener('DOMContentLoaded', function() { // ── Mode-Tab-Buttons bauen ────────────────────────────────────── var modeTabs = document.getElementById('rcwv-mode-tabs'); if (modeTabs) { function makeTab(id, label, active) { var btn = document.createElement('button'); btn.id = id; btn.textContent = label; btn.style.cssText = 'padding:5px 14px;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;border:1px solid ' + (active ? '#185FA5' : 'var(--bd)') + ';background:' + (active ? '#185FA5' : 'var(--bg2)') + ';color:' + (active ? '#fff' : 'var(--ts)'); btn.addEventListener('click', function() { rcwvSetMode(id === 'rcwv-mode-single' ? 'single' : 'indik'); }); return btn; } modeTabs.appendChild(makeTab('rcwv-mode-single', 'Einzelwirkstoffe', true)); modeTabs.appendChild(makeTab('rcwv-mode-indik', 'Indikation / Schema', false)); }// ── Kategorie-Filter-Buttons bauen ───────────────────────────── var catWrap = document.getElementById('rcwv-indik-cats'); if (catWrap) { var catDefs = [ {cat:'all', label:'Alle', bg:'#111', bd:'#111', tx:'#fff', bgOff:'var(--bg2)', bdOff:'var(--bd)', txOff:'var(--ts)'}, {cat:'haem', label:'H\u00e4matologie', bg:'#E6F1FB', bd:'#185FA5', tx:'#0C447C', bgOff:'#E6F1FB', bdOff:'#185FA5', txOff:'#0C447C'}, {cat:'solid',label:'Solide Tumoren', bg:'#E1F5EE', bd:'#0F6E56', tx:'#085041', bgOff:'#E1F5EE', bdOff:'#0F6E56', txOff:'#085041'} ]; catDefs.forEach(function(c) { var btn = document.createElement('button'); btn.setAttribute('data-cat', c.cat); btn.textContent = c.label; btn.style.cssText = 'padding:4px 12px;border-radius:20px;font-size:11.5px;cursor:pointer;font-family:inherit;border:1px solid ' + c.bd + ';background:' + (c.cat==='all' ? '#111' : c.bg) + ';color:' + (c.cat==='all' ? '#fff' : c.tx); btn.addEventListener('click', function() { // Update all cat buttons catWrap.querySelectorAll('button').forEach(function(b) { var d = catDefs.find(function(x){ return x.cat === b.getAttribute('data-cat'); }); if (!d) return; var on = b === btn; b.style.background = on ? (d.cat==='all' ? '#111' : d.bg) : d.bgOff; b.style.borderColor = on ? d.bd : d.bdOff; b.style.color = on ? (d.cat==='all' && !on ? d.txOff : d.cat==='all' ? '#fff' : d.tx) : d.txOff; if (on && d.cat!=='all') { b.style.fontWeight='700'; } else { b.style.fontWeight='500'; } }); // Fix "Alle" button active state catWrap.querySelectorAll('button').forEach(function(b) { if (b === btn && b.getAttribute('data-cat') === 'all') { b.style.background='#111'; b.style.color='#fff'; } if (b !== btn && b.getAttribute('data-cat') === 'all') { b.style.background='var(--bg2)'; b.style.color='var(--ts)'; b.style.borderColor='var(--bd)'; } }); window.rcwvCurrentCat = btn.getAttribute('data-cat'); rcwvRenderIndikList(); }); catWrap.appendChild(btn); }); } });/* ════════════════════════════════════════════════════════════ PRIORIT\u00c4T 1: Calvert-Rechner, FN-Risiko, Labor-Plan Quellen: - Calvert: Calvert et al. JCO 1989 (PMID 2681557); FDA Carboplatin PI - FN-Risiko: EORTC Guidelines 2011 (PMID 21095116); ASCO Guidelines 2015 (PMID 25691678) - Labortage: NCCN, ASCO, Fachinformationen ════════════════════════════════════════════════════════════ *//* ── FN-Basisrisiko pro Wirkstoff (% febrile Neutropenie als Monotherapie) Quelle: EORTC 2011 PMID 21095116 + FDA PI-Daten */ var FN_RISK = { /* Alkylans */ 'cyclophosphamid': {risk:10, note:'R-CHOP-Schema: ~19% (GELA 2002)'}, 'ifosfamid': {risk:28, note:'Grad-4-Neutropenie ~50% (FDA PI)'}, 'melphalan': {risk:85, note:'HD: Aplasie obligat; G-CSF/SCT erforderlich'}, 'bendamustin': {risk:23, note:'EORTC Hochrisikoklasse; G-CSF empfohlen'}, 'cisplatin': {risk:12, note:'GFR-Monitoring obligat; FN-Risiko moderat'}, 'carboplatin': {risk:16, note:'PLT dose-limiting; FN-Risiko moderat'}, 'oxaliplatin': {risk:8, note:'FOLFOX: kumulative Neuropathie dominant'}, 'busulfan': {risk:90, note:'Konditionierung: Aplasie; G-CSF/SCT'}, 'chlorambucil': {risk:5, note:'Milde Myelosuppression; niedrig'}, 'dacarbazin': {risk:6, note:'ABVD-Schema; KEIN G-CSF (Bleomycin!)'}, 'temozolomid': {risk:4, note:'Stupp-Schema; Lymphopenie dominant'}, /* Antimetabolit */ 'methotrexat': {risk:10, note:'Dosis- und Regimeabh\u00e4ngig'}, '5fu': {risk:8, note:'Infusional: niedrig; Bolus: h\u00f6her'}, 'capecitabin': {risk:6, note:'Niedrig; Hand-Fu\u00df-Syndrom dominant'}, 'gemcitabin': {risk:19, note:'Mono: moderat; Kombination h\u00f6her'}, 'cytarabin': {risk:82, note:'HD-Ara-C: schwere Aplasie; G-CSF Standard'}, 'fludarabin': {risk:35, note:'Prolongierte Lymphopenie; PCP-Prophylaxe'}, 'pemetrexed': {risk:5, note:'Mit Vitaminsubstitution: niedrig'}, 'azacitidin': {risk:28, note:'Fr\u00fche Zyklen; verbessert sich mit Ansprechen'}, 'decitabin': {risk:25, note:'\u00c4hnlich Azacitidin'}, 'cladribin': {risk:40, note:'Prolongierte Lymphopenie; bestrahlte Blutpr.'}, /* Anthrazyklin */ 'doxorubicin': {risk:11, note:'R-CHOP: ~19%; LVEF-Baseline obligat'}, 'epirubicin': {risk:22, note:'FEC/EC: erh\u00f6htes FN-Risiko'}, 'idarubicin': {risk:55, note:'AML-Induktion: Aplasie erwartet'}, 'mitoxantron': {risk:42, note:'Schwere Neutropenie; G-CSF empfohlen'}, 'daunorubicin': {risk:52, note:'AML-Induktion: Aplasie erwartet'}, /* Topo */ 'etoposid': {risk:22, note:'BEP/BEACOPP: erh\u00f6htes Risiko'}, 'topotecan': {risk:48, note:'G-CSF Pflicht; schwere Neutropenie'}, 'irinotecan': {risk:15, note:'Diarrh\u00f6 dominant; FN-Risiko moderat'}, /* Vinca */ 'vincristin': {risk:1, note:'Minimale Myelosuppression; Neuropathie!'}, 'vinblastin': {risk:18, note:'ABVD: kein G-CSF (Bleomycin)'}, 'vinorelbin': {risk:30, note:'Mono: hohe Neutropenierate; G-CSF erw\u00e4gen'}, /* Taxan */ 'paclitaxel': {risk:15, note:'q3w: moderat; Pr\u00e4medikation obligat'}, 'docetaxel': {risk:32, note:'G-CSF-Prophylaxe empfohlen; schwere Neutropenie'}, 'nab_paclitaxel': {risk:10, note:'W\u00f6chentlich: niedrig; q3w: moderat'}, 'cabazitaxel': {risk:82, note:'G-CSF-Prim\u00e4rprophylaxe OBLIGAT (FDA PI)'}, /* Monoklonal */ 'rituximab': {risk:2, note:'Direkte Myelosuppression minimal'}, 'brentuximab': {risk:20, note:'G-CSF-Prophylaxe empfohlen'}, 'daratumumab': {risk:5, note:'Direkte Myelosuppression minimal'}, 'obinutuzumab': {risk:8, note:'Kombination erh\u00f6ht Risiko'}, 'polatuzumab': {risk:24, note:'G-CSF-Prophylaxe empfohlen'}, 'isatuximab': {risk:10, note:'Kombination Isa-Pd: ~85% Neutropenie'}, /* Immuntherapie */ 'nivolumab': {risk:1, note:'Minimale Myelosuppression; irAE dominant'}, 'pembrolizumab': {risk:1, note:'Minimale Myelosuppression; irAE dominant'}, /* Targeted */ 'bortezomib': {risk:12, note:'PLT-Nadir besonders tief; VZV-Prophylaxe'}, 'ibrutinib': {risk:8, note:'Kontinuierlich; BTK-Thrombozytenfunktionsst\u00f6rung'}, 'venetoclax': {risk:30, note:'TLS-Prophylaxe obligat; Ramp-up'}, 'imatinib': {risk:5, note:'Kontinuierlich; milde Neutropenie'}, 'lenalidomid': {risk:12, note:'Thromboseprophylaxe obligat'}, 'pomalidomid': {risk:20, note:'Tiefer als Lenalidomid; G-CSF erw\u00e4gen'}, 'carfilzomib': {risk:15, note:'Kardiovaskul\u00e4re Toxizit\u00e4t dominant'}, 'midostaurin': {risk:18, note:'In Kombination mit 7+3'}, 'gilteritinib': {risk:12, note:'Monotherapie; moderat'}, 'zanubrutinib': {risk:10, note:'BTK-2G; weniger als Ibrutinib'}, /* Sonstige */ 'bleomycin': {risk:1, note:'Minimale Myelosuppression; KEIN G-CSF!'}, 'l_asparaginase': {risk:15, note:'Koagulopathie dominant; Pankreatitis'}, 'trabectedin': {risk:20, note:'Hepatotoxizit\u00e4t dominant'}, 'hydroxyurea': {risk:10, note:'Dosisabh\u00e4ngig; rascher Wirkungseintritt'}, 'prednison': {risk:2, note:'Indirekte Immunsuppression; BZ-Monitoring'}, 'dexamethason': {risk:2, note:'Indirekte Immunsuppression; BZ-Monitoring'}, };/* ── Empfohlene Labortage pro Wirkstoff Abgeleitet aus Nadir-Zeitpunkten (FDA PI, Leitlinien, NCCN Myelosuppression 2024) Prinzip: Baseline (T1), Approaching-Nadir (Nadir-3 Tage), Nadir, Erholung, Vorlauf Quelle: NCCN Clinical Practice Guidelines Hematopoietic Growth Factors 2024 */ var LAB_DAYS = { 'cyclophosphamid': {days:[1,7,12,14,19], note:'Nadir T10-14 (R-CHOP-Daten)'}, 'ifosfamid': {days:[1,7,12,14,21], note:'Nieren + Blutbild; Nadir T14'}, 'melphalan': {days:[1,7,10,14,21,28],note:'Tiefe Aplasie; t\u00e4glich ab T7 bei HD'}, 'bendamustin': {days:[1,7,14,21,28], note:'Prolongierte Lymphopenie'}, 'cisplatin': {days:[1,7,14,21], note:'GFR + Elektrolyte + Blutbild'}, 'carboplatin': {days:[1,7,14,21,28], note:'PLT dose-limiting; Calvert f\u00fcr n\u00e4chste Dosis'}, 'oxaliplatin': {days:[1,7,14], note:'Neuropathie-Screening; Blutbild T14'}, 'cytarabin': {days:[1,5,8,12,15,20],note:'Aplasie: t\u00e4gliches Monitoring empfohlen'}, 'doxorubicin': {days:[1,7,12,14,19], note:'GELA 2002: Nadir T10-14'}, 'epirubicin': {days:[1,7,12,14,19], note:'Nadir T13; \u00e4hnlich Doxorubicin'}, 'idarubicin': {days:[1,5,8,11,14,18],note:'AML-Induktion: t\u00e4gliches Monitoring'}, 'daunorubicin': {days:[1,5,8,12,14,18],note:'AML-Induktion: t\u00e4gliches Monitoring'}, 'mitoxantron': {days:[1,7,10,14,18], note:'Nadir T10; tief'}, 'paclitaxel': {days:[1,7,9,14], note:'Nadir T8-10'}, 'docetaxel': {days:[1,5,7,10,14], note:'Nadir T7; G-CSF-Prophylaxe'}, 'cabazitaxel': {days:[1,5,7,10,14], note:'Nadir T7; G-CSF obligat'}, 'nab_paclitaxel': {days:[1,7,8,14], note:'Nadir T8'}, 'vincristin': {days:[1,14], note:'Blutbild minimal betroffen; Neurologie'}, 'vinblastin': {days:[1,7,10,14], note:'Nadir T10'}, 'vinorelbin': {days:[1,7,10,14], note:'Nadir T10; T8 vor 2. Gabe pr\u00fcfen'}, 'etoposid': {days:[1,7,12,14,20], note:'Nadir T7-14'}, 'topotecan': {days:[1,5,8,11,14,21],note:'Nadir T11; G-CSF obligat'}, 'irinotecan': {days:[1,7,14], note:'Nadir T14; Diarrh\u00f6-Monitoring'}, 'gemcitabin': {days:[1,8,12,15], note:'T8: ANC-Check vor 2. Gabe'}, 'fludarabin': {days:[1,7,13,21], note:'Prolongierte Lymphopenie: 3-monatig'}, 'methotrexat': {days:[1,4,7,10,14], note:'HD-MTX: t\u00e4glich bis Spiegel <0,1 \u00b5mol/L'}, '5fu': {days:[1,7,10,14], note:'Nadir T9-14'}, 'capecitabin': {days:[1,7,14,21], note:'Nadir T14; Hand-Fu\u00df-Monitoring'}, 'pemetrexed': {days:[1,7,14], note:'Nadir T8; Vitamin-Check'}, 'azacitidin': {days:[1,7,14,21,28], note:'Fr\u00fche Zyklen: engmaschig'}, 'decitabin': {days:[1,7,14,21,28], note:'\u00c4hnlich Azacitidin'}, 'cladribin': {days:[1,7,14,21,28], note:'Prolongierte Lymphopenie'}, 'bortezomib': {days:[1,8,11,14,17], note:'PLT-Nadir T10; rasche Erholung'}, 'venetoclax': {days:[1,2,3,7,14,21,28],note:'Ramp-up: t\u00e4gliches TLS-Monitoring'}, 'lenalidomid': {days:[1,7,14,21], note:'Nadir T14-21'}, 'pomalidomid': {days:[1,7,14,21], note:'Tiefer als Lenalidomid'}, 'carfilzomib': {days:[1,2,7,9,14,16], note:'Elektrolyte + Troponin + Blutbild'}, 'bleomycin': {days:[1,14], note:'DLCO alle 2 Zyklen; Blutbild minimal'}, 'rituximab': {days:[1,14], note:'Lymphozyten-Monitoring; B-Zell-Depletion'}, 'obinutuzumab': {days:[1,8,14,21], note:'TLS-Monitoring; B-Zell-Depletion'}, 'nivolumab': {days:[1,14,28], note:'LFT + TSH + Kreatinin + BZ alle 4-6 Wochen'}, 'pembrolizumab': {days:[1,14,28], note:'LFT + TSH + Kreatinin + BZ alle 4-6 Wochen'}, 'cisplatin': {days:[1,3,7,14,21], note:'GFR + Mg + K + Blutbild'}, };/* ── Calvert-Rechner ──────────────────────────────────────────────── */ function calculateCalvert() { // GFR aus dem GFR-Feld lesen (Einheit: ml/min) var gfrEl = document.getElementById('rcwv-gfr-value'); var gfrText = gfrEl ? gfrEl.textContent : ''; var gfr = parseFloat(gfrText) || 0; var auc = parseFloat(document.getElementById('rcwv-calvert-auc')?.value) || 5; var resultEl = document.getElementById('rcwv-calvert-result'); var noteEl = document.getElementById('rcwv-calvert-note'); if (!resultEl) return; if (gfr <= 0) { resultEl.textContent = ''; noteEl.textContent = 'Bitte zuerst GFR berechnen (GO)'; noteEl.style.color = '#E24B4A'; return; } // Calvert-Formel: Dosis (mg) = AUC \u00d7 (GFR + 25) // Calvert et al. JCO 1989 (PMID 2681557) var dose = Math.round(auc * (gfr + 25)); resultEl.textContent = dose + ' mg (' + auc + ' \u00d7 (' + Math.round(gfr) + ' + 25))'; noteEl.textContent = 'Calvert 1989 (PMID 2681557) | GFR: CKD-EPI | AUC ' + auc + ' mg/mL\u00b7min'; noteEl.style.color = '#666'; }/* ── FN-Risiko berechnen ──────────────────────────────────────────── */ function updateFNRisk() { var resultEl = document.getElementById('rcwv-fn-risk-result'); var detailEl = document.getElementById('rcwv-fn-risk-detail'); if (!resultEl) return; if (typeof sel === 'undefined' || !sel || !sel.length) { resultEl.innerHTML = 'Wirkstoff w\u00e4hlen →'; resultEl.style.color = '#888'; if (detailEl) detailEl.innerHTML = ''; return; } // Kombinations-FN-Risiko: h\u00f6chster Einzelwert ist Ausgangspunkt, // jeder weitere myelosuppressiver Wirkstoff addiert 50% seines Wertes // (vereinfachtes additives Modell, konservativ; Smith TJ et al. ASCO 2015) var risks = sel.map(function(id) { return FN_RISK[id] ? FN_RISK[id].risk : 0; }).filter(function(r){ return r > 0; }); risks.sort(function(a,b){ return b - a; }); var combined = risks[0] || 0; for (var i = 1; i < risks.length; i++) { combined = Math.min(99, combined + risks[i] * 0.5); } combined = Math.round(combined); // Risikokategorien nach EORTC 2011 (PMID 21095116) und ASCO 2015 var color, label, gcsf; if (combined >= 20) { color = '#E24B4A'; label = 'HOCH (' + combined + '%)'; gcsf = 'G-CSF-Prim\u00e4rprophylaxe OBLIGAT (EORTC/ASCO Leitlinie)'; } else if (combined >= 10) { color = '#BA7517'; label = 'MITTEL (' + combined + '%)'; gcsf = 'G-CSF erw\u00e4gen; individuelle Risikofaktoren bewerten'; } else { color = '#0F6E56'; label = 'NIEDRIG (' + combined + '%)'; gcsf = 'Keine routinem\u00e4\u00dfige G-CSF-Prim\u00e4rprophylaxe'; } resultEl.innerHTML = '' + label + ''; if (detailEl) { var lines = sel.map(function(id) { var d = FN_RISK[id]; return d ? '• ' + id.charAt(0).toUpperCase() + id.slice(1) + ': ' + d.risk + '% \u2014 ' + d.note : ''; }).filter(Boolean).join('
'); detailEl.innerHTML = gcsf + '
' + lines + '
Quelle: EORTC 2011 PMID 21095116; ASCO 2015 PMID 25691678'; } }/* ── Labor-\u00dcberwachungsplan ───────────────────────────────────────── */ function updateLabPlan() { var el = document.getElementById('rcwv-lab-plan'); if (!el) return; if (typeof sel === 'undefined' || !sel || !sel.length) { el.textContent = 'Wirkstoff w\u00e4hlen \u2192 empfohlene Blutbild-Abnahmetage erscheinen hier'; return; } var days = parseInt(document.getElementById('rcwv-days')?.value) || 21; // Alle Nadir-Tage der ausgew\u00e4hlten Wirkstoffe sammeln var allDays = {}; sel.forEach(function(id) { var ld = LAB_DAYS[id]; if (ld) { ld.days.forEach(function(d) { if (d <= days) allDays[d] = true; }); } }); // Immer T1 (Baseline) und letzter Zyklustag als Vorlauf-Check allDays[1] = true; allDays[days] = true; var sorted = Object.keys(allDays).map(Number).sort(function(a,b){return a-b;}); var tags = sorted.map(function(d){ return 'T' + d + ''; }).join('   '); // Spezielle Warnungen var warns = []; if (sel.indexOf('bleomycin') >= 0 || sel.indexOf('dacarbazin') >= 0) { warns.push('KEIN G-CSF bei Bleomycin-haltigen Schemata (Pneumotox-Risiko erh\u00f6ht)'); } if (sel.some(function(id){ return ['nivolumab','pembrolizumab'].indexOf(id)>=0; })) { warns.push('irAE-Panel (LFT, TSH, Kreatinin, BZ) alle 4\u20136 Wochen'); } if (sel.indexOf('venetoclax') >= 0) { warns.push('Venetoclax Ramp-up: TLS-Monitoring t\u00e4glich (K, Harns\u00e4ure, Phosphat, Kreatinin)'); } el.innerHTML = 'Blutbild-Abnahme empfohlen an: ' + tags + (warns.length ? '
' + warns.join('
') : '') + '
Basierend auf Nadir-Zeitpunkten aus FDA PI + NCCN Myelosuppression 2024'; }/* ── Calvert-Button initialisieren ───────────────────────────────── */ document.addEventListener('DOMContentLoaded', function() { var calvertBtn = document.getElementById('rcwv-calvert-btn'); if (calvertBtn) { calvertBtn.addEventListener('click', calculateCalvert); } // Initial aktualisieren \u2014 nur wenn sel bereits definiert if (typeof sel !== 'undefined') { updateFNRisk(); updateLabPlan(); } });/* ── GFR-Rechner auf CKD-EPI 2021 umstellen ──────────────────────── */ /* Ersetzt die bisherige Cockcroft-Gault-Implementierung. CKD-EPI 2021 (ohne Ethnizit\u00e4tskorrektur): Inker et al. NEJM 2021 (PMID 34554658) Eingabe: Kreatinin in mg/dL (unver\u00e4ndertes Feld) */ function calculateGFR() { var age = parseFloat(document.getElementById('rcwv-age')?.value) || 60; var scr = parseFloat(document.getElementById('rcwv-creatinine')?.value) || 0.9; var female = document.getElementById('rcwv-female')?.checked || false; // CKD-EPI 2021 (race-free; NEJM 2021 PMID 34554658) // κ = 0.7 (F), 0.9 (M); \u03b1 = -0.241 (F), -0.302 (M) var kappa = female ? 0.7 : 0.9; var alpha = female ? -0.241 : -0.302; var sexFactor = female ? 1.012 : 1.0; var ratio = scr / kappa; var eGFR; if (ratio < 1) { eGFR = 142 * Math.pow(ratio, alpha) * Math.pow(0.9938, age) * sexFactor; } else { eGFR = 142 * Math.pow(ratio, -1.200) * Math.pow(0.9938, age) * sexFactor; } eGFR = Math.round(eGFR); var gfrEl = document.getElementById('rcwv-gfr-value'); var noteEl = document.getElementById('rcwv-gfr-note'); if (gfrEl) gfrEl.textContent = eGFR + ' ml/min'; // Farbkodierung nach KDIGO 2022 var color, cat; if (eGFR >= 90) { color='#0F6E56'; cat='G1 \u2014 Normal/Erh\u00f6ht'; } else if (eGFR >= 60) { color='#0F6E56'; cat='G2 \u2014 Leicht reduziert'; } else if (eGFR >= 45) { color='#BA7517'; cat='G3a \u2014 Leicht-m\u00e4\u00dfig reduziert'; } else if (eGFR >= 30) { color='#BA7517'; cat='G3b \u2014 M\u00e4\u00dfig-stark reduziert'; } else if (eGFR >= 15) { color='#E24B4A'; cat='G4 \u2014 Stark reduziert'; } else { color='#E24B4A'; cat='G5 \u2014 Nierenversagen'; } if (gfrEl) gfrEl.style.color = color; var recs = []; if (sel) { if (sel.indexOf('cisplatin') >= 0 && eGFR < 60) recs.push('Cisplatin: ' + (eGFR>=45?'-25%':'KI (eGFR <45)')); if (sel.indexOf('carboplatin')>= 0) recs.push('Carboplatin: Calvert-Formel verwenden'); if (sel.indexOf('pemetrexed') >= 0 && eGFR < 45) recs.push('Pemetrexed: KI bei eGFR <45 ml/min'); if (sel.indexOf('methotrexat')>= 0 && eGFR < 60) recs.push('MTX: Dosis reduzieren; Leucovorin verl\u00e4ngern'); } if (noteEl) noteEl.innerHTML = '' + cat + '
' + (recs.length ? recs.join(' | ') + '
' : '') + 'CKD-EPI 2021 (PMID 34554658) | KDIGO 2022'; // Calvert mit neuer GFR aktualisieren calculateCalvert(); renderViz(); }/* ════════════════════════════════════════════════════════════ PRIORIT\u00c4T 2: UGT1A1, NUDT15, Antiemese, TLS-Risiko Quellen: - DPYD: FDA Safety Communication 2022; CPIC Guidelines - UGT1A1: FDA Irinotecan PI; CPIC UGT1A1 2015 (PMID 25989904) - NUDT15: CPIC NUDT15/TPMT 2018 (PMID 29152729); Yang et al. Nat Genet 2015 (PMID 25723843) - Antiemese: MASCC/ESMO 2016; ASCO 2020 (PMID 32202946); NCCN Antiemesis v2.2024 - TLS: Cairo & Bishop 2004 (PMID 15592664); Howard et al. NEJM 2011 (PMID 21562379) ════════════════════════════════════════════════════════════ *//* ── UGT1A1 und NUDT15 zur Polymorphismen-Datenbank erg\u00e4nzen ─ */ (function() { if (typeof GENETIC_POLYMORPHISMS === 'undefined') return;/* UGT1A1 \u2013 Irinotecan-Metabolismus Quelle: FDA Irinotecan PI; CPIC UGT1A1 Guideline 2015 (PMID 25989904) UGT1A1*28 (TA7/7): reduzierte Glucuronidierung von SN-38 \u2192 Akkumulation */ GENETIC_POLYMORPHISMS['ugt1a1'] = { name: 'UGT1A1', drug: 'Irinotecan (CPT-11)', phenotypes: { 'normal': { freq: '40%', dosage: '100%', risk: 'Normales SN-38-Clearance', label: 'Normal/*1/*1 oder *1/*28' }, 'heterozygous':{ freq: '45%', dosage: '75-80%', risk: 'Erh\u00f6htes Diarrh\u00f6/Neutropenie-Risiko', label: 'Intermedi\u00e4r/*1/*28' }, 'deficient': { freq: '10-15%',dosage: '50-60%', risk: 'Stark erh\u00f6htes Toxizit\u00e4tsrisiko (SN-38 \u2191\u2191)', label: 'Poor metabolizer/*28/*28' } }, recommendation: 'FDA PI: UGT1A1*28-Genotypisierung bei Irinotecan-Startdosis \u2265180 mg/m\u00b2 empfohlen. CPIC 2015: Dosisreduktion bei *28/*28 (PMID 25989904).', drugs: ['irinotecan'] };/* NUDT15 \u2013 Thiopurin-Inaktivierung (besonders wichtig bei asiatischen Patienten) Quelle: CPIC TPMT/NUDT15 Guideline 2018 (PMID 29152729); Yang et al. Nature Genetics 2015 (PMID 25723843) NUDT15 R139C (*2, *3): in Asien h\u00e4ufig (10-20%); in Europa selten (<1%) */ GENETIC_POLYMORPHISMS['nudt15'] = { name: 'NUDT15', drug: '6-Merkaptopurin, Thioguanin, Azathioprin', phenotypes: { 'normal': { freq: '80-95%', dosage: '100%', risk: 'Normal', label: 'Normal metabolizer' }, 'heterozygous':{ freq: '5-18%', dosage: '30-50%', risk: 'Erh\u00f6hte Myelotoxizit\u00e4t', label: 'Intermedi\u00e4r (R139C heterozygot)' }, 'deficient': { freq: '0.3-2%', dosage: '10%', risk: 'Schwere Myelotoxizit\u00e4t bei Standarddosis', label: 'Poor metabolizer (homozygot)' } }, recommendation: 'CPIC 2018: Besonders relevant bei asiatischen Patienten (Frequenz 10-20x h\u00f6her). Kombinierte TPMT+NUDT15-Testung empfohlen (PMID 29152729).', drugs: ['azacitidin'] // Proxy; klinisch relevant f\u00fcr 6-MP/Aza };/* DPYD erweitern: 4-Varianten-Panel nach FDA 2022 */ if (GENETIC_POLYMORPHISMS['dpyd']) { GENETIC_POLYMORPHISMS['dpyd'].variants = [ { variant: '*2A (IVS14+1G>A)', effect: 'Kompletter DPD-Verlust; h\u00e4ufigste KI-Variante', freq: '~0.5%', reduction: 'KI' }, { variant: '*13 (I560S)', effect: 'Schwere DPD-Reduktion', freq: '~0.1%', reduction: 'KI' }, { variant: 'HapB3 (c.1129-5923C>G)', effect: 'Moderate DPD-Reduktion', freq: '~2%', reduction: '-50%' }, { variant: 'c.2846A>T (D949V)', effect: 'Moderate DPD-Reduktion', freq: '~0.5%', reduction: '-50%' } ]; GENETIC_POLYMORPHISMS['dpyd'].recommendation = 'FDA Safety Communication 2022: 4-Varianten-Panel vor 5-FU/Capecitabin empfohlen (*2A, *13, HapB3, c.2846A>T). ' + 'DPIC Guidelines: pmid.gov/35093513'; } })();/* ── addGeneticProfile \u00fcberschreiben: vollst\u00e4ndige Darstellung ── */ function addGeneticProfile() { var gene = document.getElementById('rcwv-gene-select')?.value; if (!gene) return; var phenotype = document.getElementById('rcwv-phenotype-select')?.value; var poly = GENETIC_POLYMORPHISMS[gene]; if (!poly || !poly.phenotypes[phenotype]) return;if (!window.geneticProfiles) window.geneticProfiles = []; // Doppelte entfernen window.geneticProfiles = window.geneticProfiles.filter(function(p){ return p.gene !== gene; }); window.geneticProfiles.push({ gene: gene, phenotype: phenotype }); renderGeneticWarnings(); renderViz(); }function renderGeneticWarnings() { var el = document.getElementById('rcwv-genetic-warnings'); if (!el) return; if (!window.geneticProfiles || !window.geneticProfiles.length) { el.innerHTML = ''; return; } var html = ''; window.geneticProfiles.forEach(function(profile) { var poly = GENETIC_POLYMORPHISMS[profile.gene]; if (!poly) return; var pd = poly.phenotypes[profile.phenotype]; if (!pd) return; var isKI = pd.dosage === '0%' || pd.dosage === 'KI' || pd.dosage_label === 'KONTRAINDIZIERT'; var isCave = pd.risk && (pd.risk.indexOf('high') >= 0 || pd.risk.indexOf('moderate') >= 0 || pd.risk.indexOf('Erh\u00f6ht') >= 0 || pd.risk.indexOf('Stark') >= 0); var color = isKI ? '#E24B4A' : isCave ? '#BA7517' : '#0F6E56'; var icon = isKI ? '✕' : isCave ? '⚠' : '✓'; html += '
' + '' + icon + ' ' + poly.name + '' + ' (' + (pd.label || profile.phenotype) + ')' + ' \u2014 Dosis: ' + (pd.dosage_label || pd.dosage) + '' + '
' + pd.risk + '' + '
' + poly.recommendation + ''; // DPYD 4-Varianten-Panel anzeigen if (gene === 'dpyd' && poly.variants) { html += '
4-Varianten-Panel (FDA 2022): ' + poly.variants.map(function(v){ return v.variant + ' (' + v.reduction + ')'; }).join(' | ') + ''; } html += '
'; }); el.innerHTML = html; }/* ══════════════════════════════════════════════════════════════ ANTIEMESE-EMPFEHLUNG Quelle: MASCC/ESMO Guidelines 2016; ASCO 2020 (PMID 32202946); NCCN Antiemesis v2.2024 Emetogenes Potential (EP) nach Hesketh-Klassifikation: Hoch (>90% ohne Prophylaxe), Moderat (30-90%), Niedrig (10-30%), Minimal (<10%) ══════════════════════════════════════════════════════════════ */ var EMETIC_POTENTIAL = { /* Hoch (>90%) \u2013 Quelle: ASCO 2020 Tabelle 1 */ 'cisplatin': {ep:4, label:'Hoch (>90%)'}, 'doxorubicin': {ep:3, label:'Moderat-Hoch \u2014 AC-Schema: Hoch'}, 'epirubicin': {ep:3, label:'Moderat-Hoch \u2014 AC-Schema: Hoch'}, 'ifosfamid': {ep:4, label:'Hoch (\u22652 g/m\u00b2)'}, 'cyclophosphamid': {ep:3, label:'Moderat \u2014 hochdosiert: Hoch'}, 'daunorubicin': {ep:3, label:'Moderat'}, 'idarubicin': {ep:3, label:'Moderat'}, 'cytarabin': {ep:3, label:'Moderat (HD: Hoch)'}, 'dacarbazin': {ep:4, label:'Hoch'}, 'busulfan': {ep:3, label:'Moderat-Hoch'}, /* Moderat (30-90%) */ 'carboplatin': {ep:3, label:'Moderat'}, 'oxaliplatin': {ep:3, label:'Moderat'}, 'methotrexat': {ep:3, label:'Moderat (HD: Hoch)'}, 'irinotecan': {ep:3, label:'Moderat'}, 'temozolomid': {ep:3, label:'Moderat'}, 'bendamustin': {ep:3, label:'Moderat'}, 'azacitidin': {ep:3, label:'Moderat'}, 'decitabin': {ep:2, label:'Niedrig-Moderat'}, 'cladribin': {ep:3, label:'Moderat'}, 'mitoxantron': {ep:3, label:'Moderat'}, 'melphalan': {ep:3, label:'Moderat'}, /* Niedrig (10-30%) */ 'paclitaxel': {ep:2, label:'Niedrig'}, 'docetaxel': {ep:2, label:'Niedrig'}, 'nab_paclitaxel': {ep:2, label:'Niedrig'}, 'cabazitaxel': {ep:2, label:'Niedrig'}, 'etoposid': {ep:2, label:'Niedrig'}, 'topotecan': {ep:2, label:'Niedrig'}, 'gemcitabin': {ep:2, label:'Niedrig'}, 'pemetrexed': {ep:2, label:'Niedrig'}, 'fludarabin': {ep:2, label:'Niedrig'}, 'capecitabin': {ep:2, label:'Niedrig (p.o.)'}, '5fu': {ep:2, label:'Niedrig'}, 'vinblastin': {ep:2, label:'Niedrig'}, 'vinorelbin': {ep:2, label:'Niedrig (i.v.); Moderat (p.o.)'}, 'brentuximab': {ep:2, label:'Niedrig'}, 'polatuzumab': {ep:2, label:'Niedrig'}, 'carfilzomib': {ep:2, label:'Niedrig'}, 'lenalidomid': {ep:2, label:'Niedrig (p.o.)'}, 'pomalidomid': {ep:2, label:'Niedrig (p.o.)'}, 'bortezomib': {ep:2, label:'Niedrig'}, 'trabectedin': {ep:2, label:'Niedrig'}, /* Minimal (<10%) */ 'rituximab': {ep:1, label:'Minimal'}, 'obinutuzumab': {ep:1, label:'Minimal'}, 'daratumumab': {ep:1, label:'Minimal'}, 'isatuximab': {ep:1, label:'Minimal'}, 'vincristin': {ep:1, label:'Minimal'}, 'bleomycin': {ep:1, label:'Minimal'}, 'nivolumab': {ep:1, label:'Minimal'}, 'pembrolizumab': {ep:1, label:'Minimal'}, 'ibrutinib': {ep:1, label:'Minimal (p.o.)'}, 'venetoclax': {ep:1, label:'Minimal (p.o.)'}, 'imatinib': {ep:2, label:'Niedrig (p.o.)'}, 'prednison': {ep:1, label:'Minimal'}, 'dexamethason': {ep:1, label:'Minimal'}, 'hydroxyurea': {ep:1, label:'Minimal (p.o.)'}, 'midostaurin': {ep:2, label:'Niedrig (p.o.)'}, 'gilteritinib': {ep:2, label:'Niedrig (p.o.)'}, 'zanubrutinib': {ep:1, label:'Minimal (p.o.)'}, 'chlorambucil': {ep:1, label:'Minimal (p.o.)'}, 'oxaliplatin': {ep:3, label:'Moderat'}, 'temozolomid': {ep:3, label:'Moderat (oral)'}, 'l_asparaginase': {ep:2, label:'Niedrig'}, };var ANTIEMESE_REGIME = { 4: { label: 'Hoch emetogen (>90%)', color: '#E24B4A', regime: '5-HT3-Antagonist + NK1-Antagonist (Aprepitant/Fosaprepitant) + Dexamethason', details: 'Tag 1: Ondansetron 8 mg i.v. + Aprepitant 125 mg p.o. + Dexa 12 mg i.v. | ' + 'Tag 2-4: Aprepitant 80 mg + Dexa 8 mg | ' + 'Option: Palonosetron (l\u00e4nger wirksam) + NEPA (Netupitant/Palonosetron) | ' + 'Bei Cisplatin: Olanzapin 10 mg/d Tag 1-4 (ASCO 2020)', source: 'ASCO 2020 (PMID 32202946); MASCC/ESMO 2016; NCCN v2.2024' }, 3: { label: 'Moderat emetogen (30-90%)', color: '#BA7517', regime: '5-HT3-Antagonist + Dexamethason \u00b1 NK1-Antagonist', details: 'Tag 1: Ondansetron 8 mg i.v. + Dexa 8-12 mg i.v. \u00b1 Aprepitant 125 mg p.o. | ' + 'AC-Schema (Anthrazyklin + Cyclophosphamid): wie Hoch emetogen behandeln | ' + 'Tag 2-3: Dexa 8 mg \u00b1 Aprepitant 80 mg', source: 'ASCO 2020; NCCN v2.2024: AC gilt als Hoch emetogen' }, 2: { label: 'Niedrig emetogen (10-30%)', color: '#185FA5', regime: 'Dexamethason 8 mg i.v. ODER Metoclopramid ODER Prochlorperazin', details: 'Monotherapie ausreichend | Keine Routineprophylaxe f\u00fcr verz\u00f6gerte Emesis | ' + 'Bei Bedarf: 5-HT3-Antagonist', source: 'ASCO 2020; MASCC/ESMO 2016' }, 1: { label: 'Minimal emetogen (<10%)', color: '#0F6E56', regime: 'Keine routinem\u00e4\u00dfige Prophylaxe', details: 'Antiemetikum nur bei Symptomen | Bei Infusionsreaktionen (Rituximab, Daratumumab): ' + 'Pr\u00e4medikation nach Protokoll (Antihistaminikum + Dexa)', source: 'ASCO 2020; MASCC/ESMO 2016' } };function updateAntiemese() { var el = document.getElementById('rcwv-antiemese-result'); if (!el) return; if (typeof sel === 'undefined' || !sel || !sel.length) { el.innerHTML = 'Wirkstoff w\u00e4hlen \u2014 Antiemese-Regime erscheint automatisch.'; return; } // H\u00f6chstes emetogenes Potential der Kombination bestimmt das Regime // AC-Schema: Doxorubicin + Cyclophosphamid \u2192 automatisch auf EP 4 hochgestuft var isAC = (sel.indexOf('doxorubicin') >= 0 || sel.indexOf('epirubicin') >= 0) && sel.indexOf('cyclophosphamid') >= 0; var maxEP = 1; sel.forEach(function(id) { var e = EMETIC_POTENTIAL[id]; if (e && e.ep > maxEP) maxEP = e.ep; }); if (isAC && maxEP < 4) maxEP = 4; // ASCO 2020: AC = hoch emetogen var regime = ANTIEMESE_REGIME[maxEP]; var drugLabels = sel.map(function(id) { var e = EMETIC_POTENTIAL[id]; return e ? id.charAt(0).toUpperCase() + id.slice(1) + ': ' + e.label : ''; }).filter(Boolean).join(' | '); el.innerHTML = '
' + '' + regime.label + '' + (isAC ? ' AC\u2192Hoch' : '') + '
' + 'Regime: ' + regime.regime + '
' + '' + regime.details + '
' + 'Einzelsubstanzen: ' + drugLabels + '
' + 'Quelle: ' + regime.source + ''; }/* ══════════════════════════════════════════════════════════════ TUMORLYSE-SYNDROM RISIKO Quelle: Cairo & Bishop 2004 (PMID 15592664); Howard et al. NEJM 2011 (PMID 21562379); NCCN Tumor Lysis Syndrome 2024 ══════════════════════════════════════════════════════════════ */ var TLS_RISK = { /* Hohes TLS-Risiko (>5% ohne Prophylaxe) */ 'venetoclax': {risk:3, note:'BCL-2-Inhibitor: TLS-Risiko sehr hoch beim Ramp-up. Allopurinol + Hyperhydrierung obligat; ggf. Rasburicase'}, 'rituximab': {risk:3, note:'Anti-CD20 bei hoher Tumorlast (DLBCL, CLL, FL): Hoch. Allopurinol 2-3 Tage vor Gabe'}, 'obinutuzumab':{risk:3, note:'Typ-II-Anti-CD20: st\u00e4rkere Zytolyse als Rituximab. TLS-Monitoring T1+T8'}, 'cytarabin': {risk:2, note:'AML-Induktion: Intermedi\u00e4r. Urikosurisch bei Hyperurik\u00e4mie'}, 'fludarabin': {risk:2, note:'CLL/NHL: Intermedi\u00e4r bei hoher Tumorlast'}, 'cladribin': {risk:2, note:'Haarzellenleuk\u00e4mie: Intermedi\u00e4r'}, 'bendamustin': {risk:2, note:'CLL/NHL: Intermedi\u00e4r. Monitoring T1+T2'}, 'daunorubicin':{risk:2, note:'AML-Induktion: Intermedi\u00e4r'}, 'idarubicin': {risk:2, note:'AML-Induktion: Intermedi\u00e4r'}, 'hydroxyurea': {risk:2, note:'Rascher Zellabbau bei hoher Leukozytenzahl'}, 'polatuzumab': {risk:2, note:'DLBCL: Intermedi\u00e4r'}, /* Niedriges TLS-Risiko */ 'cyclophosphamid':{risk:1, note:'NHL: Niedrig-Intermedi\u00e4r je nach Tumorlast'}, 'doxorubicin': {risk:1, note:'Niedrig (solide Tumoren); bei NHL-Bulky h\u00f6her'}, 'ibrutinib': {risk:1, note:'CLL: Initiale Lymphozytose ist kein TLS'}, };function updateTLSRisk() { var el = document.getElementById('rcwv-tls-result'); if (!el) return; if (typeof sel === 'undefined' || !sel || !sel.length) { el.innerHTML = 'Wirkstoff w\u00e4hlen \u2014 TLS-Risikoeinsch\u00e4tzung erscheint automatisch.'; return; } var highRisk = [], midRisk = [], measures = []; sel.forEach(function(id) { var t = TLS_RISK[id]; if (!t) return; if (t.risk === 3) highRisk.push({id:id, note:t.note}); else if (t.risk === 2) midRisk.push({id:id, note:t.note}); }); if (!highRisk.length && !midRisk.length) { el.innerHTML = 'Kein spezifisches TLS-Risiko f\u00fcr die aktuelle Kombination identifiziert.
' + 'Quelle: Cairo & Bishop 2004 (PMID 15592664)
'; return; } var html = ''; if (highRisk.length) { html += '
' + 'Hohes TLS-Risiko
'; measures = ['Allopurinol 300 mg/d ab 2-3 Tage vor Therapie', 'Hyperhydrierung \u22652-3 L/m\u00b2/d', 'Elektrolyte + Harns\u00e4ure + Kreatinin t\u00e4glich (T1-3)', 'Rasburicase erw\u00e4gen bei Hyperurik\u00e4mie >476 \u00b5mol/L oder eingeschr\u00e4nkter Nierenfunktion']; highRisk.forEach(function(d){ html += d.id + ': ' + d.note + '
'; }); } if (midRisk.length) { html += '
' + 'Intermedi\u00e4res TLS-Risiko
'; if (!measures.length) measures = ['Allopurinol prophylaktisch','Elektrolyte T1+T3+T7 kontrollieren']; midRisk.forEach(function(d){ html += d.id + ': ' + d.note + '
'; }); } html += 'Massnahmen: ' + measures.join(' | ') + '
'; html += 'Quelle: Cairo & Bishop 2004 (PMID 15592664); Howard NEJM 2011 (PMID 21562379); NCCN TLS 2024'; el.innerHTML = html; }/* ════════════════════════════════════════════════════════════ PRIORIT\u00c4T 3: RDI-Berechnung, Vergleichsmodus, PK-Kurven Quellen: - RDI: Hryniuk & Bush JCO 1984 (PMID 6537478); Hryniuk et al. JCO 1986 (PMID 3702257) - PK-Parameter: FDA Prescribing Information (DailyMed); Chabner & Roberts Nat Rev Cancer 2005 - Vergleich: klinisch-pharmakologische Standardparameter ════════════════════════════════════════════════════════════ *//* ── RDI \u2013 Relative Dosisintensit\u00e4t ──────────────────────────────── RDI = (verabreichte Dosis/verabreichtes Zeitintervall) / (Standarddosis/Standardzeitintervall) Hryniuk & Bush JCO 1984 (PMID 6537478): RDI < 85% korreliert mit schlechterem Therapieansprechen in kurativer Intention (bes. DLBCL, Mamma-Ca, Keimzell-Tu.) */ function calculateRDI() { var rdiEl = document.getElementById('rcwv-rdi-result'); if (!rdiEl) return; if (!therapyAdherence || !Object.keys(therapyAdherence).length) { rdiEl.textContent = ''; return; } var entries = Object.keys(therapyAdherence).map(function(c) { return therapyAdherence[c].actualDose; }); var sumDose = entries.reduce(function(a, b) { return a + b; }, 0); var rdi = Math.round(sumDose / entries.length);var color, warn; if (rdi >= 85) { color = '#0F6E56'; warn = 'Ausreichende Dosisintensit\u00e4t'; } else if (rdi >= 65) { color = '#BA7517'; warn = 'Reduziert \u2014 Therapieerfolg m\u00f6glicherweise kompromittiert'; } else { color = '#E24B4A'; warn = 'Stark reduziert \u2014 Prognose kann beeintr\u00e4chtigt sein (kurative Schemata)'; }rdiEl.innerHTML = 'RDI: ' + rdi + '%' + ' \u2014 ' + warn + '
Hryniuk & Bush JCO 1984 (PMID 6537478): RDI-Schwelle 85%'; }/* Adherence-Tracker um RDI erweitern */ var _origUpdateAdherence = window.updateAdherence || function(){}; window.updateAdherence = function() { var cycle = parseInt(document.getElementById('rcwv-adherence-cycle')?.value) || 1; var dosePercent = parseInt(document.getElementById('rcwv-adherence-dose')?.value) || 100; var reason = document.getElementById('rcwv-adherence-reason')?.value || ''; if (!therapyAdherence[cycle]) therapyAdherence[cycle] = { plannedDose:100, actualDose:100, reason:'' }; therapyAdherence[cycle].actualDose = dosePercent; therapyAdherence[cycle].reason = reason; recalculateAdherenceImpact(); calculateRDI(); renderViz(); };/* ── PK-Kurven (Pharmakokinetik-Plasmaspiegel) ───────────────────── Vereinfachtes 1-Kompartiment-Modell: C(t) = Cmax \u00d7 e^(-ke\u00d7t) ke = ln(2) / t½ (Eliminationskonstante) Cmax aus BSA-basierter Standarddosis + Vd (FDA PI) Quelle: FDA Prescribing Information; Chabner & Roberts 2005 */ var PK_PARAMS = { /* id: { t½ (h), Vd (L/m\u00b2), typDose (mg/m\u00b2), unit } */ 'cyclophosphamid': { t12: 5, vd: 49, dose: 750, unit:'\u00b5g/mL' }, 'ifosfamid': { t12: 7, vd: 49, dose: 1800, unit:'\u00b5g/mL' }, 'cisplatin': { t12: 25, vd: 11, dose: 75, unit:'\u00b5g/mL', plasma:'free Pt' }, 'carboplatin': { t12: 4, vd: 16, dose: 400, unit:'\u00b5g/mL' }, 'oxaliplatin': { t12: 40, vd: 440, dose: 85, unit:'ng/mL' }, 'doxorubicin': { t12: 30, vd: 800, dose: 50, unit:'ng/mL' }, 'epirubicin': { t12: 35, vd: 900, dose: 100, unit:'ng/mL' }, 'paclitaxel': { t12: 27, vd: 523, dose: 175, unit:'\u00b5g/mL' }, 'docetaxel': { t12: 11, vd: 113, dose: 75, unit:'ng/mL' }, 'vincristin': { t12: 85, vd: 8400, dose: 1.4, unit:'ng/mL' }, 'methotrexat': { t12: 8, vd: 18, dose: 40, unit:'\u00b5g/mL', note:'Low-dose; HD: h\u00f6here Spiegel' }, 'etoposid': { t12: 6, vd: 18, dose: 100, unit:'\u00b5g/mL' }, 'gemcitabin': { t12: 0.3, vd: 50, dose: 1000, unit:'\u00b5g/mL' }, 'fludarabin': { t12: 10, vd: 83, dose: 25, unit:'ng/mL' }, 'irinotecan': { t12: 15, vd: 157, dose: 180, unit:'ng/mL', note:'SN-38-Spiegel relevant' }, };function buildPKCurve(drugId, D) { var pk = PK_PARAMS[drugId]; if (!pk) return null; var drug = DRUGS.find(function(d){ return d.id === drugId; }); if (!drug) return null;var bsa = window.bsaValue || 1.73; var ke = Math.log(2) / pk.t12; // h⁻¹ var adminDays = drug.days || [1]; var H_pk = 44;// Cmax = Dosis / (Vd \u00d7 BSA); vereinfacht f\u00fcr i.v.-Bolus var totalDose = pk.dose * bsa; var vdTotal = pk.vd * bsa; var cmax = totalDose / vdTotal;// Punkte: f\u00fcr jeden Tag im Zyklus var pts = []; for (var day = 0; day <= D; day++) { var c = 0; adminDays.forEach(function(ad) { if (day >= ad) { var dt_h = (day - ad) * 24; // Zeit nach Gabe in Stunden c += cmax * Math.exp(-ke * dt_h); } }); pts.push([day / D * 100, Math.max(0, c)]); } var maxC = Math.max.apply(null, pts.map(function(p){ return p[1]; })); if (maxC <= 0) return null;// SVG: Y-Achse normiert (0 = unten, maxC = oben) var yf = function(v) { return Math.max(1, Math.min(H_pk - 1, (1 - v / (maxC * 1.1)) * (H_pk - 6) + 3)); }; // Kurve var path = 'M ' + pts[0][0].toFixed(1) + ',' + yf(pts[0][1]).toFixed(1); for (var i = 1; i < pts.length; i++) { path += ' L ' + pts[i][0].toFixed(1) + ',' + yf(pts[i][1]).toFixed(1); } var fill = path + ' L ' + pts[pts.length-1][0].toFixed(1) + ',' + H_pk + ' L ' + pts[0][0].toFixed(1) + ',' + H_pk + ' Z';// Peak-Punkt var peakPt = pts.reduce(function(a,b){ return a[1]>b[1]?a:b; }); var peakCircle = '';// Halbwertszeit-Linie var c_half = maxC * 0.5; var t_half_day = pk.t12 / 24; var x_half = (adminDays[0] + t_half_day) / D * 100; var halfLine = x_half <= 100 ? '' : '';var svg = '' + '' + '' + halfLine + peakCircle + '';return { svg: svg, name: drug.name, color: drug.c, cmax: cmax.toFixed(2), unit: pk.unit, t12: pk.t12, note: pk.note || '' }; }/* PK-Panel in Visualisierung einf\u00fcgen (nach Verabreichungsbalken) */ function renderPKCurves(sD, D, html) { var pkRows = []; sD.forEach(function(drug) { var pk = buildPKCurve(drug.id, D); if (!pk) return; pkRows.push( '
' + '
' + pk.name + ' PK' + 'Cmax ~' + pk.cmax + ' ' + pk.unit + ' | t½ ' + pk.t12 + ' h' + (pk.note ? '' + pk.note + '' : '') + '
' + '
' + pk.svg + '
' ); }); if (pkRows.length) { html += '
Pharmakokinetik (Plasmaspiegel, vereinfacht)
'; html += pkRows.join(''); } return html; }/* ── Vergleichsmodus ──────────────────────────────────────────────── Vergleicht zwei Schemata (A und B) anhand von Toxizit\u00e4tsprofil, FN-Risiko, emetogenem Potenzial und Organtoxizit\u00e4ten */// Selektionen f\u00fcr A und B var compareSelA = [], compareSelB = [];function initCompareMode() { var panel = document.getElementById('rcwv-panel-compare'); if (!panel || panel.dataset.compareinit) return; panel.dataset.compareinit = '1';// Selektoren f\u00fcr A und B bauen (je ein kompakter Dropdown aus DRUGS) ['a','b'].forEach(function(ab) { var container = document.getElementById('rcwv-compare-sel-' + ab); if (!container) return; var colorScheme = ab === 'a' ? '#185FA5' : '#993C1D';// Schema-Schnellauswahl aus RCWV_SCHEMATA var schemaSelect = document.createElement('select'); schemaSelect.style.cssText = 'font-size:10px;padding:3px;border:1px solid #ccc;border-radius:3px;width:100%;margin-bottom:4px'; var optNull = document.createElement('option'); optNull.value = ''; optNull.textContent = '\u2014 Schema w\u00e4hlen \u2014'; schemaSelect.appendChild(optNull); (window.RCWV_SCHEMATA || []).forEach(function(s) { var opt = document.createElement('option'); opt.value = s.id; opt.textContent = s.name + ' (' + s.ent + ')'; schemaSelect.appendChild(opt); }); schemaSelect.addEventListener('change', function() { var schema = (window.RCWV_SCHEMATA || []).find(function(s){ return s.id === schemaSelect.value; }); if (ab === 'a') compareSelA = schema ? schema.drugs.slice() : []; else compareSelB = schema ? schema.drugs.slice() : []; renderCompareChips(ab, schema ? schema.drugs : [], schema ? schema.name : ''); renderComparison(); }); container.appendChild(schemaSelect); }); }function renderCompareChips(ab, drugs, schemaName) { var chipsEl = document.getElementById('rcwv-compare-chips-' + ab); if (!chipsEl) return; if (!drugs.length) { chipsEl.textContent = 'Kein Schema'; return; } var html = '' + schemaName + '
'; drugs.forEach(function(id) { var d = DRUGS.find(function(x){ return x.id === id; }); if (d) html += '' + d.name + ''; }); chipsEl.innerHTML = html; }function getCompareSummary(drugs) { if (!drugs.length) return null; // FN-Risiko var risks = drugs.map(function(id){ return FN_RISK[id] ? FN_RISK[id].risk : 0; }).filter(Boolean).sort(function(a,b){return b-a;}); var fnRisk = risks[0] || 0; for (var i = 1; i < risks.length; i++) fnRisk = Math.min(99, fnRisk + risks[i] * 0.5); fnRisk = Math.round(fnRisk);// Emetogenes Potenzial var maxEP = 1; var isAC = (drugs.indexOf('doxorubicin')>=0||drugs.indexOf('epirubicin')>=0) && drugs.indexOf('cyclophosphamid')>=0; drugs.forEach(function(id){ var e=EMETIC_POTENTIAL[id]; if(e&&e.ep>maxEP) maxEP=e.ep; }); if (isAC) maxEP = 4;// Myelosuppression: schlimmster Nadir ANC var worstANC = 1.0; drugs.forEach(function(id) { var d = DRUGS.find(function(x){ return x.id===id; }); if (!d) return; var ancP = d.params ? d.params.find(function(p){ return p.id==='anc'; }) : null; if (ancP && ancP.pt==='nadir') { var base = (window.PD && PD['anc']) ? PD['anc'].base : 3.8; var nadir = base * ancP.nadirFrac; if (nadir < worstANC) worstANC = nadir; } });// Organtoxizit\u00e4ten var orgTox = []; var hasNephro = drugs.some(function(id){ return ['cisplatin','ifosfamid','carboplatin','carfilzomib'].indexOf(id)>=0; }); var hasCardio = drugs.some(function(id){ return ['doxorubicin','epirubicin','idarubicin','mitoxantron','daunorubicin','carfilzomib'].indexOf(id)>=0; }); var hasNeuro = drugs.some(function(id){ return ['vincristin','vinblastin','vinorelbin','paclitaxel','docetaxel','oxaliplatin','bortezomib'].indexOf(id)>=0; }); var hasPulmo = drugs.some(function(id){ return ['bleomycin','gemcitabin'].indexOf(id)>=0; }); var hasGI = drugs.some(function(id){ return ['irinotecan','5fu','capecitabin','methotrexat'].indexOf(id)>=0; }); var hasHepato = drugs.some(function(id){ return ['methotrexat','cytarabin','trabectedin','busulfan'].indexOf(id)>=0; }); if (hasNephro) orgTox.push('Nephrotox.'); if (hasCardio) orgTox.push('Kardiotox.'); if (hasNeuro) orgTox.push('Neurotox.'); if (hasPulmo) orgTox.push('Pulmotox.'); if (hasGI) orgTox.push('GI-Tox.'); if (hasHepato) orgTox.push('Hepatotox.');return { fnRisk: fnRisk, ep: maxEP, ancNadir: worstANC.toFixed(2), orgTox: orgTox }; }function renderComparison() { var el = document.getElementById('rcwv-compare-result'); if (!el) return; if (!compareSelA.length && !compareSelB.length) { el.innerHTML = 'Schema A und B w\u00e4hlen \u2014 Vergleich erscheint hier.'; return; } var sA = getCompareSummary(compareSelA); var sB = getCompareSummary(compareSelB);function cell(val, better, worse) { var color = val===better ? '#0F6E56' : val===worse ? '#E24B4A' : '#BA7517'; return '' + val + ''; } function fnColor(r) { return r>=20?'#E24B4A':r>=10?'#BA7517':'#0F6E56'; } function epLabel(e) { return ['','Minimal','Niedrig','Moderat','Hoch'][e]||'?'; }var epLabels = [epLabel(sA?sA.ep:0), epLabel(sB?sB.ep:0)]; var fnRisks = [sA?sA.fnRisk:0, sB?sB.fnRisk:0]; var ancNadirs = [sA?parseFloat(sA.ancNadir):99, sB?parseFloat(sB.ancNadir):99];var html = '' + '' + '' + '' + '' + '';// FN-Risiko html += '' + '' + '';// Emetogenes Potenzial html += '' + '' + '';// ANC-Nadir html += '' + '' + '';// Organtoxizit\u00e4ten html += '' + '' + '';html += '
ParameterSchema ASchema B
FN-Risiko' + (sA?fnRisks[0]+'%':'\u2014') + '' + (sB?fnRisks[1]+'%':'\u2014') + '
Emetogen. Potenzial' + (sA?epLabels[0]:'\u2014') + '' + (sB?epLabels[1]:'\u2014') + '
ANC-Nadir (G/L)' + (sA?sA.ancNadir:'\u2014') + '' + (sB?sB.ancNadir:'\u2014') + '
Organtox.' + (sA&&sA.orgTox.length?sA.orgTox.join(', '):'\u2014') + '' + (sB&&sB.orgTox.length?sB.orgTox.join(', '):'\u2014') + '
' + '
' + 'FN-Risiko: EORTC 2011/ASCO 2015 | ANC-Nadir: FDA PI (schematisch) | ' + 'Emetogenes Potenzial: ASCO 2020
';el.innerHTML = html; }/* ── PK-Kurven in renderViz einh\u00e4ngen ───────────────────────────── */ /* Wird am Ende von renderViz aufgerufen wenn PK-Toggle aktiv */ var rcwvShowPK = false;/* Vergleichsmodus initialisieren ─────────────────────────────────── */ document.addEventListener('DOMContentLoaded', function() { /* Vergleich-Button */ var compareBtn = document.getElementById('rcwv-mode-compare'); if (compareBtn) { compareBtn.addEventListener('click', function() { var isCompare = document.getElementById('rcwv-panel-compare').style.display === 'none'; // Zentrales State-Management über rcwvSetMode if (isCompare) { rcwvSetMode('compare'); document.getElementById('rcwv-panel-compare').style.display = ''; initCompareMode(); } else { rcwvSetMode('single'); } }); }/* PK-Toggle als Checkbox in Steuerleiste */ var cfg = document.querySelector('.cfg'); if (cfg && !document.getElementById('rcwv-pk-toggle')) { var pkLabel = document.createElement('label'); pkLabel.style.cssText = 'display:flex;align-items:center;gap:4px;font-size:11px'; pkLabel.innerHTML = ' PK-Kurven'; pkLabel.querySelector('input').addEventListener('change', function() { rcwvShowPK = this.checked; renderViz(); }); // Vor PDF-Button einf\u00fcgen var pdfBtn = document.getElementById('rcwv-pdf-export-btn'); if (pdfBtn && pdfBtn.parentElement) { pdfBtn.parentElement.insertBefore(pkLabel, pdfBtn); } else { cfg.appendChild(pkLabel); } } });/* ════════════════════════════════════════════════════════════ PRIORIT\u00c4T 4: DPYD Stufendiagnostik, Nierenfunktionsverlauf Quellen: - DPYD: FDA Safety Communication 04/2022; DPWG/CPIC Guidelines 2023 (PMID 35093513); Henricks et al. Lancet Oncol 2018 (PMID 29447959) - Cisplatin Nephrotoxizit\u00e4t: Arany & Safirstein Semin Nephrol 2003; Latcha et al. ASCO 2016 (PMID 27269950); Go & Adjei JNCI 1999 (PMID 10037104) ════════════════════════════════════════════════════════════ *//* ── DPYD Stufendiagnostik ───────────────────────────────────────── FDA Safety Communication April 2022: Vor Beginn von 5-FU/Capecitabin Testung auf die 4 klinisch relevanten DPYD-Varianten empfohlen. CPIC-Leitlinie 2023 (PMID 35093513): individuelle Dosisreduktion je nach identifizierter Variante und Genotyp-Ph\u00e4notyp-Zuordnung. */var DPYD_STUFEN = [ { variant: 'DPYD*2A (IVS14+1G>A, c.1905+1G>A)', rsID: 'rs3918290', freq: '~0.5\u20131%', activity: 0, phenotype: 'DPYD Poor Metabolizer', reduction: 'KONTRAINDIZIERT', color: '#E24B4A', evidence: 'H\u00f6chste klinische Evidenz. Kompletter DPD-Aktivit\u00e4tsverlust. ' + 'Lebensbedrohliche Toxizit\u00e4t bei Standarddosis dokumentiert.', source: 'FDA PI 2022; CPIC 2023 (PMID 35093513)' }, { variant: 'DPYD*13 (c.1679T>G, I560S)', rsID: 'rs55886062', freq: '~0.1%', activity: 0, phenotype: 'DPYD Poor Metabolizer', reduction: 'KONTRAINDIZIERT', color: '#E24B4A', evidence: 'Sehr seltene Variante. Vollst\u00e4ndiger DPD-Verlust. ' + 'Klinisch \u00e4quivalent zu *2A.', source: 'FDA PI 2022; CPIC 2023' }, { variant: 'DPYD HapB3 (c.1129-5923C>G + c.1236G>A)', rsID: 'rs75017182', freq: '~1\u20132%', activity: 0.5, phenotype: 'DPYD Intermediary Metabolizer', reduction: '50% Startdosis', color: '#BA7517', evidence: 'Moderate DPD-Reduktion. Grad-3/4-Toxizit\u00e4t ohne Dosisanpassung ' + 'erh\u00f6ht. Henricks et al. Lancet Oncol 2018 (PMID 29447959): ' + 'Dosisreduktion sicher durchf\u00fchrbar.', source: 'FDA PI 2022; Henricks 2018 (PMID 29447959)' }, { variant: 'DPYD c.2846A>T (D949V)', rsID: 'rs67376798', freq: '~0.5%', activity: 0.5, phenotype: 'DPYD Intermediary Metabolizer', reduction: '50% Startdosis', color: '#BA7517', evidence: 'Moderate DPD-Reduktion. Toxizit\u00e4tsrisiko erh\u00f6ht. ' + 'Empfehlung wie HapB3: 50% Startdosis, therapeutisches ' + 'Drug Monitoring und Dosiseskalation nach Vertr\u00e4glichkeit.', source: 'FDA PI 2022; DPWG Guidelines 2023' } ];/* DPYD-Panel anzeigen wenn DPYD im Gene-Dropdown gew\u00e4hlt */ document.addEventListener('DOMContentLoaded', function() { var geneSelect = document.getElementById('rcwv-gene-select'); if (geneSelect) { geneSelect.addEventListener('change', function() { var dpydPanel = document.getElementById('rcwv-dpyd-stufen'); if (!dpydPanel) return; if (this.value === 'dpyd') { dpydPanel.style.display = ''; renderDPYDStufen(); } else { dpydPanel.style.display = 'none'; } }); } });function renderDPYDStufen() { var el = document.getElementById('rcwv-dpyd-stufen-content'); if (!el) return;var html = '
' + 'Quelle: FDA Safety Communication April 2022 | CPIC Guidelines 2023 (PMID 35093513) | ' + 'CPIC DPYD 2023 | ' + 'Henricks 2018' + '
';DPYD_STUFEN.forEach(function(v) { html += '
' + '
' + '' + v.variant + '' + '' + v.reduction + '' + '
' + '
rsID: ' + v.rsID + '  |  Frequenz: ' + v.freq + '  |  Ph\u00e4notyp: ' + v.phenotype + '
' + '
' + v.evidence + '
' + '
' + v.source + '
' + '
'; });html += '
' + 'Therapeutisches Vorgehen bei intermedi\u00e4rem Metabolizer (HapB3, c.2846A>T):
' + '1. Startdosis 50% der geplanten Dosis | ' + '2. Therapeutisches Drug Monitoring (5-FU AUC-gesteuert) | ' + '3. Dosiseskalation nach Vertr\u00e4glichkeit (ASCO 2022) | ' + '4. Kein Fluoropyrimidin-Wechsel auf Irinotecan ohne R\u00fccksprache
' + 'FDA Safety Communication (April 2022)' + '
';el.innerHTML = html; }/* ── Kumulative Cisplatin-Nephrotoxizit\u00e4t ────────────────────────── Latcha et al. ASCO 2016 (PMID 27269950): GFR-Abfall kumulativ, median -0.6 ml/min pro mg/m\u00b2 Cisplatin kumulativ. Go & Adjei JNCI 1999 (PMID 10037104): Nephrotoxizit\u00e4t dosisabh\u00e4ngig. Darstellung: GFR-Verlauf \u00fcber Zyklen bei Cisplatin-haltigen Schemata. */function updateNephroTrack() { var wrap = document.getElementById('rcwv-nephro-track-wrap'); var el = document.getElementById('rcwv-nephro-track'); if (!wrap || !el) return;var hasCisplatin = (typeof sel !== 'undefined') && sel && sel.indexOf('cisplatin') >= 0; wrap.style.display = hasCisplatin ? '' : 'none'; if (!hasCisplatin) return;// Baseline GFR var baseGFR = parseFloat(document.getElementById('rcwv-gfr-value')?.textContent) || parseFloat(document.getElementById('pp-gfr')?.value) || 90; var numCyc = parseInt(document.getElementById('rcwv-cyc')?.value) || 6; var dose = (globalDose || 100) / 100;// Standarddosis Cisplatin: 75 mg/m\u00b2, BSA 1.73 m\u00b2 \u2192 ~130 mg/Zyklus // GFR-Abfall: ~0.6 ml/min pro 10 mg/m\u00b2 (vereinfacht aus Latcha 2016) // Bei 75 mg/m\u00b2: ~4.5 ml/min pro Zyklus (Median aus Literatur) var gfrDropPerCycle = 4.5 * dose; // adjustiert nach Dosisreduktion var gfrValues = [baseGFR]; for (var i = 1; i <= numCyc; i++) { var prev = gfrValues[i-1]; // Nicht-linearer Abfall: bei niedrigerer GFR verlangsamt sich der Abfall var factor = prev > 60 ? 1.0 : prev > 45 ? 0.7 : 0.4; gfrValues.push(Math.max(15, prev - gfrDropPerCycle * factor)); }// SVG-Minigraph var w = 200, h = 50; var minV = Math.min(15, Math.min.apply(null, gfrValues) - 5); var maxV = Math.max(baseGFR + 5, 100); var xScale = function(i) { return (i / numCyc * (w - 20) + 10).toFixed(1); }; var yScale = function(v) { return (h - 4 - (v - minV) / (maxV - minV) * (h - 8)).toFixed(1); };var path = gfrValues.map(function(v, i) { return (i===0?'M ':'L ') + xScale(i) + ',' + yScale(v); }).join(' ');// Schwellenlinien var y60 = yScale(60), y45 = yScale(45), y30 = yScale(30); var lines = '' + '';var dots = gfrValues.map(function(v, i) { var color = v >= 60 ? '#0F6E56' : v >= 45 ? '#BA7517' : '#E24B4A'; return ''; }).join('');var svg = '' + lines + '' + dots + '';// Tabelle var tableRows = gfrValues.map(function(v, i) { var color = v >= 60 ? '#0F6E56' : v >= 45 ? '#BA7517' : '#E24B4A'; var label = i === 0 ? 'Baseline' : 'Z' + i; var warn = v < 45 ? ' \u2014 Cisplatin KI!' : v < 60 ? ' \u2014 Dosisreduktion' : ''; return '' + label + ': ' + Math.round(v) + warn + ''; }).join('');el.innerHTML = '
' + svg + '
' + '
' + tableRows + '
' + '
\u2014 60 ml/min (Warnschwelle)   \u2014 45 ml/min (Cisplatin KI)
' + '
' + 'Modell: ~4,5 ml/min GFR-Abfall/Zyklus (Latcha et al. PMID 27269950). ' + 'Individuelle Variabilit\u00e4t hoch. GFR vor jedem Zyklus messen. ' + 'Latcha 2016 | ' + 'Go & Adjei 1999' + '
'; }/* ════════════════════════════════════════════════════════════ DOSISANPASSUNG LEBERINSUFFIZIENZ (vollständiges Panel) Quellen: - Anthrazykline: FDA PI; Twelves et al. Ann Oncol 1998; Superfin et al. Ann Pharmacother 2007 (PMID 17299011) - Taxane: FDA PI Docetaxel/Paclitaxel; Venook et al. JCO 1994 (PMID 7931468) - Vinca-Alkaloide: FDA PI; Ramirez et al. Eur J Cancer 2008 - Irinotecan: FDA PI; Mathijssen et al. ClinPharmacokinet 2001 - Trabectedin: FDA PI (absolut KI bei Bili >17) - Bortezomib: FDA PI; Cusack et al. Blood 2006 - Child-Pugh: Pugh et al. Br J Surg 1973 (PMID 4541913) ════════════════════════════════════════════════════════════ *//* Vollständige substanzspezifische Daten inkl. aller klinisch relevanten Wirkstoffe mit hepatischer Metabolisierung */ var LIVER_FULL = { /* Anthrazykline */ doxorubicin: { name:'Doxorubicin', metabolism:'Hepatisch (CYP3A4, Aldoketo-Reduktase); biliäre Ausscheidung >50%', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:20, cp:'A', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25% — Interdiszipl. R\u00fccksprache', color:'#E24B4A'}, ], source:'FDA PI; Twelves 1998; Superfin PMID 17299011' }, epirubicin: { name:'Epirubicin', metabolism:'Hepatisch; extensives First-pass; biliäre Ausscheidung', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:20, cp:'A', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; analog Doxorubicin' }, idarubicin: { name:'Idarubicin', metabolism:'Extensiv hepatisch; aktiver Metabolit Idarubicinol', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:20, cp:'A', factor:0.75,label:'75%', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:51, cp:'B', factor:0.0, label:'KONTRAINDIZIERT (Bili >51)', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, ], source:'FDA PI Idarubicin' }, daunorubicin: { name:'Daunorubicin', metabolism:'Hepatisch; aktiver Metabolit Daunorubicinol', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:20, cp:'A', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; Superfin PMID 17299011' }, mitoxantron: { name:'Mitoxantron', metabolism:'Hepatisch; biliäre Elimination', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:34, cp:'A', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI' }, /* Taxane */ paclitaxel: { name:'Paclitaxel', metabolism:'CYP2C8/CYP3A4; biliäre Ausscheidung >70%', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:25, cp:'A', factor:0.8, label:'80% (Bili 25\u201351)', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50% (Bili 51\u201385)', color:'#E24B4A'}, {bili_gt:85, cp:'A', factor:0.25, label:'25% (Bili >85)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; Venook JCO 1994 PMID 7931468' }, docetaxel: { name:'Docetaxel', metabolism:'CYP3A4; hepatische Metabolisierung dominant', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:17, cp:'A', factor:0.5, label:'50% (Bili >17)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, ], source:'FDA PI Docetaxel (Sanofi)' }, nab_paclitaxel: { name:'Nab-Paclitaxel', metabolism:'Wie Paclitaxel; CYP2C8/CYP3A4', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:25, cp:'A', factor:0.8, label:'80% (Bili 25\u201351)', color:'#BA7517'}, {bili_gt:51, cp:'A', factor:0.5, label:'50% (Bili 51\u201385)', color:'#E24B4A'}, {bili_gt:85, cp:'A', factor:0.25, label:'25% (Bili >85)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI Abraxane; analog Paclitaxel' }, /* Vinca-Alkaloide */ vincristin: { name:'Vincristin', metabolism:'CYP3A4; biliäre Ausscheidung ~80%', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:51, cp:'A', factor:0.5, label:'50% (Bili 51\u201385)', color:'#E24B4A'}, {bili_gt:85, cp:'A', factor:0.25, label:'25% (Bili >85)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; Ramirez Eur J Cancer 2008' }, vinblastin: { name:'Vinblastin', metabolism:'Hepatisch; biliäre Hauptausscheidung', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:51, cp:'A', factor:0.5, label:'50% (Bili >51)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25,label:'25%', color:'#E24B4A'}, ], source:'FDA PI' }, vinorelbin: { name:'Vinorelbin', metabolism:'Extensiv hepatisch; CYP3A4', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:34, cp:'A', factor:0.5, label:'50% (Bili 34\u201351)', color:'#E24B4A'}, {bili_gt:51, cp:'A', factor:0.25, label:'25% (Bili >51)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; Ramirez Eur J Cancer 2008' }, /* Topo-Inhibitoren */ irinotecan: { name:'Irinotecan', metabolism:'Hepatisch; UGT1A1-vermittelte SN-38-Glucuronidierung', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:34, cp:'A', factor:0.5, label:'50% (Bili 34\u201351)', color:'#E24B4A'}, {bili_gt:51, cp:'A', factor:0.25, label:'25% (Bili >51)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI; Mathijssen ClinPharmacokin 2001' }, etoposid: { name:'Etoposid', metabolism:'Hepatisch (~30%); renale Clearance dominant', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:51, cp:'A', factor:0.5, label:'50% (Bili 51\u201385)', color:'#E24B4A'}, {bili_gt:85, cp:'A', factor:0.25, label:'25% (Bili >85)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.5, label:'50%', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.25, label:'25%', color:'#E24B4A'}, ], source:'FDA PI' }, /* Alkylantien mit hepatischer Komponente */ cyclophosphamid: { name:'Cyclophosphamid', metabolism:'Prodrug; CYP2B6/3A4-Aktivierung; hepatisch dominant', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:51, cp:'A', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'B', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.5, label:'50%', color:'#E24B4A'}, ], source:'Superfin PMID 17299011' }, ifosfamid: { name:'Ifosfamid', metabolism:'Prodrug; CYP3A4-Aktivierung; wie Cyclophosphamid', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:51, cp:'A', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'B', factor:0.75, label:'75%', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.5, label:'50%', color:'#E24B4A'}, ], source:'Superfin PMID 17299011' }, trabectedin: { name:'Trabectedin', metabolism:'CYP3A4; fast ausschlie\u00dflich hepatische Clearance', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:17, cp:'A', factor:0.0, label:'KONTRAINDIZIERT (Bili >17 \u00b5mol/L)', color:'#E24B4A'}, {bili_gt:0, cp:'B', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, ], source:'FDA PI Trabectedin (Yondelis)' }, /* Targeted */ bortezomib: { name:'Bortezomib', metabolism:'Oxidative Deboronierung; CYP3A4/1A2', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:34, cp:'A', factor:0.7, label:'70%', color:'#BA7517'}, {bili_gt:0, cp:'B', factor:0.7, label:'70%', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.5, label:'50%', color:'#E24B4A'}, ], source:'FDA PI; Cusack Blood 2006' }, ibrutinib: { name:'Ibrutinib', metabolism:'CYP3A4 dominant; hepatische Elimination', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:0, cp:'B', factor:0.33, label:'1/3 Dosis (140 mg/d statt 420 mg/d)', color:'#E24B4A'}, {bili_gt:0, cp:'C', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, ], source:'FDA PI Imbruvica; O\'Brien JCO 2018' }, venetoclax: { name:'Venetoclax', metabolism:'CYP3A4; hepatische Clearance dominant', tiers:[ {bili_gt:0, cp:'A', factor:1.0, label:'Volle Dosis', color:'#0F6E56'}, {bili_gt:0, cp:'B', factor:0.75, label:'75% — engmaschiges Monitoring', color:'#BA7517'}, {bili_gt:0, cp:'C', factor:0.0, label:'KONTRAINDIZIERT', color:'#E24B4A'}, ], source:'FDA PI Venclyxto; Pollyea JCO 2019' }, };function updateLiverPanel() { var panel = document.getElementById('rcwv-liver-panel'); var detail = document.getElementById('rcwv-liver-detail'); if (!panel || !detail) return;if (typeof sel === 'undefined' || !sel || !sel.length) { panel.style.display = 'none'; return; }var pp = window._rcwvPP || {}; var cp = pp.cp || (document.querySelector('input[name="pp-cp"]:checked')?.value) || 'A'; var bili = parseFloat(document.getElementById('pp-bili')?.value) || 10;/* Nur Wirkstoffe mit hepatischer Dosisanpassung anzeigen */ var relevant = sel.filter(function(id){ return LIVER_FULL[id]; });if (!relevant.length && cp === 'A' && bili <= 17) { panel.style.display = 'none'; return; } panel.style.display = '';if (!relevant.length) { detail.innerHTML = 'Kein ausgew\u00e4hlter Wirkstoff mit bekannter hepatischer Dosisanpassung.' + (cp !== 'A' ? '
Child-Pugh ' + cp + ': Allgemeine Vorsicht; hepatisch metabolisierte Substanzen individuell bewerten.' : ''); return; }var html = ''; if (cp !== 'A') { html += '
' + 'Child-Pugh ' + cp + ' — Dosisanpassungen f\u00fcr alle nachfolgend gelisteten Wirkstoffe aktiv.' + '
Quelle: Pugh et al. Br J Surg 1973 (PMID 4541913)
'; } if (bili > 17) { html += '
' + 'Bilirubin ' + bili + ' \u00b5mol/L — Bilirubinbasierte Schwellenwerte aktiv.' + '
'; }relevant.forEach(function(id) { var d = LIVER_FULL[id]; if (!d) return;/* Bestimme anwendbaren Tier: höchste Bili-Schwelle und CP-Faktor */ var biliFactor = 1.0, biliLabel = 'Volle Dosis', biliColor = '#0F6E56'; d.tiers.filter(function(t){ return t.cp === 'A'; }) .forEach(function(t){ if (bili > t.bili_gt) { biliFactor = t.factor; biliLabel = t.label; biliColor = t.color; } });var cpFactor = 1.0, cpLabel = '', cpColor = '#0F6E56'; d.tiers.filter(function(t){ return t.cp === cp && cp !== 'A'; }) .forEach(function(t){ if (bili > t.bili_gt) { cpFactor = t.factor; cpLabel = t.label; cpColor = t.color; } });/* Restriktivsten Faktor wählen */ var finalFactor = Math.min(biliFactor, cp !== 'A' ? cpFactor : 1.0); var finalLabel = finalFactor === biliFactor ? biliLabel : cpLabel; var finalColor = finalFactor === biliFactor ? biliColor : cpColor; if (cp !== 'A' && cpFactor < biliFactor) { finalLabel = cpLabel; finalColor = cpColor; }var isKI = finalFactor === 0;html += '
' + '
' + '' + d.name + '' + '' + finalLabel + '' + '
' + '
' + d.metabolism + '
' + '
' + d.source + '
' + '
'; });detail.innerHTML = html; }/* ════════════════════════════════════════════════════════════ CISPLATIN-OTOTOXIZITÄT Quellen: - Brock et al. J Clin Oncol 2012 (PMID 22393086): Brock-Graduierungssystem - Bhatt et al. Lancet Oncol 2020 (PMID 32171057): Natriumthiosulfat (NTS) zur Prävention - Bass et al. NEJM 2021: Audiologisches Monitoring - Mukherjea & Rybak: Cisplatin-Ototoxizitätsmechanismus - Grädel: ~6 dB Hörverlust pro 100 mg/m² Cisplatin kumulativ (vereinfachtes Modell, Variabilität hoch) ════════════════════════════════════════════════════════════ */function updateOtoPanel() { var panel = document.getElementById('rcwv-oto-panel'); var detail = document.getElementById('rcwv-oto-detail'); if (!panel || !detail) return;var hasCisplatin = (typeof sel !== 'undefined') && sel && sel.indexOf('cisplatin') >= 0; panel.style.display = hasCisplatin ? '' : 'none'; if (!hasCisplatin) return;var numCyc = parseInt(document.getElementById('rcwv-cyc')?.value) || 6; var dosePerc = (window.globalDose || 1.0); var stdDose = 75; /* mg/m² Standarddosis */ var cumDose = Math.round(stdDose * dosePerc * numCyc); /* mg/m² kumulativ *//* Ototoxizitäts-Modell: - Hörverlust ~5–6 dB pro 100 mg/m² kumulativ (4000 Hz) Daten: Schaefer et al. Cancer 1985; Blakley et al. 1994 - Klinisch relevanter Hörverlust (>25 dB) ab ~350–500 mg/m² - Grad-3+ Ototoxizität (CTCAE) ab ~400–600 mg/m² je Risikofaktoren */ var dbLoss = Math.round(cumDose / 100 * 5.5); /* ~5,5 dB pro 100 mg/m² */ var riskPercent = Math.min(90, Math.round(cumDose / 500 * 60)); /* vereinfacht *//* CTCAE v5 Grad */ var grade, gradeColor, gradeText; if (dbLoss < 10) { grade=0; gradeColor='#0F6E56'; gradeText='Kein relevanter Hörverlust erwartet'; } else if (dbLoss < 20) { grade=1; gradeColor='#BA7517'; gradeText='Grad 1 — Audiometrie empfohlen'; } else if (dbLoss < 35) { grade=2; gradeColor='#E24B4A'; gradeText='Grad 2 — Hörger\u00e4t kann notwendig werden'; } else { grade=3; gradeColor='#E24B4A'; gradeText='Grad 3 — Signifikanter Hörverlust, Hörger\u00e4t indiziert'; }/* Risikofaktoren */ var riskFactors = [ 'Höhere kumulative Dosis (>400 mg/m²)', 'Junges Lebensalter (Kinder: deutlich erhöhtes Risiko)', 'Vorbestehender Hörverlust', 'Gleichzeitige kraniale Bestrahlung', 'Begleitende ototoxische Medikamente (Aminoglykoside, Schleifendiuretika)', 'Niereninsuffizienz (reduzierte Cisplatin-Clearance)', 'Genetische Faktoren: TPMT*3B, COMT Val158Met (Patienten asiatischer Abstammung)', ];/* Monitoring-Plan aus ASCO/SIOP-Leitlinien */ var monitoring = [ 'Audiogramm (0,25–8 kHz + erweiterte Hochtonfrequenzen) vor Therapiebeginn (Baseline)', 'Kontrolle nach Zyklus 2, 4 und am Ende der Therapie', 'Bei Hörverlust ≥10 dB gegenüber Baseline: sofortige Dosisreduktion oder Abbruch erwägen', 'Langzeit-Follow-up: Audiogramm 1 Jahr nach Therapieende (kumulative Effekte)', ];/* SVG Balkendiagramm kumulativer Hörverlust */ var barW = Math.min(95, dbLoss / 60 * 95); var svg = '' + '' + '' + '' + '25dB' + '' + dbLoss + ' dB' + '';var html = '
' + svg + '
' + '
CTCAE ' + gradeText + '
' + '
Kumulativdosis: ' + cumDose + ' mg/m\u00b2 | Modellierter Hörverlust: ~' + dbLoss + ' dB (4 kHz)
' + '
' +'
' + 'Mechanismus: Cisplatin akkumuliert in den \u00e4u\u00dferen Haarzellen der Cochlea (Stria vascularis). ' + 'Reaktive Sauerstoffspezies (ROS) \u2192 DNA-Sch\u00e4den \u2192 Apoptose. ' + 'Frequenzspezifisch: zuerst Hochtonverlust (4–8 kHz), dann Sprachfrequenzen. ' + 'Irreversibel. Quelle: Mukherjea & Rybak, Expert Opin Drug Metab Toxicol 2011' + '
' +'
Risikofaktoren:
' + riskFactors.map(function(r){ return '\u2022 ' + r; }).join('
') + '
' +'
Audiologisches Monitoring (ASCO/SIOP):
' + monitoring.map(function(m){ return '\u2022 ' + m; }).join('
') + '
' +'
' + 'Pr\u00e4vention: Natriumthiosulfat (NTS) nach Cisplatin bei lokal begrenzten Tumoren ' + '(Bhatt et al. Lancet Oncol 2020, PMID 32171057). Systemische Tumoren: NTS kann Cisplatin-Wirksamkeit reduzieren ' + '\u2014 Benefit/Risk-Abw\u00e4gung obligat. Amifostin: nicht standard (begrenzte Evidenz).' + '
' +'
' + 'Modell basiert auf: Brock et al. JCO 2012 (PMID 22393086); ' + 'Schaefer et al. Cancer 1985; Bhatt et al. Lancet Oncol 2020 (PMID 32171057). ' + 'Individuelle Variabilit\u00e4t hoch. Audiogramm obligat.
';detail.innerHTML = html; }