OphDrPrescription_Item::loadDefaults PHP Method

loadDefaults() public method

public loadDefaults ( )
    public function loadDefaults()
    {
        if ($this->drug) {
            $this->duration_id = $this->drug->default_duration_id;
            $this->frequency_id = $this->drug->default_frequency_id;
            $this->route_id = $this->drug->default_route_id;
            $this->dose = trim($this->drug->default_dose . ' ' . $this->drug->dose_unit);
        }
    }

Usage Example

Example #1
0
 /**
  * Render the form for a OphDrPrescription_Item, DrugSetItem or Drug (by id).
  *
  * @param $key
  * @param OphDrPrescription_Item|DrugSetItem|int $source
  *
  * @throws CException
  */
 public function renderPrescriptionItem($key, $source)
 {
     $item = new OphDrPrescription_Item();
     if (is_a($source, 'OphDrPrescription_Item')) {
         // Source is a prescription item, so we should clone it
         foreach (array('drug_id', 'duration_id', 'frequency_id', 'dose', 'route_option_id', 'route_id', 'continue_by_gp') as $field) {
             $item->{$field} = $source->{$field};
         }
         if ($source->tapers) {
             $tapers = array();
             foreach ($source->tapers as $taper) {
                 $taper_model = new OphDrPrescription_ItemTaper();
                 $taper_model->dose = $taper->dose;
                 $taper_model->frequency_id = $taper->frequency_id;
                 $taper_model->duration_id = $taper->duration_id;
                 $tapers[] = $taper_model;
             }
             $item->tapers = $tapers;
         }
     } else {
         if (is_a($source, 'DrugSetItem')) {
             // Source is an drug set item which contains frequency and duration data
             $item->drug_id = $source->drug_id;
             $item->loadDefaults();
             foreach (array('duration_id', 'frequency_id', 'dose') as $field) {
                 if ($source->{$field}) {
                     $item->{$field} = $source->{$field};
                 }
             }
             if ($source->tapers) {
                 $tapers = array();
                 foreach ($source->tapers as $taper) {
                     $taper_model = new OphDrPrescription_ItemTaper();
                     foreach (array('duration_id', 'frequency_id', 'dose') as $field) {
                         if ($taper->{$field}) {
                             $taper_model->{$field} = $taper->{$field};
                         } else {
                             $taper_model->{$field} = $item->{$field};
                         }
                     }
                     $tapers[] = $taper_model;
                 }
                 $item->tapers = $tapers;
             }
         } elseif (is_int($source) || (int) $source) {
             // Source is an integer, so we use it as a drug_id
             $item->drug_id = $source;
             $item->loadDefaults();
         } else {
             throw new CException('Invalid prescription item source: ' . print_r($source));
         }
         // Populate route option from episode for Eye
         if ($episode = $this->episode) {
             if ($principal_eye = $episode->eye) {
                 $route_option_id = DrugRouteOption::model()->find('name = :eye_name', array(':eye_name' => $principal_eye->name));
                 $item->route_option_id = $route_option_id ? $route_option_id : null;
             }
             //check operation note eye and use instead of original diagnosis
             if ($api = Yii::app()->moduleAPI->get('OphTrOperationnote')) {
                 if ($apieye = $api->getLastEye($this->patient)) {
                     $item->route_option_id = $apieye;
                 }
             }
         }
     }
     if (isset($this->patient)) {
         $this->renderPartial('/default/form_Element_OphDrPrescription_Details_Item', array('key' => $key, 'item' => $item, 'patient' => $this->patient));
     } else {
         $output = $this->renderPartial('/default/form_Element_OphDrPrescription_Details_Item', array('key' => $key, 'item' => $item), true);
         return $output;
     }
 }