Beispiel #1
0
 function _loadVitals()
 {
     $this->_vitals = VitalSignGroup::getBMIVitalsForPatientId($this->personId);
 }
 public static function getAllVitals(array $filters, $dateOfBirth = null)
 {
     $data = array();
     $dates = array();
     $results = VitalSignGroup::getVitalsByFilters($filters);
     self::$_vitalSigns = array();
     foreach ($results as $result) {
         self::$_vitalSigns[] = $result;
         // get the age the date taken
         if (!isset($dates[$result['vitalSignGroupId']])) {
             $v = $result['vitalSignGroupId'];
             if ($dateOfBirth !== null) {
                 $v = GrowthChartBase::calculateMonthsDiff($dateOfBirth, strtotime($result['dateTime']), true);
             }
             $dates[$result['vitalSignGroupId']] = $v;
             $data["{$v}"] = array();
         }
         $convertedValues = VitalSignValue::convertValues($result['vital'], $result['value'], $result['units']);
         if ($convertedValues !== false) {
             $x = explode(' ', $convertedValues['metric']);
             $unit = array_pop($x);
             $y = implode(' ', $x);
         } else {
             $y = $result['value'];
         }
         $data["{$dates[$result['vitalSignGroupId']]}"][$result['vital']] = $y;
     }
     return $data;
 }
 public function processEnteredInErrorAction()
 {
     $groupId = (int) $this->_getParam('groupId');
     $ret = false;
     $vitalSignGroup = new VitalSignGroup();
     $vitalSignGroup->vitalSignGroupId = $groupId;
     if ($vitalSignGroup->populate()) {
         $vitalSignGroup->enteredInError = 1;
         $vitalSignGroup->persist();
         $ret = true;
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($ret);
 }
 public function vitalsJsonAction()
 {
     $rows = array();
     $vitals = new VitalSignGroup();
     $vitalsIter = $vitals->getIterator();
     foreach ($vitalsIter as $vitals) {
         foreach ($vitals->vitalSignValues as $vitalSign) {
             $tmp = array();
             $tmp['id'] = $vitalSign->vitalSignValueId;
             $tmp['data'][] = $vitals->dateTime;
             $tmp['data'][] = $vitalSign->vital;
             $tmp['data'][] = $vitalSign->value;
             //USS Value
             $tmp['data'][] = 'Metric Value';
             $tmp['data'][] = '';
             //Qualifiers
             $tmp['data'][] = $vitals->enteringUserId;
             $rows[] = $tmp;
         }
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct(array("rows" => $rows), true);
 }
 public function listXmlAction()
 {
     $personId = (int) $this->_getParam('personId');
     $filter = $this->_getParam('filter');
     $dateToday = date('Y-m-d');
     $today = strtotime($dateToday);
     $filterRange = array();
     $filterRange['begin'] = $dateToday;
     $filterRange['end'] = date('Y-m-d 23:59:59', $today);
     switch ($filter) {
         case 'd-1':
         case 'd-2':
         case 'd-3':
         case 'd-4':
         case 'd-5':
         case 'd-6':
         case 'd-7':
         case 'd-15':
         case 'd-30':
             $filterRange['begin'] = date('Y-m-d', strtotime(substr($filter, 1) . ' days', $today));
             break;
         case 'm-6':
             $filterRange['begin'] = date('Y-m-d', strtotime(substr($filter, 1) . ' months', $today));
             break;
         case 'y-1':
         case 'y-2':
             $filterRange['begin'] = date('Y-m-d', strtotime(substr($filter, 1) . ' years', $today));
             break;
         case 'all':
             $filterRange['begin'] = date('Y-m-d', strtotime(''));
             break;
         default:
             $x = explode('|', $filter);
             if (isset($x[1])) {
                 $filterRange['begin'] = date('Y-m-d', strtotime($x[0]));
                 $filterRange['end'] = date('Y-m-d', strtotime($x[1]));
             }
             break;
     }
     trigger_error(print_r($filterRange, true), E_USER_NOTICE);
     $filters = array();
     $filters['personId'] = $personId;
     $filters['dateBegin'] = $filterRange['begin'];
     $filters['dateEnd'] = $filterRange['end'];
     $filters['vitalSignTemplateId'] = 1;
     $results = VitalSignGroup::getVitalsByFilters($filters);
     $vitals = array();
     $dates = array();
     $data = array();
     foreach ($results as $result) {
         if (!isset($vitals[$result['vital']])) {
             $vitals[$result['vital']] = array();
         }
         if (!isset($dates[$result['vitalSignGroupId']])) {
             $dates[$result['vitalSignGroupId']] = date('m/d/Y h:i A', strtotime($result['dateTime']));
         }
         $convertedValues = VitalSignValue::convertValues($result['vital'], $result['value'], $result['units']);
         if ($convertedValues !== false) {
             trigger_error(print_r($convertedValues, true), E_USER_NOTICE);
             $x = explode(' ', $convertedValues['uss']);
             $unit = array_pop($x);
             $value = implode(' ', $x) . ' (' . $convertedValues['metric'] . ')';
             $vitals[$result['vital']][$result['vitalSignGroupId']] = $value;
         } else {
             $vitals[$result['vital']][$result['vitalSignGroupId']] = $result['value'];
         }
         if (!isset($data[$result['vitalSignGroupId']])) {
             $data[$result['vitalSignGroupId']] = array();
         }
         $data[$result['vitalSignGroupId']][$result['vital']] = $result;
     }
     $xml = new SimpleXMLElement('<rows />');
     $head = $xml->addChild('head');
     $column = $head->addChild('column', '');
     $column->addAttribute('type', 'ro');
     $column->addAttribute('width', '150');
     $column->addAttribute('color', '#ddd');
     if (!empty($dates)) {
         $row = $xml->addChild('row');
         $row->addAttribute('id', 'dates');
         $row->addChild('cell', '');
         foreach ($dates as $date) {
             $row->addChild('cell', date('m/d/y h:iA', strtotime($date)));
             $column = $head->addChild('column', '');
             $column->addAttribute('type', 'ro');
             $column->addAttribute('width', '130');
         }
     }
     $labelKeyValues = $this->getVitalSignsTemplateKeyValue();
     foreach ($labelKeyValues as $key => $value) {
         $row = $xml->addChild('row');
         $row->addAttribute('id', $key);
         $row->addChild('cell', $value);
         if (isset($vitals[$key])) {
             foreach ($vitals[$key] as $vital) {
                 $row->addChild('cell', $vital);
             }
         }
     }
     header('Content-Type: text/xml');
     $this->view->xmlContents = $xml->asXML();
     trigger_error($this->view->xmlContents, E_USER_NOTICE);
     $this->render('list-xml');
 }