The followings are the available columns in table:
Inheritance: extends BaseActiveRecordVersioned
Exemple #1
0
 public function run()
 {
     $cls_name = explode('\\', get_class($this));
     $this->shortName = array_pop($cls_name);
     if (file_exists(dirname(__FILE__) . '/js/' . $this->shortName . '.js')) {
         $this->assetFolder = Yii::app()->getAssetManager()->publish(dirname(__FILE__) . '/js/');
         Yii::app()->getClientScript()->registerScriptFile($this->assetFolder . '/' . $this->shortName . '.js');
     }
     if ($this->queue_id) {
         $queue = models\Queue::model()->findByPk($this->queue_id);
     } else {
         $queue = null;
     }
     $form_fields = $queue->getFormFields();
     $auto_save = false;
     if (isset($_POST[$form_fields[0]['form_name']])) {
         // if post contains patient ticket data
         $form_data = $_POST;
     } elseif ($form_data = AutoSaveTicket::getFormData($this->patient_id, $this->current_queue_id)) {
         $auto_save = true;
     }
     //if this is the outcome widget and a correspondence has been created
     //display the print letter button
     $print_letter_event = false;
     foreach ($form_fields as $fld) {
         if (@$fld['widget_name'] == 'TicketAssignAppointment') {
             if ($api = \Yii::app()->moduleAPI->get('OphCoCorrespondence')) {
                 if ($episode = $this->ticket->patient->getEpisodeForCurrentSubspecialty()) {
                     if ($event = $api->getLatestEvent($episode)) {
                         if ($event->created_date > $this->ticket->created_date) {
                             $print_letter_event = $event;
                         }
                     }
                 }
             }
         }
     }
     $this->render('QueueAssign', array('queue' => $queue, 'form_fields' => $form_fields, 'form_data' => $form_data, 'auto_save' => $auto_save, 'print_letter_event' => $print_letter_event));
 }
 public function validateForm($ticket_id)
 {
     if (!($ticket = models\Ticket::model()->with('current_queue')->findByPk($ticket_id))) {
         throw new \CHttpException(404, 'Invalid ticket id.');
     }
     if (!($to_queue = models\Queue::model()->active()->findByPk($_POST['to_queue_id']))) {
         throw new \CHttpException(404, "Cannot find queue with id {$_POST['to_queue_id']}");
     }
     $api = Yii::app()->moduleAPI->get('PatientTicketing');
     list($data, $errs) = $api->extractQueueData($to_queue, $_POST, true);
     return $errs;
 }
 /**
  * Marks the given Queue inactive.
  *
  * @throws \CHttpException
  */
 public function actionDeactivateQueue()
 {
     if (!($queue = models\Queue::model()->findByPk((int) @$_POST['id']))) {
         throw new \CHttpException(404, 'Queue not found with id ' . @$_POST['id']);
     }
     $transaction = Yii::app()->db->beginTransaction();
     try {
         $this->deactivateQueue($queue);
         $transaction->commit();
     } catch (Exception $e) {
         $transaction->rollback();
         throw new \CHttpException(500, 'Could not change queue state');
     }
     echo 1;
 }
 /**
  * Returns the initial queues a patient ticket can be created against.
  *
  * @param \Firm $firm
  *
  * @return Queue[]
  */
 public function getInitialQueues(\Firm $firm)
 {
     $criteria = new \CDbCriteria();
     $criteria->addColumnCondition(array('is_initial' => true));
     return Queue::model()->active()->findAll($criteria);
 }
Exemple #5
0
 /**
  * @dataProvider assignmentFieldValidateProvider
  */
 public function testAssignmentFieldValidate($ass_fields, $valid, $messages)
 {
     $model = new models\Queue();
     $model->name = 'Test Queue';
     $model->assignment_fields = $ass_fields;
     $res = $model->validate();
     $this->assertEquals($valid, $res, 'Unexpected validation response');
     if ($messages) {
         $errs = $model->getErrors('assignment_fields');
         $this->assertEquals(count($errs), count($messages), 'Error message count not matching expectation');
         foreach ($messages as $i => $msg) {
             $this->assertEquals($msg, $errs[$i]);
         }
     }
 }