public function tearDown() { parent::tearDown(); $nsdrDefinition = new NSDRDefinition(); foreach ($this->_definitions as $key => $val) { $nsdrDefinition->removeByNamespace($key); } NSDR2::systemReload(); }
public static function systemUnload() { $memcache = Zend_Registry::get('memcache'); $memcache->set(self::$_statusKey, self::$_states[5]); // By default all NSDR methods will return an empty/false value $methods = array('persist' => 'return false;', 'populate' => 'return "";', 'aggregateDisplay' => 'return "";', 'aggregateDisplayByLine' => 'return "";'); $nsdrDefinition = new NSDRDefinition(); $nsdrDefinitionIterator = $nsdrDefinition->getIterator(); foreach ($nsdrDefinitionIterator as $row) { foreach ($methods as $method => $value) { $keySuffix = '[' . $method . '()]'; $key = $row->namespace . $keySuffix; self::removeNamespace($key); } } $memcache->set(self::$_statusKey, self::$_states[4]); }
/** * Process the modified NSDR definition together its NSDR definition methods */ public function processEditAction() { $this->editAction(); // NSDR Definition parameters $params = $this->_getParam('nsdrDefinition'); $this->_nsdrDefinition->populateWithArray($params); $id = $params['uuid']; if (!strlen($id) > 0) { $this->_nsdrDefinition->uuid = NSDR::create_guid(); } $message = __('Record Saved for NSDR Definition: ' . $this->_nsdrDefinition->namespace); $code = 200; // cannot add method if alias exists (alias must be canonical) if (strlen($this->_nsdrDefinition->aliasFor) > 0) { $nsdr = new NSDRDefinition(); //$nsdr->uuid = $this->_nsdrDefinition->aliasFor; //$nsdr->populate(); $nsdr->populateByNamespace($this->_nsdrDefinition->aliasFor); if (strlen($nsdr->namespace) > 0) { if (strlen($nsdr->aliasFor) > 0) { $this->_nsdrDefinition->aliasFor = ''; $message = __('Alias must be canonical.'); $code = 400; } } else { $this->_nsdrDefinition->aliasFor = ''; $message = __('Alias does not exists.'); $code = 401; } } if (strlen($this->_nsdrDefinition->ORMClass) > 0) { if (!NSDRDefinition::isORMClassImplementsMethod($this->_nsdrDefinition->ORMClass)) { $this->_nsdrDefinition->ORMClass = ''; $message = __('Invalid ORM Class'); $code = 402; } } $this->_nsdrDefinition->persist(); $this->view->message = $message; $this->view->code = $code; $this->render('edit'); }
/** * Process the modified clinical notes template */ public function processEditTemplateAction() { $params = $this->_getParam('cnTemplate'); $autoAdd = (int) $this->_getParam('autoAdd'); $cnTemplate = new ClinicalNoteTemplate(); $cnTemplate->populateWithArray($params); $data = array(); try { $xml = new SimpleXMLElement($cnTemplate->template); $data['msg'] = __('Record saved successfully.'); $cnTemplate->persist(); } catch (Exception $e) { $data['error'] = __('Error: ' . $e->getMessage()); } if (!isset($data['error']) && (string) $xml->attributes()->useNSDR && (string) $xml->attributes()->useNSDR == 'true') { $namespaceAdd = false; $namespaces = array(); $nsdrDefinition = new NSDRDefinition(); foreach ($xml as $questions) { foreach ($questions as $key => $item) { $namespace = (string) $item->attributes()->namespace; if ($key != 'dataPoint' || $namespace && !strlen($namespace) > 0) { continue; } // extract namespace only $namespace = NSDR2::extractNamespace($namespace); // check if namespace exists then auto-add if does not if (!$nsdrDefinition->isNamespaceExists($namespace) && $autoAdd) { $nsdrDefinition->addNamespace($namespace, 'GenericData'); $namespaceAdd = true; } } } if ($namespaceAdd) { $data['msg'] .= "\n\n" . __('Please reload NSDR'); } } $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json'); $json->suppressExit = true; $json->direct($data); }
public function testAddDefinition() { $uuid = NSDR::create_guid(); $nsdrParams = array('uuid' => $uuid, 'namespace' => 'com.clearhealth.person.age', 'aliasFor' => 'com.clearhealth.person.dateOfBirth'); $objNSDR = new NSDRDefinition(); $objNSDR->populateWithArray($nsdrParams); // workaround for Unknown column 'methodName'/'method' in 'field list' $objNSDR->methodName = array(); $objNSDR->method = array(); $objNSDR->persist(); $nsdrDefinition = new NSDRDefinition(); $nsdrDefinition->uuid = $uuid; $nsdrDefinition->populate(); $this->assertEquals('com.clearhealth.person.age', $nsdrDefinition->namespace); }
public static function generateTestData() { $guids = array(); $nsdrDefinition = new NSDRDefinition(); $nsdrDefinition->truncate(); $namespaces = array(); $namespaces['com'] = array(); $namespaces['com.clearhealth'] = array(); $namespaces['com.clearhealth.enumerations'] = array('ORMClass' => 'Enumeration'); $namespaces['com.clearhealth.enumerations.gender'] = array('aliasFor' => 'com.clearhealth.enumerations'); $namespaces['com.clearhealth.person'] = array('methods' => array(array('methodName' => 'aggregateDisplay', 'method' => 'return "aggregateDisplay";'), array('methodName' => 'populate', 'method' => 'return "populated data";'), array('methodName' => 'persist', 'method' => 'return "persisted data";'))); $namespaces['com.clearhealth.person.salutation'] = array(); $namespaces['com.clearhealth.person.lastName'] = array(); $namespaces['com.clearhealth.person.firstName'] = array(); $namespaces['com.clearhealth.person.middleName'] = array(); $namespaces['com.clearhealth.person.gender'] = array(); $namespaces['com.clearhealth.person.dataOfBirth'] = array(); $namespaces['com.clearhealth.person.problemList'] = array('ORMClass' => 'ProblemList'); $namespaces['com.clearhealth.person.vitalSignsGroup'] = array('ORMClass' => 'VitalSignGroup'); foreach ($namespaces as $namespace => $val) { $nsdr = clone $nsdrDefinition; $nsdr->uuid = NSDR::create_guid(); $guids[] = $nsdr->uuid; $nsdr->namespace = $namespace; // workaround for Unknown column 'methodName'/'method' in 'field list' $nsdr->methodName = array(); $nsdr->method = array(); if (count($val) > 0) { $nsdr->populateWithArray($val); } $nsdr->persist(); if (isset($val['methods'])) { $nsdr->persistMethods($val['methods']); } } return $guids; }