OEModule\OphCoCvi\controllers\DefaultController::setElementDefaultOptions_Element_OphCoCvi_ClinicalInfo PHP Method

setElementDefaultOptions_Element_OphCoCvi_ClinicalInfo() protected method

protected setElementDefaultOptions_Element_OphCoCvi_ClinicalInfo ( Element_OphCoCvi_ClinicalInfo $element, $action )
$element OEModule\OphCoCvi\models\Element_OphCoCvi_ClinicalInfo
$action
    protected function setElementDefaultOptions_Element_OphCoCvi_ClinicalInfo(models\Element_OphCoCvi_ClinicalInfo $element, $action)
    {
        // only populate values into the new element if a clinical user
        if ($element->isNewRecord && $this->checkClinicalEditAccess()) {
            if ($exam_api = $this->getApp()->moduleAPI->get('OphCiExamination')) {
                if ($latest_exam = $exam_api->getMostRecentVAElementForPatient($this->patient)) {
                    $element->examination_date = $latest_exam['event_date'];
                    $element->best_corrected_right_va = $exam_api->getMostRecentVAForPatient($this->patient, 'right', 'aided', $latest_exam['element']);
                    $element->best_corrected_left_va = $exam_api->getMostRecentVAForPatient($this->patient, 'left', 'aided', $latest_exam['element']);
                    $element->unaided_right_va = $exam_api->getMostRecentVAForPatient($this->patient, 'right', 'unaided', $latest_exam['element']);
                    $element->unaided_left_va = $exam_api->getMostRecentVAForPatient($this->patient, 'left', 'unaided', $latest_exam['element']);
                }
            }
            $cvi_disorders = models\OphCoCvi_ClinicalInfo_Disorder::model()->active()->findAll();
            $cvi_ids_by_disorder_id = array();
            foreach ($cvi_disorders as $cvid) {
                if ($disorder_id = $cvid->disorder_id) {
                    $cvi_ids_by_disorder_id[$disorder_id] = $cvid->id;
                }
            }
            if (count($cvi_ids_by_disorder_id)) {
                foreach (array('left' => \Eye::LEFT, 'right' => \Eye::RIGHT) as $side => $eye_id) {
                    $assignments = array();
                    foreach ($this->patient->getAllDisorders($eye_id) as $patient_disorder) {
                        if (array_key_exists($patient_disorder->id, $cvi_ids_by_disorder_id)) {
                            $cvi_ass = new models\Element_OphCoCvi_ClinicalInfo_Disorder_Assignment();
                            $cvi_ass->ophcocvi_clinicinfo_disorder_id = $cvi_ids_by_disorder_id[$patient_disorder->id];
                            $cvi_ass->affected = true;
                            $assignments[] = $cvi_ass;
                        }
                    }
                    $element->{$side . '_cvi_disorder_assignments'} = $assignments;
                }
            }
        }
    }