/** * * @param Picture $picture_ * @throws InvalidArgumentException */ public function updatePicture(Picture $picture_) { try { if (isset($this->table) && is_null($this->table)) { throw new InvalidArgumentException('Attribute "table" can\'t be NULL !'); } if (isset($this->id) && !is_null($this->id)) { $where = 'id = ' . $this->id; } //Existance test $picture = $this->selectPicture(); if (!emptyObjectMethod($picture)) { $picture = $this->selectPicture(); $path = $picture->getPath(); $title = $picture->getTitle(); $ext = $picture->getExtension(); if (file_exists(UPLOAD_PATH . $path . $title . '.' . $ext)) { if (!is_null($picture_->getTitle()) && $title !== $picture_->getTitle()) { if (!rename(UPLOAD_PATH . $path . $title . '.' . $ext, UPLOAD_PATH . $path . $picture_->getTitle() . '.' . $ext)) { throw new Exception('A problem occurred when renaming !'); } } } } else { throw new Exception('Picture doesn\'t exist !'); } return parent::update($this->table, $picture_, $where); } catch (InvalidArgumentException $e) { print $e->getMessage(); exit; } catch (Exception $e) { print $e->getMessage(); exit; } }
/** * * @param Tag $tag_ * @throws InvalidArgumentException */ public function updateTag(Tag $tag_) { try { if (is_null($this->table)) { throw new InvalidArgumentException('Attribute "table" can\'t be NULL !'); } if (isset($this->id) && !is_null($this->id)) { $where = 'id = ' . $this->id; } $tagMapper = new TagMapper(); $tagMapper->setId($this->getFirstId()); $tag = $tagMapper->selectTag(); if (!is_null($tag->getId())) { return parent::update($this->table, $tag_, $where); } elseif (is_null($tag->getId())) { throw new Exception('Tag does not exist !'); } } catch (InvalidArgumentException $e) { print $e->getMessage(); exit; } catch (Exception $e) { print $e->getMessage(); exit; } }
/** * * @param Message $message_ * @throws InvalidArgumentException */ public function updateMessage(Message $message_) { if (is_null($this->table)) { throw new InvalidArgumentException('Attribute "table" can\'t be NULL !'); } if (isset($this->id) && !is_null($this->id)) { $where = 'id = ' . $this->id; } return parent::update($this->table, $message_, $where); }
/** * * @param Incoming $incoming_ * @throws InvalidArgumentException */ public function updateIncoming(Incoming $incoming_) { try { if (is_null($this->table)) { throw new InvalidArgumentException('Attribute "table" can\'t be NULL !'); } if (isset($this->id) && !is_null($this->id)) { $where = 'id = ' . $this->id; } return parent::update($this->table, $incoming_, $where); } catch (InvalidArgumentException $e) { print $e->getMessage(); exit; } }
/** * * @param Comment $comment_ * @throws InvalidArgumentException */ public function updateComment(Comment $comment_) { try { if (is_null($this->table)) { throw new InvalidArgumentException('Attribute "table" can\'t be NULL !'); } if (isset($this->id) && !is_null($this->id)) { $where = 'id = ' . $this->id; } $comment = $this->selectComment(); if (!emptyObjectMethod($comment)) { return parent::update($this->table, $comment_, $where); } else { throw new Exception('Comment doesn\'t exist !'); } } catch (InvalidArgumentException $e) { print $e->getMessage(); exit; } catch (Exception $e) { print $e->getMessage(); exit; } }
public static function AddStudy(&$db, &$process_file, &$study_chris_id, &$study_description) { $db->lock('study', 'WRITE'); // Does data exist: SeriesInstanceUID if (array_key_exists('StudyInstanceUID', $process_file)) { // does study exist?? $studyMapper = new Mapper('Study'); $studyMapper->filter('uid = (?)', $process_file['StudyInstanceUID'][0]); $studyResult = $studyMapper->get(); // if study doesn't exist, create it if (count($studyResult['Study']) == 0) { // create object // create data model $studyObject = new Study(); // // get data uid // $studyObject->uid = $process_file['StudyInstanceUID'][0]; // // get data name (series description) // if (array_key_exists('StudyDescription', $process_file)) { $studyObject->description = sanitize($process_file['StudyDescription'][0]); } else { $studyObject->description = 'NoStudyDescription'; } if (array_key_exists('Modality', $process_file)) { $studyObject->modality = sanitize($process_file['Modality'][0]); } else { $studyObject->modality = 'NoModality'; } if (array_key_exists('StudyDate', $process_file)) { $studyObject->date = PACS::getDate($process_file); } $studyObject->age = PACS::getAge($process_file); $studyObject->location = PACS::getLocation($process_file); $study_description = formatStudy($studyObject->date, $studyObject->age, $studyObject->description); $study_chris_id = Mapper::add($studyObject); } else { // Content to be updated if ($studyResult['Study'][0]->age == -1) { // // get data name (series description) // if (array_key_exists('StudyDescription', $process_file)) { $studyResult['Study'][0]->description = sanitize($process_file['StudyDescription'][0]); } else { $studyResult['Study'][0]->description = 'NoStudyDescription'; } if (array_key_exists('Modality', $process_file)) { $studyResult['Study'][0]->modality = sanitize($process_file['Modality'][0]); } else { $studyResult['Study'][0]->modality = 'NoModality'; } $studyResult['Study'][0]->date = PACS::getDate($process_file); $studyResult['Study'][0]->age = PACS::getAge($process_file); $studyResult['Study'][0]->location = PACS::getLocation($process_file); $study_description = formatStudy($studyResult['Study'][0]->date, $studyResult['Study'][0]->age, $studyResult['Study'][0]->description); $study_chris_id = $studyResult['Study'][0]->id; Mapper::update($studyResult['Study'][0], $studyResult['Study'][0]->id); } else { $study_chris_id = $studyResult['Study'][0]->id; $study_description = formatStudy($studyResult['Study'][0]->date, $studyResult['Study'][0]->age, $studyResult['Study'][0]->description); } } } else { echo 'Study UID not provided in DICOM file' . PHP_EOL; // finish data table lock $db->unlock(); return 0; } // finish data table lock $db->unlock(); return 1; }
public static function status($feedid, $status, $op) { // get $db instance $db = DB::getInstance(); $db->lock('feed', 'WRITE'); // grab the feed $feedResult = Mapper::getStatic('Feed', $feedid); if (count($feedResult['Feed']) == 0) { $db->unlock(); die('Invalid feed id.'); } # grab old status $old_status = $feedResult['Feed'][0]->status; $type = gettype($status); echo "Performing '{$op}' with value '{$status}' on current status '{$old_status}'\n"; if ($op == 'inc') { // increasing mode echo "Increasing status of feed {$feedid} by {$status}... "; # increase status $status = $old_status + $status; } if ($op == 'set') { // set mode if ($old_status >= $status || $status > 100) { $db->unlock(); die("Ignoring setting the status since the old status {$old_status} >= the new status {$status} or the old status >= 100.\n"); } else { echo "Setting status of feed {$feedid} to {$status}... "; } } echo "status now {$status}.\n"; # clamp the addition if ($status >= 100) { $status = 100; $startTime = $feedResult['Feed'][0]->time; $endTime = microtime(true); $duration = $endTime - $startTime; $feedResult['Feed'][0]->time = $endTime; $feedResult['Feed'][0]->duration = $duration; } # push to database $feedResult['Feed'][0]->status = $status; Mapper::update($feedResult['Feed'][0], $feedid); $db->unlock(); # update related shared feeds $relatedMapper = new Mapper('Feed'); $relatedMapper->join('Meta', 'Meta.target_id = Feed.id')->filter('Meta.name = (?)', 'root_id')->filter('Meta.value = (?)', $feedResult['Feed'][0]->id)->filter('Feed.id != (?)', $feedResult['Feed'][0]->id); $relatedResult = $relatedMapper->get(); foreach ($relatedResult['Feed'] as $key => $value) { $relatedResult['Feed'][$key]->time = $feedResult['Feed'][0]->time; $relatedResult['Feed'][$key]->duration = $feedResult['Feed'][0]->duration; $relatedResult['Feed'][$key]->status = $feedResult['Feed'][0]->status; Mapper::update($relatedResult['Feed'][$key], $relatedResult['Feed'][$key]->id); } # send email if status == 100 if ($status == 100) { // user's email $userMapper = new Mapper('User'); $userMapper->filter('user.id = (?)', $feedResult['Feed'][0]->user_id); $userResult = $userMapper->get(); // if nothing in DB yet, return -1 if (count($userResult['User']) > 0) { $subject = "ChRIS2 - " . $feedResult['Feed'][0]->plugin . " plugin finished"; $message = "Hello " . $userResult['User'][0]->username . "," . PHP_EOL . PHP_EOL; $message .= "Your results are available at:" . PHP_EOL . PHP_EOL; $dirRoot = joinPaths(CHRIS_USERS, $userResult['User'][0]->username, $feedResult['Feed'][0]->plugin, $feedResult['Feed'][0]->name . '-' . $feedResult['Feed'][0]->id); $dataDir = array_diff(scandir($dirRoot), array('..', '.')); foreach ($dataDir as $dir) { $mailFilePath = $dirRoot . '/' . $dir . '/_chrisRun_/' . 'chris.mail'; if (file_exists($mailFilePath)) { $mailContents = file_get_contents($mailFilePath); $message .= $dirRoot . '/' . $dir . PHP_EOL . $mailContents . PHP_EOL . PHP_EOL; } else { $message .= $dirRoot . '/' . $dir . PHP_EOL . PHP_EOL; } } $message .= "Thank you for using ChRIS."; echo "Sending email to " . $userResult['User'][0]->email . " since the status is '{$status}'%.\n"; // get user email address email(CHRIS_PLUGIN_EMAIL_FROM, $userResult['User'][0]->email, $subject, $message); } } }
public function testUpdate() { // get a patient by id $patientObject = new Patient(); $patientObject->name = 'PLN2'; $patientObject->dob = '2002-01-01'; $patientObject->sex = 'F'; $patientObject->uid = 'PID2;'; $patientID = Mapper::add($patientObject); // Modify one field $patientObject->name = 'PLN3'; // Update database and get object Mapper::update($patientObject, $patientID); $patientResult = Mapper::getStatic('Patient', $patientID); // compared object we just added with its "base" object // we make sure id match $patientObject->id = $patientID; $this->assertTrue($patientResult['Patient'][0]->equals($patientObject) == True); // update "silly" object to create one object which alread exists $existingID = Mapper::update($patientObject, -1); // should return the id of the object which already exists $this->assertTrue($patientID == $existingID); //update object that does not exist $patientObject->name = 'PLN4'; $existingID = Mapper::update($patientObject, -1); // update should return 0 if object does not exist $this->assertTrue($existingID == 0); // clean the DB Mapper::delete('Patient', $patientID); }
$targetbase = CHRIS_DATA . '/' . $patientResult['Patient'][0]->uid . '-' . $patientResult['Patient'][0]->id; $series_dir_name = $dataResult['Data'][0]->description . '-' . $dataResult['Data'][0]->name; $seriesdirnametarget = $targetbase . '/' . $study_dir_name . '/' . $series_dir_name . '-' . $dataResult['Data'][0]->id; $seriesdirnamelink = $datadirname . '/' . $study_dir_name . '/' . $series_dir_name . '-' . $dataResult['Data'][0]->id; if (file_exists($seriesdirnametarget)) { if (!is_link($seriesdirnamelink)) { // create sof link symlink($seriesdirnametarget, $seriesdirnamelink); } } else { $dataLog .= "ERROR: Directory does not exist: " . $seriesdirnametarget . PHP_EOL; } // update feed status? $fh = fopen($logFile, 'a') or die("can't open file"); fwrite($fh, $dataLog); fclose($fh); $waiting = false; } else { sleep(2); } } // update status $counter++; } // update feed status in db $feedMapper = new Mapper('Feed'); $feedMapper->filter('id = (?)', $feed_chris_id); $feedResult = $feedMapper->get(); $feedResult['Feed'][0]->status = 99; Mapper::update($feedResult['Feed'][0], $feedResult['Feed'][0]->id); exit(0);
// delete the temp file unlink($study_directory . '/' . $entry2); } } } closedir($handle2); // delete directory $logFile .= 'delete: ' . $study_directory . PHP_EOL; rmdir($study_directory); } // add warning if we didn't receive all the expected files // todo: all queries at once foreach ($received as $key => $value) { $dataMapper = new Mapper('Data'); $dataMapper->filter('id = (?)', $value); $dataResult = $dataMapper->get(); if ($dataResult['Data'][0]->status != $dataResult['Data'][0]->nb_files) { $logFile .= 'WARNING => DATA ID : ' . $dataResult['Data'][0]->id . '(' . $dataResult['Data'][0]->status . '/' . $dataResult['Data'][0]->nb_files . ')' . $entry . PHP_EOL; // update db to unlock plugin if ($dataResult['Data'][0]->nb_files == -1) { $dataResult['Data'][0]->nb_files = $dataResult['Data'][0]->status; } else { $dataResult['Data'][0]->status = min($dataResult['Data'][0]->status, $dataResult['Data'][0]->nb_files); $dataResult['Data'][0]->nb_files = $dataResult['Data'][0]->status; } Mapper::update($dataResult['Data'][0], $dataResult['Data'][0]->id); } } sendEmail($process_file, $datadirname, $emailTo, $link); echo $logFile; return;
/** * Set a user email address. * * @param string $uid * @param string $email */ public static function setEmail($uid, $email) { $userMapper = new Mapper('User'); $userMapper->filter('id=(?)', $uid); $userResults = $userMapper->get(); // if user exist, return its id if (isset($userResults['User'][0])) { // update email address $userResults['User'][0]->email = $email; Mapper::update($userResults['User'][0], $uid); } }