ONCOcurve führt vollständige Überlebenszeitanalysen direkt im Browser durch: Kaplan-Meier-Kurven, Log-Rank-Test (auch gewichtete Varianten), Cox-Regression und Zeit bis Erstbehandlung (TTFT). Sie laden oBDS-XML, CSV oder Excel, filtern und stratifizieren die Kohorte ohne Programmierkenntnisse und exportieren Grafiken, Tabellen und einen vollständigen PDF-Report. Alle Berechnungen laufen lokal auf Ihrem Gerät; es werden keine Patientendaten übertragen. Diese Seite erklärt jede Funktion Schritt für Schritt.
Filter schränken die analysierte Kohorte ein, ohne die Originaldaten zu verändern. Alle aktiven Filter werden im Ergebnis und in jedem Export angezeigt, sodass eine Analyse exakt reproduzierbar bleibt.
Laden Sie oBDS-XML- oder CSV-Dateien hoch.
Die Spaltenreihenfolge ist beliebig. Die Zuordnung erfolgt über den Spaltennamen (Header). Akzeptierte Aliase pro Feld sind unten gelistet.
gender, age, staging, grading, T/N/M, tumorCategory, primaerfall
Beliebige weitere Spalten (z.B. „medication", „treatment_arm", „dose_mg") werden automatisch als Stratifizierungsvariablen verfügbar gemacht.
Hat Ihre Datei eine Spalte firstTreatmentDate, schaltet das Tool automatisch auf den TTFT-Endpunkt um. Die Zeit läuft dann von der Erstdiagnose bis zur ersten Therapie (Ereignis), sonst bis zum letzten Kontakt (zensiert).
survivalTime und event müssen Sie nicht angeben, sie werden aus den Daten abgeleitet. Tod vor Therapie wird pragmatisch beim Tod zensiert (kein Fine-Gray-Modell).
Beispieldatei herunterladen (CLL, IGHV)Alle mitgelieferten Beispieldateien an einer Stelle. Sie enthalten keine echten Patientendaten und lassen sich über den Upload direkt wieder einlesen.
Meldungen im oBDS-Format, wie sie ein Krebsregister ausgibt.
Musterlösungen der Zertifizierungsboxen, je eine Datei pro Box.
Kohorten als Tabelle, eine Zeile je Fall.
Dieselbe Tabellenform als Arbeitsmappe, mit Zusatzspalten und einer Kohorte für die Zeit bis zur Erstbehandlung.
Dateien für einzelne Funktionen: Zusatzspalten, gemischte Einheiten, eingebaute Auffälligkeiten.
Die OncoBox-Dateien sind die veröffentlichten Musterlösungen der OnkoZert GmbH für Hersteller. Alle übrigen Dateien sind erzeugt.
Die Dateien stammen von den Stellen, die sie herausgeben. Die Links öffnen sich in einem neuen Tab; die Anwendung selbst ruft nichts davon ab.
Teilen Sie die Kohorte in Gruppen, um ihre Überlebenskurven zu vergleichen. Wählen Sie ein Kriterium in der Seitenleiste; pro Gruppe entsteht eine eigene farbige Kurve, und Log-Rank-Test sowie Cox-Regression laufen automatisch.
Die meisten Stratifizierungskriterien übernehmen ein Feld direkt aus der Datenquelle. Die T/N/M-basierten und die daraus abgeleiteten Kriterien normalisieren dagegen den Rohwert - die folgende Tabelle zeigt für jede Variable, welches Feld einfließt und nach welcher Regel die Gruppe bestimmt wird.
| Variable | Quellfeld | Logik |
|---|---|---|
| Geschlecht, Grading, UICC-Stadium, N-/M-Kategorie | gender / grading / staging.uicc / nCategory / mCategory | Rohwert unverändert übernommen; leer → „Keine Angabe". |
| ICD-10 (Tumortyp), Tumor-Kategorie | tumorType / tumorCategory | Rohwert aus der Datenquelle, keine weitere Verarbeitung. |
| Altersgruppe | age | Fehlendes/Alter 0 → „Unbekannt"; < 18 „Kind"; < 65 „Erwachsen"; ≥ 65 „Senior". |
| Diagnosejahr | diagnosisDate | Jahr aus dem Diagnosedatum extrahiert, jedes Jahr eine eigene Gruppe. |
| T-Kategorie, 1-/2-stellig | staging.tCategory | c/p-Präfix und (bei 1-stellig) Sub-Suffix werden ignoriert: cT1c/pT1 → T1 (1-stellig) bzw. T1C (2-stellig, Präfix entfernt, Suffix bleibt). |
| T-Kategorie klinisch/pathologisch, 1-/2-stellig | staging.tClinical / staging.tPathological | Wie oben, aber nur aus dem jeweiligen Feld. Ein Wert mit widersprüchlichem Präfix (z. B. ein cT-Wert im pathologischen Feld) wird komplett ausgeschlossen, nicht als „Keine Angabe" gezählt. Das Label behält das Präfix (z. B. „pT1a"). |
| T-Kategorie klinisch/pathologisch (ungekürzt) | staging.tClinical / staging.tPathological | Rohwert des jeweiligen Feldes ohne Digit-Trimming. |
| Tumor-Haupt-/Subkategorie | tumorType (ICD-10) | ICD-10-Code wird gegen eine feste Zuordnungstabelle (solide vs. hämatologische Entitäten) geprüft; ohne Treffer „Solide Tumore/Sonstige". |
| Ausbreitungskategorie | T-/N-/M-Kategorie | Aus TNM abgeleitet, siehe Tabelle unten. |
| Entitätenspezifisches Staging (Wiley) | ICD-10, T-/N-/M-Kategorie, Alter | ICD-10 wird einer Wiley-Entität zugeordnet (Alter entscheidet bei Schilddrüse), das TNM-Tripel bestimmt dann das entitätsspezifische Stadium; siehe Abschnitt unten. |
| Krankheitsfreies Überleben (DFS) | rezidivDatum / metastasenDatum / todDatum, Startdatum wählbar (Diagnosedatum oder Therapiebeginn) | Ereigniszeitpunkt = frühestes von Rezidiv-, Metastasen- oder Todesdatum; ohne eines dieser Daten Zensierung am Nachsorgedatum. Nur Fälle mit erfüllten DFS-Einschlusskriterien (Complete Response, R0) fließen ein. |
| Zusatzspalten (hochgeladen) | extras.<Spaltenname> | Kategorisch: Rohwert je Ausprägung. Numerisch: Einheit wird umgerechnet, danach automatische Bin-Einteilung (siehe Filterbereich). |
Werte außerhalb des jeweils analysierten Teilbereichs (z. B. ein klinischer Wert unter einem pathologischen Kriterium) werden von der Analyse ausgeschlossen statt in „Keine Angabe" zu landen - nur so bleibt die Gruppe wirklich rein.
Wird eine Kohorte nach „Ausbreitungskategorie" stratifiziert, leitet die App die Kategorie automatisch aus der TNM-Klassifikation jedes Falls ab. TNM-Werte werden dabei normalisiert: das c/p-Präfix und Subkategorie-Suffixe werden ignoriert (z. B. cT1c, pT1 → T1; M1b → M1). Die Einteilung funktioniert auch bei unvollständigem TNM - bereits ein M1 oder ein positiver Lymphknotenstatus genügt.
| Kategorie | Regel (TNM) |
|---|---|
| Metastasiert | M1 (unabhängig von T und N) |
| Fortgeschritten | N1, N2 oder N3 (regionäre Lymphknoten) |
| Lokal fortgeschritten | T3 oder T4, mit N0 und M0 |
| Lokal begrenzt | T1 oder T2, mit N0 und M0 |
| Carcinoma in situ | Tis, mit N0 und M0 |
| Unbekannt | kein ausreichendes TNM vorhanden |
Die Regeln werden von oben nach unten geprüft; die erste zutreffende Kategorie gewinnt. Die T-basierten Kategorien verlangen ein dokumentiertes N0 und M0, damit eine unbekannte Ausbreitung nicht fälschlich als lokal begrenzt gewertet wird.
Der Log-Rank-Test vergleicht Überlebenskurven.
Der Standard-Log-Rank ist optimal bei proportionalen Hazards. Bei sich kreuzenden Kurven oder nicht-proportionalen Hazards bieten gewichtete Varianten mehr Power, indem sie bestimmte Zeitbereiche stärker betonen. Die Variante kann in der Seitenleiste „Plot-Darstellung" gewählt werden.
| Variante | Gewicht w(t) | Wann nutzen |
|---|---|---|
| Standard (Mantel-Haenszel) | w(t) = 1 | Default; optimal bei proportionalen Hazards. Uniforme Gewichtung über alle Event-Zeitpunkte. |
| Wilcoxon (Gehan-Breslow) | w(t) = n(t) | Gewichtet frühe Ereignisse stärker (n(t) im Nenner sinkt mit der Zeit). Sensitiv für frühe Unterschiede, weniger sensitiv für späte Plateau-Unterschiede. |
| Peto-Peto | w(t) = S~(t-) | Gewichtet mit der gepoolten Überlebensfunktion S(t) (Prentice-Modifikation). Robuste Variante von Wilcoxon, weniger empfindlich gegen Zensierungs-Muster. |
| Tarone-Ware | w(t) = √n(t) | Kompromiss zwischen Standard und Wilcoxon (√n(t)). Allround-Variante wenn unklar wo Unterschiede liegen. |
Hinweis: Die Wahl der Variante sollte vor Ansicht der Daten erfolgen, nicht nach dem niedrigsten p-Wert (Cherry-Picking-Risiko). Im Zweifel den Standard-Log-Rank reporten und gewichtete Varianten als Sensitivitätsanalyse.
Ein Signifikanzniveau von 0,05 bedeutet, dass ein einzelner Test in etwa 5 % der Fälle einen Unterschied anzeigt, obwohl keiner besteht. Dieses Risiko gilt pro Test, nicht pro Auswertung. Wer zehn verschiedene Stratifizierungen durchprobiert, hat rund 40 % Chance, mindestens einmal ein p unter 0,05 zu sehen, ohne dass in den Daten ein echter Unterschied steckt (1 minus 0,95 hoch 10).
Diese App macht das Durchprobieren besonders leicht: Jede Stratifizierung und jeder Filter ist einen Klick entfernt. Genau darin liegt die Gefahr. Wird anschließend nur das Ergebnis mit dem kleinsten p-Wert berichtet, ist dieser p-Wert nicht mehr interpretierbar.
Die Verarbeitung erfolgt lokal im Browser.
Die Kaplan-Meier-Kurve schätzt die Überlebenswahrscheinlichkeit über die Zeit.
Die Cox-Regression schätzt Hazard Ratios für Gruppen.
Lädt man eine OncoBox-Datei, rechnet die Kurve nach der Spezifikation genau dieser Box. Die Boxen unterscheiden sich, und diese Unterschiede werden nicht eingeebnet. Kurven verschiedener Boxen sind deshalb nicht unbesehen vergleichbar.
Alle Zeiten aus OncoBox-Daten sind Tage seit dem Diagnosedatum, so wie es die Spezifikationen vorschreiben. Auswertungen aus oBDS, CSV, TXT und Excel rechnen weiter in Monaten.
Der Schätzer ist in allen Boxen derselbe: die Fälle werden nach Zeit sortiert, die Risikomenge sinkt je Zeile um eins, und die Überlebenswahrscheinlichkeit ist das Produkt der Faktoren (r minus delta) geteilt durch r. Gleiche Zeiten werden nacheinander abgearbeitet, nicht zusammengefasst. Das weicht von der üblichen Konvention ab und liefert bei gleichen Zeiten leicht andere Werte.
Die Fundstelle unter jedem Abschnitt nennt Spezifikation und Blatt und verweist auf die Herstellerseite der OnkoZert GmbH, auf der diese Dateien veröffentlicht werden. Eine dauerhafte Adresse der einzelnen Datei gibt es nicht, die Fassungen wechseln mit dem Auditjahr.
Jede Kurve trägt eine Herkunftsangabe, auch in der Exportdatei. Vorschrift heißt: wörtlich aus dem Auswertungsblatt der Box. Abgeleitet heißt: aus der Ereignisdefinition derselben Box gefolgert, dort aber nicht als Kurve vorgeschrieben. Literatur heißt: aus den veröffentlichten Standards für Studienendpunkte, nicht vom Zertifizierer bestätigt.
eb_brust-N1.1.1, Blätter Kaplan-Meier (DFS) und (OAS)
eb_darm-P1.1.1, Blätter Kaplan-Meier DFS I und II sowie OAS I und II
eb_prostata-Q1.1.1, Blätter Kaplan-Meier (DFS) und (OAS) sowie Categories
Blatt EQ Kategorien (Klinisch), auf den Verlauf übertragen
Lokalrezidivrate, lokalrezidivfreies Überleben, metastasenfreies Überleben, progressionsfreies Überleben und Überleben nach Progression sind in keiner OncoBox-Spezifikation als Kurve definiert. Ihre Regeln stützen sich auf die veröffentlichten Standards für Studienendpunkte und sind vom Zertifizierer nicht bestätigt.
Jedes Ergebnis lässt sich vollständig exportieren, für Berichte, Publikationen oder die unabhängige Nachrechnung.
Excel- und PDF-Report lassen sich in drei Varianten herunterladen: vollständig, ohne Patientendaten (die Patiententabelle entfällt, alle Auswertungen bleiben) oder pseudonymisiert. Pseudonymisiert bedeutet: Patienten-IDs werden durch fortlaufende Nummern ersetzt, Diagnose- und Enddatum je Patient um bis zu ±4 Wochen verschoben, und Angaben zur Quelldatei entfernt. Beide Daten eines Patienten werden um denselben Betrag verschoben, damit die Überlebenszeit exakt erhalten bleibt. Alle Auswertungen werden immer auf den Originaldaten gerechnet; die Pseudonymisierung greift erst danach auf die exportierte Tabelle.
Die Funktion senkt die Hürde für das kollegiale Teilen. Sie ersetzt keine datenschutzrechtliche Freigabe.
Beim Upload und auf der Ergebnisseite werden Datensätze auf Plausibilität und Konsistenz geprüft. Vier Klassen werden unterschieden.
Logik-Fehler (z.B. Tod vor Diagnose, Diagnose in der Zukunft) blockieren den Upload. Ein Modal listet die betroffenen Datensätze; eine CSV-Liste kann zur Korrektur in der Quelldatei heruntergeladen werden. Plausibilität, Outlier und Duplikate fließen durch und erscheinen erst auf der Ergebnisseite.
Im Anomalie-Panel sind die Datensätze nach Klasse gruppiert. Pro Patient gibt es eine Checkbox, zusätzlich Bulk-Toggle pro Klasse und eine 'Alle exkludieren'-Aktion. Exkludierte Patienten fließen aus KM, Cox, Log-Rank, Tabelle und Excel-Export sofort raus. Der Zustand wird pro Datensatz in sessionStorage gespeichert (Tab-Reload behält ihn, neuer Tab nicht).
| Regel-ID | Klasse | Verhalten |
|---|---|---|
| death_before_diagnosis | logic | block |
| last_contact_before_diagnosis | logic | block |
| diagnosis_in_future | logic | block |
| negative_survival_time | logic | block |
| age_out_of_range | logic | block |
| dead_without_death_date | logic | block |
| tnm_t0_with_metastasis | plausibility | warn |
| survival_over_25_years | plausibility | warn |
| very_short_followup_alive | plausibility | warn |
| diagnosis_year_unrealistic | plausibility | warn |
| oncobox_no_primary_marker | plausibility | warn |
| duplicate_patient_id | duplicate_or_missing | warn |
| missing_diagnosis_date | duplicate_or_missing | warn |
| missing_vital_status | duplicate_or_missing | warn |
| oncobox_multiple_primaries | duplicate_or_missing | warn |
| oncobox_no_follow_up | duplicate_or_missing | warn |
| oncobox_no_diagnosis_code | duplicate_or_missing | warn |
Das entitätenspezifische Staging basiert auf dem TNM-Atlas von Wittekind et al. in der 9. Auflage (Wiley, Nov. 2025). Nicht alle onkologischen Entitäten sind darin enthalten-die Klassifikation gilt ausschließlich für die nachfolgend aufgeführten Tumorentitäten.
Enthaltene Entitäten (61):