Example #1
0
 function addROIsForImage($image_pid)
 {
     $image_rois = AP_Specimen::getImageListForSpecimen($specimen_pid);
     $rois = array();
     for ($i; $i < sizeOf($image_rois); $i++) {
         $roi_pid = $image_rois[$i];
         if (array_search($roi_pid, $this->permission_list) > -1) {
             //don't add anything, it's already there!
         } else {
             //array_push((array) $this->roi_pids, $roi_pid);
             $roi['pid'] = $roi_pid;
             $roiMetadata = AP_ROI::getROIMetadata_record($roi_pid);
             $roi['roiMetadata'] = $roiMetadata;
             array_push($rois, $roi);
         }
     }
     return $rois;
 }
function add_roi_to_queue($image_pid, $roi_pid, $workflow_id)
{
    $queue_item_html = '';
    $status_dom = AP_ROI::getROILock($roi_pid);
    if ($status_dom != false) {
        $transcribedStatus = $status_dom->getElementsByTagName('transcribedStatus')->item(0)->nodeValue;
        $parsedL1Status = $status_dom->getElementsByTagName('parsedL1Status')->item(0)->nodeValue;
        $locked = $status_dom->getElementsByTagName('locked')->item(0)->nodeValue;
        $locked_time = $status_dom->getElementsByTagName('locked_time')->item(0)->nodeValue;
        $locked_session = $status_dom->getElementsByTagName('locked_session')->item(0)->nodeValue;
        $workflow_status = workflow_status($locked, $locked_time, $locked_session);
        $queue_item_html .= create_queue_list_roi($roi_pid, $image_pid, $transcribedStatus, $parsedL1Status, $locked_by, $workflow_status, $workflow_id);
    } else {
        $queue_item_html = "locked";
    }
    return $queue_item_html;
}
function get_transcribe_content($roi_pid, $size, $workflow_id)
{
    global $user;
    list($height, $width) = explode(":", $size);
    $returnJSON = "";
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, "canTranscribe")) {
        $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) {
            $roi_image_url = scaleDjatokaURL($roiURL, $width, '0');
            //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], $width, '0');
            $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        } else {
            $roi_image_url = scaleDjatokaURL($roiURL, '0', $height);
            //$roi_image_url = getDjatokaURL($roiMetadata_record['sourceURL'], 'getRegion', '100', $roiMetadata_record['y'], $roiMetadata_record['x'], $roiMetadata_record['h'], $roiMetadata_record['w'], '0', $height);
            $returnJSON['image_html'] = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        }
        $roi_obj = new roiHandler($roi_pid);
        $returnJSON['gocr'] = "";
        $returnJSON['ocrad'] = "";
        $returnJSON['ocropus'] = "";
        $returnJSON['text'] = "";
        if ($roi_obj->ifExist("GOCR")) {
            $returnJSON['gocr'] = $roi_obj->getDatastream("GOCR");
        }
        if ($roi_obj->ifExist("ocrad")) {
            $returnJSON['ocrad'] = $roi_obj->getDatastream("ocrad");
        }
        if ($roi_obj->ifExist("OCRopus")) {
            $returnJSON['ocropus'] = $roi_obj->getDatastream("OCRopus");
        }
        if ($roi_obj->ifExist("Text")) {
            $returnJSON['text'] = $roi_obj->getDatastream("Text");
        }
    } else {
        echo "Sorry! You do not have permission for this operation";
    }
    echo json_encode($returnJSON);
}
Example #4
0
 public function index_all()
 {
     $image_list = AP_Image::getImageList();
     foreach ($image_list as $image) {
         $this->index($image);
     }
     $roi_list = AP_ROI::getROIList();
     foreach ($roi_list as $roi) {
         $this->index($roi);
     }
 }
Example #5
0
function get_parsing_content($roi_pid, $size, $parse_level, $workflow_id)
{
    global $user;
    list($height, $width) = explode(":", $size);
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name) && Workflow_Permission::doesWorkflowHavePermission($workflow_id, $parse_level)) {
        $roiMetadata_record = AP_ROI::getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        if ($height > $roiMetadata_record['h'] / $roiMetadata_record['w'] * $width) {
            $roi_image_url = scaleDjatokaURL($roiURL, $width, '0');
            $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        } else {
            $roi_image_url = scaleDjatokaURL($roiURL, '0', $height);
            $image_html = "<img class='transcribe_roi_image' src='{$roi_image_url}' />";
        }
        $roi_obj = new roiHandler($roi_pid);
        $returnJSON['text'] = "";
        if ($roi_obj->ifExist("Text")) {
            $text = nl2br($roi_obj->getDatastream("Text"));
        }
    } else {
        return false;
    }
    return array($image_html, $text);
}
function specimenMetadata_details_content($roi_pid = null)
{
    global $base_url;
    $fedora_base_url = variable_get("fedora_base_url", "http://localhost:8080/fedora");
    $html = '';
    $html .= '<div id="specimenMetadata_details_content">' . "\n";
    if ($roi_pid != null && $roi_pid != "0") {
        $roi = new AP_ROI();
        $image_pid = $roi->get_image_pid($roi_pid);
        $sp_pid = AP_Image::get_specimen_pid($image_pid);
        $roiMetadata_record = $roi->getroiMetadata_record($roi_pid);
        $roiURL = $roiMetadata_record['roiURL'];
        $djatoka_url = scaleDjatokaURL($roiURL, '300', '0');
        $html .= "<h3>Details: {$roi_pid}</h3>";
        $html .= "<table><tr><td valign='top' width='300'>";
        $html .= "<img src='{$djatoka_url}'/></td>";
        $html .= "<td>Specimen: {$sp_pid}<br/>Image: {$image_pid}<br/>ROI: {$roi_pid}<br/>Datastream: specimenMetadata<br/><br/>";
        $text = shell_exec("curl -H - XGET {$fedora_base_url}/get/{$roi_pid}/specimenMetadata");
        $check = strpos($text, "404 Not Found");
        if ($check === FALSE) {
            $specimenMetadata_xml_url = $server_base . '/drupal/modules/apiary_project/workflow/include/specimenMetadata_xml.php?pid=' . $roi_pid;
            $html .= '<textarea style="width:500px; height:200px">' . $text . '</textarea></td>';
            $html .= "</tr></table>";
        } else {
            $html .= "No specimenMetadata found";
        }
    } else {
    }
    $html .= '</div><!-- specimenMetadata_details_content -->' . "\n";
    echo $html;
}
Example #7
0
function get_right_click_list($pid)
{
    $ap_roi = new AP_ROI();
    $roiMetadata_record = $ap_roi->getroiMetadata_record($pid);
    $roi_type_temp = $roiMetadata_record['roiType'];
    $roi_list = getROItypeList();
    $roi_type = '';
    switch ($roi_type_temp) {
        case $roi_list[0]:
            $roi_type = "primary";
            break;
        case $roi_list[1]:
            $roi_type = "determination";
            break;
        case $roi_list[2]:
            $roi_type = "barcode";
            break;
        case $roi_list[3]:
            $roi_type = "type";
            break;
        case $roi_list[4]:
            $roi_type = "annotation";
            break;
    }
    //Context Menu List
    print '<ul id="apiary_context_menu" class="jeegoocontext cm_blue">';
    //Who & When
    print '<li>Who & When<ul>';
    $whoObj = db_query("select * from {apiary_project} where parse_level=1 AND (ui_categories='who' OR ui_categories='when')");
    while ($res = db_fetch_object($whoObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    //What
    print '<li>What<ul>';
    $whatObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='what'");
    while ($res = db_fetch_object($whatObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    //Where
    print '<li>Where</a><ul>';
    $whereObj = db_query("select * from {apiary_project} where parse_level=1 AND ui_categories='where'");
    while ($res = db_fetch_object($whereObj)) {
        if (stristr($res->roi_association, $roi_type) !== false) {
            print '<li><a id="menu_' . $res->term . '" href=javascript:getSelText("' . $res->term . '")>' . $res->display_label . '</a>';
        }
    }
    print "</ul></li>";
    print '</ul>';
}
Example #8
0
function ROISearchResults($roi_pids)
{
    $found_result = false;
    foreach ($roi_pids as $roi_pid) {
        if (!$found_result) {
            $results_html .= "<div align='left'>";
            $results_html .= "<table id='roi_results_table' class='tablesorter' style='width:800px'><thead><tr><th>ROI</th><th>Image</th><th>Specimen</th><th>Datastream</th></tr><thead>";
            $found_result = true;
        }
        $results_html .= "<tbody><tr>";
        //$results_html .= '<td><a class="preview" href="'.$server_base.'/drupal/apiary?ref=specimenMetadata_details&pid='.$roi_pid.'">'.$roi_pid.'</a></td>';
        $results_html .= '<td><a href="#" class="preview" onclick="display_specimenMetadata_details(\'' . $roi_pid . '\');">' . $roi_pid . '</a></td>';
        $roi_ob = new AP_ROI();
        $image_pid = $roi_ob->get_image_pid($roi_pid);
        $results_html .= "<td>{$image_pid}</td>";
        $sp_pid = AP_Image::get_specimen_pid($image_pid);
        $results_html .= "<td>{$sp_pid}</td>";
        $fedora_base_url = variable_get('fedora_base_url', 'http://localhost:8080/fedora');
        $text = shell_exec("curl -H - XGET {$fedora_base_url}/get/{$roi_pid}/specimenMetadata");
        $check = strpos($text, "404 Not Found");
        if ($check === FALSE) {
            $results_html .= "<td><a href='" . $fedora_base_url . "/get/{$roi_pid}/specimenMetadata'>specimenMetadata</a></td></tr>";
        } else {
            $results_html .= "<td>No specimenMetadata found</td></tr>";
        }
    }
    if ($found_result) {
        $server_base = variable_get('apiary_research_base_url', 'http://localhost');
        $results_html .= "</tbody></table></div>";
        $results_html .= '<div id="pager" class="pager">';
        $results_html .= '<form>';
        $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/first.png" class="first"/>';
        $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/prev.png" class="prev"/>';
        $results_html .= '<input type="text"  class="pagedisplay"/>';
        $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/next.png"  class="next"/>';
        $results_html .= '<img src="' . variable_get('apiary_research_base_url', 'http://localhost') . '/drupal/modules/apiary_project/workflow/assets/img/last.png"  class="last"/>';
        $results_html .= '<select class="pagesize">';
        $results_html .= '<option selected="selected"  value="10">10</option>';
        $results_html .= '<option value="20">20</option>';
        $results_html .= '<option value="30">30</option>';
        $results_html .= '<option value="40">40</option>';
        $results_html .= '</select>';
        $results_html .= '</form>';
        $results_html .= '</div><!--pager-->';
    } else {
        $results_html .= "<br/><br/><b>No Results found!</b>";
    }
    return $results_html;
}
Example #9
0
 static function releaseROILock($roi_pid)
 {
     global $user;
     $now = date("YmdHis");
     $datastream_name = "status";
     $datastream_label = "ROI Status";
     $session_id = $_SESSION['apiary_session_id'];
     if ($session_id == '') {
         $session_id = $_SESSION['apiary_cleared_session_id'];
     }
     $dom = FedoraObject::getManagedXMLDom($roi_pid, $datastream_name);
     if ($dom != false) {
         if ($dom->getElementsByTagName('locked')->item(0)->nodeValue != "false") {
             if (!empty($dom->getElementsByTagName('locked_session')->item(0)->nodeValue)) {
                 $locked_session = $dom->getElementsByTagName('locked_session')->item(0)->nodeValue;
                 if ($dom->getElementsByTagName('locked_by')->item(0)->nodeValue == $user->name && $locked_session == $session_id) {
                     $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false";
                 } else {
                     if (false) {
                         //could add an override if the user has some admin right
                     } else {
                         $last_locked_time = $dom->getElementsByTagName('locked_time')->item(0)->nodeValue;
                         $apiary_timeout = variable_get('apiary_object_timeout', '1800');
                         $last_locked_timeout = $last_locked_time + $apiary_timeout;
                         if ($now > $last_locked_timeout || !Workflow_Sessions::active_session($locked_session)) {
                             $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false";
                         } else {
                             //can't unlock this record
                             return false;
                         }
                     }
                 }
             }
         }
         $dom->getElementsByTagName('locked')->item(0)->nodeValue = "false";
     } else {
         //create status datastream!
         $dom = AP_ROI::generateROIStatusDom("false", $user->name, $now, $session_id);
     }
     //We don't get here if we fail
     if (FedoraObject::createManagedXMLDom($roi_pid, $datastream_name, $datastream_label, $dom)) {
         include_once drupal_get_path('module', 'apiary_project') . '/workflow/include/search.php';
         $search_instance = new search();
         $search_instance->index($roi_pid);
         return FedoraObject::getManagedXMLDom($roi_pid, $datastream_name);
     }
 }