new screen_category table; moved screens 'type' col to category_id; modified all screening terms & screening tests admin functions to accomodate new screen_category table; removed ajax validation from screen description & lab test field_label as these use 2 & 3-col unique keys so can't be validated by AJAX; email reports function uses users secure email address as sender; modifed portal_access function to supply SHA1 hash of current date - so failed login not sent back to portal page without explanation; modified mail_reports.pl to use item names instead of table id accessors
added hmrn.patient_post_code to hold value at diagnosis (in case it changes as Outreach patient); added function to display & edit hmrn post-code at diagnosis
HMRN treatment validation checks end_date not before start_date; protected Utils::to_datetime_using_datecalc() DT object creation with eval in case Decode_Date_EU fails eg if using validation FV_and()