referral_source autosuggest loads only active records for registrtaion and request edit functions; new column is_active on referral_sources table; refactored list_all_screen_tests table to show screen categories
new tables sample_types, lab_section_sample_type & specimen_sample_type; added sample-type data to lab sections and specimens configuration functions; replaced arg to ErrorHandler::set_errorhandler_args with L::Local::Config->instance, as used in QueryLog
moved request audit in screening function to optional & disabled it; moved set_querylog_args & set_errorhandler_args near top of cgiapp_prerun() so they take effect for login & session update handling
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
modified HMRN previous diagnoses list to only skip previous ICDO3 diagnoses if /3 or MGUS (not other /1 or /6); HMRN previous diagnosis list can retrieve records based on record id or patient.id; changed query_modifiers to an array instead of str in site/lab_number.tt; print report only highlights diagnosis if modified AFTER authorisation date
patched C::Report::preview_report() to handle Outreach requests; refactored some M::Outreach code into new M::Roles::Outreach role for sharing between reporting function and followup option editing