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; }
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; }
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); }