/**
  * Load concept list definitions from the MCL database in enhanced mode.
  * @return Array of ConceptSearchSource objects
  */
 public function loadConceptListDefinitions($cxn_mcl, ConceptSearchSourceCollection $cssc)
 {
     // Load concept list definitions
     $arr_list = array();
     $sql_list = 'select concept_list_id, list_name from concept_list where active = 1 order by list_name';
     if (!($rsc_list = mysql_query($sql_list, $cxn_mcl))) {
         trigger_error('Could not load concept list definitions: ' . mysql_error($cxn_mcl), E_USER_ERROR);
     }
     if ($this->debug) {
         echo '<p><b>Loading concept list definitions:</b><br> ' . $sql_list . '</p>';
     }
     while ($row = mysql_fetch_assoc($rsc_list)) {
         // Create the object
         $css = new ConceptSearchSource();
         $css->setSourceList($row['concept_list_id'], $row['list_name']);
         $arr_list[$row['concept_list_id']] = $css;
     }
     // Load dictionary sources for the each list
     $sql_list_dict_id = 'select distinct concept_list_id, dict_id from concept_list_map';
     if (!($rsc_list_dict_id = mysql_query($sql_list_dict_id, $cxn_mcl))) {
         trigger_error('Could not load concept list definitions: ' . mysql_error($cxn_mcl), E_USER_ERROR);
     }
     while ($row_dict_id = mysql_fetch_assoc($rsc_list_dict_id)) {
         $css_dict = $cssc->getDictionary($row_dict_id['dict_id']);
         if ($css_dict && isset($arr_list[$row_dict_id['concept_list_id']])) {
             $arr_list[$row_dict_id['concept_list_id']]->addDictionarySource($css_dict);
         }
     }
     return $arr_list;
 }