The followings are the available columns in table 'drug_set_item':
Inheritance: extends BaseActiveRecordVersioned
 /**
  * @covers DrugSetItem::search
  */
 public function testSearch()
 {
     $this->model->setAttributes($this->drugsetitems('drugsetitem1')->getAttributes());
     $results = $this->model->search();
     $data = $results->getData();
     $expectedKeys = array('drugsetitem1');
     $expectedResults = array();
     if (!empty($expectedKeys)) {
         foreach ($expectedKeys as $key) {
             $expectedResults[] = $this->drugsetitems($key);
         }
     }
     $this->assertEquals(1, $results->getItemCount());
     $this->assertEquals($expectedResults, $data);
 }
 /**
  * Ajax function to get drug set for admin page (we do not have patient_id there), and we also load the
  * name and subspecialty here.
  *
  * @param $key
  * @param $set_id
  *
  * @throws CException
  */
 public function actionSetFormAdmin($key, $set_id)
 {
     $drugset = DrugSet::model()->findByPk($set_id);
     $returnData = array();
     $returnData['drugsetName'] = $drugset->name;
     $returnData['drugsetSubspecialtyId'] = $drugset->subspecialty_id;
     $returnData['tableRows'] = '';
     // the HTML content for the prescription items table
     $key = (int) $key;
     $drug_set_items = DrugSetItem::model()->findAllByAttributes(array('drug_set_id' => $set_id));
     foreach ($drug_set_items as $drug_set_item) {
         $returnData['tableRows'] .= $this->renderPrescriptionItem($key, $drug_set_item);
         ++$key;
     }
     echo json_encode($returnData);
 }
 /**
  * Save drug set data from the admin interface.
  */
 public function actionSaveDrugSet()
 {
     // we need to decide if it's a new set or modification
     $drugSet = Yii::app()->request->getParam('DrugSet');
     $prescriptionItem = Yii::app()->request->getParam('prescription_item');
     if (isset($drugSet['id'])) {
         $drugSetId = $drugSet['id'];
     }
     if ($drugSetId > 0) {
         $drugset = DrugSet::model()->findByPk($drugSetId);
     } else {
         $drugset = new DrugSet();
     }
     $drugset->name = $drugSet['name'];
     $drugset->subspecialty_id = $drugSet['subspecialty'];
     $drugset->active = $drugSet['active'];
     if ($drugset->save()) {
         // we delete previous tapers and items, and insert the new ones
         $currentDrugRows = DrugSetItem::model()->findAll(new CDbCriteria(array('condition' => "drug_set_id = '" . $drugset->id . "'")));
         foreach ($currentDrugRows as $currentDrugRow) {
             DrugSetItemTaper::model()->deleteAll(new CDbCriteria(array('condition' => "item_id = '" . $currentDrugRow->id . "'")));
             $currentDrugRow->delete();
         }
         if (isset($prescriptionItem) && is_array($prescriptionItem)) {
             foreach ($prescriptionItem as $item) {
                 $item_model = new DrugSetItem();
                 $item_model->drug_set_id = $drugset->id;
                 $item_model->attributes = $item;
                 $item_model->save();
                 // we need an id to save tapers
                 if (isset($item['taper'])) {
                     $tapers = array();
                     foreach ($item['taper'] as $taper) {
                         $taper_model = new DrugSetItemTaper();
                         $taper_model->attributes = $taper;
                         $taper_model->item_id = $item_model->id;
                         $taper_model->save();
                         $tapers[] = $taper_model;
                     }
                     //$item_model->tapers = $tapers;
                 }
                 //$items[] = $item_model;
                 //$item_model->save();
             }
             Yii::app()->user->setFlash('info.save_message', 'Save successful.');
         } else {
             Yii::app()->user->setFlash('info.save_message', 'Unable to save drugs, please add at least one drug to the set. Set name and subspecialty saved.');
         }
         $this->redirect('/OphDrPrescription/DrugSetAdmin/DrugSets');
     } else {
         // TODO: maybe more error handling need to be added here!!
         if ($drugSetId > 0) {
             $admin = $this->initAdmin($drugSetId);
         } else {
             $admin = $this->initAdmin(false);
         }
         $this->render('//admin/generic/edit', array('admin' => $admin, 'errors' => $drugset->getErrors()));
     }
 }