public function indexAction() { $namespace = new Zend_Session_Namespace('ce'); if ($this->getRequest()->isPost()) { if ($this->form->isValid($this->getRequest()->getParams())) { if ($this->form->getValue('Token') == $namespace->Token) { $ceTable = new CalibrationExercise(); $data = array(CalibrationExercise::COL_NAME => $this->form->getValue(CalibrationExercise::COL_NAME), CalibrationExercise::COL_DESCRIPTION => $this->form->getValue(CalibrationExercise::COL_DESCRIPTION), CalibrationExercise::COL_WORKSHOP_ID => $this->callingWorkshopId); $ceId = $ceTable->insert($data); $namespace->Token = ''; $this->_forward("index", "edit", "ce", array("CAEX_ID" => $ceId)); } else { //form token is not equal session token $this->form->reset(); $this->redirectTo('index'); } } else { //not valid } } else { //not post if ($this->form->getValue('Token') == null) { $guid = new Ble422_Guid(); $namespace->Token = $guid->__toString(); $this->form->getElement('Token')->setValue($guid->__toString()); $this->view->form = $this->form; } } }
public function createAction() { $expId = intval($this->getRequest()->getParam(Expertise::COL_ID)); $keyId = intval($this->getRequest()->getParam(KeyTable::COL_ID)); $expTable = new Expertise(); $expRow = $expTable->find($expId); $keyTable = new KeyTable(); $keyRow = $keyTable->find($keyId); if ($keyRow->count() != 0 || $expRow->count() != 0) { $keyArray = $keyRow->toArray(); $expArray = $expRow->toArray(); // create CE row $ceTable = new CalibrationExercise(); $ceName = $expArray[0][Expertise::COL_SPECIES] . ' / ' . AuthQuery::getUserName(); //TODO \r in der Datenbank $ceDescription = 'Area: ' . $expArray[0][Expertise::COL_AREA] . '\\r' . 'Subject: ' . $expArray[0][Expertise::COL_SUBJECT] . '\\r' . 'KeyName: ' . $keyArray[0][KeyTable::COL_NAME]; $ceData = array(CalibrationExercise::COL_NAME => $ceName, CalibrationExercise::COL_DESCRIPTION => $ceDescription, CalibrationExercise::COL_KEY_TABLE_ID => $keyArray[0][KeyTable::COL_ID], CalibrationExercise::COL_EXPERTISE_ID => $expArray[0][Expertise::COL_ID], CalibrationExercise::COL_COMPAREABLE => 1, CalibrationExercise::COL_IS_STOPPED => 0, CalibrationExercise::COL_TRAINING => 1); $ceId = $ceTable->insert($ceData); // create participant row $partTable = new Participant(); $partData = array(Participant::COL_CE_ID => $ceId, Participant::COL_USER_ID => AuthQuery::getUserId(), Participant::COL_NUMBER => 1); $partId = $partTable->insert($partData); // add all possible shown attributes $dbAdapter = $ceTable->getAdapter(); $selectAttr = $dbAdapter->select(); $selectAttr->from(AttributeDescriptor::TABLE_NAME); $selectAttr->orWhere(AttributeDescriptor::COL_GROUP . '=?', 'fish'); $selectAttr->orWhere(AttributeDescriptor::COL_GROUP . '=?', 'image'); $attrArray = $dbAdapter->fetchAll($selectAttr); $ceHasAttrTable = new CeHasAttributeDescriptor(); foreach ($attrArray as $attr) { $attrData = array(CeHasAttributeDescriptor::COL_ATDE_ID => $attr[AttributeDescriptor::COL_ID], CeHasAttributeDescriptor::COL_CAEX_ID => $ceId); $ceHasAttrTable->insert($attrData); } //get images for exp/key $refQuery = new Default_ReferenceQuery(); $images = $refQuery->getImages($expId, $keyId); // create imageset // $selectImages = $dbAdapter->select(); // $imagesArray = $dbAdapter->fetchAll($selectImages); $imageSetTable = new CeHasImage(); foreach ($images as $image) { $data = array(CeHasImage::COL_IMAGE_ID => $image, CeHasImage::COL_CALIBRATION_EXERCISE_ID => $ceId); $imageSetTable->insert($data); } //$this->render('form'); $Redirect = new Zend_Controller_Action_Helper_Redirector(); $Redirect->setGotoSimple('index', 'make', 'annotation', array(CalibrationExercise::COL_ID => $ceId)); } else { throw new Zend_Controller_Exception('Error at craeting a new training Calibration Exercise.', 505); } }
public function trainingannotationAction() { $ceId = intval($this->getRequest()->getParam(CalibrationExercise::COL_ID)); $ceTable = new CalibrationExercise(); $ceArray = $ceTable->find($ceId)->toArray(); $resultSelect = $this->dbAdapter->select(); $resultSelect->from('v_all_annotations'); $resultSelect->where(CalibrationExercise::COL_ID . '=?', $ceId); $resultSelect->where(Annotations::COL_FINAL . '=?', 1); $resultAnnos = $this->dbAdapter->fetchAll($resultSelect); $imageIdString = ''; $assocResult = array(); foreach ($resultAnnos as $resultAnno) { // get all image ids if ($imageIdString != '') { $seperator = ','; } else { $seperator = ''; } $imageIdString .= $seperator . $resultAnno[Image::COL_ID]; // create a assoc array to create the result array later on $assocResult += array($resultAnno[Image::COL_ID] => array(Annotations::COL_DECIMAL => $resultAnno[Annotations::COL_DECIMAL], Annotations::COL_ID => $resultAnno[Annotations::COL_ID])); } // get the all references for the images $refSelect = $this->dbAdapter->select(); $refSelect->from('v_all_annotations'); $refSelect->where('(' . Annotations::COL_WEBGR_REF . '=?', 1); $refSelect->orWhere(Annotations::COL_WS_REF . '=? )', 1); $refSelect->where(CalibrationExercise::COL_EXPERTISE_ID . '=?', $ceArray[0][CalibrationExercise::COL_EXPERTISE_ID]); $refSelect->where(CalibrationExercise::COL_KEY_TABLE_ID . '=?', $ceArray[0][CalibrationExercise::COL_KEY_TABLE_ID]); if ($imageIdString) { $refSelect->where(Image::COL_ID . ' IN (' . $imageIdString . ')'); } else { $refSelect->where(Image::COL_ID . ' IN (\'\')'); } $refAnnos = $this->dbAdapter->fetchAll($refSelect); // create the header $headerArray = array(Image::COL_ORIGINAL_FILENAME => 'original file name', Annotations::COL_DECIMAL => 'own result', 'bia' => 'bia', 'reference' => 'reference', 'ref. type' => 'ref. type', Annotations::COL_ID => 'Anno. ID'); //create the resultArray $csvArray = array($headerArray); foreach ($refAnnos as $refAnno) { if ($refAnno[Annotations::COL_WS_REF] == 1) { $refType = 'WS-Ref'; } else { $refType = 'WebGR-Ref'; } $bia = abs($refAnno[Annotations::COL_DECIMAL] - $assocResult[$refAnno[Image::COL_ID]][Annotations::COL_DECIMAL]); $rowArray = array(Image::COL_ORIGINAL_FILENAME => $refAnno[Image::COL_ORIGINAL_FILENAME], Annotations::COL_DECIMAL => $assocResult[$refAnno[Image::COL_ID]][Annotations::COL_DECIMAL], 'bia' => $bia, 'reference' => $refAnno[Annotations::COL_DECIMAL], 'ref. type' => $refType, Annotations::COL_ID => $assocResult[$refAnno[Image::COL_ID]][Annotations::COL_ID]); array_push($csvArray, $rowArray); } $this->configureView($csvArray, $ceId, 'annotation_training.csv'); }
public function getMyAnnotationsByCeHim($ceHim = 0, $state = null, $imageId = 0) { $annotationTable = new Annotations(); $dbAdapter = $annotationTable->getAdapter(); $select = $dbAdapter->select(); $select->from(array('annos' => Annotations::TABLE_NAME)); $fetch = true; if ($state == null) { $select->where(Annotations::COL_CE_HAS_IMAGE_ID . "=?", $ceHim, 'int') . $select->where(Annotations::COL_PART_ID . "=?", $this->getParticipantId(), 'int'); $select->where(Annotations::COL_GROUP . "!=?", 1, 'int'); $select->where(Annotations::COL_WS_REF . "!=?", 1, 'int'); $select->where(Annotations::COL_WEBGR_REF . "!=?", 1, 'int'); } else { if ($state == 'groupState') { $select->where(Annotations::COL_CE_HAS_IMAGE_ID . "=?", $ceHim, 'int'); $select->where(Annotations::COL_GROUP . "=?", 1, 'int'); } else { if ($state == 'ws-refState') { // check for user roles $storage = Zend_Auth::getInstance()->getStorage()->read(); $roleConst = User::COL_ROLE; if ($storage->{$roleConst} == 'admin' || $storage->{$roleConst} == 'manager' || $this->getParticipantRole() == 'Coordinator') { $ceTable = new CalibrationExercise(); $ceArray = $ceTable->find($this->getCurrentCeID())->toArray(); $select->join(array('ceHim' => CeHasImage::TABLE_NAME), 'annos.' . Annotations::COL_CE_HAS_IMAGE_ID . "=" . 'ceHim.' . CeHasImage::COL_ID); $select->join(array('caex' => CalibrationExercise::TABLE_NAME), 'ceHim.' . CeHasImage::COL_CALIBRATION_EXERCISE_ID . "=" . 'caex.' . CalibrationExercise::COL_ID); $select->join(array('im' => Image::TABLE_NAME), 'ceHim.' . CeHasImage::COL_IMAGE_ID . "=" . 'im.' . Image::COL_ID); $select->where(CalibrationExercise::COL_EXPERTISE_ID . "=?", $this->namespace->ceArray[0][CalibrationExercise::COL_EXPERTISE_ID]); $select->where(CalibrationExercise::COL_KEY_TABLE_ID . "=?", $this->namespace->ceArray[0][CalibrationExercise::COL_KEY_TABLE_ID]); $select->where('im.' . Image::COL_ID . "=?", $imageId, 'int'); $select->where('caex.' . CalibrationExercise::COL_WORKSHOP_ID . "=?", $ceArray[0][CalibrationExercise::COL_WORKSHOP_ID], 'int'); $select->where(Annotations::COL_WS_REF . "=?", 1, 'int'); } else { $fetch = false; } } else { if ($state == 'webgr-refState') { // check for user roles $storage = Zend_Auth::getInstance()->getStorage()->read(); $roleConst = User::COL_ROLE; if ($storage->{$roleConst} == 'admin' || $storage->{$roleConst} == 'manager' || $this->getParticipantRole() == 'Coordinator') { $select->join(array('ceHim' => CeHasImage::TABLE_NAME), 'annos.' . Annotations::COL_CE_HAS_IMAGE_ID . "=" . 'ceHim.' . CeHasImage::COL_ID); $select->join(array('caex' => CalibrationExercise::TABLE_NAME), 'ceHim.' . CeHasImage::COL_CALIBRATION_EXERCISE_ID . "=" . 'caex.' . CalibrationExercise::COL_ID); $select->join(array('im' => Image::TABLE_NAME), 'ceHim.' . CeHasImage::COL_IMAGE_ID . "=" . 'im.' . Image::COL_ID); $select->where(CalibrationExercise::COL_EXPERTISE_ID . "=?", $this->namespace->ceArray[0][CalibrationExercise::COL_EXPERTISE_ID]); $select->where(CalibrationExercise::COL_KEY_TABLE_ID . "=?", $this->namespace->ceArray[0][CalibrationExercise::COL_KEY_TABLE_ID]); $select->where('im.' . Image::COL_ID . "=?", $imageId, 'int'); $select->where(Annotations::COL_WEBGR_REF . "=?", 1, 'int'); } else { $fetch = false; } } } } } //return $select->__toString(); if ($fetch) { return $dbAdapter->fetchAll($select); } else { return array(); } }
public function stopceAction() { $ceTable = new CalibrationExercise(); $data = array(CalibrationExercise::COL_IS_STOPPED => 1); $ceTable->update($data, $ceTable->getAdapter()->quoteInto(CalibrationExercise::COL_ID . '=?', $this->callingCeId)); $this->redirectTo('index', array(CalibrationExercise::COL_ID => $this->callingCeId)); }