patched C::R::Misc::get_lab_test_results_for_lab_section() to return 0 on empty @lab_test_ids to avoid empty_list error further down; replaced SOAP::Lite with SOAP::WSDL PDS:: classes in C::R::PatientDemographics; patched error in lantronix.pl
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
changed C::Roles::Misc::get_blood_tube_type() method of reading yaml file; added outreach practice warning to flash messages after registering new GP practice
moved C::Outreach::get_blood_tube_type() to C::Roles::Misc and moved tube type definitions to yaml file; changed C::A::C::OutreachPractices to Moose class to load C::Roles::Misc; added sort_by to M::User::get_user_locations()