/** * associate the answers and risks from the data with the Element_OphCiExamination_InjectionManagementComplex element for * validation. * * @param Element_OphCiExamination_InjectionManagementComplex $element * @param array $data * @param $index */ protected function setComplexAttributes_Element_OphCiExamination_InjectionManagementComplex($element, $data, $index) { $model_name = \CHtml::modelName($element); foreach (array('left' => \Eye::LEFT, 'right' => \Eye::RIGHT) as $side => $eye_id) { $answers = array(); $risks = array(); $checker = 'has' . ucfirst($side); if ($element->{$checker}()) { if (isset($data[$model_name][$side . '_Answer'])) { foreach ($data[$model_name][$side . '_Answer'] as $id => $p_ans) { $answer = new models\OphCiExamination_InjectionManagementComplex_Answer(); $answer->question_id = $id; $answer->answer = $p_ans; $answer->eye_id = $eye_id; $answers[] = $answer; } } if (isset($data[$model_name][$side . '_risks'])) { foreach ($data[$model_name][$side . '_risks'] as $risk_id) { if ($risk = models\OphCiExamination_InjectionManagementComplex_Risk::model()->findByPk($risk_id)) { $risks[] = $risk; } } } } $element->{$side . '_answers'} = $answers; $element->{$side . '_risks'} = $risks; } }
/** * get the risk options for a given side. * * @param $side * @return array */ public function getRisksForSide($side) { return OphCiExamination_InjectionManagementComplex_Risk::model()->activeOrPk($this->riskValues)->findAll(); }