public function hl7LabtestResultsAction() { $personId = (int) $this->_getParam('personId'); $providerId = (int) Zend_Auth::getInstance()->getIdentity()->personId; $contents = LabResultsMessage::generate($personId, $providerId); $filename = 'hl7-labtest-results-' . $personId . '.er7'; $this->hl7($contents, $filename); }
public static function generate($patient, $provider) { if (!$patient instanceof Patient) { $patientId = (int) $patient; $patient = new Patient(); $patient->personId = $patientId; $patient->populate(); } self::$patient = $patient; if (!$provider instanceof Provider) { $providerId = (int) $provider; $provider = new Provider(); $provider->personId = $providerId; $provider->populate(); } self::$provider = $provider; $building = Building::getBuildingDefaultLocation($provider->personId); self::$providerBuilding = $building; $data = array(); $data[] = self::generateMSH(array('buildingName' => $building->name)); $data[] = self::generateSFT(); $data[] = self::generatePID($patient); $order = new OrderLabTest(); $iterator = $order->getIteratorByPersonId($patient->personId); foreach ($iterator as $orderLabTest) { $data[] = self::generateORC($orderLabTest->order->provider); $result = array(); $result['orderLabTest'] = $orderLabTest; $loinc = new ProcedureCodesLOINC(); $loinc->loincNum = $orderLabTest->labTest; $loinc->populate(); $result['loinc'] = $loinc; $orderId = (int) $orderLabTest->orderId; $labTest = new LabTest(); $labTest->populateByLabOrderId($orderId); $result['labTest'] = $labTest; $data[] = self::generateOBR($result); $labsIterator = new LabsIterator(); $labsIterator->setFilters(array('orderId' => $orderId)); foreach ($labsIterator as $row) { $result['result'] = $row; $data[] = self::generateOBX($result); } $data[] = self::generateSPM($orderLabTest->collectionSample); } return implode("\n", $data); }