/**
* Set prescription item defaults when creating.
*
* @param BaseEventTypeElement $element
* @param string $action
*/
protected function setElementDefaultOptions($element, $action)
{
parent::setElementDefaultOptions($element, $action);
if ($action == 'create' && get_class($element) == 'Element_OphDrPrescription_Details') {
// Prepopulate prescription with set by episode status
// FIXME: It's brittle relying on the set name matching the status
$items = array();
$status_name = $this->episode->status->name;
$subspecialty_id = $this->firm->getSubspecialtyID();
$params = array(':subspecialty_id' => $subspecialty_id, ':status_name' => $status_name);
$set = DrugSet::model()->find(array('condition' => 'subspecialty_id = :subspecialty_id AND name = :status_name', 'params' => $params));
if ($set) {
foreach ($set->items as $item) {
$item_model = new OphDrPrescription_Item();
$item_model->drug_id = $item->drug_id;
$item_model->loadDefaults();
$items[] = $item_model;
}
}
$element->items = $items;
}
}