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
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
patched L:Dispatch to avoid error on undefined dispatch_path; moved L::Local::QueryLog dispatcher construction from _warn_handler() to BEGIN block to avoid re-creation per request; changed sql.log to Log::Dispatch::File::Rolling object; amended log_rotate.pl to process the new sql.log filenames; added new method ensure_warn_handler_capture() to L::Local::QueryLog for use with non-external fastcgi, where FCGI re-defines the warn handler set in L::L::Q so that sql statements go to Apache error log
replaced several calls to L::Local::find_home() with call to config instance; removed call to L::Local::Debug from lims_config.pl, as debug() uses config instance, which uses lims_config.pl; model classes get config from config instance instead of constructor passing it in LIMS::model(); general tidy-up