edits.seer.internal.rules.DateFollowUpEdit.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="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>