MAJOR CHANGE: moved sql_lib() from M::Base to new M::Role::Query; moved all M::R::QueryFormatter methods into M::R::Query; removed sql_lib() from ScriptHelpers - using new M::Roles::Query method; removed lims_dbix() from M::Base - now loaded via M::Role::DBIxSimple on demand; moved get_sql_with_constraint() from M::R::DBIxSimple to M::R::Query; method gets dbh from lims_db not lims_dbix in M::LabSection::update_lab_sections() & M::Specimen::update_specimens(); added elements() to Local::QueryLibrary
excluded exempt nhs number categories from M::Audit::nhs_number_supplied(); changed M::R::DBIxSimple::constraint (Str) to ::constraints(Array) to handle multiple constraints; included a skip list in mail_reports.pl; placed constraints list in forms in toggleviw container
adapted M::Chart::get_param_monitoring_data() to accept arrayref of presentation terms as well as scalar; added CSF context warning directly to record/body.tt
moved M::Chart::get_sql_with_constraint() and _get_search_constraints() to M::Roles::DBIxSimple for code shart between M::Chart and M::Audit; replaced C::Chart::_get_chart_title() function with __PACKAGE__constraint_title, set in M::Roles::DBIxSimple::_set_chart_constraints()