Für die Übungen kann der Text aus dem Web-Browser über Copy/Paste (Strg-C/Strg-V) übernommen werden.
Es soll ein Word-Dokument erzeugt werden, das einen einfachen Verlauf, d.h. einen Verlauf ohne weitere Details ausgibt.
Hierzu wird zunächst SQL*Plus genutzt. Damit können Probleme mit der SQL-Syntax leichter erkannt und behoben werden. Es sollen Untersuchungsdatum, Bezeichnung des Verlaufs und die (decodierten) Statusinformationen ausgegeben werden.
set linesize 200 set pagesize 999 column Patient FORMAT a20 column Freitext FORMAT a20 column Beurteilung FORMAT a10 column Primaertumor FORMAT a10 column Lymphknoten FORMAT a10 column Metastasen FORMAT a10 column Gesamtbeurteilung FORMAT a10Dann folgt das Statement:
select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, v.Unters_Datum, v.Freitext, v.Primaertumor, v.Lymphknoten, v.Metastasen, v.Beurteilung, l.Ecog, l.Gesamtbeurteilung FROM Verlauf v, Patient p, Leistungszustand l WHERE p.Pat_ID = v.Fk_TumorFk_Patient AND l.Fk_PatientPat_ID (+) = v.Fk_TumorFk_Patient AND l.Fk_VerlaufLfdNr (+) = v.LfdNr
select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, v.Unters_Datum, v.Freitext, m1.Beschreibung Primaertumor, m2.Beschreibung Lymphknoten, m3.Beschreibung Metastasen, v.Beurteilung, l.Ecog, m4.Beschreibung Gesamtbeurteilung FROM Verlauf v, Patient p, Leistungszustand l, Merkmal m1, Merkmal m2, Merkmal m3, Merkmal m4 WHERE p.Pat_ID = v.Fk_TumorFk_Patient AND l.Fk_PatientPat_ID (+) = v.Fk_TumorFk_Patient AND l.Fk_VerlaufLfdNr (+) = v.LfdNr AND m1.code (+) = v.Primaertumor AND m1.Merkmal (+) = 'PRIMAER_TUMOR' AND m2.code (+) = v.Lymphknoten AND m2.Merkmal (+) = 'REG_LYMPH' AND m3.code (+) = v.Metastasen AND m3.Merkmal (+) = 'FERN_META' AND m4.code (+) = l.Gesamtbeurteilung AND m4.Merkmal (+) = 'GESAMTBEURTEILUNG'
Diese Tabelle wird im GTDS genutzt, um Berichten Listen zu druckender Dokumente zu übergeben.
select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, v.Unters_Datum, v.Freitext, m1.Beschreibung Primaertumor, m2.Beschreibung Lymphknoten, m3.Beschreibung Metastasen, v.Beurteilung, l.Ecog, m4.Beschreibung Gesamtbeurteilung FROM Verlauf v, Patient p, Leistungszustand l, Merkmal m1, Merkmal m2, Merkmal m3, Merkmal m4, Patids pa WHERE p.Pat_ID = v.Fk_TumorFk_Patient AND l.Fk_PatientPat_ID (+) = v.Fk_TumorFk_Patient AND l.Fk_VerlaufLfdNr (+) = v.LfdNr AND m1.code (+) = v.Primaertumor AND m1.Merkmal (+) = 'PRIMAER_TUMOR' AND m2.code (+) = v.Lymphknoten AND m2.Merkmal (+) = 'REG_LYMPH' AND m3.code (+) = v.Metastasen AND m3.Merkmal (+) = 'FERN_META' AND m4.code (+) = l.Gesamtbeurteilung AND m4.Merkmal (+) = 'GESAMTBEURTEILUNG' AND v.Fk_TumorFk_Patient = pa.Patid AND v.LfdNr = pa.LfdNr
variable rep_benutzer varchar2(30) begin :rep_benutzer := 'testpc01'; end; / select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, v.Unters_Datum, v.Freitext, m1.Beschreibung Primaertumor, m2.Beschreibung Lymphknoten, m3.Beschreibung Metastasen, v.Beurteilung, l.Ecog, m4.Beschreibung Gesamtbeurteilung FROM Verlauf v, Patient p, Leistungszustand l, Merkmal m1, Merkmal m2, Merkmal m3, Merkmal m4, Patids pa WHERE p.Pat_ID = v.Fk_TumorFk_Patient AND l.Fk_PatientPat_ID (+) = v.Fk_TumorFk_Patient AND l.Fk_VerlaufLfdNr (+) = v.LfdNr AND m1.code (+) = v.Primaertumor AND m1.Merkmal (+) = 'PRIMAER_TUMOR' AND m2.code (+) = v.Lymphknoten AND m2.Merkmal (+) = 'REG_LYMPH' AND m3.code (+) = v.Metastasen AND m3.Merkmal (+) = 'FERN_META' AND m4.code (+) = l.Gesamtbeurteilung AND m4.Merkmal (+) = 'GESAMTBEURTEILUNG' AND v.Fk_TumorFk_Patient = pa.Patid AND v.LfdNr = pa.LfdNr AND pa.Benutzer = :Rep_Benutzer /
Die Einbindung in den Dynamischen Modulen erfolgt über die das Anlegen einer neuen Zeile und folgende Angaben:
Unter "weitere Parameter" wird dann das SQL-Statement mit den entsprechenden Zusatzangaben eingetragen
verlkurz.dat PAT DATUM TEXT PRIM LYMPH META BEURT ECOG GESAMT REP_BENUTZER select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, v.Unters_Datum, v.Freitext, m1.Beschreibung Primaertumor, m2.Beschreibung Lymphknoten, m3.Beschreibung Metastasen, v.Beurteilung, l.Ecog, m4.Beschreibung Gesamtbeurteilung FROM Verlauf v, Patient p, Leistungszustand l, Merkmal m1, Merkmal m2, Merkmal m3, Merkmal m4, Patids pa WHERE p.Pat_ID = v.Fk_TumorFk_Patient AND l.Fk_PatientPat_ID (+) = v.Fk_TumorFk_Patient AND l.Fk_VerlaufLfdNr (+) = v.LfdNr AND m1.code (+) = v.Primaertumor AND m1.Merkmal (+) = 'PRIMAER_TUMOR' AND m2.code (+) = v.Lymphknoten AND m2.Merkmal (+) = 'REG_LYMPH' AND m3.code (+) = v.Metastasen AND m3.Merkmal (+) = 'FERN_META' AND m4.code (+) = l.Gesamtbeurteilung AND m4.Merkmal (+) = 'GESAMTBEURTEILUNG' AND v.Fk_TumorFk_Patient = pa.Patid AND v.LfdNr = pa.LfdNr AND pa.Benutzer = :Rep_Benutzer
Jetzt fehlt nur noch der Serienbrief. Dazu wird mit Word zunächst ein leeres Dokument unter der Namen "verlkurz" im GTDS-Verzeichnis gespeichert. Anschließend kann der Serienbrief aus der Berichtsauswahl gestartet werden. Dabei muß er natürlich komplettiert werden. Diese Weiterbearbeitung ist versionsabhängig und wird nachfolgend nur kurz skizziert:
Beispiel aus Word 2002
Für dieses (erst seit März 2004 realisierbare) Szenario wird keine Übergabe von Fällen über die Patids-Tabelle benötigt - allerdings soll ein Zeitraum und die ICD Diagnose eingegeben werden können. Der Aufruf erfolgt aus der Berichtsauswahl der Leirtstellen-Maske.
icd_zeitraum.dat PATIENT ICD10 DIAGNOSE icd10 anfang ende select p.Name || ', ' || p.Vorname || ', ' || to_char(p.Geburtsdatum, 'dd.mm.yyyy') Patient, t.ICD10, t.Diagnosetext FROM Tumor t, Patient p WHERE p.Pat_ID = t.Fk_PatientPat_ID AND t.ICD10 LIKE :icd10 || '%' AND trunc(t.Diagnosedatum) BETWEEN to_date(:anfang, 'dd.mm.yyyy') AND to_date(:ende, 'dd.mm.yyyy')