function loadWorkflowPools() { module_load_include('php', 'apiary_project', 'workflow/include/class.Object_Pool'); $this->object_pool = new Object_Pool($this->object_pool_id); $specimens = array(); $images = array(); $rois = array(); $specimen_pids = array(); $image_pids = array(); $roi_pids = array(); $queued_image_pids = array(); $queued_roi_pids = array(); $workflow_pids = array(); $workflow_dom = new DOMDocument('1.0', 'iso-8859-1'); $workflowElement = $workflow_dom->createElement('workflow', ''); //rootElement $workflow_dom->appendChild($workflowElement); //$time_start = $this->microtime_float(); include_once drupal_get_path('module', 'apiary_project') . '/workflow/include/search.php'; $solr_search = new search(); foreach ($this->object_pool->object_pool_pids as $pid) { switch ($pid) { case strpos($pid, 'ap-specimen:') > -1: $specimenElement = $workflow_dom->createElement("specimen"); $specimen_pidElement = $workflow_dom->createElement("pid", $pid); $specimenElement->appendChild($specimen_pidElement); array_push($specimen_pids, $pid); array_push($workflow_pids, $pid); $specimen['pid'] = $pid; if ($this->fill_fedora) { $specimenMetadata = AP_Specimen::getspecimenMetadata_record($pid); $specimen['specimenMetadata'] = $specimenMetadata; } $specimen_images = AP_Specimen::getImageListForSpecimen($pid); //$specimen['images'] = $specimen_images; if (sizeOf($specimen_images) > 0) { foreach ($specimen_images as $image_pid) { $image = array(); $image['pid'] = $image_pid; $imageElement = $workflow_dom->createElement("image"); $image_pidElement = $workflow_dom->createElement("pid", $image_pid); $imageElement->appendChild($image_pidElement); $this->addSolrIndexItems($solr_search, $image_pid, $workflow_dom, $imageElement); if ($this->canAnalyzeSpecimen || $this->canQC) { array_push($image_pids, $image_pid); array_push($workflow_pids, $image_pid); } $specimen_image_rois = AP_Image::getROIListForImage($image_pid); $image['rois'] = $specimen_image_rois; $specimen['rois'] .= $specimen_image_rois; if (sizeOf($specimen_image_rois) > 0) { foreach ($specimen_image_rois as $roi_pid) { $roiElement = $workflow_dom->createElement("roi"); $roi_pidElement = $workflow_dom->createElement("pid", $roi_pid); $roiElement->appendChild($roi_pidElement); $this->addSolrIndexItems($solr_search, $roi_pid, $workflow_dom, $roiElement); array_push($roi_pids, $roi_pid); array_push($workflow_pids, $roi_pid); $imageElement->appendChild($roiElement); } } // $specimen['images'] .= $specimen_images; $specimenElement->appendChild($imageElement); } } array_push($specimens, $specimen); $workflowElement->appendChild($specimenElement); break; case strpos($pid, 'ap-image:') > -1: //see if already loaded array_push($image_pids, $pid); array_push($workflow_pids, $pid); break; case strpos($pid, 'ap-roi:') > -1: //see if already loaded array_push($roi_pids, $pid); array_push($workflow_pids, $pid); break; } } //echo "Session_ID = ".$_SESSION['apiary_session_id']."<br>\n"; //echo $workflow_dom->saveXML()."<br>\n"; //$time_end = $this->microtime_float(); //$time = $time_end - $time_start; //echo "Did it in $time seconds\n"; $this->workflow_dom = $workflow_dom; //echo $workflow_dom->saveXML(); $this->specimens = $specimens; $this->specimen_pids = $specimen_pids; $this->image_pids = $image_pids; //$this->queued_image_pids = $queued_image_pids; $this->roi_pids = $roi_pids; //$this->queued_roi_pids = $queued_roi_pids; $this->workflow_pool = $workflow_pids; }