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

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

There is a newer version: 024-13
Show newest version
        <rule id="DateFollowUpEdit" name="Date of Last Contact (NAACCR DATEEDIT)" tag="N0022" java-path="lines.line" category="inter-field" depends="Day_of_Last_Contact,Month_of_Last_Contact,Year_of_Last_Contact">
            <expression><![CDATA[Integer year = Functions.asInt(line.dateOfLastContactYear)
Integer month = Functions.asInt(line.dateOfLastContactMonth)
Integer day = Functions.asInt(line.dateOfLastContactDay)

Integer yearCur  = Functions.getCurrentYear()
Integer monthCur = Functions.getCurrentMonth()
Integer dayCur = Functions.getCurrentDay()

if (line.dateOfLastContactYear == null)
    return (line.dateOfLastContactMonth == null && line.dateOfLastContactDay == null)

if ((line.dateOfLastContactMonth == null && line.dateOfLastContactDay != null) || (month > 12 || (line.dateOfLastContactMonth != null && month < 1)))
    return false

if (!Functions.between(year, 1930, yearCur))
    return false

if (line.dateOfLastContactMonth == null) //by now year fits and day is null if month is null
    return true

if (year == yearCur && month > monthCur)
    return false

if (line.dateOfLastContactDay == null) //by now year and month fit
    return true

if (year == yearCur && month == monthCur && day > dayCur)
    return false

 Calendar cal = new GregorianCalendar(year, month - 1, 1)
 return cal != null && day <= cal.getActualMaximum(Calendar.DAY_OF_MONTH)]]></expression>
            <message>Date of Last Contact is not valid.</message>
            <description><![CDATA[The Date of Follow-up checks are performed in this order:

  A)  If the year is blank, month and day must also be blank.

  B)  If the month is blank, the day must be blank.

  C)  If day of Follow-up is blank, the year of Follow-up and
      month of Follow-up can not be greater than the current system
      year/month.

  D)  Year of Follow-up must be between 1930 and the current system year.

  E)  If day is known, then entire Date of Follow-up is verified.  The
      date must be a valid date (leap years checked) and must be less than
      or equal to the current system date.]]></description>
            <history>
                <event version="SE11-001-22" user="greend" date="2008-01-21">Edit now uses Day of Last Contact.</event>
                <event version="SE12-002-01" user="murphyr" date="2009-12-03">9 filled dates no longer allowed.</event>
                <event version="SE16-015-01" user="kirbyk" date="2016-06-20" ref="67425">Fixed documentation.</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="SE22-022-13" user="kirbyk" date="2022-10-18" ref="69045">Fixing edit behavior for future dates.</event>
            </history>
        </rule>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy