OEModule\OphCiExamination\controllers\DefaultController::saveComplexAttributes_Element_OphCiExamination_History PHP Method

saveComplexAttributes_Element_OphCiExamination_History() protected method

Save allergies - because it's part of the History element it need to be saved from that element.
protected saveComplexAttributes_Element_OphCiExamination_History ( $element, $data, $index )
$element
$data
$index
    protected function saveComplexAttributes_Element_OphCiExamination_History($element, $data, $index)
    {
        $patient = \Patient::model()->findByPk($this->patient->id);
        // we remove all current allergy data
        if (!empty($data['deleted_allergies'])) {
            foreach ($data['deleted_allergies'] as $i => $assignment_id) {
                if ($assignment_id > 0) {
                    $allergyToDel = \PatientAllergyAssignment::model()->findByPk($assignment_id);
                    if ($allergyToDel) {
                        $allergyToDel->delete();
                    }
                }
            }
        }
        if (isset($data['no_allergies']) && $data['no_allergies']) {
            $patient->setNoAllergies();
        } else {
            if (!empty($data['selected_allergies'])) {
                foreach ($data['selected_allergies'] as $i => $allergy_id) {
                    $allergyObject = \Allergy::model()->findByPk($allergy_id);
                    if ($data['other_names'][$i] == 'undefined') {
                        $data['other_names'][$i] = '';
                    }
                    $patient->addAllergy($allergyObject, $data['other_names'][$i], $data['allergy_comments'][$i], false, $this->event->id);
                }
            }
        }
    }
DefaultController