Exemple #1
0
 public function tearDown()
 {
     parent::tearDown();
     $nsdrDefinition = new NSDRDefinition();
     foreach ($this->_definitions as $key => $val) {
         $nsdrDefinition->removeByNamespace($key);
     }
     NSDR2::systemReload();
 }
Exemple #2
0
 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);
 }
Exemple #6
0
 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;
 }