/** * Adds the missing instruments based on the visit_label * * @param Array $result containing visit_label info * @param String $visit_label The name of the visit * * @return NULL */ function populateVisitLabel($result, $visit_label) { global $argv, $confirm; // create a new battery object && new battery $battery = new NDB_BVL_Battery(); // select a specific time point (sessionID) for the battery $battery->selectBattery($result['ID']); $timePoint = TimePoint::singleton($result['ID']); $DB = Database::singleton(); $candidate = Candidate::singleton($result['CandID']); $result_firstVisit = $candidate->getFirstVisit(); $isFirstVisit = false; //adding check for first visit if ($result_firstVisit == $visit_label) { $isFirstVisit = true; } //To assign missing instruments to all sessions, sent to DCC or not. $defined_battery = $battery->lookupBattery($battery->age, $result['subprojectID'], $timePoint->getCurrentStage(), $visit_label, $timePoint->getCenterID(), $isFirstVisit); $actual_battery = $battery->getBattery($timePoint->getCurrentStage(), $result['subprojectID'], $visit_label); $diff = array_diff($defined_battery, $actual_battery); if (!empty($diff)) { echo "\n CandID: " . $timePoint->getCandID() . " Visit Label: " . $timePoint->getVisitLabel() . "\nMissing Instruments:\n"; print_r($diff); } if ($confirm === true) { foreach ($diff as $test_name) { $battery->addInstrument($test_name); } } unset($battery); unset($timePoint); }
function testLookupBatteryByFirstVisit() { $battery = new NDB_BVL_Battery(); $firstVisitInstruments = $battery->lookupBattery(50, 1, 'Visit', 'V01', '1', true); $this->assertEquals($firstVisitInstruments, array('ActiveTestByAge', 'ActiveTestByAge2', 'ActiveTestByFirstVisit')); $notFirstVisitInstruments = $battery->lookupBattery(50, 1, 'Visit', 'V01', '1', false); $this->assertEquals($notFirstVisitInstruments, array('ActiveTestByAge', 'ActiveTestByAge2', 'ActiveTestByNotFirstVisit')); }