Verzeichnis der Prüfungen für den Export an Epidemiologische Register

KennungBeschreibung
ALTHPrüfung auf unwahrscheinliche Kombination Histologie mit Alter
ALTHLPrüfung auf ungültige Kombination Lokalisation und/oder Histologie mit Alter
AUTOP_ANLASSPrüfung auf Diagnoseanlaß autoptisch ohne Todesdatum
AUTOP_STDAPrüfung auf Autopsie durchgeführt ohne Todesdatum
BKLASSPrüfung auf Berufsklassifikation
CHATPrüfung auf ungültigen Code für Therapiecharakter
CHATPrüfung auf ungültigen Code für Therapiecharakter in Behandlungsdaten / Verlaufsdaten
DATI/DIDAPrüfung auf Diagnosedatum nach Datum_Der_Information
DIDAPrüfung auf nicht gefülltes Diagnosedatum
DIDA_U16Diagnosedatum kleiner 16 Jahre
DIDAALTPrüfung auf Diagnosedatum vor 1.1.1998
DS_AUTOP_STDAPrüfung auf autoptische Diagnosesicherung
DS_NHIST_HISTOPrüfung auf nicht histologische Diagnosesicherung mit Eintrag einer (bösartigen) Histologie
DSICHPrüfung auf ungültigen Eintrag in Diagnosesicherung
GEDAPrüfung auf fehlendes Geburtsdatum
GEDA/DIDAPrüfung auf Diagnosedatum vor Geburtsdatum
GKREINZUGPrüfung auf Einzugsbereich des GKR
GRADINGPrüfung auf ungültiges Grading
HILO1Prüfung auf ungültige Lokalisation für Histologie
HILO2Prüfung auf nicht gültige Lokalisation für Histologie
HISTGNTPrüfung auf gutartige Histologie oder Nicht-Tumorhistologie
ICD10Prüfung auf fehlende oder ungültige, fehlende oder gutartige ICD-10
ICD9Prüfung auf ungültige oder gutartige ICD-9
ICMPrüfung auf fehlende oder ungültige Haupthistologie
ICTPrüfung auf fehlende oder ungültige Hauptlokalisation
LATNPrüfung auf ungültige Seitenangabe
MEHRLPrüfung auf ungültigen Code für Mehrlingseigenschaft
MEHRL_BYPrüfung auf fehlende oder ungültige Angabe zu Mehrling
MTYPPrüfung auf ungültigen Code für Meldetyp
NAMGPrüfung auf fehlenden Nachnamen
OKZPrüfung auf fehlende Angabe zur OKZ
ORTPrüfung auf fehlende Angabe zum Ort
PLZPrüfung auf PLZ
QTUPrüfung auf ungültigen Code für Quelle der Todesursache
SEKPrüfung auf ungültigen Code für durchgeführte Autopsie
SEXGPrüfung auf fehlendes oder falsches Geschlecht
SEXHPrüfung auf unwahrscheinliche Kombination Histologie mit Geschlecht
SEXLPrüfung auf ungültige Kombination Lokalisation mit Geschlecht
STA_VERPrüfung auf ungültiges Klassifikationskürzel
STADIUMPrüfung auf ungültiges Stadium
STDA/ABSCHLUSSPrüfung, ob bei vorhandenem Sterbedatum ein Abschluß eingetragen
STDA/DIDAPrüfung auf Diagnosedatum nach Sterbedatum
TNMHPrüfung auf Widerspruch zwischen Dignität in TNM
TURSPrüfung auf ungültigen Code für Tod tumorbedingt
UTRPrüfung auf ungültigen Code für Unterrichtung über Unterrichtung über Meldung
UTRBYPrüfung auf Unterrichtung über Meldung (BY)
VNAGPrüfung auf fehlenden Vornamen
VNAGPPrüfung auf Abkürzungen in Vornamen
WSPPrüfung auf fehlende oder ungültige Angabe zu Widerspruch

Prüfung ALTH

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 ALTHL

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 AUTOP_ANLASS

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 AUTOP_STDA

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 BKLASS

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 CHAT

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 CHAT

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 DATI/DIDA

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 DIDA

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;

Prüfung DIDA_U16

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 DIDAALT

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 DS_AUTOP_STDA

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 DS_NHIST_HISTO

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 DSICH

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 GEDA

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 GEDA/DIDA

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 GKREINZUG

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 GRADING

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 HILO1

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 HILO2

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 HISTGNT

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 ICD10

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 ICD9

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 ICM

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 ICT

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 LATN

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 MEHRL

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 MEHRL_BY

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 MTYP

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 NAMG

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 OKZ

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 ORT

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 PLZ

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 QTU

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 SEK

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 SEXG

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 SEXH

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 SEXL

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 STA_VER

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 STADIUM

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 STDA/ABSCHLUSS

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 STDA/DIDA

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 TNMH

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 TURS

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 UTR

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 UTRBY

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 VNAG

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 VNAGP

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 WSP

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;