All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edits.seer.internal.rules.IFN6161.xml Maven / Gradle / Ivy

The newest version!
        <rule id="IFN6161" name="Mets at DX, Lung, EOD Mets (SEER)" tag="N6161" java-path="lines.line" category="inter-field" depends="Year_of_Diagnosis">
            <expression><![CDATA[if (line.dateOfDiagnosisYear == null || line.dateOfDiagnosisYear < '2021' || line.typeOfReportingSource == '7')
    return true
if (line.eodMets == null || line.schemaId == null || line.schemaId != '00360')
    return true
if (line.metsAtDxBone == null && line.metsAtDxBrain == null && line.metsAtDxDistantLn == null && line.metsAtDxLiver == null && line.metsAtDxLung == null && line.metsAtDxOther == null)
    return true

boolean metsAtDxBoneCondition = line.metsAtDxBone == null || ['0','9'].contains(line.metsAtDxBone)
boolean metsAtDxBrainCondition = line.metsAtDxBrain == null || ['0','9'].contains(line.metsAtDxBrain)
boolean metsAtDxDistantLnCondition = line.metsAtDxDistantLn == null || ['0','9'].contains(line.metsAtDxDistantLn)
boolean metsAtDxLiverCondition = line.metsAtDxLiver == null || ['0','9'].contains(line.metsAtDxLiver)
boolean metsAtDxLungCondition = line.metsAtDxLung == null || ['0','9'].contains(line.metsAtDxLung)
boolean metsAtDxOtherCondition = line.metsAtDxOther == null || ['0','9'].contains(line.metsAtDxOther)

if (line.metsAtDxLung == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && metsAtDxOtherCondition && line.eodMets != '10')
    return false
if (line.metsAtDxOther == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxDistantLnCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && !['10','30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1' && metsAtDxBoneCondition && metsAtDxBrainCondition && metsAtDxLiverCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1')  && (metsAtDxOtherCondition || line.metsAtDxOther == '1')  && !['20','50'].contains(line.eodMets))
    return false

int count = 0
if (line.metsAtDxBone == '1')
    count++
if (line.metsAtDxBrain == '1')
    count++
if (line.metsAtDxLiver == '1')
    count++
if (count == 1 && metsAtDxDistantLnCondition && (metsAtDxLungCondition || line.metsAtDxLung == '1') && (metsAtDxOtherCondition || line.metsAtDxOther == '1') && !['30','50'].contains(line.eodMets))
    return false
if (line.metsAtDxDistantLn == '1')
    count++
if ((count > 1 || line.metsAtDxOther == '2') && line.eodMets != '50')
    return false

if (line.eodMets == '20' && line.metsAtDxDistantLn != '1')
    return false
return true]]></expression>
            <message>Mets at DX fields conflict with EOD Mets for Lung</message>
            <description><![CDATA[This edit verifies that Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN, Mets at DX-
Liver,
Mets at DX-Lung, and Mets at DX-Other are coded consistently with EOD Mets for Schema ID
00360,
Lung.

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 00360
    c. Mets at DX-Bone, Mets at DX-Brain, Mets at DX-Distant LN,
        Mets at DX-Liver, Mets at DX-Lung, and Mets at DX-Other are all blank
    d. EOD Mets is blank
    e. Type of Reporting Source is 7 (Death Certificate Only)

2. If Mets at DX-Lung = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, and Mets at DX-Other =
       0,9, or fields are empty),
      then EOD Mets must = 10

3. If Mets at DX-Other = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
      Mets at DX-Distant LN = 0,9, Mets at DX-Liver = 0,9, and Mets at DX-Lung =
        0,1,9, or fields are empty),
      then EOD Mets must = 10, 30, or 50

4. If Mets at DX-Distant LN = 1 (and Mets at DX-Bone = 0,9, Mets at DX-Brain = 0,9,
       Mets at DX-Liver = 0,9, Mets at DX-Lung = 0,1,9,and Mets at DX-Other = 0,1,9,
      or fields are empty),
      then EOD Mets must = 20 or 50

5. If only one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Liver=1
    (and Mets at DX-Distant LN = 0,9, Mets at DX-Lung = 0,1,9, and Mets at DX-Other
     = 0,1,9, or fields are empty)
       then EOD Mets must = 30 or 50

6. If more than one of Mets at DX-Bone=1, Mets at DX-Brain=1, Mets at DX-Distant LN,
     or Mets at DX-Liver =1, or Mets at DX-Other = 2
       then EOD Mets must = 50

7. If EOD Mets = 20 (Distant lymph nodes)
     then Mets at DX-Distant LN must= 1]]></description>
            <history>
                <event version="SE21-021-04" user="beverung" date="2021-04-14" ref="68608">Edit created.</event>
                <event version="SE22-022-08" user="secristc" date="2022-06-23" ref="69011">Updated error message.</event>
            </history>
        </rule>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy