/** * Gets latest booking diagnosis from completed operation booking or defaults to episode diagnosis. * * @return string */ public function getLatestCompletedOperationBookingDiagnosis($patient) { $completed = OphTrOperationbooking_Operation_Status::model()->find('name=?', array('Completed')); $criteria = new CDbCriteria(); $criteria->addCondition('episode.patient_id = :patient_id'); $criteria->params[':patient_id'] = $patient->id; $criteria->order = 'event.created_date desc'; $criteria->addCondition('t.status_id = :status_id'); $criteria->params[':status_id'] = $completed->id; if ($operation = Element_OphTrOperationbooking_Operation::model()->with(array('event' => array('with' => 'episode')))->find($criteria)) { return Element_OphTrOperationbooking_Diagnosis::model()->find('event_id=?', array($operation->event_id))->disorder->term; } return $patient->epd; }
public function getDisorderText() { if (!($diagnosis = Element_OphTrOperationbooking_Diagnosis::model()->find('event_id=?', array($this->event_id)))) { throw new Exception("Unable to find diagnosis element for event_id {$this->event_id}"); } return $diagnosis->disorder->term; }