Explorar el Código

adustements to cv/db importing

Stephen Ficklin hace 6 años
padre
commit
9c92ba79ab
Se han modificado 1 ficheros con 18 adiciones y 16 borrados
  1. 18 16
      tripal_chado/includes/TripalImporter/OBOImporter.inc

+ 18 - 16
tripal_chado/includes/TripalImporter/OBOImporter.inc

@@ -1564,16 +1564,10 @@ class OBOImporter extends TripalImporter {
         // If we can't find the term in the database then do an EBI lookup.
         else {          
           $stanza = $this->findEBITerm($id);
-          $db_name = $stanza['db_name'][0];
-          $db = $this->all_dbs[$db_name];
-          if (!$db){
-            $db = $this->addDB($short_name);
-          }
-          $cv_name = $stanza['namespace'][0];
-          $cv = $this->all_cvs[$cv_name];
-          if (!$cv){
-            $cv = $this->addCV($cv_name);
-          }
+          
+          // Make sure the DBs and CVs exist and are added to our cache.
+          $this->addDB($stanza['db_name'][0]);
+          $this->addCV($stanza['namespace'][0]);
         }
       }
       // If the term belongs to this OBO then let's set the 'db_name'.
@@ -1994,6 +1988,7 @@ class OBOImporter extends TripalImporter {
       $db = $this->all_dbs[$dbname];
     }
     else {
+      // If it's not in the cache we can assume it doesn't exist and insert.
       $db = new ChadoRecord('db');
       $db->setValues(['name' => $dbname]);
       $db->insert();
@@ -2018,14 +2013,21 @@ class OBOImporter extends TripalImporter {
     // adding a new CV or DB.
     
     // Add the CV record if it doesn't exist.
-    $cv = new ChadoRecord('cv');
-    $cv->setValues(['name' => $cvname]);
-    if (!$cv->find()) {
+    $cv = NULL;
+    if (array_key_exists($cvname, $this->all_cvs)) {
+      $cv = $this->all_dbs[$cvname];
+    }
+    else {
+      // If it's not in the cache we can assume it doesn't exist and insert.
+      $cv = new ChadoRecord('cv');
+      $cv->setValues(['name' => $cvname]);
       $cv->insert();
+      $cv = (object) $cv->getValues();
+      $this->all_cvs[$cvname] = $cv;
+      $this->obo_namespaces[$cvname] = $cv->getID();
     }
-    $this->all_cvs[$cvname] = (object) $cv->getValues();
-    $this->obo_namespaces[$cvname] = $cv->getID();
-    return $cv->getValues();
+    
+    return $cv;
   }
   
   /**