edits.seer.internal.rules.IF588.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of validation-edits-seer Show documentation
Show all versions of validation-edits-seer Show documentation
Java implemenation of the SEER edits.
The newest version!
<rule id="IF588" name="TNM Path T, SSF 3 Prostate (COC)" tag="N2271" java-path="lines.line" category="inter-field" depends="Behavior_Code_ICD-O-3,CS_Site-Specific_Factor_3,Histologic_Type_ICD-O-3,Primary_Site,TNM_Path_T,Type_of_Reporting_Source,Year_of_Diagnosis"> <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2016' || line.typeOfReportingSource == '7' || line.behaviorCodeIcdO3 == '0' || line.behaviorCodeIcdO3 == '1' || line.tnmPathT == null || line.tnmPathT == '88' || line.csSiteSpecificFactor3 == null) return true //Skip condition 7 if (line.tnmEditionNumber != '07' && line.tnmEditionNumber != 'U7') return true //Edit is skipped if case is not prostate (skip condition 4) String hist = line.histologicTypeIcdO3 if (line.primarySite != 'C619' || !((hist >= '8000' && hist <= '8110') || (hist >= '8140' && hist <= '8576') || (hist >= '8940' && hist <= '8950') || hist == '8980' || hist == '8981')) return true String ssf3 = line.csSiteSpecificFactor3 if (ssf3 == '000') return line.tnmPathT == '88' else if (ssf3 == '200' || ssf3 == '300' || ssf3 == '320' || ssf3 == '400') return line.tnmPathT == 'p2' else if (ssf3 == '210' || ssf3 == '330' || ssf3 == '402') return line.tnmPathT == 'p2A' else if (ssf3 == '220' || ssf3 == '340' || ssf3 == '404') return line.tnmPathT == 'p2B' else if (ssf3 == '230' || ssf3 == '350' || ssf3 == '406') return line.tnmPathT == 'p2C' else if (ssf3 == '495') return line.tnmPathT == 'p3' else if (ssf3 == '415' || ssf3 == '420' || ssf3 == '430' || ssf3 == '480' || ssf3 == '482' || ssf3 == '483') return line.tnmPathT == 'p3A' else if (ssf3 == '485' || ssf3 == '490') return line.tnmPathT == 'p3B' else if (ssf3 == '500' || ssf3 == '510' || ssf3 == '520' || ssf3 == '600' || ssf3 == '750') return line.tnmPathT == 'p4' else if (ssf3 == '950') return line.tnmPathT == 'p0' else if (ssf3 == '990' || ssf3 == '985') return line.tnmPathT == 'pX' else if (ssf3 == '960' || ssf3 == '970' || ssf3 == '980') return Functions.matches(line.tnmPathT, /^pX|p3[AB]?|p4$/) return true]]></expression> <message>TNM Path T and SSF 3 conflict for Prostate</message> <description><![CDATA[Purpose: This edit verifies that TNM Path T is coded consistently with CS SSF 3, Pathologic Extension, for Prostate. This edit is skipped if any of the following conditions are true: 1. Year of Date of Diagnosis is less than 2016, blank (unknown), or invalid 2. Type of Reporting Source = 7 (Death Certificate Only) 3. Behavior Code ICD-O-3 = 0 (benign) or 1 (borderline) 4. Primary site/histology group is not 041 (Prostate) 5. TNM Path T is blank or 88 6. CS SSF 3 is blank 7. TNM Edition Number is not = 07, U7 For Prostate (Site: C619 Histology 8000-8110,8140-8576,8940-8950,8980-8981), SSF 3: A. If SSF 3 = 000 (In situ, intraepithelial, noninvasive) then TNM Path T must = 88 (not eligible for staging) B. If SSF 3 = 200 (Involves one lobe/side, NOS), 300 (Localized NOS), 320 (Invasion into but not beyond prostatic capsule), 400 (No extracapsular extension but specific margins involved) then TNM Path T must = p2 (Organ confined) C. If SSF 3 = 210 (Involves one half of one lobe/side or less), 330 (Invasion into but not beyond prostatic capsule plus involves one half of one lobe/side or less), 402 (No extracapsular extension but specific margins involved plus involves one half of one lobe/side or less) then TNM Path T must = p2A (unilateral, one-half of one side or less) D. If SSF 3 = 220 (Involves more than one half of one lobe/side but not both lobes/sides), 340 (Invasion into but not beyond prostatic capsule plus involves more than one half of one lobe/side but not both lobes/sides), 404 (No extracapsular extension but specific margins involved plus involves more than one half of one lobe/side but not both lobes/sides) then TNM Path T must = p2B (unilateral, involving more than one-half of side but not both sides E. If SSF 3 = 230 (Involves both lobes/sides), 350 (Invasion into but not beyond prostatic capsule plus involves both lobes/sides), 406 (No extracapsular extension but specific margins involved plus involves both lobes/sides) then TNM Path T must = p2C (Bilateral disease) F. If SSF 3 = 495 (Stated as pT3 NOS with no other information on pathologic extension) then TNM Path T must = p3 (tumor extends through prostate capsule) G. If SSF 3 = 415 (Extension to periprostatic tissue),420 (unilateral extracapsular extension), 430 (bilateral extracapsular extension), 480 (extracapsular extension and specific margins involved), 482 (microscopic bladder neck involvement), 483 (stated as pT3a with no other information on pathologic extension) then TNM Path T must = p3A (Extraprostatic extension or microscopic invasion of bladder neck) H. If SSF 3 = 485 (extension to seminal vesicles), 490 (extension to seminal vesicles plus microscopic bladder neck involvement) then TNM Path T must = p3B (Seminal vesicle invasion) I. If SSF 3 = 500 (extension to or fixation to adjacent structures other than seminal vesicles), 510 (extraprostatic urethra), 520 (levator muscle, skeletal muscle, ureter), 600 (extension to or fixation to pelvic wall or pelvic bone), 700 (further contiguous extension), 750 (stated as pT4 with no other information on pathologic extension) then TNM Path T must = p4 (Tumor is fixed or invades adjacent structures other than seminal vesicles) J. If SSF 3 = 950 (no evidence of primary tumor) then TNM Path T must = p0 K. If SSF 3 = 990 (Prostatectomy done, extension not stated), 985 (Autopsy performed but extension unknown) then TNM Path T must = pX L. If SSF 3 = 960 (Unknown if prostatectomy done), 970 (no prostatectomy done within first course of treatment), 980 (prostatectomy performed but not considered first course of treatment) then TNM Path T must = pX, p3, p3A, p3B, p4 or blank]]></description> <history> <event version="SE16-015-01" user="kirbyk" date="2016-05-23" ref="67411">Edit created.</event> <event version="SE16-016-01" user="kirbyk" date="2016-11-30" ref="67552">Added valid codes for SSF3 = 960, 970, 980.</event> <event version="SE16-016-01" user="kirbyk" date="2017-01-17" ref="67615">Added skip condition for TNM Edition Number.</event> <event version="SE16-016-08" user="depryf" date="2017-11-22" ref="67674">Edit syntax updated to allow pre-compilation optimization; no change in behavior.</event> <event version="SE18-018-02" user="schadega" date="2018-05-18" ref="67743">Name change.</event> <event version="SE18-020-01" user="depryf" date="2020-02-04" ref="68281">Changed property names to align with NAACCR XML IDs.</event> </history> </rule>