exempted Outreach report from requesting additional tests based on diagnosis; modified M::R::ScreenUpdate::do_auto_screen() to add lab test details if configured for screening term
moved auto-generated specimen-associated lab-tests function from M::Request::new_request to own method in M::R::LabTestUpdate for sharing between new request and specimen code update methods
patched ScriptHelpers::send_mail() to accept recipient in email address format; patched HMRN treatment data validation to exempt default date from chronological order test; modifcations to requests_and_reports.pl
MAJOR CHANGES: search form uses jQuery watermark instead of dd-mm-yyyy display - changed date-field validation to accommodate; moved do_new_lab_test() method out of M::Role::ScreenUpdate to new M::Role::LabTestUpdate to share function with auto-requesting tests at diagnosis/authorissation; changed 'teaching' field to radio button in report page and changed handling of report_option fields in M::Roles::ReportUpdate::do_additional_options() - all request_options were being cleared during report stage; added updated_at timestamp field in M::Roles::ReportUpdate::do_request_report() to any unchanged request_report object to trigger mail_report.pl on authorised cases - were being missed as updated_at col was not being modified
changed procedure for auto-requesting of new tests at report/authorisation stage - only requests new tests at report stage, or if diagnosis changed at authorisation or later
made all fields read-only/disabled in results page if record is locked; patched Local::Search::generate_query() to skip 'date_extend' field - was causing errors when submitted without date fields; added NHS number to outreach worklists
patched ScriptHelpers::ftp_file() to return ftp->message() only if put command failed, not as method return value, as message() gets replaced by output of quit(); patched ppm_and_results.pl to set unknown referrer value to empty
patched cgiapp_prerun to accept skip_redirect flag created during reset password using emailed link, so destination=change_password happens without re-direct; changed M::Roles::ResultsUpdate::history_params attr from lazy_build to std method - was not appropriate to have lazy_build & 'clear' for method called from within loop