beforeSave() защищенный Метод

protected beforeSave ( )
 /**
  * if a secondary diagnosis disorder id has been set, we need to ensure its created on the patient.
  *
  * @see parent::beforeSave()
  */
 public function beforeSave()
 {
     $curr_sd = $this->_getSecondaryDiagnosis();
     if ($this->secondarydiagnosis_disorder_id && $curr_sd && $curr_sd->disorder_id != $this->secondarydiagnosis_disorder_id) {
         // looks like this is an edit and the previous secondary diagnosis should be removed
         // so we can set the correct value
         $curr_disorder = $curr_sd->disorder;
         $curr_sd->delete();
         $curr_sd = null;
         Yii::app()->user->setFlash('warning.alert', "Disorder '" . $curr_disorder->term . "' has been removed because DR Grading diagnosis was updated.");
     }
     if (!$curr_sd) {
         // need to determine if we are setting a specific disorder on the patient, or a generic diabetes
         // diagnosis (which is implied by recording DR)
         $patient = $this->event->episode->patient;
         $sd = null;
         if ($this->secondarydiagnosis_disorder_id) {
             // no secondary diagnosis has been set by this element yet but one has been
             // assigned (i.e. the element is being created with a diabetes type)
             // final check to ensure nothing has changed whilst processing
             if (!$patient->hasDisorderTypeByIds(array_merge(\Disorder::$SNOMED_DIABETES_TYPE_I_SET, \Disorder::$SNOMED_DIABETES_TYPE_II_SET))) {
                 $sd = new \SecondaryDiagnosis();
                 $sd->patient_id = $patient->id;
                 $sd->disorder_id = $this->secondarydiagnosis_disorder_id;
             } else {
                 // clear out the secondarydiagnosis_disorder_id
                 $this->secondarydiagnosis_disorder_id = null;
                 // reset required flag as patient now has a diabetes type
                 $this->secondarydiagnosis_disorder_required = false;
             }
         } elseif (!$patient->hasDisorderTypeByIds(\Disorder::$SNOMED_DIABETES_SET)) {
             // Set the patient to have diabetes
             $sd = new \SecondaryDiagnosis();
             $sd->patient_id = $patient->id;
             $sd->disorder_id = \Disorder::SNOMED_DIABETES;
         }
         if ($sd !== null) {
             $sd->save();
             \Audit::add('SecondaryDiagnosis', 'add', $sd->id, null, array('patient_id' => $patient->id));
             $this->secondarydiagnosis_id = $sd->id;
             Yii::app()->user->setFlash('info.info', "Disorder '" . $sd->disorder->term . "' has been added to patient by DR Grading.");
         }
     }
     return parent::beforeSave();
 }
 protected function beforeSave()
 {
     return parent::beforeSave();
 }
 public function beforeSave()
 {
     // Always both eyes because we record default values to "not recorded" eyes/panels
     $this->eye_id = \Eye::BOTH;
     return parent::beforeSave();
 }