edits.seer.internal.rules.IFN6165.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.
<rule id="IFN6165" name="EOD Regional Nodes, Melanoma Skin, Sentinel Lymph Nodes Positive, Regional Nodes Positive (SEER)" tag="N6165" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis"> <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7' || line.eodRegionalNodes == null) return true if (line.schemaId == null || line.schemaId != '00470') return true if (['000','300'].contains(line.eodRegionalNodes)) { if (line.sentinelLymphNodesPositive != null && !['00','98','99'].contains(line.sentinelLymphNodesPositive)) return false if (line.regionalNodesPositive != null && !['00','98','99'].contains(line.regionalNodesPositive)) return false } else if (line.eodRegionalNodes == '100') { if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[01]|9[5789]$/)) return false if (line.regionalNodesPositive != null && !['01','95','97'].contains(line.regionalNodesPositive)) return false } else if (['200','350','500'].contains(line.eodRegionalNodes)) { if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[01]|9[5789]$/)) return false if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[01]|9[5789]$/)) return false } else if (line.eodRegionalNodes == '400') { if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[0-3]|9[5789]$/)) return false if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[23]$/)) return false } else if (['450','550'].contains(line.eodRegionalNodes)) { if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^0[0-3]|9[5789]$/)) return false if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[0-3]|9[5789]$/)) return false } else if (line.eodRegionalNodes == '600') { if (line.sentinelLymphNodesPositive != null && !Functions.matches(line.sentinelLymphNodesPositive, /^[0-8]\d|9[05789]$/)) return false if (line.regionalNodesPositive != null && !Functions.matches(line.regionalNodesPositive, /^0[4-9]|[1-8]\d|9[057]$/)) return false } else if (line.eodRegionalNodes == '999') { if (line.sentinelLymphNodesPositive != null && !['98','99'].contains(line.sentinelLymphNodesPositive)) return false if (line.regionalNodesPositive != null && !['98','99'].contains(line.regionalNodesPositive)) return false } if (Functions.matches(line.sentinelLymphNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/) || Functions.matches(line.regionalNodesPositive, /^0[1-9]|[1-8]\d|9[0-7]$/)) return line.eodRegionalNodes != '000' return true]]></expression> <message>EOD Regional Nodes conflicts with Sentinel Lymph Nodes Positive and/or Regional Nodes Positive</message> <description><![CDATA[This edit verifies that EOD Regional Nodes is coded consistently with Sentinel Lymph Nodes Positive and Regional Nodes Positive for Schema ID 00470, Melanoma of Skin 1. The edit is skipped for the following conditions: a. Date of Diagnosis before 2021, blank (unknown), or invalid. b. Schema ID is blank or not 00470 d. EOD Regional Nodes is blank e. Type of Reporting Source is 7 (Death Certificate Only) 2. If EOD Regional Nodes is 000 (no lymph node involvement) or 300 (no clinically occult or detected nodes), then Sentinel Lymph Nodes Positive if not blank must = 00, 98, or 99 and Regional Nodes Positive if not blank must = 00, 98, or 99 3. If EOD Regional Nodes = 100 (1 clinically occult node) then Sentinel Lymph Node Positive if not blank must = 00, 01, 95, 97, 98, or 99 and Regional Nodes Positive if not blank must = 01 or 95 or 97 4. If EOD Regional Nodes = 200 (1 clinically detected node), 350 (1 involved node unknown how detected), or 500 (1 clinically occult or detected node) then Sentinel Lymph Node Positive if not blank must = 00, 01, 95, 97, 98, or 99 and Regional Nodes Positive if not blank must = 00, 01, 95, 97, 98, or 99 5. If EOD Regional Nodes = 400 (2 or 3 clinically occult nodes) then Sentinel Lymph Node Positive if not blank must = 00, 01-03, 95, 97, 98, or 99 and Regional Nodes Positive if not blank must = 02-03 6. If EOD Regional Nodes = 450 (2 or 3 involved nodes with 1 or greater clinically detected) or 550 (2 or 3 nodes unknown how detected) then Sentinel Lymph Node Positive if not blank must = 00, 01-03, 95,97, 98, or 99 and Regional Nodes Positive if not blank must = 00, 01-03,95,97, 98, or 99 7. If EOD Regional Nodes = 600 (4 or more clinically occult nodes), then Sentinel Lymph Node Positive if not blank must = 00, 01-90, 95, 97, 98, or 99 and Regional Nodes Positive if not blank must = 04-90, 95, or 97 8.If EOD Regional Nodes = 999 (unknown regional lymph nodes), then Sentinel Nodes Positive if not blank must = 98 or 99 and Regional Nodes Positive if not blank must = 98 or 99 10. If Sentinel Lymph Nodes Positive = 01-97 or Regional Nodes Positive = 01-97, then EOD Regional Nodes must not = 000]]></description> <history> <event version="SE21-021-04" user="beverung" date="2021-04-28" ref="68607">Edit created.</event> <event version="SE23-023-01" user="cooki" date="2023-03-07" ref="69186">Added and removed codes for Node fields.</event> </history> </rule>