print report function calculates composite immunohistochemistry p21/p53 result; replaced M::Request::get_previous_diagnosis_count() with get_previous_diagnoses() to supply data instead of just count, replacing redundant previous_diagnosis_data from C::Report::load(); printed reports now display 'amended report' details and highlights changed diagnosis; QueryLog creates separate logfiles for dev server user, to avoid lack of write permissions if files opened by Apache user & also to avoid polluting production logs with dev data
brought some outreach css declarations into print.css for outreach reports in print run; reduced width of outreach chart - too wide for printing; text wrapped self->dump_html in test print pdf function - long lines affect formatting in wkhtmltopdf
added format_firstname callback in templates to enable user-configurable special formatting to first_name - uses format_first_name sub in render_view + format_firstname.yml; changed user_location.region_code to varchar(5) to allow longer parent organisation codes
patched C::PrintRun::_do_print() and C::Roles::RecordHandler::format_print_record_request_data() and ::format_report() to handle outreach templates in print_run request; some minor tt syntax fixes
modified C::Report to handle Outreach cases; prevented redirect to root url from C::Report for Outreach cases if record locked; more Outreach lab_test & demographics functions
local changes for Bristol update: emailed messages contain test notice only if not in production; unreported requests worklist duration taken from config settings; config settings made available to Model classes; moved report output formatting to local template if not RR8
fixed failure to load images when report rendered as PDF - required CGISESSID param passing, either in url or cookie, HTML::HTMLDOC doesn't support cookie param (though HTMLDOC binary does), so set CGISESSID as url 'get' param