patched C::Search::do_search() & M::Request::get_request_id() to capture undef request_id error - occured when request_specimen entry was empty (should be impossible)
changed method of calculating outstanding tests in C::R::RecordHandler::_get_outstanding_tests() to avoid using format_raw_lab_test_data() which triggered error in C::Screen::_load_initial_screen_data() which didn't load C::R::ResultHandler where format_raw_lab_test_data() lives - derive data directly from raw_lab_test_data now
consolidated separate get_ontstanding_tests logic into single method call from get_single_request_data(); guest users see 'has lab tests pending' on summary page
moved _get_outstanding_tests() from C::Report to C::R::RecordHandler for sharing with printing and displaying report; moved all additional comments, errors, etc to common section at foot of body of printed report
outreach notification mods - callback for template to extract GP surname, set_notifications() in M::Outreach::get_overdue_packs() throws error if %maps undef; reworded cron/outreach_clinic_return.tt
completed outreach overdue pack notification function; moved logic to skip if notification already sent from template to model; separated outreach worklists from other worklists; switched off PDS lookup for test scripts; patched validation_profiles/admin.t consistent with change to username validation