public function ccrupload() { $pid = Session::get('pid'); $directory = Session::get('documents_dir') . $pid; $i = 0; foreach (Input::file('file') as $file) { if ($file) { $new_name = str_replace('.' . $file->getClientOriginalExtension(), '', $file->getClientOriginalName()) . '_' . time() . '.xml'; $file->move($directory, $new_name); $ccr = $directory . '/' . $new_name; $xml = simplexml_load_file($ccr); $phone_home = ''; $phone_work = ''; $phone_cell = ''; foreach ($xml->Actors->Actor[0]->Telephone as $phone) { if ((string) $phone->Type->Text == 'Home') { $phone_home = (string) $phone->Value; } if ((string) $phone->Type->Text == 'Mobile') { $phone_cell = (string) $phone->Value; } if ((string) $phone->Type->Text == 'Alternate') { $phone_work = (string) $phone->Value; } } $address = (string) $xml->Actors->Actor[0]->Address->Line1; $address = ucwords(strtolower($address)); $city = (string) $xml->Actors->Actor[0]->Address->City; $city = ucwords(strtolower($city)); $data1 = array('address' => $address, 'city' => $city, 'state' => (string) $xml->Actors->Actor[0]->Address->State, 'zip' => (string) $xml->Actors->Actor[0]->Address->PostalCode, 'phone_home' => $phone_home, 'phone_work' => $phone_work, 'phone_cell' => $phone_cell); DB::table('demographics')->where('pid', '=', $pid)->update($data1); $this->audit('Update'); if (isset($xml->Body->Problems)) { foreach ($xml->Body->Problems->Problem as $issue) { if ((string) $issue->Status->Text == 'Active') { $icd9 = (string) $issue->Description->Code->Value; $row1 = Icd9::where('icd9', '=', $icd9)->select('icd9', 'icd9_description')->first(); if ($row1) { $issue_post = $row1->icd9_description . ' [' . $row1->icd9 . ']'; } else { $issue_post = (string) $issue->Description->Text . ' [' . (string) $issue->Description->Code->Value . ']'; } $data2 = array('issue' => $issue_post, 'issue_date_active' => (string) $issue->DateTime->ExactDateTime, 'issue_date_inactive' => '', 'issue_provider' => $this->session->userdata('displayname'), 'pid' => $pid); DB::table('issues')->insert($data2); $this->audit('Add'); } } } if (isset($xml->Body->Medications)) { foreach ($xml->Body->Medications->Medication as $rx) { if ((string) $rx->Status->Text == 'Active') { $data3 = array('rxl_medication' => (string) $rx->Product->ProductName->Text, 'rxl_instructions' => (string) $rx->Directions->Direction->Dose->Value, 'rxl_date_active' => (string) $rx->DateTime->ExactDateTime, 'rxl_date_prescribed' => '', 'rxl_date_inactive' => '', 'rxl_date_old' => '', 'rxl_provider' => $this->session->userdata('displayname'), 'pid' => $pid); DB::table('rx_list')->insert($data3); $this->audit('Add'); } } } if (isset($xml->Body->Immunizations)) { foreach ($xml->Body->Immunizations->Immunization as $imm) { if (strpos((string) $imm->Product->ProductName->Text, '#')) { $items = explode('#', (string) $imm->Product->ProductName->Text); $imm_immunization = rtrim($items[0]); $imm_sequence = $items[1]; } else { $imm_immunization = (string) $imm->Product->ProductName->Text; $imm_sequence = ''; } $data4 = array('imm_immunization' => $imm_immunization, 'imm_date' => (string) $imm->DateTime->ExactDateTime, 'imm_sequence' => $imm_sequence, 'imm_elsewhere' => 'Yes', 'imm_vis' => '', 'pid' => $pid, 'eid' => ''); DB::table('immunizations')->insert($data4); $this->audit('Add'); } } if (isset($xml->Body->Alerts)) { foreach ($xml->Body->Alerts->Alert as $alert) { if ((string) $alert->Status->Text == 'Current') { $data5 = array('alert' => (string) $alert->Type->Text, 'alert_description' => (string) $alert->Description->Text, 'alert_date_active' => (string) $alert->DateTime->ExactDateTime, 'alert_date_complete' => '', 'alert_reason_not_complete' => '', 'alert_provider' => $this->session->userdata('displayname'), 'orders_id' => '', 'pid' => $pid, 'alert_send_message' => 'n'); DB::table('alerts')->insert($data5); $this->audit('Add'); } } } $i++; } } echo $i . ' Continuity of Care Record(s) Imported!'; }