protected function _getDiagnosesSection($diagnosis)
 {
     // STUB method?
     $ret = array();
     switch ($diagnosis) {
         case 'problem_list_items':
             $personId = (int) $this->_getParam('personId');
             $filters = array();
             $filters['status'] = 'Active';
             $filters['personId'] = $personId;
             $problemListIterator = new ProblemListIterator();
             $problemListIterator->setFilters($filters);
             foreach ($problemListIterator as $problem) {
                 $tmp = array();
                 $tmp['id'] = $problem->code;
                 $tmp['data'][] = '';
                 $tmp['data'][] = $problem->codeTextShort;
                 $tmp['data'][] = $problem->code;
                 $ret[] = $tmp;
             }
             break;
     }
     return $ret;
 }
Пример #2
0
 protected function _generateRowData(PatientDiagnosis $diag)
 {
     static $diagnosesSections = null;
     if ($diagnosesSections === null) {
         $filters = array();
         $filters['status'] = 'Active';
         $filters['personId'] = $diag->patientId;
         $problemListIterator = new ProblemListIterator();
         $problemListIterator->setFilters($filters);
         $diagnosesSections = array();
         foreach ($problemListIterator as $problem) {
             $diagnosesSections[$problem->code] = $problem->codeTextShort;
         }
     }
     $code = $diag->code;
     $ret = array();
     $ret['id'] = $diag->patientDiagnosisId;
     $ret['data'][] = $diag->addToProblemList;
     $ret['data'][] = $diag->isPrimary;
     $ret['data'][] = $diag->diagnosis;
     $ret['data'][] = $diag->comments;
     $ret['data'][] = isset($diagnosesSections[$code]) ? '1' : '';
     $ret['data'][] = $code;
     return $ret;
 }
Пример #3
0
 public function populate($patientId, $userId, $visitId)
 {
     $this->_patientId = (int) $patientId;
     $patient = new Patient();
     $patient->personId = $this->_patientId;
     $patient->populate();
     $this->_title = $patient->displayName . ' Healthcare Record';
     $this->patient = $patient;
     $this->_userId = (int) $userId;
     $user = new User();
     $user->personId = $this->_userId;
     $user->populate();
     $this->user = $user;
     $visit = new Visit();
     $visit->visitId = (int) $visitId;
     if ($visit->visitId > 0 && $visit->populate()) {
         $this->visit = $visit;
     }
     $this->building = Building::getBuildingDefaultLocation($this->user->personId);
     $performers = array();
     $problemList = new ProblemList();
     $filters = array();
     $filters['personId'] = $this->_patientId;
     $this->setFiltersDateRange($filters);
     $problems = array();
     $problemListIterator = new ProblemListIterator();
     $problemListIterator->setFilters($filters);
     foreach ($problemListIterator as $problem) {
         $problems[] = $problem;
         $providerId = (int) $problem->providerId;
         if (!isset($performers[$providerId])) {
             $provider = new Provider();
             $provider->personId = $providerId;
             $provider->populate();
             $performers[$providerId] = $provider;
         }
     }
     $this->problemLists = $problems;
     unset($filters['personId']);
     $filters['patientId'] = $this->_patientId;
     $labResults = array();
     $labTests = array();
     $labOrderTests = array();
     $labsIterator = new LabsIterator();
     $labsIterator->setFilters($filters);
     foreach ($labsIterator as $lab) {
         // get the lab order
         $labTestId = (int) $lab->labTestId;
         if (!isset($labTests[$labTestId])) {
             $labTest = new LabTest();
             $labTest->labTestId = (int) $lab->labTestId;
             $labTest->populate();
             $labTests[$labTestId] = $labTest;
         }
         $labTest = $labTests[$labTestId];
         $orderId = (int) $labTest->labOrderId;
         if (!isset($labOrderTests[$orderId])) {
             $orderLabTest = new OrderLabTest();
             $orderLabTest->orderId = $orderId;
             $orderLabTest->populate();
             $labOrderTests[$orderId] = $orderLabTest;
         }
         $orderLabTest = $labOrderTests[$orderId];
         $providerId = (int) $orderLabTest->order->providerId;
         if (!isset($performers[$providerId])) {
             $provider = new Provider();
             $provider->personId = $providerId;
             $provider->populate();
             $performers[$providerId] = $provider;
         }
         if (!isset($labResults[$orderId])) {
             $labResults[$orderId] = array();
             $labResults[$orderId]['results'] = array();
             $labResults[$orderId]['labTest'] = $labTest;
             $labResults[$orderId]['orderLabTest'] = $orderLabTest;
         }
         $labResults[$orderId]['results'][] = $lab;
     }
     $this->labResults = $labResults;
     $this->performers = $performers;
     $this->populateHeader($this->_xml);
     $this->populateBody($this->_xml);
     return $this->_xml->asXML();
 }
 public function listJsonAction()
 {
     $personId = (int) $this->_getParam('personId');
     $filter = $this->_getParam('filter');
     // set default to active problem if filter is not specified
     if (strlen($filter) <= 0) {
         $filter = 'active_problems';
     }
     $filters = array();
     switch ($filter) {
         case 'active_problems':
             $filters['status'] = 'Active';
             break;
         case 'inactive_problems':
             $filters['status'] = 'Inactive';
             break;
         case 'both_problems':
             $filters['status'] = array('Active', 'Inactive');
             break;
         case 'air_problems':
             $filters['status'] = array('Active', 'Inactive', 'Resolved');
             break;
         case 'removed_problems':
             $filters['status'] = 'Removed';
             break;
         case 'resolved_problems':
             $filters['status'] = 'Resolved';
             break;
     }
     $filters['personId'] = $personId;
     $rows = array();
     $problemListIterator = new ProblemListIterator();
     $problemListIterator->setFilters($filters);
     foreach ($problemListIterator as $problem) {
         $comments = array();
         foreach ($problem->problemListComments as $comment) {
             $comments[] = $comment->comment . ' - ' . $comment->author->getDisplayName() . ' - ' . $comment->date;
         }
         $tmp = array();
         $tmp['id'] = $problem->problemListId;
         $tmp['data'][] = $problem->status;
         $tmp['data'][] = '<span style="font-size:6pt;font-style:italic;"><p>' . implode('</p><p>', $comments) . '</p></span>';
         $tmp['data'][] = $problem->flags;
         $tmp['data'][] = $problem->codeTextShort;
         $tmp['data'][] = $problem->code;
         $tmp['data'][] = date('Y-m-d', strtotime($problem->dateOfOnset));
         $tmp['data'][] = $problem->provider->getOptionName();
         $tmp['data'][] = $problem->service;
         $tmp['data'][] = date('m/d/Y', strtotime($problem->lastUpdated));
         $rows[] = $tmp;
     }
     $data = array();
     $data['rows'] = $rows;
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }