Auswertung im GTDS fixe Abläufe für Standard-Aufgaben Mamma-Auswertung

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankdesign mit ACCESS.
Advertisements

Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt SQL 1 Aussagen über Tabelleninhalte Aussagelogik Äquivalenzen Select Where.
Datenbanksysteme für FÜ WS2004/05 SQL1 - 1 Worzyk FH Anhalt SQL 1 Aussagen über Tabelleninhalte Aussagelogik Äquivalenzen Select Where.
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Bauinformatik II Softwareanwendungen 1
MS Office-Paket: Access
Allgemeine Technologien II
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Inner Joins.
Alternativen und Muster. Alternativen Gegeben ist eine Tabelle in der ein Attribut der Tabelle Buecher Gruppe genannt wurde. So gibt es unter anderem.
SQL als Abfragesprache
Auswertung im GTDS fixe Abläufe für Standard-Aufgaben –Mamma-Auswertung –Kolorekt-Auswertung vorgefertigte Berichte ( Leitstelle Berichtsauswahl ) Berichtsaufruf.
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Eine objektorientierte Einführung in den Umgang mit Datenbanken
Übung Datenbanksysteme SQL-Anfragen (2)
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Excel Kurs Teil VI Logische Funktionen( WENN, UND, ODER ) Datumsfunktionen ( DATUM, MONAT ) Bedingte Formatierung F. Bäumer.
JDBC EDV JDBC.
Buch S73ff (Informatik I, Oldenbourg-Verlag)
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Einführung MySQL mit PHP
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Flache Datenstrukturen in der Operationsdokumentation.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
Datenbankentwicklung IV-LK
Wir bauen uns eine Webapplikation!
Datenbanken?.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
Access 2000 Willkommen im Access-Kurs Oliver Mochmann.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
SQL Überblick Abfragen aus einer Tabelle
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Allgemeines zu Datenbanken
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Microsoft OfficeWord Erstellen eines Serienbriefes Stand: Mai 2010 (Grundlagen)
Befehle in SQL Erläuterungen.
(D.h. „Hallo MausFans!“ auf Japanisch).
Freiwillige Feuerwehr der Stadt Perg
Aggregatsfunktion SQL = Structured Query Language.
verstehen planen bearbeiten
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Relationale Datenbanken IV
PHP: Operatoren und Kontrollstrukturen
MS Office Access 2007 UM für INI. Sie haben viele Daten? Entscheiden Sie sich für Access. Access verarbeitet Daten, und zwar alle Arten von Daten: Kundenkontakte,
Structured Query Language
2 Auswählen und Sortieren von Daten. 2-2 Filtern von Zeilen mit Selektion "…suche alle Angestellten in Abteilung 10" EMP EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Datenbank für Skriptenverkauf
PHPmyadmin Maya Kindler 6c.
Datenbanken Maya Kindler 6c.
Datenbanken abfragen mit SQL
BHAK/BHAS 1 Salzburg KIDM 2ASBS Schuljahr 2004/05
Verknüpfung von Tabellen in MS-Access BHAK/BHAS 1 Salzburg WI II Schuljahr 2004/05.
Was ist ein Datenbankprogramm?
15 Tabellen erstellen und Tabellenstruktur bearbeiten Grundlagen zu Tabellen l Tabelle l Enthält Daten zu einem bestimmten Thema l Beispiele:  Mitarbeiterdaten.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
SQL Basics Schulung –
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
SQL Join.
Nutzung und Modellierung von Datenbanken
(Structured Query Language)
 Präsentation transkript:

Auswertung im GTDS fixe Abläufe für Standard-Aufgaben Mamma-Auswertung Kolorekt-Auswertung vorgefertigte Berichte ( Leitstelle  Berichtsauswahl ) Berichtsaufruf in der Auswertungs-Ansicht ( Funktion Druck/Ausg. ) Variable Auswertungen je nach Anforderung

Tabelle als Grundelement Die Daten des GTDS werden in einer relationalen Datenbank gespeichert. Auswertung bedeutet nichts anderes, als daraus die gewünschten Daten in der gewünschten Form herauszuholen. Grundelement einer relationalen Datenbank ist die Tabelle, z.B. ergibt sich durch folgendes SQL : SQL> l 1 select Pat_ID, Name, Vorname, Geburtsdatum 2 from PATIENT 3 where ...... So eine Tabelle : PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911

Tabelle als Grundelement (II) PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 Tabelle hat einen bestimmten Namen ( hier PATIENT ) Spalten haben bestimmte Namen ( hier PAT_ID , NAME usw.) Spalten haben Datentypen ( vereinfacht : Zahlen , Text oder Datum ) Anzahl und Typ der Spalten ist für alle Zeilen konstant Daten stehen in den einzelnen Zeilen (hier sind es 4)

Grundlagen SQL (I) nähere Einzelheiten siehe SQLKURS - Skript PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 Wenn die Tabelle PATIENT nur diese vier Zeilen enthält, genügt zur Ausgabe folgendes : select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT ;

Grundlagen SQL (II) PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 Auswahl einzelner Spalten in der SELECT - Liste select Name, Vorname, Geburtsdatum from PATIENT ; NAME VORNAME GEBURTSDAT --------------- ---------- ---------- Abrechnungstest Hermine 31.12.1899 Prostata Hans 11.11.1911 ........

Grundlagen SQL (III) PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 Auswahl einzelner ZEILEN mit der where – Klausel select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT where Name = 'Prostata' ; PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1602 Prostata Hans 11.11.1911

Grundlagen SQL (IV) PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 where – Klausel, mehrere Teile mit AND (oder OR) verbunden select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT where Name = 'B97test' AND Vorname = 'Fritz'; PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911

Grundlagen SQL (V) where – Klausel für Zahlen PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 where – Klausel für Zahlen select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT where Pat_ID = 1622 ; Die Spalte Pat_ID ist hier die einzige, welche es erlaubt, über eine where-Klausel eine bestimmte Zeile der beiden "B97test" herauszufinden. Nur mit Name, Vorname und Geburtsdatum wäre der Zugriff nur auf einen von beiden nicht möglich. Sie erfüllt hier die Funktion eines sog. Primärschlüssels

Grundlagen SQL (VI) Order by – Klausel ordnet die Daten nach den angegebenen Feldern : select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT order by Name, Vorname ; PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 1602 Prostata Hans 11.11.1911

Tabellen verbinden (Join) eine Datenbank besteht gewöhnlich aus zahlreichen Tabellen, bei GTDS z.B. ca. 200 zwischen diesen Tabellen bestehen Beziehungen, einfaches Beispiel PATIENT TUMOR die Zuordnung der einzelnen Datensätze erfolgt in einer relationalen Datenbank ausschließlich durch "normale", sichtbare Tabellenspalten, es gibt keine verdeckten "Pointer" usw.

Tabellen verbinden (Join) – Beispiel (a) PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 1602 Prostata Hans 11.11.1911 Zu den bereits bekannten Patienten existiert eine Tabelle mit deren Tumoren : Fk_Patient Tumor Diagnose Pat_ID ID datum ICD10 DIAGNOSETEXT ---------- ----- -------- ---------- ---------------- 1581 1 28.12.99 C50 Mammakarzinom li. 1581 2 01.02.03 C18 Kolonkarzinom 1602 1 01.07.97 C61 Prostatakarzinom 1622 1 19.08.96 C61 Prostatakarzinom

Tabellen verbinden (Join) – Beispiel (b) Die Beziehung der Datensätze ist einfach zu sehen, begründet in der jeweils gleichen PAT_ID : PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 1602 Prostata Hans 11.11.1911 Fk_Patient Tumor Diagnose Pat_ID ID datum ICD10 DIAGNOSETEXT ---------- ----- -------- ---------- ---------------- 1581 1 28.12.99 C50 Mammakarzinom li. 1581 2 01.02.03 C18 Kolonkarzinom 1602 1 01.07.97 C61 Prostatakarzinom 1622 1 19.08.96 C61 Prostatakarzinom

Tabellen verbinden (Join) – Beispiel (c) Realisierung in SQL : select PATIENT.Pat_ID, PATIENT.Name, PATIENT.Vorname, TUMOR.Fk_PatientPat_ID, TUMOR.Tumor_ID, TUMOR.Diagnosedatum, TUMOR.ICD10 from PATIENT, TUMOR where PATIENT.Pat_ID = TUMOR.Fk_PatientPat_ID ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61

Tabellen verbinden (Join) – Beispiel (d) vereinfachte Version in SQL : der Name der Tabelle muß nur dann vor den Spaltennamen stehen, wenn eine Spalte mit gleichem Namen in beiden Tabellen vorkommt (hier nicht) select Pat_ID, Name, Vorname, Fk_PatientPat_ID, Tumor_ID, Diagnosedatum, ICD10 from PATIENT, TUMOR where Pat_ID = Fk_PatientPat_ID ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61

Tabellen verbinden (Join) – Beispiel (e) vereinfachte Version in SQL II: in der from – Klausel kurze Aliasnamen angeben und bei select und where verwenden select P.Pat_ID, P.Name, P.Vorname, T.Fk_PatientPat_ID, T.Tumor_ID, T.Diagnosedatum, T.ICD10 from PATIENT P, TUMOR T where P.Pat_ID = T.Fk_PatientPat_ID ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61

Tabellen verbinden (Join) – Beispiel (f) Join in Schreibweise Standard – SQL (bei Oracle ab ca. Version 9 verwendbar) select P.Pat_ID, P.Name, P.Vorname, T.Fk_PatientPat_ID, T.Tumor_ID, T.Diagnosedatum, T.ICD10 from PATIENT P JOIN TUMOR T ON P.Pat_ID = T.Fk_PatientPat_ID ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61

Tabellen verbinden – (Outer) Join Die einfache Join-Abfrage verlangt, daß in allen abgefragten Tabellen mindestens eine passende Datenzeile existiert. Dabei werden immer alle Felder aus der Select-Liste im Ergebnis gezeigt, auch wenn dadurch Daten mehrfach ausgegeben werden (Beispiel : zweimal Stammdaten von "Hermine Abrechnungstest" ) Sollen auch Daten angezeigt werden, bei denen die erste Bedingung nicht zutrifft, muß ein sog. Outer Join eingesetzt werden.

Tabellen verbinden – Beispiel Outer Join "klassische" Oracle – Syntax : hinter der Spalte der Tabelle, für die es evtl. keine Daten gibt, wird (+) gesetzt : select P.Pat_ID, P.Name, P.Vorname, T.Fk_PatientPat_ID, T.Tumor_ID, T.Diagnosedatum, T.ICD10 from PATIENT P, TUMOR T where P.Pat_ID = T.Fk_PatientPat_ID(+) ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61 1623 B97test Fritz

Tabellen verbinden – Beispiel Outer Join Standard – Syntax (bei Oracle ab ca. Version 9 verwendbar) am Schluß könnte noch eine where-Klausel folgen : select P.Pat_ID, P.Name, P.Vorname, T.Fk_PatientPat_ID, T.Tumor_ID, T.Diagnosedatum, T.ICD10 from PATIENT P LEFT OUTER JOIN TUMOR T ON P.Pat_ID = T.Fk_PatientPat_ID ; Fk_Patient Tumor Diagnose PAT_ID NAME VORNAME Pat_ID ID datum ICD10 ------ --------------- ------- ---------- ----- -------- --- 1581 Abrechnungstest Hermine 1581 1 28.12.99 C50 1581 Abrechnungstest Hermine 1581 2 01.02.03 C18 1602 Prostata Hans 1602 1 01.07.97 C61 1622 B97test Fritz 1622 1 19.08.96 C61 1623 B97test Fritz

SQL : EXISTS - Unterabfrage PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1581 Abrechnungstest Hermine 31.12.1899 1602 Prostata Hans 11.11.1911 1622 B97test Fritz 11.11.1911 1623 B97test Fritz 11.11.1911 Beispiel : Patienten, für die mindestens ein Tumor dokumentiert ist : select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT P where EXISTS (select 'X' from TUMOR T where T.Fk_PatientPat_ID = P.Pat_ID) Der Vergleich mit vorigen Folien zeigt, daß Patient Nr. 1623 keinen Eintrag in der Tabelle TUMOR hat, er steht nicht mehr im Ergebnis (daher durchgestrichen).

SQL : NOT EXISTS PATIENT PAT_ID NAME VORNAME GEBURTSDAT ---------- --------------- ---------- ---------- 1623 B97test Fritz 11.11.1911 Beispiel : Patienten, für die kein Tumor dokumentiert ist : select Pat_ID, Name, Vorname, Geburtsdatum from PATIENT P where NOT EXISTS (select 'X' from TUMOR T where T.Fk_PatientPat_ID = P.Pat_ID) Der Vergleich mit vorigen Folien zeigt, daß Patient Nr. 1623 keinen Eintrag in der Tabelle TUMOR hat, er steht allein im Ergebnis .

GTDS – Tabellen in der Diagnosedaten-Maske TUMOR VORHANDENE_DATEN VORERKRANKUNGEN GKR TNM ANN_ARBOR SONSTIGE_KLASSIFIK LOKALISATION HISTOLOGIE AA_DIAGNOSESICHERUNG .... usw. .... für die Texte zu den Schlüsseln (z.B. ICD) sind weitere Tabellen ab- zufragen Spezialdokumentation z.B. für Mamma , Untersuchungen und Vorgesehene Maßnahmen kommen noch extra dazu Schlußfolgerung : Auswertung durch Abfragen auf die Originaltabellen des GTDS ist in den meisten Fällen zu schwierig und fehleranfällig

Alles in einem : Auswertungs-Tabelle Alle Grund-Daten zum Tumor in einer Tabelle, eine Zeile pro TUMOR (nicht pro Patient) Extrakt – Prinzip Daten werden jeweils durch ein komplexes Programm zusammengestellt Aktualität / Datenstand entspricht dem Zeitpunkt, zu dem der Extrakt erstellt wurde, siehe Feld DATUM_DER_AUSWERTUNG , es wird nicht automatisch nachgeführt. Mehrere Extrakte (im GTDS Auswertungs-Läufe) können nebeneinander existieren, unterschieden durch ihre VORGANG_ID