Kennung | Beschreibung |
---|---|
ALTH | Prüfung auf unwahrscheinliche Kombination Histologie mit Alter |
ALTHL | Prüfung auf ungültige Kombination Lokalisation und/oder Histologie mit Alter |
AUTOP_ANLASS | Prüfung auf Diagnoseanlaß autoptisch ohne Todesdatum |
AUTOP_STDA | Prüfung auf Autopsie durchgeführt ohne Todesdatum |
BKLASS | Prüfung auf Berufsklassifikation |
CHAT | Prüfung auf ungültigen Code für Therapiecharakter |
CHAT | Prüfung auf ungültigen Code für Therapiecharakter in Behandlungsdaten / Verlaufsdaten |
DATI/DIDA | Prüfung auf Diagnosedatum nach Datum_Der_Information |
DIDA | Prüfung auf nicht gefülltes Diagnosedatum |
DIDA_U16 | Diagnosedatum kleiner 16 Jahre |
DIDAALT | Prüfung auf Diagnosedatum vor 1.1.1998 |
DS_AUTOP_STDA | Prüfung auf autoptische Diagnosesicherung |
DS_NHIST_HISTO | Prüfung auf nicht histologische Diagnosesicherung mit Eintrag einer (bösartigen) Histologie |
DSICH | Prüfung auf ungültigen Eintrag in Diagnosesicherung |
GEDA | Prüfung auf fehlendes Geburtsdatum |
GEDA/DIDA | Prüfung auf Diagnosedatum vor Geburtsdatum |
GKREINZUG | Prüfung auf Einzugsbereich des GKR |
GRADING | Prüfung auf ungültiges Grading |
HILO1 | Prüfung auf ungültige Lokalisation für Histologie |
HILO2 | Prüfung auf nicht gültige Lokalisation für Histologie |
HISTGNT | Prüfung auf gutartige Histologie oder Nicht-Tumorhistologie |
ICD10 | Prüfung auf fehlende oder ungültige, fehlende oder gutartige ICD-10 |
ICD9 | Prüfung auf ungültige oder gutartige ICD-9 |
ICM | Prüfung auf fehlende oder ungültige Haupthistologie |
ICT | Prüfung auf fehlende oder ungültige Hauptlokalisation |
LATN | Prüfung auf ungültige Seitenangabe |
MEHRL | Prüfung auf ungültigen Code für Mehrlingseigenschaft |
MEHRL_BY | Prüfung auf fehlende oder ungültige Angabe zu Mehrling |
MTYP | Prüfung auf ungültigen Code für Meldetyp |
NAMG | Prüfung auf fehlenden Nachnamen |
OKZ | Prüfung auf fehlende Angabe zur OKZ |
ORT | Prüfung auf fehlende Angabe zum Ort |
PLZ | Prüfung auf PLZ |
QTU | Prüfung auf ungültigen Code für Quelle der Todesursache |
SEK | Prüfung auf ungültigen Code für durchgeführte Autopsie |
SEXG | Prüfung auf fehlendes oder falsches Geschlecht |
SEXH | Prüfung auf unwahrscheinliche Kombination Histologie mit Geschlecht |
SEXL | Prüfung auf ungültige Kombination Lokalisation mit Geschlecht |
STA_VER | Prüfung auf ungültiges Klassifikationskürzel |
STADIUM | Prüfung auf ungültiges Stadium |
STDA/ABSCHLUSS | Prüfung, ob bei vorhandenem Sterbedatum ein Abschluß eingetragen |
STDA/DIDA | Prüfung auf Diagnosedatum nach Sterbedatum |
TNMH | Prüfung auf Widerspruch zwischen Dignität in TNM |
TURS | Prüfung auf ungültigen Code für Tod tumorbedingt |
UTR | Prüfung auf ungültigen Code für Unterrichtung über Unterrichtung über Meldung |
UTRBY | Prüfung auf Unterrichtung über Meldung (BY) |
VNAG | Prüfung auf fehlenden Vornamen |
VNAGP | Prüfung auf Abkürzungen in Vornamen |
WSP | Prüfung auf fehlende oder ungültige Angabe zu Widerspruch |
Prüfung auf unwahrscheinliche Kombination Histologie mit Alter
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, h.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'ALTH', 'Kombination Histologie ' || h.FK_HISTOLOGIE_SHIS || ' mit Alter ' || to_char(trunc((t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25)) || ' ist unwahrscheinlich (IARC)' from HISTOLOGIE h, PATIDS p, PATIENT pa, TUMOR t where p.benutzer = p_prueflauf and pa.PAT_ID = p.PATID and t.FK_PATIENTPAT_ID = pa.PAT_ID and t.FK_PATIENTPAT_ID = h.FK_TUMORFK_PATIENT and t.TUMOR_ID = h.FK_TUMORTUMOR_ID and( (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 <= 25 and substr(h.FK_HISTOLOGIE_SHIS, 1, 4) in ('9730', '9823', '9863', '9890') or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 >= 25 and substr(h.FK_HISTOLOGIE_SHIS, 1, 4) in ('8910', '8960', '8961', '8962', '8970','8981','8991','9072','9470','9687','9750') );
Prüfung auf ungültige Kombination Lokalisation und/oder Histologie mit Alter
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, l.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'ALTHL', 'Kombination Lokalisation ' || l.FK_LOKALISATIONLOK || ' und/oder Histologie ' || h.FK_HISTOLOGIE_SHIS || ' mit Alter ' || to_char(trunc((t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25)) || ' ist unwahrscheinlich (IARC)' from LOKALISATION l, HISTOLOGIE h, PATIDS p, PATIENT pa, TUMOR t where p.benutzer = p_prueflauf and pa.PAT_ID = p.PATID and t.FK_PATIENTPAT_ID = pa.PAT_ID and t.FK_PATIENTPAT_ID = l.FK_TUMORFK_PATIENT and t.TUMOR_ID = l.FK_TUMORTUMOR_ID and l.FK_TUMORFK_PATIENT = h.FK_TUMORFK_PATIENT and l.FK_TUMORTUMOR_ID = h.FK_TUMORTUMOR_ID and( (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 40 and ( l.FK_LOKALISATIONLOK like '185%' and l.FK_LOKALISATIONAUF = '3' or l.FK_LOKALISATIONLOK like '61%' and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) and h.FK_HISTOLOGIE_SHIS like '814%' or ((t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 15 or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 > 45) and ( l.FK_LOKALISATIONLOK like '181%' and l.FK_LOKALISATIONAUF = '3' or l.FK_LOKALISATIONLOK like '58%' and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) and h.FK_HISTOLOGIE_SHIS like '9100%' or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 > 40 and ( l.FK_LOKALISATIONLOK like '190%' and l.FK_LOKALISATIONAUF = '3' or l.FK_LOKALISATIONLOK like '69%' and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) and substr(h.FK_HISTOLOGIE_SHIS, 1, 4) in ('9510', '9512') or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 20 and ( l.FK_LOKALISATIONLOK like '152%' and l.FK_LOKALISATIONAUF = '3' or l.FK_LOKALISATIONLOK like '17%' and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) and h.FK_HISTOLOGIE_SHIS < '9590' or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 20 and ( substr(l.FK_LOKALISATIONLOK, 1, 3) in ( '162', '153') and l.FK_LOKALISATIONAUF = '3' or substr(l.FK_LOKALISATIONLOK, 1, 2) in ( '33', '34', '18') and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) and h.FK_HISTOLOGIE_SHIS not like '824%' or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 5 and ( substr(l.FK_LOKALISATIONLOK, 1, 3) in ( '180', '185') and l.FK_LOKALISATIONAUF = '3' or substr(l.FK_LOKALISATIONLOK, 1, 2) in ( '53', '61' ) and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) or (t.DIAGNOSEDATUM - pa.GEBURTSDATUM) / 365.25 < 20 and ( substr(l.FK_LOKALISATIONLOK, 1, 3) in ( '150', '154', '156', '157', '154', '163', '174', '175', '179', '180', '182') and l.FK_LOKALISATIONAUF = '3' or (substr(l.FK_LOKALISATIONLOK, 1, 2) in ( '15', '19', '20', '21', '23', '24', '25', '50', '55', '53', '54') or substr(l.FK_LOKALISATIONLOK, 1, 3) = '384' ) and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) );
Prüfung auf Diagnoseanlaß autoptisch ohne Todesdatum
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, p.Pat_ID, 'Diagnose', t.Tumor_ID, 'AUTOP_ANLASS', 'Diagnoseanlaß autoptisch ohne Todesdatum' FROM Tumor t, PATIDS i, Patient P WHERE t.Arzt_Anlass = 'P' AND p.Sterbedatum IS NULL AND p.Pat_ID = i.patid AND t.Fk_PatientPat_ID = p.Pat_ID AND i.benutzer = p_prueflauf;
Prüfung auf Autopsie durchgeführt ohne Todesdatum
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, p.Pat_ID, NULL, NULL, 'AUTOP_STDA', 'Autopsie durchgeführt ohne Todesdatum' FROM PATIDS i, Patient P WHERE p.Autopsie = 'J' AND p.Sterbedatum IS NULL AND p.Pat_ID = i.patid AND i.benutzer = p_prueflauf;
Prüfung auf Berufsklassifikation
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, Pat_ID, 'Diagnose', Fk_TumorTumor_ID, 'BKLASS', 'fehlende oder ungültige Angabe zu Berufsklassifikation: ' || g.Laengster_Klassi FROM GKR g, Patids i WHERE g.Laengster_Klassi IS NOT NULL AND NOT EXISTS (SELECT 'x' FROM Beruf_Schluessel b WHERE b.Code = g.Laengster_Klassi) AND g.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf UNION SELECT p_lauf_lfd, Pat_ID, 'Diagnose', Fk_TumorTumor_ID, 'BKLASS', 'fehlende oder ungültige Angabe zu Berufsklassifikation: ' || g.Letzter_Klassi FROM GKR g, Patids i WHERE g.Letzter_Klassi IS NOT NULL AND NOT EXISTS (SELECT 'x' FROM Beruf_Schluessel b WHERE b.Code = g.Letzter_Klassi) AND g.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Therapiecharakter
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID, 'Diagnose', FK_TUMORTUMOR_ID, 'CHAT','ungültiger Code für Therapiecharakter in GKR-Maske: ' || nvl(THERAPIE_CHARAKTER, '(leer)') from GKR g, PATIDS i where nvl(THERAPIE_CHARAKTER, 'X') not in ('K', 'P', 'S', 'A', 'E', 'N', 'U', 'X') and g.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Therapiecharakter in Behandlungsdaten / Verlaufsdaten
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, g.FK_TUMORFK_PATIENT, 'Verlauf', g.LFDNR, 'CHAT','ungültiger Code für Therapiecharakter in Verlaufs-Maske: ' || nvl(TH_INTENTION, '(leer)') from VERLAUF g, PATIDS i where nvl(TH_INTENTION, 'X') not in ('K', 'P', 'S', 'A', 'E', 'N', 'U', 'X') and g.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Diagnosedatum nach Datum_Der_Information
INSERT INTO Pruef_Ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) SELECT p_lauf_lfd, t.FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'DATI/DIDA','Warnung: Diagnosedatum ' || to_char(t.DIAGNOSEDATUM, 'dd.mm.yyyy') || ' nach Datum der Information ' || to_char(g.Datum_Der_Information, 'dd.mm.yyyy') FROM GKR g, TUMOR t, PATIDS i WHERE i.benutzer = p_prueflauf AND t.Fk_PatientPat_ID = i.PatID AND g.Pat_ID = t.Fk_PatientPat_ID AND g.Fk_TumorTumor_ID = t.Tumor_ID AND g.Datum_Der_Information < t.Diagnosedatum ;
Prüfung auf nicht gefülltes Diagnosedatum
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'DIDA','Diagnosedatum ist leer ' from TUMOR t, PATIDS i where DIAGNOSEDATUM is null and t.FK_PATIENTPAT_ID = i.PATID and i.benutzer = p_prueflauf;
Diagnosedatum kleiner 16 Jahre
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, p.Pat_ID, 'Diagnose', t.Tumor_ID, 'DIDA_U16', 'Diagnosedatum kleiner 16 Jahre' FROM Tumor t, PATIDS i, Patient P WHERE (t.Diagnosedatum - p.Geburtsdatum) < 5844 AND p.Pat_ID = i.patid AND t.Fk_PatientPat_ID = p.Pat_ID AND i.benutzer = p_prueflauf;
Prüfung auf Diagnosedatum vor 1.1.1998
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, t.Fk_PatientPat_ID , 'Diagnose', t.Tumor_ID, 'DIDAALT', 'Diagnose vor 1.1.1998 ' || to_char(t.Diagnosedatum) FROM Tumor T, Patids i WHERE Diagnosedatum < to_date('01.01.1998', 'dd.mm.yyyy') AND t.Fk_PatientPat_ID = i.PatID AND t.Tumor_ID = i.Tumor_ID AND i.Benutzer = p_prueflauf;
Prüfung auf autoptische Diagnosesicherung
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, Pat_ID, decode(FK_VERLAUFLFDNR, null, 'Diagnose', 'Verlauf'), decode(FK_VERLAUFLFDNR, null, FK_TUMOR_ID, FK_VERLAUFLFDNR), 'DS_AUTOP_STDA', 'autoptische Diagnosesicherung ohne Todesdatum' FROM AA_DIAGNOSESICHERUNG d, PATIDS i, Patient P WHERE d.Hoechste_Aussagekraft = 'A' AND p.Sterbedatum IS NULL AND p.Pat_ID = i.patid AND d.Fk_Pat_ID = p.Pat_ID AND i.benutzer = p_prueflauf;
Prüfung auf nicht histologische Diagnosesicherung mit Eintrag einer (bösartigen) Histologie
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, d.Fk_Pat_ID, decode(d.FK_VERLAUFLFDNR, null, 'Diagnose', 'Verlauf'), decode(d.FK_VERLAUFLFDNR, null, d.FK_TUMOR_ID, d.FK_VERLAUFLFDNR), 'DS_NHIST_HISTO', 'nicht histologische Diagnosesicherung mit Eintrag einer (bösartigen) Histologie' FROM AA_DIAGNOSESICHERUNG d, PATIDS i WHERE d.Hoechste_Aussagekraft NOT IN ('H', 'Z') AND d.Herkunft = 'D' AND EXISTS (SELECT 1 FROM Histologie h WHERE h.Fk_TumorFk_Patient = d.Fk_Pat_ID AND h.Fk_TumorTumor_ID = d.Fk_Tumor_ID AND substr(Fk_Histologie_SHis, 5, 1) IN ('1', '2', '3', '6', '9') ) AND d.Fk_Pat_ID = i.PatID AND i.benutzer = p_prueflauf;
Prüfung auf ungültigen Eintrag in Diagnosesicherung
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PAT_ID, decode(FK_VERLAUFLFDNR, null, 'Diagnose', 'Verlauf'), decode(FK_VERLAUFLFDNR, null, FK_TUMOR_ID, FK_VERLAUFLFDNR), 'DSICH', 'ungültiger Eintrag in Diagnosesicherung' from AA_DIAGNOSESICHERUNG, PATIDS i where ( nvl(HISTOL, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(ZYTOL, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(CHIRURGISCH,'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(ENDOSK, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(CT, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(MRT, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(RADIOL, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(ROENTGEN, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(SONOGR, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(NUKLEAR, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(LABOR, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(KLINISCH, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(ANDERE, 'X') not in ('T', 'O', 'X', 'N', 'F') or nvl(AUTOPT, 'X') not in ('T', 'O', 'X', 'N', 'F') ) and FK_PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlendes Geburtsdatum
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'GEDA', 'Geburtsdatum fehlt' from PATIENT p, PATIDS i where GEBURTSDATUM is null and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Diagnosedatum vor Geburtsdatum
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'GEDA/DIDA','Diagnosedatum ' || to_char(DIAGNOSEDATUM, 'dd.mm.yyyy') || ' vor Geburtsdatum' || to_char(GEBURTSDATUM, 'dd.mm.yyyy') from PATIENT p, TUMOR t, PATIDS i where t.FK_PATIENTPAT_ID = p.PAT_ID and DIAGNOSEDATUM < GEBURTSDATUM and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Einzugsbereich des GKR
INSERT INTO Pruef_Ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) SELECT p_lauf_lfd, PAT_ID , 'GKREINZUG', 'fehlende, zu kurze oder zu lange Postleitzahl oder ungültiger Einzugsbereich: ' || P.PLZ FROM PATIENT p, PATIDS i WHERE i.benutzer = p_prueflauf AND p.Pat_ID = i.Patid AND ( nvl(length(p.PLZ), 0) < 5 OR nvl(length(p.PLZ), 0) > 5 OR ( NOT EXISTS (SELECT 1 FROM PLZBereich b, Einzugsbereich e WHERE e.Bereich = 'GKR-FNL' AND b.Fk_Einzugsbereich_ID = e.ID AND p.PLZ BETWEEN b.Von AND b.Bis ) AND EXISTS (SELECT 1 FROM Einzugsbereich e WHERE e.Bereich = 'GKR-FNL') ) );
Prüfung auf ungültiges Grading
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_TUMORFK_PATIENT, decode(FK_VERLAUFLFDNR, null, 'Diagnose', 'Verlauf'), decode(FK_VERLAUFLFDNR, null, FK_TUMORTUMOR_ID, FK_VERLAUFLFDNR), 'GRADING', 'ungültiges Grading: ' || GRADING from HISTOLOGIE h, PATIDS i where GRADING is not null and not exists (select CODE from MERKMAL m where m.MERKMAL = 'GRADING' and m.CODE = h.GRADING) and h.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültige Lokalisation für Histologie
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, l.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'HILO1', 'Lokalisation ' || l.FK_LOKALISATIONLOK || ' in der Liste der für ' || 'Histologiecode ' || h.FK_HISTOLOGIE_SHIS || ' ungültigen Codes (IARC ' || f.FAMILIE || ')' from LOKALISATION l, HISTOLOGIE h, HISTOLOGIE_FAMILIE f, PATIDS p, FAMILIE_LOKALISATION_UNVERTR i where p.benutzer = p_prueflauf and l.FK_TUMORFK_PATIENT = p.PATID and h.FK_HISTOLOGIE_SHIS like f.HIST || '%' /*and substr(h.FK_HISTOLOGIE_SAUF, 1, 1) = f.HIST_AUFLAGE */ and l.FK_TUMORFK_PATIENT = h.FK_TUMORFK_PATIENT and l.FK_TUMORTUMOR_ID = h.FK_TUMORTUMOR_ID and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = i.AUFLAGE and l.FK_LOKALISATIONLOK like i.LOK || '%' and l.HAUPT_NEBEN = 'H' and i.FAMILIE = f.FAMILIE;
Prüfung auf nicht gültige Lokalisation für Histologie
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, l.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'HILO2', 'Lokalisation ' || l.FK_LOKALISATIONLOK || ' nicht in der Liste der für ' || 'Histologiecode ' || h.FK_HISTOLOGIE_SHIS || ' gültigen Codes (IARC-Gruppe ' || f.FAMILIE || ')' from LOKALISATION l, HISTOLOGIE h, HISTOLOGIE_FAMILIE f, PATIDS p where p.benutzer = p_prueflauf and l.FK_TUMORFK_PATIENT = p.PATID and h.FK_HISTOLOGIE_SHIS like f.HIST || '%' /*and substr(h.FK_HISTOLOGIE_SAUF, 1, 1) = f.HIST_AUFLAGE */ and l.FK_TUMORFK_PATIENT = h.FK_TUMORFK_PATIENT and l.FK_TUMORTUMOR_ID = h.FK_TUMORTUMOR_ID and l.HAUPT_NEBEN = 'H' and not exists ( select LOK from FAMILIE_LOKALISATION_VERTR i where l.FK_LOKALISATIONLOK like i.lok || '%' and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = i.AUFLAGE and i.FAMILIE = f.FAMILIE ) and f.FAMILIE not like 'X%';
Prüfung auf gutartige Histologie oder Nicht-Tumorhistologie
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) SELECT p_lauf_lfd, FK_TUMORFK_PATIENT, decode(FK_VERLAUFLFDNR, null, 'Diagnose', 'Verlauf'), decode(FK_VERLAUFLFDNR, null, FK_TUMORTUMOR_ID, FK_VERLAUFLFDNR), 'HISTGNT', 'gutartige Histologie oder Nicht-Tumorhistologie ' || Fk_Histologie_SHis FROM HISTOLOGIE h, PATIDS i WHERE (substr(Fk_Histologie_SHis, 1, 1) NOT IN ('8', '9') OR substr(Fk_Histologie_SHis, 5, 1) = '0' ) and h.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlende oder ungültige, fehlende oder gutartige ICD-10
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, t.Fk_PatientPat_ID , 'Diagnose', t.Tumor_ID, 'ICD10', 'ungültige, fehlende oder gutartige ICD-10 ' || t.ICD10 FROM Tumor T, Patids i WHERE (NOT EXISTS (SELECT 'x' FROM ICD c WHERE c.ICD = t.ICD10 AND c.Auflage = '10') OR (ICD10 IS NULL AND ICD9 IS NULL) OR substr(ICD10,1,3) BETWEEN 'D10' AND 'D36' OR substr(ICD10,1,1) NOT IN ('C', 'D') ) AND t.Fk_PatientPat_ID = i.PatID AND t.Tumor_ID = i.Tumor_ID AND i.Benutzer = p_prueflauf;
Prüfung auf ungültige oder gutartige ICD-9
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, t.Fk_PatientPat_ID , 'Diagnose', t.Tumor_ID, 'ICD9', 'ungültige oder gutartige ICD-9 ' || t.ICD9 FROM Tumor T, Patids i WHERE (NOT EXISTS (SELECT 'x' FROM ICD c WHERE c.ICD = t.ICD9 AND c.Auflage = '9') OR substr(ICD9,1,3) BETWEEN '210' AND '229' OR substr(ICD9,1,3) NOT BETWEEN '140' AND '239' ) AND t.Fk_PatientPat_ID = i.PatID AND t.Tumor_ID = i.Tumor_ID AND i.Benutzer = p_prueflauf;
Prüfung auf fehlende oder ungültige Haupthistologie
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'ICM','fehlende oder ungültige Haupthistologie' from TUMOR t, PATIDS i where not exists (select HAUPT_NEBEN from HISTOLOGIE h , HISTOLOGIE_SCHLUESSEL s where h.FK_TUMORFK_PATIENT = t.FK_PATIENTPAT_ID and h.FK_TUMORTUMOR_ID = t.TUMOR_ID and h.HAUPT_NEBEN = 'H' and h.FK_HISTOLOGIE_SHIS = s.HIST_SCHLUESSEL and h.FK_HISTOLOGIE_SAUF = s.AUFLAGE) and t.FK_PATIENTPAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlende oder ungültige Hauptlokalisation
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'ICT','fehlende oder ungültige Hauptlokalisation' from TUMOR t, PATIDS i where not exists (select HAUPT_NEBEN from LOKALISATION l , LOKALISATION_SCHLUESSEL s where l.FK_TUMORFK_PATIENT = t.FK_PATIENTPAT_ID and l.FK_TUMORTUMOR_ID = t.TUMOR_ID and l.HAUPT_NEBEN = 'H' and l.FK_LOKALISATIONLOK = s.LOK_SCHLUESSEL and l.FK_LOKALISATIONAUF = s.AUFLAGE) and t.FK_PATIENTPAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültige Seitenangabe
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_TUMORFK_PATIENT, 'Diagnose', FK_TUMORTUMOR_ID, 'LATN', 'ungültige Seitenangabe: ' || SEITE from LOKALISATION l, PATIDS i where SEITE != 'O' and not exists (select CODE from MERKMAL m where m.MERKMAL = 'Seite' and m.CODE = l.SEITE) and l.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Mehrlingseigenschaft
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID, 'Diagnose', FK_TUMORTUMOR_ID, 'MEHRL','ungültiger Code für Mehrlingseigenschaft: ' || MEHRLING from GKR g, PATIDS i where MEHRLING is not null and MEHRLING not in ('2', '3', '4', '5', '6', '7', '8', '9', 'X', 'N') and g.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlende oder ungültige Angabe zu Mehrling
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, Pat_ID, 'Diagnose', Fk_TumorTumor_ID, 'MEHRL', 'fehlende oder ungültige Angabe zu Mehrling: ' || g.Mehrling FROM GKR g, Patids i WHERE nvl(g.Mehrling, 'X') not in ('J', 'N', 'X') AND g.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Meldetyp
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, PAT_ID, 'Diagnose', FK_TUMORTUMOR_ID, 'MTYP', 'ungültiger Code für Meldetyp: ' || nvl(g.MTYP, '(leer)') from GKR g, PATIDS i where upper(nvl(g.MTYP, 'X')) not in ('E', 'F', 'K', 'A', 'T') and g.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlenden Nachnamen
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'NAMG', 'Name fehlt' from PATIENT p, PATIDS i where NAME is null and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlende Angabe zur OKZ
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Kennung, Text) SELECT p_lauf_lfd, Pat_ID , 'OKZ', 'fehlende Angabe zur OKZ: ' || p.Fk_OrtstabelleOkz0 FROM Patient p, Patids i WHERE Fk_OrtstabelleOkz0 IS NULL AND p.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf fehlende Angabe zum Ort
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Kennung, Text) SELECT p_lauf_lfd, Pat_ID , 'ORT', 'fehlende Angabe zum Ort: ' || p.ORT FROM Patient p, Patids i WHERE Ort IS NULL AND p.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf PLZ
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Kennung, Text) SELECT p_lauf_lfd, Pat_ID , 'PLZ', 'fehlende Angabe zur PLZ: ' || p.PLZ FROM Patient p, Patids i WHERE PLZ IS NULL AND p.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Quelle der Todesursache
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'QTU', 'ungültiger Code für Quelle der Todesursachen: ' || QUELLE_TODESURSACHEN from PATIENT p, PATIDS i where nvl(QUELLE_TODESURSACHEN, 'X') not in ('T', 'O', 'X') and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültigen Code für durchgeführte Autopsie
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'SEK', 'ungültiger Code für durchgeführte Autopsie: ' || AUTOPSIE from PATIENT p, PATIDS i where nvl(AUTOPSIE, 'X') not in ('J', 'N', 'X') and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlendes oder falsches Geschlecht
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'SEXG', 'fehlendes oder falsches Geschlecht: ' || GESCHLECHT from PATIENT p, PATIDS i where (GESCHLECHT is null or GESCHLECHT not in ('W', 'M')) and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf unwahrscheinliche Kombination Histologie mit Geschlecht
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, h.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'SEXH', 'Kombination Histologie ' || h.FK_HISTOLOGIE_SHIS || ' mit Geschlecht ' || pa.GESCHLECHT || ' ist unwahrscheinlich (IARC)' from HISTOLOGIE h, PATIDS p, PATIENT pa where p.benutzer = p_prueflauf and pa.PAT_ID = p.PATID and pa.PAT_ID = h.FK_TUMORFK_PATIENT and ( pa.GESCHLECHT = 'M' and ( substr(h.FK_HISTOLOGIE_SHIS, 1, 4) in ( '8380', '8381', '8441', '8460', '8461', '8462', '8470', '8471', '8472', '8473', '8600', '8601', '8602', '8610', '8620', '8621', '8622', '8623', '8632', '8660', '8670', '8931', '9000', '9013', '9014', '9015', '9090', '9091' ) or h.FK_HISTOLOGIE_SHIS = '90843' ) or pa.GESCHLECHT = 'W' and substr(h.FK_HISTOLOGIE_SHIS, 1, 4) in ('9061' , '9062', '9063', '9102') );
Prüfung auf ungültige Kombination Lokalisation mit Geschlecht
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, l.FK_TUMORFK_PATIENT, 'Diagnose', l.FK_TUMORTUMOR_ID, 'SEXL', 'Kombination Lokalisation ' || l.FK_LOKALISATIONLOK || ' mit Geschlecht ' || pa.GESCHLECHT || ' ist unmöglich (IARC)' from LOKALISATION l, PATIDS p, PATIENT pa where p.benutzer = p_prueflauf and pa.PAT_ID = p.PATID and pa.PAT_ID = l.FK_TUMORFK_PATIENT and( pa.GESCHLECHT = 'M' and ( substr(l.FK_LOKALISATIONLOK, 1, 3) in ('174' , '179', '180', '181', '182', '183', '184') and l.FK_LOKALISATIONAUF = '3' or substr(l.FK_LOKALISATIONLOK, 1, 2) in ('51' , '52', '53', '54', '55', '56', '57', '58') and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) or pa.GESCHLECHT = 'W' and ( substr(l.FK_LOKALISATIONLOK, 1, 3) in ('175' , '185', '186', '187') and l.FK_LOKALISATIONAUF = '3' or substr(l.FK_LOKALISATIONLOK, 1, 2) in ('60' , '61', '62', '63') and decode( l.FK_LOKALISATIONAUF, '5', '4', l.FK_LOKALISATIONAUF) = '4' ) );
Prüfung auf ungültiges Klassifikationskürzel
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_TUMORFK_PATIENT, decode(HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf'), decode(HERKUNFT, 'D', FK_TUMORTUMOR_ID, 'V', s.LFDNR), 'STA_VER', 'ungültiges Klassifikationskürzel für: ' || K.KLASSIFIKATION_NAM from SONSTIGE_KLASSIFIK s, KLASSIFIKATION k, PATIDS i where k.KLASSIFIKATION_ID = s.FK_STADIENEINTEFK and k.KUERZEL not in ( 'R', 'B', 'C', 'F', 'M', 'D', 'S' ) and s.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültiges Stadium
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_TUMORFK_PATIENT, decode(HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf'), decode(HERKUNFT, 'D', FK_TUMORTUMOR_ID, 'V', s.LFDNR), 'STADIUM', 'ungültiges Stadium ' || s.FK_STADIENEINTESTA || ' für: ' || K.KLASSIFIKATION_NAM from SONSTIGE_KLASSIFIK s, KLASSIFIKATION k, PATIDS i where k.KLASSIFIKATION_ID = s.FK_STADIENEINTEFK and not exists (select STADIUM from STADIENEINTEILUNG e where e.FK_KLASSIFIKATIKLA = s.FK_STADIENEINTEFK and e.STADIUM = s.FK_STADIENEINTESTA) and s.FK_TUMORFK_PATIENT = i.PATID and i.benutzer = p_prueflauf;
Prüfung, ob bei vorhandenem Sterbedatum ein Abschluß eingetragen
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'STDA/ABSCHLUSS', 'Hinweis: kein Abschluß mit Abschlußgrund Tod für verstorbenen Patienten eingetragen' from PATIENT p, PATIDS i where STERBEDATUM is not null and not exists ( select GRUND from ABSCHLUSS a where a.FK_PATIENTPAT_ID = p.PAT_ID and GRUND = 'T' ) and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Diagnosedatum nach Sterbedatum
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, DATENART, LFDNR, KENNUNG, TEXT) select p_lauf_lfd, FK_PATIENTPAT_ID, 'Diagnose', t.TUMOR_ID, 'STDA/DIDA','Warnung: Diagnosedatum ' || to_char(DIAGNOSEDATUM, 'dd.mm.yyyy') || ' nach Sterbedatum ' || to_char(STERBEDATUM, 'dd.mm.yyyy') from PATIENT p, TUMOR t, PATIDS i where t.FK_PATIENTPAT_ID = p.PAT_ID and t.DIAGNOSEDATUM > p.STERBEDATUM and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Widerspruch zwischen Dignität in TNM
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, h.FK_TUMORFK_PATIENT, decode(h.HERKUNFT, 'D', 'Diagnose', 'V', 'Verlauf', '(unbekannt)'), decode(h.HERKUNFT, 'D', h.FK_TUMORTUMOR_ID, 'V', h.FK_VERLAUFLFDNR, h.FK_TUMORTUMOR_ID), 'TNMH', 'Kombination Histologie ' || h.FK_HISTOLOGIE_SHIS || ' mit TNM T-Kategorie oder M-Kategorie (' || t.T || ' bzw. ' || t.Met || ' ist unwahrscheinlich' FROM HISTOLOGIE h, PATIDS p, TNM t WHERE p.benutzer = p_prueflauf AND h.Fk_TumorFk_Patient = p.PatID AND t.Fk_TumorFk_Patient = p.PatID AND h.Fk_TumorTumor_ID = t.Fk_TumorTumor_ID AND h.Diagnose = 'J' AND t.R_Symbol IS NULL AND ( ( lower(t.T) IN ('is', 'a') AND substr(h.Fk_Histologie_SHis, 5,1) != '2') OR ( substr(t.T, 1, 1) IN ('1', '2', '3', '4') AND substr(h.Fk_Histologie_SHis, 5,1) != '3') OR ( substr(t.MET, 1, 1) IN ('0', 'X') AND substr(h.Fk_Histologie_SHis, 5,1) = '6') );
Prüfung auf ungültigen Code für Tod tumorbedingt
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'TURS', 'ungültiger Code für Tod tumorbedingt: ' || TUMORTOD from PATIENT p, PATIDS i where nvl(TUMORTOD, 'X') not in ('J', 'N', 'T', 'P', 'L', 'M', 'B', 'E', 'F', 'X') and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf ungültigen Code für Unterrichtung über Unterrichtung über Meldung
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) select p_lauf_lfd, PAT_ID, 'Diagnose', FK_TUMORTUMOR_ID, 'UTR', 'ungültiger Code für Unterrichtung über Meldung: ' || nvl(g.MELDE_UNTERRICHTUNG, '(leer)') from GKR g, PATIDS i where nvl(MELDE_UNTERRICHTUNG, 'X') not in ('J', 'N', 'V') and g.PAT_ID = i.PATID and i.benutzer = p_prueflauf and g.DATUM_DER_INFORMATION >= to_date('01.01.2000', 'dd.mm.yyyy');
Prüfung auf Unterrichtung über Meldung (BY)
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, Pat_ID,'Diagnose', Fk_TumorTumor_ID, 'UTRBY', 'fehlende oder ungültige Angabe zur Unterrichtung: ' || nvl(g.MELDE_UNTERRICHTUNG, '(leer)') FROM GKR g, Patids i WHERE nvl(g.Melde_Unterrichtung, 'X') not in ('J', 'N', 'E') AND g.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;
Prüfung auf fehlenden Vornamen
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'VNAG', 'Vorname fehlt' from PATIENT p, PATIDS i where VORNAME is null and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf Abkürzungen in Vornamen
insert into pruef_ergebnis( PRUEF_LAUF, PAT_ID, KENNUNG, TEXT) select p_lauf_lfd, PAT_ID , 'VNAGP', 'Vorname mit Abkürzungen ' || p.Vorname from PATIENT p, PATIDS i where instr(VORNAME, '.') > 0 and p.PAT_ID = i.PATID and i.benutzer = p_prueflauf;
Prüfung auf fehlende oder ungültige Angabe zu Widerspruch
INSERT INTO Pruef_ergebnis( Pruef_Lauf, Pat_ID, Datenart, LfdNr, Kennung, Text) SELECT p_lauf_lfd, Pat_ID, 'Diagnose', Fk_TumorTumor_ID, 'WSP', 'fehlende oder ungültige Angabe zu Widerspruch: ' || g.Widerspruch FROM GKR g, Patids i WHERE nvl(g.Widerspruch, 'X') not in ('J', 'N') AND g.Pat_ID = i.PatID AND i.Benutzer = p_prueflauf;