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
more patches to cron scripts - all date subtractions performed on a new time_now() object in ScriptHelpers::date_subtract(), NOT on the local object in case it's used again after the DT subtract() function performed
LIMS::Dispatch passes class_name to LIMS so authen->protected_runmodes can be skipped for certain classes; added hilis user to users table; completed mail_reports.pl functions with L::Model::update_request_dispatch_log()
moved some LIMS::Base methods out to LIMS::Role::Base; new cron mail_reports.pl - shares some methods from LIMS; exempted http requests to Chart methods from authentication to allow mail_reports.pl script to generate charts