public function generateDefaultCodesAction()
 {
     $code = $this->_getParam('code');
     $handlerName = $this->_getParam('handlerName');
     $condition = (int) $this->_getParam('condition');
     $generalAlertHandler = new GeneralAlertHandler();
     $generalAlertHandler->name = $handlerName;
     $generalAlertHandler->condition = $condition;
     $data = '';
     switch ($code) {
         case 'handlerObject':
             $data = $generalAlertHandler->generateDefaultHandlerObject();
             break;
         case 'datasource':
             $data = $generalAlertHandler->generateDefaultDatasource();
             break;
         case 'template':
             $data = $generalAlertHandler->generateDefaultTemplate();
             break;
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }
    public static function generateClinicalNoteHandler()
    {
        $objects = self::_generatePatient();
        $audit = new Audit();
        $audit->_ormPersist = true;
        $audit->objectClass = 'ClinicalNote';
        $audit->objectId = $objects['patient']->person_id;
        $audit->dateTime = date('Y-m-d H:i:s');
        $audit->type = WebVista_Model_ORM::REPLACE;
        $audit->userId = (int) Zend_Auth::getInstance()->getIdentity()->personId;
        $audit->persist();
        $objects['audit'] = $audit;
        $handler = new GeneralAlertHandler();
        $handler->name = 'Clinical Notes Handler ' . NSDR::create_guid();
        $handler->active = 1;
        $handler->condition = $audit->auditId;
        $handler->handlerObject = $handler->generateDefaultHandlerObject();
        $handlerName = Handler::normalizeHandlerName($handler->name);
        $handler->datasource = <<<EOL

class {$handlerName}GeneralAlertDatasource extends GeneralAlertDatasourceAbstract {
\t//abstract requires at least this method
\tpublic static function sourceData(Audit \$audit) {
\t\t\$eSignIterator = new ESignatureIterator();
\t\t\$eSignIterator->setFilter(\$audit->userId,'signList');
\t\t\$ret = array();
\t\tforeach (\$eSignIterator as \$eSign) {
\t\t\t\$objectClass = \$eSign->objectClass;
\t\t\t\$obj = new \$objectClass();
\t\t\tforeach (\$obj->_primaryKeys as \$key) {
\t\t\t\t\$obj->\$key = \$eSign->objectId;
\t\t\t}
\t\t\t\$obj->populate();
\t\t\t\$personId = \$obj->personId;
\t\t\t\$patient = new Patient();
\t\t\t\$patient->personId = \$personId;
\t\t\t\$patient->populate();
\t\t\t\$teamId = \$patient->teamId;

\t\t\t\$row = array();
\t\t\t\$row['teamId'] = \$teamId;
\t\t\t\$row['signingUserId'] = \$eSign->signingUserId;
\t\t\t\$row['objectId'] = \$eSign->objectId;
\t\t\t\$row['objectClass'] = \$eSign->objectClass;
\t\t\t\$ret[] = \$row;
\t\t}
\t\treturn \$ret;
\t}
}

EOL;
        $handler->template = $handler->generateDefaultTemplate();
        $handler->persist();
        $objects['generalAlertHandler'] = $handler;
        return $objects;
    }