added USE_FILE_SESSIONS flag to C::R::RecordHandler::_format_report() for use in chart url if called via cron, to force file sessions instead of creating new db session
new_pnh_alert, juvenile_diagnosis_status_alert & chest_clinic_diagnosis_alert log sucessful emails to request_history; refactored some repeated code in ScriptHelpers
outreach charts don't plot unless 2 or more datasets; added find GP by practice function to outreach demographics; set permissions mode on all crons so svk revert on production doesn't revert to 644; set results summary to default open on report page - correctly this time
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