Mit dem auf der Tabelle AUSWERTUNG basierenden Modul wurde eine Möglichkeit geschaffen, um Abfragen auf das GTDS zu vereinfachen. Dazu werden zu jedem Tumordatensatz die wichtigsten Informationen aus den unterschiedlichen GTDS-Tabellen in die Tabelle AUSWERTUNG geschrieben, die dann mit vergleichsweise einfachen Abfragen analysiert werden kann.
Diese Beschreibung gliedert sich in folgende Punkte
Mit diesem Modul werden Auswertungsläufe verwaltet. Alle Auswertungsläufe schreiben in die Tabelle AUSWERTUNG. Die einzelnen Vorgänge erhalten eine Vorgang_ID zur Unterscheidung. Zusätzlich werden sie in der Tabelle AUSWERTUNGS_PARAMETER festgehalten. Diese Tabelle wird in der Übersicht angezeigt und erlaubt den Zugriff auf einzelne Auswertungsläufe. Falls beim Füllen Fehler aufgetreten sind, werden diese in die Tabelle "FEHLERCHEN" und "FEHLER2" eingetragen.
Die Maske gibt selbst Hinweise zu ihrer Benutzung. Im allgemeinen ist es unter Geschwindigkeitsaspekten günstig, nicht zuviele Auswertungsläufe zu speichern. In der Regel genügt es, sich vor einer Auswertung den Datensatz "0" neu erzeugen zu lassen. Dies gilt insbesondere, wenn keine Nachbearbeitung erfolgen (wie TNM-Stadiengenerierung) muß, aber auch Nachbearbeitungen lassen sich in der Regel schnell nachziehen. Auf die Auswertung "0" kann außerdem an bestimmten Stellen zugegriffen werden, so daß schnell nachvollzogen werden kann, wie die Dokumentation in die Auswertung eingeht (Nähere Details).
In Details und Löschen (siehe unten) können weitere Detail-Auswertungsdatensätze erzeugt werden und überflüssige Auswertungsläufe gelöscht werden. Über Einstellungen kann das Erzeugen von Detaildatensätzen automatisiert werden.
Unter bestimmten Umständen arbeitet das Datenbanksystem nicht optimal. Bei unerklärlichen Geschwindigkeitseinbußen kann die Optimierungsangabe kann testweise auf "RULE" gesetzt werden.
In besonderen Fällen kann das Füllen mit einem SQL*PlusSkript erfolgen, d.h. SQL*Plus muß dazu auf dem GTDS-Client installiert sein. Unter "Bedingung für Hauptselect" können Bedingungen auf Spalten in den Tabellen PATIENT und TUMOR, sowie EXISTS Unterabfragen eingetragen werden, die die Zahl der Fälle einschränkt. Normalerweise läuft jedoch ein Auswertungslauf relativ schnell, so daß dies nicht unbedingt notwendig ist.
In der Übergabedatei werden diese Bedingungen an das SQL*Plusskript übergeben. Eine gleichnamige Datei mit der Endung ".log" protokolliert die Ausgabe dieses Skriptes.
Für den Fall, daß keine Bedingung erforderlich ist oder daß SQL*Plus nicht installiert ist, kann eine "Auswertung ohne Bedingung" gestartet werden. Diese Funktion ruft eine entsprechende Datenbankprozedur auf.
Neben dem Erzeugen und Löschen von Auswertungsläufen und Details können über "Abfrageausgaben" konfigurierbare Abfragen (unter Benutzer, Rechte => Abfragen) ausgegeben werden.
Diese Funktion ermöglicht ein einfaches Ansehen der Daten. Über die Forms-eigene "Query-by-Example" Funktionalität oder die Einschränkungen auf Tumorentitäten können kleinere Analysen wie Auszählungen vorgenommen werden. Darüberhinaus können Datensätze markiert und für eine Druckausgabe oder den Datenexport in der Spaltenausgabe ausgewählt werden. Sofern die Berechtigung existiert können durch Berechnung fehlende TNM-Stadienangaben ergänzt werden (vorher "Ändern erlauben").
Hinweise:
Die Auswertungstabelle, aber auch andere Tabellen und Datenbanksichten, können für die weitere Verarbeitung in einem Format mit Feldbegrenzern extrahiert werden. Dieses Format kann von vielen Programmen eingelesen werden. Bei Aufruf aus der Maske "auswert" werden primär die Datenbanksichten für die ausgewählten Datensätze angezeigt (Tabelle AUSWERTUNG_ALLE_PATIDS etc.). Bei Aufruf aus der Auswertungsverwaltung wird als Bedingung die Vorgang_ID übergeben (falls keiner im Kontext, der letzte).
Mit "where ... " kann tabellenbezogen die Auswahl der extrahierten Datensätze begrenzt werden. Die Daten werden in die unter "Datei" stehende Datei geschrieben. Ersatzzeichen ist das Zeichen, das ggf. in Datensätzen enthaltene Tabulatoren und Zeilenumbrüche ersetzt. Der Pseudosatz wird ggf. als erster Datensatz eingefügt, damit beim Import von Daten in andere Programme der Dateifilter den Datentyp leichter erkennen kann.
Folgende Abbildung zeigt, wie die Parametrisierung optimal auf die SPSS-Auswerteskripte abgestimmt werden kann:
Zusätzlich gibt es den GTDS.INI-Parameter "spalausw_export_pfad", in dem abweichend vom "druckverzeichnis" das Verzeichnis für Ausgabedateien eingestellt werden kann.
Bei der Anzeige der Übersicht über die Diagnosedaten eines Patienten kann der eingesehen werden, wie sich der Auswertungssatz für den entsprechenden Tumor darstellt. Dabei wird nur eine Auswahl der wichtigsten Parameter angezeigt.
Falls der Datensatz nicht vorhanden ist oder nicht automatisch aktualisiert wird (Einstellung des GTDS-Parameters GLOBAL.AUSWERTUNG_FUELLEN), kann der Datensatz erstellt bzw. aktualisiert werden. Für das Nachvollziehen der Einträge in Primärtherapie können die Therapiedatensätze angzeigt und bei entsprechender Berechtigung geändert werden:
Wie bereits einleitend ausgeführt, können bestimmte Details nur verkürzt in der Auswertungstabelle dargestellt werden. So kann nur eine (die erste) Operation pro Tumor ausführlicher dargestellt werden. Bei mehrschrittigen Therapieverfahren sind dann wichtige Details nicht vorhanden. Die Auswertungstabelle läßt sich andererseits nicht beliebig ausdehnen.
Daher wurden folgende Zusatztabellen eingerichtet:
Diese Tabellen werden nicht beim Durchführen eines Auswertungslaufes automatisch gefüllt sondern müssen bei Bedarf erst nachträglich gefüllt werden. Hierzu bieten die entsprechenden Detailmasken Funktionen an.
Zu allen Einträgen in diesen Datensätzen werden neben den therapiespezifischen Details auch Daten aus dem zugehörigen Verlauf (einschließlich eines TNMs und einer Histologie) eingetragen. Die Tabellen sind bzgl. Spaltennamen und Feldlängen bereits optimiert für SPSS.
Die Kenntnis der oben genannten Normierung ist wichtig für die korrekte Anwendung dieser Tabellen.
Sollen Daten aus der Auswertungs-Tabelle berücksichtigt werden, z.B. Diagnosedatum, Tumorklassifikation oder Rezidivgeschehen, so kann auf einfache Weise ein SQL-JOIN mit der Auswertungstabelle durchgeführt werden.
SELECT a.Dia_dat, a.C_UICC, o.To_Schl Code, o.OP_DfAbt FROM Auswertung_OP o, Auswertung_SPSS a WHERE o.Vorg_ID = 0 AND a.Vorg_ID = o.Vorg_ID AND a.Pat_ID = o.Pat_ID AND a.Tumor_ID = o.Tumor_ID
Für Fragestellungen, die vom Tumor ausgehen, bei denen also Fälle gezählt werden sollen, sind die genannten Tabellen nur begrenzt anwendbar, bzw. müssen in anderer Art und Weise abgefragt werden.
Das adäquate SQL-Statement enthält in der Regel ein oder mehrere EXISTS-Unterabfragen, wie folgendes Beispiel einer Auswahl von Fällen, die in bestimmten Abteilungen mit einer bestimmten Therapie behandelt wurden, zeigt.
SELECT a.Pat_ID, a.Tumor_ID, a.Dia_dat, a.C_UICC FROM Auswertung_SPSS a WHERE a.Vorg_ID = 0 AND EXISTS ( SELECT 1 FROM Auswertung_OP o WHERE a.Vorg_ID = o.Vorg_ID AND a.Pat_ID = o.Pat_ID AND a.Tumor_ID = o.Tumor_ID AND substr(o.To_Schl, 1, 5) IN ('5-872', '5-873', '5-874', '5-875', '5-876') AND o.OP_DfAbt IN (234, 546, 44) )
In diesem Beispiel wurde der Vorteil der Tabelle Auswertung_OP kaum benutzt. Die Abfrage hätte sich problemlos mit Zugriff auf die Originaltabellen formulieren lassen, so daß ein Füllen der OP-Auswertungsdaten entfallen könnte:
SELECT a.Pat_ID, a.Tumor_ID, a.Dia_dat, a.C_UICC FROM Auswertung_SPSS a WHERE a.Vorg_ID = 0 AND EXISTS ( SELECT 1 FROM Operation o, Teiloperation top WHERE o.Fk_TumorFk_Patient = a.Pat_ID AND o.Fk_TumorTumor_ID = a.Tumor_ID AND top.Fk_OperationFk_Tu0 = o.Fk_TumorFk_Patient AND top.Fk_OperationOP_Num = o.OP_Nummer AND substr(top.Fk_OperationsScSch, 1, 5) IN ('5-872', '5-873', '5-874', '5-875', '5-876') AND o.Durchfuehrende_Abt_ID IN (234, 546, 44) )
Diese Formulierung ist nur wenig aufwendiger. Die Unterabfrage auf Auswertungs-Therapie-Tabellen bringt also vor allem dann Vorteile, wenn sie Daten als Filter in der WHERE-Bedingung benutzt, die sonst nur umständlich oder überhaupt nicht zu erhalten wären wie zum die Frage nach der Zahl der Zyklen bei systemischer Therapie (Wurde eine systemische Therapie bis zum Ende durchgeführt?).
Die EXISTS-Unterabfragen können auch Bestandteil von Bedingungen werden, die in der Auswertungsmaske zum Filtern bestimmter Datensätze benutzt werden.
Am Anfang jeder Auswertung steht in der Regel das Heraussuchen der Fälle, die ausgewertet werden sollen. Für eine grobe Orientierung können die sogenannten "Query-by-example" Mechanismen in der Maske "auswert" benutzt werden (F7 => Eingabe der Suchkriterien, F8 => Ausführen der Suche oder Shift-F2 => Zählen der Datensätz). Häufig müssen jedoch mehrere Bedingungen kombiniert werden und es sollen Abfragen zur späteren Wiederverwendung gespeichert oder sogar innerhalb mehrerer Zentren ausgetauscht werden.
mehr zu Tastenkürzeln und Abfragen
In der Auswertungsmaske stehen hierfür folgende Möglichkeiten zur Verfügung: Angenommen, eine Abfrage wurde begonnen mit dem Heraussuchen aller Mammakarzinome über die Lokalisation Mamma.
Nach dem Ausführen (F8) kann diese Abfrage über "Speichern" gespeichert werden.
Dabei wird die bereits eingegebene Filterbedingung übernommen und ein Name vorgeschlagen, unter dem die Abfrage gespeichert werden soll. Dieser kann/sollte natürlich angepaßt werden. Als nächster Schritt kann die Abfrage dann über das Hinzufügen weiterer Bedingungen verfeinert werden. Diese können "von Hand" eingegeben oder mit Hilfe einer Eingabeunterstützung im unteren Teil der Maske.
In diesem Beispiel soll das Diagnosedatum im Jahr 2003 liegen.
Über den Knopf "Hinzufügen" wird die Bedingungen an die bereits vorhandene Bedingung mit AND (Option "und") abgefügt.
Mit dieser Möglichkeit können also gängige SQL-WHERE-Bedingungen komfortabel zusammengestellt werden. Weitere Grundkenntnisse von SQL sind vor allem dann erforderlich, wenn Bedingungen teilweise mit "AND" und teilweise mit "OR" verknüpft werden. Hier muß auf eine korrekte Klammerung der Bedingungen geachtet werden. Außerdem sind solche Kenntnisse erforderlich, wenn die generierten Bedingungen angepaßt oder erweitert werden sollen.
Für den Austausch von Filterbedingungen zwischen zwei GTDS-Systemen kann der Inhalt dieser Maske in eine Datei gespeichert (Abfrage->Datei) oder aus einer Datei eingelesen werden (Datei->Abfrage). Auf diese Weise können komplexere Bedingungen, die von den Entwicklern erstellt wurden, transferiert werden.
Sowohl für Speichern als auch Einlesen von solchen Dateien muß im Feld Dateiname der Name der Datei eingetragen werden. Ohne Pfadangabe wird angenommen, daß die Datei im aktuellen (GTDS-)Verzeichnis gespeichert wird bzw. sich dort befindet. Falls dieses schreibgeschützt ist, kann eine Datei über die Angabe eine kompletten Pfades an einer anderen Stelle des Rechners abgelegt werden (oder natürlich auch von dort gelesen werden).
Die Dateien haben standardmäßig die Endung "sqx" und sind im XML-Format gespeichert.
09.03.2004 weitere Beschreibungen zur Auswertungstechnik
15.05.2003 weitere Parameter, Überarbeitung der Hilfe
15.11.2002 Verbesserung der Länge der Ausgabezeilen
September 2001 - Februar 2002: Umfangreichere Änderungen des gesamten Pakets
8.3.2000 Hilfe erstellt, kleinere Fehler in spalausw behoben.