Exemplo n.º 1
0
        $tpl_data['error_message'][] = "TimePoint Error (" . $_REQUEST['sessionID'] . "): " . $e->getMessage();
    }
}
//--------------------------------------------------
// load the menu or instrument
try {
    $caller =& NDB_Caller::singleton();
    $workspace = $caller->load($TestName, $subtest);
    if (isset($caller->page->FormAction)) {
        $tpl_data['FormAction'] = $caller->page->FormAction;
    }
    if (isset($caller->controlPanel)) {
        $tpl_data['control_panel'] = $caller->controlPanel;
    }
    if (isset($caller->feedbackPanel) && $user->hasPermission('bvl_feedback')) {
        $tpl_data['bvl_feedback'] = NDB_BVL_Feedback::bvlFeedbackPossible($TestName);
        $tpl_data['feedback_panel'] = $caller->feedbackPanel;
    }
    if (isset($caller->page)) {
        $tpl_data['jsfiles'] = $caller->page->getJSDependencies();
        $tpl_data['cssfiles'] = $caller->page->getCSSDependencies();
    }
    $tpl_data['workspace'] = $workspace;
} catch (ConfigurationException $e) {
    header("HTTP/1.1 500 Internal Server Error");
    $tpl_data['error_message'][] = $e->getMessage();
} catch (DatabaseException $e) {
    header("HTTP/1.1 500 Internal Server Error");
    $tpl_data['error_message'][] = $e->getMessage();
    $tpl_data['error_message'][] = "Query: <pre>" . $e->query . "</pre>";
    $tpl_data['error_message'][] = "Bind parameters: " . print_r($e->params, true);
Exemplo n.º 2
0
     } else {
         // test the DB window - not applicable for V1
         if (strtolower($data['Visit']) == 'v1') {
             $data['DB_Window'] = "";
         } else {
             // compute the dates in months
             $data['DB_Window'] = abs($dateOfVisit['Y'] * 12 + $dateOfVisit['M'] - ($dateOfIQTest['Y'] * 12 + $dateOfIQTest['M']));
         }
     }
     unset($dateOfIQTest);
     unset($dateOfVisit);
 }
 /*
  ** FEEDBACK status info
  */
 $feedback =& NDB_BVL_Feedback::singleton($username, null, $sessionID);
 $feedback_status = $feedback->getMaxThreadStatus('Y');
 // prepare the $data element
 if (!is_array($feedback_status)) {
     $data['Feedback'] = $feedback_status;
 }
 // destroy vars
 unset($feedback);
 unset($feedback_status);
 // get list of NA instruments
 $NAinstruments = array();
 $NAinstruments = $timepointFlagObject->getListOfNonAdministeredInstruments();
 // set the NA instrument data
 if (count($NAinstruments) > 0) {
     foreach ($instrumentList as $instrument) {
         if (in_array($instrument, $NAinstruments)) {
function fixDate($candID, $dateType, $newDate, $sessionID = null)
{
    // check the user $_ENV['USER']
    $user =& User::singleton(getenv('USER'));
    if ($user->getUsername() == null) {
        return PEAR::raiseError("Error: Database user named " . getenv('USER') . " does not exist. Please create and then retry script\n");
    }
    if (PEAR::isError($user)) {
        return "Error, failed to create User object for (" . getenv('USER') . "):" . $user->getMessage() . " \n";
    }
    $db =& Database::singleton();
    if (PEAR::isError($db)) {
        return PEAR::raiseError("Failed to create database object:\n" . $db->getMessage());
    }
    // check the args
    if (empty($dateType) || !in_array($dateType, array('dob', 'edc', 'screening', 'visit')) || empty($newDate) || in_array($dateType, array('screening', 'visit')) && empty($sessionID)) {
        return PEAR::raiseError("Please pass a valid set of arguments\n");
    }
    // check the date format (redundant)
    $dateArray = explode('-', $newDate);
    if (!is_array($dateArray) || !checkdate($dateArray[1], $dateArray[2], $dateArray[0])) {
        return PEAR::raiseError("Invalid Date! Please use the following format: YYYY-MM-DD \n");
    }
    unset($dateArray);
    // candidate object - needed to get the dob/edc
    $candidate =& Candidate::singleton($candID);
    if (PEAR::isError($candidate)) {
        return PEAR::raiseError("Error, failed to create candidate object:\n" . $candidate->getMessage());
    }
    // fixing DOB or EDC
    if (in_array($dateType, array('dob', 'edc'))) {
        // set and where arrays
        $setArray = array($dateType => $newDate);
        $whereArray = array('CandID' => $candID);
        // update candidate table record
        $success = $db->update('candidate', $setArray, $whereArray);
        if (PEAR::isError($success)) {
            return PEAR::raiseError("Failed to update the {$dateType}: " . $success->getMessage());
        }
        /*
         * add Feedback
         */
        // feedback object
        $feedback =& NDB_BVL_Feedback::singleton($user->getUsername(), $candID);
        if (PEAR::isError($feedback)) {
            return PEAR::raiseError("Failed to create feedback object: " . $feedback->getMessage());
        }
        // add the new thread
        $success = $feedback->createThread('profile', '5', "The date of {$dateType} has been changed to {$newDate}.", 'N');
        if (PEAR::isError($success)) {
            return PEAR::raiseError("Failed to create feedback: " . $success->getMessage());
        }
        // log the change
        fwrite(STDERR, "Updated {$dateType} to: {$newDate}, for candidate {$candID}. Check the record in the DB! \n");
    } else {
        // fixing Date_screening or Date_visit
        // create timepoint object
        $timePoint =& TimePoint::singleton($sessionID);
        if (PEAR::isError($timePoint)) {
            return PEAR::raiseError("Failed to create timepoint object: " . $timePoint->getMessage());
        }
        // check if the timepoint is started before attempting to make changes to it
        if ($timePoint->getCurrentStage() == 'Not Started') {
            return PEAR::raiseError("Error: Cannot perform screening/visit date fixes on the non-started timepoints!");
        }
        // get the stage statuses
        $screeningStage = $timePoint->getScreeningStatus();
        $visitStage = $timePoint->getVisitStatus();
        // make sure that the stage to fix is started
        if ($dateType == 'visit' && empty($visitStage) || $dateType == 'screening' && empty($screeningStage)) {
            return PEAR::raiseError("Error: failed to retrieve the date of {$dateType} (sessionID: {$sessionID}) b/c that stage was not started!");
        }
        // set and where arrays for the update
        $setArray = array("Date_" . $dateType => $newDate);
        $whereArray = array("ID" => $sessionID);
        // update session table record
        $success = $db->update('session', $setArray, $whereArray);
        if (PEAR::isError($success)) {
            return PEAR::raiseError("Failed to update the {$dateType} stage date to {$newDate}: " . $success->getMessage());
        }
        /*
         * add Feedback
         */
        // feedback object
        $feedback =& NDB_BVL_Feedback::singleton($user->getUsername(), null, $sessionID);
        if (PEAR::isError($feedback)) {
            return PEAR::raiseError("Failed to create feedback object: " . $feedback->getMessage());
        }
        // add the new thread
        $success = $feedback->createThread('session', '5', "The date of {$dateType} has been changed to {$newDate}.", 'N');
        if (PEAR::isError($success)) {
            return PEAR::raiseError("Failed to create feedback: " . $success->getMessage());
        }
        // log the change
        fwrite(STDERR, "Updated date of {$dateType} to {$newDate}, for candidate {$candID}, timepoint {$sessionID}. Check the DB record!\n");
    }
    // end if
    return;
}
Exemplo n.º 4
0
if (!empty($_REQUEST['commentID'])) {
    $feedback = NDB_BVL_Feedback::singleton($user->getUsername(), null, null, $_REQUEST['commentID']);
} elseif (!empty($_REQUEST['sessionID'])) {
    $feedback = NDB_BVL_Feedback::singleton($user->getUsername(), null, $_REQUEST['sessionID']);
} elseif (!empty($_REQUEST['candID'])) {
    $feedback = NDB_BVL_Feedback::singleton($user->getUsername(), $_REQUEST['candID']);
}
if (isset($feedback) && Utility::isErrorX($feedback)) {
    // if feedback object return an error
    $tpl_data['error_message'][] = $feedback->getMessage();
} elseif (isset($feedback) && !is_object($feedback)) {
} elseif (isset($feedback)) {
    // define feedback level
    $tpl_data['feedbackLevel'] = $feedback->getFeedbackLevel();
    // get list of types
    $feedbackTypes = NDB_BVL_Feedback::getFeedbackTypes();
    if (PEAR::isError($feedbackTypes)) {
        $tpl_data['error_message'][] = $feedbackTypes->getMessage();
    } else {
        $z = 0;
        foreach ($feedbackTypes as $val) {
            // Following are used for the "Add Feedback" Form
            $tpl_data['threadTypes'][$z]['Type'] = $val['Type'];
            $tpl_data['threadTypes'][$z]['Label'] = $val['Label'];
            //These are for the update thread form
            $tpl_data['threadTypeIDArray'][] = $val['Type'];
            $tpl_data['threadTypeLabelArray'][] = $val['Label'];
            $z++;
        }
    }
    // "Add Feedback" Form" - option array for select boxes- 2 arrays;
<?php

/**
 * This AJAX request serves the purpose of getting the entries for a given
 * bvl_feedback thread.
 *
 * PHP version 5
 *
 * @category Behavioural
 * @package  Main
 * @author   Evan McIlroy <*****@*****.**>
 * @license  GPLv3 <http://www.gnu.org/licenses/gpl-3.0.en.html>
 * @link     https://www.github.com/aces/Loris-Trunk/
 */
header("content-type:application/json");
require "bvl_panel_ajax.php";
if (isset($_GET['feedbackID']) && !empty($_GET['feedbackID'])) {
    $threadEntries = NDB_BVL_Feedback::getThreadEntries($_GET['feedbackID']);
    print json_encode($threadEntries);
}
exit;
/**
 * Used by react on initial load to load the thread state. 
 *
 * PHP version 5
 *
 * @category Behavioural
 * @package  Main
 * @author   Evan McIlroy <*****@*****.**>
 * @license  GPLv3 <http://www.gnu.org/licenses/gpl-3.0.en.html>
 * @link     https://www.github.com/aces/Loris-Trunk/
 */
header("content-type:application/json");
ini_set('default_charset', 'utf-8');
set_include_path(__DIR__ . "/../../../project/libraries:" . __DIR__ . "/../../../php/libraries:" . "/usr/share/pear:");
require_once __DIR__ . "/../../../vendor/autoload.php";
require_once "NDB_Client.class.inc";
$client = new NDB_Client();
$client->initialize();
$user =& User::singleton();
$username = $user->getUsername();
if (isset($_POST['candID']) && !isset($_POST['sessionID'])) {
    $feedbackThread =& NDB_BVL_Feedback::Singleton($username, $_POST['candID']);
} elseif (isset($_POST['candID']) && isset($_POST['sessionID']) && !isset($_POST['commentID'])) {
    $feedbackThread =& NDB_BVL_Feedback::Singleton($username, $_POST['candID'], $_POST['sessionID']);
} elseif (isset($_POST['candID']) && isset($_POST['sessionID']) && isset($_POST['commentID'])) {
    $feedbackThread =& NDB_BVL_Feedback::Singleton($username, $_POST['candID'], $_POST['sessionID'], $_POST['commentID']);
}
$feedbackThreadList = $feedbackThread->getThreadList();
echo json_encode($feedbackThreadList);
exit;
<?php

/**
 * File to close a BVL feedback thread via the BVL feedback panel.
 *
 * PHP version 5
 *
 * @category Behavioural
 * @package  Main
 * @author   Evan McIlroy <*****@*****.**>
 * @license  GPLv3 <http://www.gnu.org/licenses/gpl-3.0.en.html>
 * @link     https://www.github.com/aces/Loris-Trunk/
 */
ini_set('default_charset', 'utf-8');
require "bvl_panel_ajax.php";
$user =& User::singleton();
$username = $user->getUsername();
if (isset($_POST['feedbackID']) && isset($_POST['candID'])) {
    $feedbackThread =& NDB_BVL_Feedback::Singleton($username, $_POST['candID']);
    $feedbackThread->closeThread($_POST['feedbackID']);
}
exit;
 /**
  * Test getFeedbackTypeIdByName for value which does not exist
  * in feedback_bvl_type table
  *
  * @covers NDB_BVL_Feedback::getFeedbackTypeIdByName
  * @return void
  */
 public function testGetFeedbackTypeIdByNameForNoneExistingValue()
 {
     $this->assertEmpty($res = $this->_feedbackObj->getFeedbackTypeIdByName('None existing value'));
 }