/**
* Gets the last drug that was applied for for the given patient, episode and side.
*
* @param Patient $patient
* @param Episode $episode
* @param string $side
*
* @throws Exception
*
* @return OphTrIntravitrealinjection_Treatment_Drug
*/
public function getLatestApplicationDrug($patient, $episode, $side)
{
if ($episode) {
$event_type = $this->getEventType();
$criteria = new CDbCriteria();
$criteria->compare('event.event_type_id', $event_type->id);
$criteria->compare('event.episode_id', $episode->id);
$criteria->order = 't.created_date desc';
$criteria->limit = 1;
$eye_ids = array('eye_id' => SplitEventTypeElement::BOTH);
if ($side == 'left') {
$eye_ids[] = SplitEventTypeElement::LEFT;
} elseif ($side == 'right') {
$eye_ids[] = SplitEventTypeElement::RIGHT;
} else {
throw new Exception('unrecognised side value ' . $side);
}
$criteria->addInCondition('eye_id', $eye_ids);
if ($suit = Element_OphCoTherapyapplication_PatientSuitability::model()->with('event', $side . '_treatment')->find($criteria)) {
return $suit->{$side . '_treatment'}->drug;
}
}
}