Esempio n. 1
0
 protected function page_ccr($pid)
 {
     $data['patientInfo'] = Demographics::find($pid);
     $data['dob'] = date('m/d/Y', $this->human_to_unix($data['patientInfo']->DOB));
     $data['insuranceInfo'] = '';
     $query_in = Insurance::where('pid', '=', $pid)->where('insurance_plan_active', '=', 'Yes')->get();
     if ($query_in) {
         foreach ($query_in as $row_in) {
             $data['insuranceInfo'] .= $row_in->insurance_plan_name . '; ID: ' . $row_in->insurance_id_num . '; Group: ' . $row_in->insurance_group . '; ' . $row_in->insurance_insu_lastname . ', ' . $row_in->insurance_insu_firstname . '<br><br>';
         }
     }
     $body = 'Active Issues:<br />';
     $query = Issues::where('pid', '=', $pid)->where('issue_date_inactive', '=', '0000-00-00 00:00:00')->get();
     if ($query) {
         $body .= '<ul>';
         foreach ($query as $row) {
             $body .= '<li>' . $row->issue . '</li>';
         }
         $body .= '</ul>';
     } else {
         $body .= 'None.';
     }
     $body .= '<hr />Active Medications:<br />';
     $query1 = Rx_list::where('pid', '=', $pid)->where('rxl_date_inactive', '=', '0000-00-00 00:00:00')->where('rxl_date_old', '=', '0000-00-00 00:00:00')->get();
     if ($query1) {
         $body .= '<ul>';
         foreach ($query1 as $row1) {
             if ($row1->rxl_sig == '') {
                 $body .= '<li>' . $row1->rxl_medication . ' ' . $row1->rxl_dosage . ' ' . $row1->rxl_dosage_unit . ', ' . $row1->rxl_instructions . ' for ' . $row1->rxl_reason . '</li>';
             } else {
                 $body .= '<li>' . $row1->rxl_medication . ' ' . $row1->rxl_dosage . ' ' . $row1->rxl_dosage_unit . ', ' . $row1->rxl_sig . ' ' . $row1->rxl_route . ' ' . $row1->rxl_frequency . ' for ' . $row1->rxl_reason . '</li>';
             }
         }
         $body .= '</ul>';
     } else {
         $body .= 'None.';
     }
     $body .= '<hr />Immunizations:<br />';
     $query2 = Immunizations::where('pid', '=', $pid)->orderBy('imm_immunization', 'asc')->orderBy('imm_sequence', 'asc')->get();
     if ($query2) {
         $body .= '<ul>';
         foreach ($query2 as $row2) {
             $sequence = '';
             if ($row2->imm_sequence == '1') {
                 $sequence = ', first,';
             }
             if ($row2->imm_sequence == '2') {
                 $sequence = ', second,';
             }
             if ($row2->imm_sequence == '3') {
                 $sequence = ', third,';
             }
             if ($row2->imm_sequence == '4') {
                 $sequence = ', fourth,';
             }
             if ($row2->imm_sequence == '5') {
                 $sequence = ', fifth,';
             }
             $body .= '<li>' . $row2->imm_immunization . $sequence . ' given on ' . date('F jS, Y', $this->human_to_unix($row2->imm_date)) . '</li>';
         }
         $body .= '</ul>';
     } else {
         $body .= 'None.';
     }
     $body .= '<hr />Allergies:<br />';
     $query3 = Allergies::where('pid', '=', $pid)->where('allergies_date_inactive', '=', '0000-00-00 00:00:00')->get();
     if ($query3) {
         $body .= '<ul>';
         foreach ($query3 as $row3) {
             $body .= '<li>' . $row3->allergies_med . ' - ' . $row3->allergies_reaction . '</li>';
         }
         $body .= '</ul>';
     } else {
         $body .= 'No known allergies.';
     }
     $body .= '<br />Printed by ' . Session::get('displayname') . '.';
     $data['letter'] = $body;
     return View::make('pdf.ccr_page', $data);
 }
 public function rcopia_sync($practice_id)
 {
     // Update Notification
     $row0 = Practiceinfo::find($practice_id);
     Config::set('app.timezone', $row0->timezone);
     if ($row0->rcopia_update_notification_lastupdate == "") {
         $date0 = date('m/d/Y H:i:s', time());
     } else {
         $date0 = $row0->rcopia_update_notification_lastupdate;
     }
     $xml0 = "<Request><Command>update_notification</Command>";
     $xml0 .= "<LastUpdateDate>" . $date0 . "</LastUpdateDate>";
     $xml0 .= "</Request></RCExtRequest>";
     $result0 = $this->rcopia($xml0, $practice_id);
     $response0 = new SimpleXMLElement($result0);
     if ($response0->Response->Status == "error") {
         $description0 = $response0->Response->Error->Text . "";
         $data0a = array('action' => 'update_notification', 'pid' => '0', 'extensions_name' => 'rcopia', 'description' => $description0, 'practice_id' => $practice_id);
         DB::table('extensions_log')->insert($data0a);
     } else {
         $last_update_date = $response0->Response->LastUpdateDate . "";
         $number = $response0->Response->NotificationList->Number . "";
         if ($number != "0") {
             foreach ($response0->Response->NotificationList->Notification as $notification) {
                 $type = $notification->Type . "";
                 $status = $notification->Status . "";
                 $rcopia_username = $notification->Provider->Username . "";
                 $medication_message = $notification->Sig->Drug->BrandName . "";
                 $form_message = $notification->Sig->Drug->Form . "";
                 $dose_message = $notification->Sig->Drug->Strength . "";
                 $sig_message = $notification->Sig->Dose . "";
                 $sig1_message = $notification->Sig->DoseUnit . "";
                 $route_message = $notification->Sig->Route . "";
                 $frequency_message = $notification->Sig->DoseTiming . "";
                 $instructions_message = $notification->Sig->DoseOther . "";
                 $quantity_message = $notification->Sig->Quantity . "";
                 $quantity_message1 = $notification->Sig->QuantityUnit . "";
                 $refill_message = $notification->Sig->Refills . "";
                 $pharmacy_message = $notification->Pharmacy->Name . "";
                 $medication_message = "Medication: " . $medication_message . ", " . $form_message . ", " . $dose_message;
                 $medication_message .= "\nInstructions: " . $sig_message . " " . $sig1_message . " " . $route_message . ", " . $frequency_message;
                 $medication_message .= "\nOther Instructions: " . $instructions_message;
                 $medication_message .= "\nQuantity: " . $quantity_message . " " . $quantity_message1;
                 $medication_message .= "\nRefills: " . $refill_message;
                 $medication_message .= "\nPharmacy: " . $pharmacy_message;
                 $messages_pid = $notification->Patient->ExternalID . "";
                 $sender = $notification->Sender . "";
                 $title = $notification->Title . "";
                 $text = $notification->Text . "";
                 $full_text = "From: " . $sender . "\nMessage: " . $text;
                 $patient_row = Demographics::where('pid', '=', $messages_pid)->first();
                 $dob_message = date("m/d/Y", strtotime($patient_row->DOB));
                 $patient_name = $patient_row->lastname . ', ' . $patient_row->firstname . ' (DOB: ' . $dob_message . ') (ID: ' . $messages_pid . ')';
                 $provider_row = DB::table('users')->join('providers', 'providers.id', '=', 'users.id')->select('users.lastname', 'users.firstname', 'users.title', 'users.id')->where('providers.rcopia_username', '=', $rcopia_username)->first();
                 if ($provider_row) {
                     $provider_name = $provider_row->firstname . " " . $provider_row->lastname . ", " . $provider_row->title . " (" . $provider_row->id . ")";
                     if ($type == "refill") {
                         $subject = "Refill Request for " . $patient_name;
                         $body = $medication_message;
                     }
                     if ($type == "message") {
                         $subject = $title;
                         $body = $full_text;
                     }
                     $data_message = array('pid' => $messages_pid, 'message_to' => $provider_name, 'message_from' => $provider_row->id, 'subject' => $subject, 'body' => $body, 'patient_name' => $patient_name, 'status' => 'Sent', 'mailbox' => $provider_row->id, 'practice_id' => $practice_id);
                     DB::table('messaging')->insert($data_message);
                     $this->audit('Add');
                 }
             }
         }
         $data_update = array('rcopia_update_notification_lastupdate' => $last_update_date);
         DB::table('practiceinfo')->where('practice_id', '=', $practice_id)->update($data_update);
     }
     // Send Patient
     $query1 = Demographics::where('rcopia_sync', '=', 'n')->get();
     if ($query1) {
         foreach ($query1 as $row1) {
             if ($this->check_practice_id($row1->pid, $practice_id)) {
                 $dob = explode(" ", $row1->DOB);
                 $dob1 = explode("-", $dob[0]);
                 $dob_final = $dob1[1] . "/" . $dob1[2] . "/" . $dob1[0];
                 $xml1 = "<Request><Command>send_patient</Command><Synchronous>y</Synchronous><CheckEligibility>y</CheckEligibility>";
                 $xml1 .= "<PatientList><Patient>";
                 $xml1 .= "<FirstName>" . $row1->firstname . "</FirstName>";
                 $xml1 .= "<LastName>" . $row1->lastname . "</LastName>";
                 $xml1 .= "<MiddleName>" . $row1->middle . "</MiddleName>";
                 $xml1 .= "<DOB>" . $dob_final . "</DOB>";
                 $xml1 .= "<Sex>" . $row1->sex . "</Sex>";
                 $xml1 .= "<ExternalID>" . $row1->pid . "</ExternalID>";
                 $xml1 .= "<HomePhone>" . $row1->phone_home . "</HomePhone>";
                 $xml1 .= "<WorkPhone>" . $row1->phone_work . "</WorkPhone>";
                 $xml1 .= "<Address1>" . $row1->address . "</Address1>";
                 $xml1 .= "<Address2></Address2>";
                 $xml1 .= "<City>" . $row1->city . "</City>";
                 $xml1 .= "<State>" . $row1->state . "</State>";
                 $xml1 .= "<Zip>" . $row1->zip . "</Zip>";
                 $xml1 .= "</Patient></PatientList></Request></RCExtRequest>";
                 $result1 = $this->rcopia($xml1, $practice_id);
                 $response1 = new SimpleXMLElement($result1);
                 $status1 = $response1->Response->PatientList->Patient->Status . "";
                 if ($status1 == "error") {
                     $description1 = $response1->Response->PatientList->Patient->Error->Text . "";
                     $data1a = array('action' => 'send_patient', 'pid' => $row1->pid, 'extensions_name' => 'rcopia', 'description' => $description1, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data1a);
                 } else {
                     $data1b = array('rcopia_sync' => 'y');
                     DB::table('demographics')->where('pid', '=', $row1->pid)->update($data1b);
                     $this->audit('Update');
                 }
             }
         }
     }
     // Send Allergy
     $query2 = Allergies::where('rcopia_sync', '=', 'n')->where('allergies_date_inactive', '=', '0000-00-00 00:00:00')->get();
     if ($query2) {
         foreach ($query2 as $row2) {
             if ($this->check_practice_id($row2->pid, $practice_id)) {
                 $da = explode(" ", $row2->allergies_date_active);
                 $da1 = explode("-", $da[0]);
                 $da_final = $da1[1] . "/" . $da1[2] . "/" . $da1[0];
                 $xml2 = "<Request><Command>send_allergy</Command><Synchronous>y</Synchronous>";
                 $xml2 .= "<AllergyList><Allergy>";
                 $xml2 .= "<ExternalID>" . $row2->allergies_id . "</ExternalID>";
                 $xml2 .= "<Patient><ExternalID>" . $row2->pid . "</ExternalID></Patient>";
                 $xml2 .= "<Allergen><Name>" . $row2->allergies_med . "</Name>";
                 $xml2 .= "<Drug><NDCID>" . $row2->meds_ndcid . "</NDCID></Drug></Allergen>";
                 $xml2 .= "<Reaction>" . $row2->allergies_reaction . "</Reaction>";
                 $xml2 .= "<OnsetDate>" . $da_final . "</OnsetDate>";
                 $xml2 .= "</Allergy></AllergyList></Request></RCExtRequest>";
                 $result2 = $this->rcopia($xml2, $practice_id);
                 $response2 = new SimpleXMLElement($result2);
                 $status2 = $response2->Response->AllergyList->Allergy->Status . "";
                 if ($status2 == "error") {
                     $description2 = $response2->Response->AllergyList->Allergy->Error->Text . "";
                     $data2a = array('action' => 'send_allergy', 'pid' => $row2->pid, 'extensions_name' => 'rcopia', 'description' => $description2, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data2a);
                     if ($description2 == "Can find neither name, Rcopia ID, or NDC ID for drug.") {
                         $data2c = array('rcopia_sync' => 'ye');
                         DB::table('allergies')->where('allergies_id', '=', $row2->allergies_id)->update($data2c);
                         $this->audit('Update');
                     }
                 } else {
                     $data2b = array('rcopia_sync' => 'y');
                     DB::table('allergies')->where('allergies_id', '=', $row2->allergies_id)->update($data2b);
                     $this->audit('Update');
                 }
             }
         }
     }
     //Send Medication
     $query3 = Rx_list::where('rcopia_sync', '=', 'n')->where('rxl_date_inactive', '=', '0000-00-00 00:00:00')->where('rxl_date_old', '=', '0000-00-00 00:00:00')->get();
     if ($query3) {
         foreach ($query3 as $row3) {
             if ($this->check_practice_id($row3->pid, $practice_id)) {
                 $dm = explode(" ", $row3->rxl_date_active);
                 $dm1 = explode("-", $dm[0]);
                 $dm_final = $dm1[1] . "/" . $dm1[2] . "/" . $dm1[0];
                 if ($row3->rxl_due_date != '') {
                     $dn = explode(" ", $row3->rxl_due_date);
                     $dn1 = explode("-", $dn[0]);
                     $dn_final = $dn1[1] . "/" . $dn1[2] . "/" . $dn1[0];
                 } else {
                     $dn_final = "";
                 }
                 if ($row3->rxl_ndcid != '') {
                     $ndcid = $row3->rxl_ndcid;
                 } else {
                     $ndcid = '';
                 }
                 $medication_parts1 = explode(", ", $row3->rxl_medication);
                 $generic_name = $medication_parts1[0];
                 if (isset($medication_parts[1])) {
                     $form = $medication_parts1[1];
                 } else {
                     $form = '';
                 }
                 $strength = $row3->rxl_dosage . " " . $row3->rxl_dosage_unit;
                 if ($row3->rxl_sig != '') {
                     if (strpos($row3->rxl_sig, ' ') !== false) {
                         $sig_parts1 = explode(" ", $row3->rxl_sig);
                         $dose = $sig_parts1[0];
                         $dose_unit = $sig_parts1[1];
                     } else {
                         $dose = $row3->rxl_sig;
                         $dose_unit = '';
                     }
                 } else {
                     $dose = '';
                     $dose_unit = '';
                 }
                 if ($row3->rxl_quantity != '') {
                     if (strpos($row3->rxl_quantity, ' ') !== false) {
                         $quantity_parts1 = explode(" ", $row3->rxl_quantity);
                         $quantity = $quantity_parts1[0];
                         $quantity_unit = $quantity_parts1[1];
                     } else {
                         $quantity = $row3->rxl_quantity;
                         $quantity_unit = '';
                     }
                 } else {
                     $quantity = '';
                     $quantity_unit = '';
                 }
                 if ($row3->rxl_daw != '') {
                     $daw = 'n';
                 } else {
                     $daw = 'y';
                 }
                 $xml3 = "<Request><Command>send_medication</Command><Synchronous>y</Synchronous>";
                 $xml3 .= "<MedicationList><Medication>";
                 $xml3 .= "<ExternalID>" . $row3->rxl_id . "</ExternalID>";
                 $xml3 .= "<Patient><ExternalID>" . $row3->pid . "</ExternalID></Patient>";
                 $xml3 .= "<Sig>";
                 $xml3 .= "<Drug><NDCID>" . $ndcid . "</NDCID>";
                 $xml3 .= "<GenericName>" . $generic_name . "</GenericName>";
                 $xml3 .= "<Form>" . $form . "</Form>";
                 $xml3 .= "<Strength>" . $strength . "</Strength></Drug>";
                 $xml3 .= "<Dose>" . $dose . "</Dose>";
                 $xml3 .= "<DoseUnit>" . $dose_unit . "</DoseUnit>";
                 $xml3 .= "<Route>" . $row3->rxl_route . "</Route>";
                 $xml3 .= "<DoseTiming>" . $row3->rxl_frequency . "</DoseTiming>";
                 $xml3 .= "<DoseOther>" . $row3->rxl_instructions . "</DoseOther>";
                 $xml3 .= "<Quantity>" . $quantity . "</Quantity>";
                 $xml3 .= "<QuantityUnit>" . $quantity_unit . "</QuantityUnit>";
                 $xml3 .= "<Refills>" . $row3->rxl_refill . "</Refills>";
                 $xml3 .= "<SubstitutionPermitted>" . $daw . "</SubstitutionPermitted>";
                 $xml3 .= "</Sig>";
                 $xml3 .= "<StartDate>" . $dm_final . "</StartDate>";
                 $xml3 .= "<StopDate>" . $dn_final . "</StopDate>";
                 $xml3 .= "</Medication></MedicationList></Request></RCExtRequest>";
                 $result3 = $this->rcopia($xml3, $practice_id);
                 $response3 = new SimpleXMLElement($result3);
                 $status3 = $response3->Response->MedicationList->Medication->Status . "";
                 if ($status3 == "error") {
                     $description3 = $response3->Response->MedicationList->Medication->Error->Text . "";
                     $data3a = array('action' => 'send_medication', 'pid' => $row3->pid, 'extensions_name' => 'rcopia', 'description' => $description3, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data3a);
                 } else {
                     $data3b = array('rcopia_sync' => 'y');
                     DB::table('rx_list')->where('rxl_id', '=', $row3->rxl_id)->update($data3b);
                     $this->audit('Update');
                 }
             }
         }
     }
     //Send Problem List
     $query4 = Issues::where('rcopia_sync', '=', 'n')->where('issue_date_inactive', '=', '0000-00-00 00:00:00')->get();
     if ($query4) {
         foreach ($query4 as $row4) {
             if ($this->check_practice_id($row4->pid, $practice_id)) {
                 $di = explode(" [", $row4->issue);
                 $code = str_replace("]", "", $di[1]);
                 $xml4 = "<Request><Command>send_problem</Command><Synchronous>y</Synchronous>";
                 $xml4 .= "<ProblemList><Problem>";
                 $xml4 .= "<ExternalID>" . $row4->issue_id . "</ExternalID>";
                 $xml4 .= "<Patient><ExternalID>" . $row4->pid . "</ExternalID></Patient>";
                 $xml4 .= "<Code>" . $code . "</Code>";
                 $xml4 .= "<Description>" . $di[0] . "</Description>";
                 $xml4 .= "</Problem></ProblemList></Request></RCExtRequest>";
                 $result4 = $this->rcopia($xml4, $practice_id);
                 $response4 = new SimpleXMLElement($result4);
                 $status4 = $response4->Response->ProblemList->Problem->Status . "";
                 if ($status4 == "error") {
                     $description4 = $response4->Response->ProblemList->Problem->Error->Text . "";
                     $data4a = array('action' => 'send_problem', 'pid' => $row4->pid, 'extensions_name' => 'rcopia', 'description' => $description4, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data4a);
                 } else {
                     $data4b = array('rcopia_sync' => 'y');
                     DB::table('issues')->where('issue_id', '=', $row4->issue_id)->update($data4b);
                     $this->audit('Update');
                 }
             }
         }
     }
     //Delete Allergy
     $query5 = Allergies::where('rcopia_sync', '=', 'nd')->orWhere('rcopia_sync', '=', 'nd1')->get();
     if ($query5) {
         foreach ($query5 as $row5) {
             if ($this->check_practice_id($row5->pid, $practice_id)) {
                 $dda = explode(" ", $row5->allergies_date_active);
                 $daa1 = explode("-", $dda[0]);
                 $dda_final = $dda1[1] . "/" . $dda1[2] . "/" . $dda1[0];
                 $xml5 = "<Request><Command>send_allergy</Command><Synchronous>y</Synchronous>";
                 $xml5 .= "<AllergyList><Allergy><Deleted>y</Deleted>";
                 $xml5 .= "<ExternalID>" . $row5->allergies_id . "</ExternalID>";
                 $xml5 .= "<Patient><ExternalID>" . $row5->pid . "</ExternalID></Patient>";
                 $xml5 .= "<Allergen><Name>" . $row5->allergies_med . "</Name>";
                 $xml5 .= "<Drug><NDCID>" . $row5->meds_ndcid . "</NDCID></Drug></Allergen>";
                 $xml5 .= "<Reaction>" . $row5->allergies_reaction . "</Reaction>";
                 $xml5 .= "<OnsetDate>" . $dda_final . "</OnsetDate>";
                 $xml5 .= "</Allergy></AllergyList></Request></RCExtRequest>";
                 $result5 = $this->rcopia($xml5, $practice_id);
                 $response5 = new SimpleXMLElement($result5);
                 $status5 = $response5->Response->AllergyList->Allergy->Status . "";
                 if ($status5 == "error") {
                     $description5 = $response5->Response->AllergyList->Allergy->Error->Text . "";
                     $data5a = array('action' => 'delete_allergy', 'pid' => $row5->pid, 'extensions_name' => 'rcopia', 'description' => $description5, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data5a);
                     $data5b = array('rcopia_sync' => 'y');
                     DB::table('allergies')->where('pid', $row5->pid)->update($data5b);
                     $this->audit('Update');
                 } else {
                     $data5b = array('rcopia_sync' => 'y');
                     DB::table('allergies')->where('allergies_id', $row5->allergies_id)->update($data5b);
                     $this->audit('Update');
                 }
             }
         }
     }
     //Delete Medication
     $query6 = Rx_list::where('rcopia_sync', '=', 'nd')->orWhere('rcopia_sync', '=', 'nd1')->get();
     if ($query6) {
         foreach ($query6 as $row6) {
             if ($this->check_practice_id($row6->pid, $practice_id)) {
                 $ddm = explode(" ", $row6->rxl_date_active);
                 $ddm1 = explode("-", $ddm[0]);
                 $ddm_final = $ddm1[1] . "/" . $ddm1[2] . "/" . $ddm1[0];
                 if ($row3->rxl_due_date != '') {
                     $ddn = explode(" ", $row6->rxl_due_date);
                     $ddn1 = explode("-", $ddn[0]);
                     $ddn_final = $ddn1[1] . "/" . $ddn1[2] . "/" . $ddn1[0];
                 } else {
                     $ddn_final = "";
                 }
                 if ($row6->rxl_ndcid != '') {
                     $ndcid1 = $row6->rxl_ndcid;
                     $generic_name1 = '';
                     $form1 = '';
                     $strength1 = '';
                 } else {
                     $ndcid1 = '';
                     $medication_parts2 = explode(", ", $row6->rxl_medication);
                     if (count($medication_parts2) > 1) {
                         $generic_name1 = $medication_parts2[0];
                         $form1 = $medication_parts2[1];
                     } else {
                         $generic_name1 = $medication_parts2[0];
                         $form1 = '';
                     }
                     $strength1 = $row6->rxl_dosage . " " . $row6->rxl_dosage_unit;
                 }
                 $sig_parts2 = explode(" ", $row6->rxl_sig);
                 if (count($sig_parts2) > 1) {
                     $dose = $sig_parts2[0];
                     $doseunit = $sig_parts2[1];
                 } else {
                     $dose = $sig_parts2[0];
                     $doseunit = '';
                 }
                 if ($row6->rxl_quantity != '') {
                     if (strpos($row6->rxl_quantity, ' ') !== false) {
                         $quantity_parts2 = explode(" ", $row6->rxl_quantity);
                         $quantity1 = $quantity_parts2[0];
                         $quantity_unit1 = $quantity_parts2[1];
                     } else {
                         $quantity1 = $row6->rxl_quantity;
                         $quantity_unit1 = '';
                     }
                 } else {
                     $quantity1 = '';
                     $quantity_unit1 = '';
                 }
                 if ($row6->rxl_daw != '') {
                     $daw1 = 'n';
                 } else {
                     $daw1 = 'y';
                 }
                 $xml6 = "<Request><Command>send_medication</Command><Synchronous>y</Synchronous>";
                 $xml6 .= "<MedicationList><Medication><Deleted>y</Deleted>";
                 $xml6 .= "<ExternalID>" . $row6->rxl_id . "</ExternalID>";
                 $xml6 .= "<Patient><ExternalID>" . $row6->pid . "</ExternalID></Patient>";
                 $xml6 .= "<Sig>";
                 $xml6 .= "<Drug><NDCID>" . $ndcid1 . "</NDCID>";
                 $xml6 .= "<GenericName>" . $generic_name1 . "</GenericName>";
                 $xml6 .= "<Form>" . $form1 . "</Form>";
                 $xml6 .= "<Strength>" . $strength1 . "</Strength></Drug>";
                 $xml6 .= "<Dose>" . $dose . "</Dose>";
                 $xml6 .= "<DoseUnit>" . $doseunit . "</DoseUnit>";
                 $xml6 .= "<Route>" . $row6->rxl_route . "</Route>";
                 $xml6 .= "<DoseTiming>" . $row6->rxl_frequency . "</DoseTiming>";
                 $xml6 .= "<DoseOther>" . $row6->rxl_instructions . "</DoseOther>";
                 $xml6 .= "<Quantity>" . $quantity1 . "</Quantity>";
                 $xml6 .= "<QuantityUnit>" . $quantity_unit1 . "</QuantityUnit>";
                 $xml6 .= "<Refills>" . $row6->rxl_refill . "</Refills>";
                 $xml6 .= "<SubstitutionPermitted>" . $daw1 . "</SubstitutionPermitted>";
                 $xml6 .= "</Sig>";
                 $xml6 .= "<StartDate>" . $ddm_final . "</StartDate>";
                 $xml6 .= "<StopDate>" . $ddn_final . "</StopDate>";
                 $xml6 .= "</Medication></MedicationList></Request></RCExtRequest>";
                 $result6 = $this->rcopia($xml6, $practice_id);
                 $response6 = new SimpleXMLElement($result6);
                 $status6 = $response6->Response->MedicationList->Medication->Status . "";
                 if ($status6 == "error") {
                     $description6 = $response3->Response->MedicationList->Medication->Error->Text . "";
                     $data6a = array('action' => 'delete_medication', 'pid' => $row6->pid, 'extensions_name' => 'rcopia', 'description' => $description6, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data6a);
                     $data6b = array('rcopia_sync' => 'y');
                     DB::table('rx_list')->where('pid', '=', $row6->pid)->update($data6b);
                     $this->audit('Update');
                 } else {
                     $data6b = array('rcopia_sync' => 'y');
                     DB::table('rx_list')->where('rxl_id', '=', $row6->rxl_id)->update($data6b);
                     $this->audit('Update');
                 }
             }
         }
     }
     //Delete Problem List
     $query7 = Issues::where('rcopia_sync', '=', 'nd')->orWhere('rcopia_sync', '=', 'nd1')->get();
     if ($query7) {
         foreach ($query7 as $row7) {
             if ($this->check_practice_id($row7->pid, $practice_id)) {
                 $ddi = explode(" [", $row7->issue);
                 $code1 = str_replace("]", "", $ddi[1]);
                 $xml7 = "<Request><Command>send_problem</Command><Synchronous>y</Synchronous>";
                 $xml7 .= "<ProblemList><Problem><Deleted>y</Deleted>";
                 $xml7 .= "<ExternalID>" . $row7->issue_id . "</ExternalID>";
                 $xml7 .= "<Patient><ExternalID>" . $row7->pid . "</ExternalID></Patient>";
                 $xml7 .= "<Code>" . $code1 . "</Code>";
                 $xml7 .= "<Description>" . $ddi[0] . "</Description>";
                 $xml7 .= "</Problem></ProblemList></Request></RCExtRequest>";
                 $result7 = $this->rcopia($xml7, $practice_id);
                 $response7 = new SimpleXMLElement($result7);
                 $status7 = $response7->Response->ProblemList->Problem->Status . "";
                 if ($status7 == "error") {
                     $description7 = $response7->Response->ProblemList->Problem->Error->Text . "";
                     $data7a = array('action' => 'delete_problem', 'pid' => $row7->pid, 'extensions_name' => 'rcopia', 'description' => $description7, 'practice_id' => $practice_id);
                     DB::table('extensions_log')->insert($data7a);
                     $data7b = array('rcopia_sync' => 'y');
                     DB::table('issues')->where('pid', '=', $row7->pid)->update($data7b);
                     $this->audit('Update');
                 } else {
                     $data7b = array('rcopia_sync' => 'y');
                     DB::table('issues')->where('issue_id', '=', $row7->issue_id)->update($data7b);
                     $this->audit('Update');
                 }
             }
         }
     }
 }
 public function postStartFaxMedication()
 {
     if (Session::get('group_id') != '2' && Session::get('group_id') != '3') {
         Auth::logout();
         Session::flush();
         header("HTTP/1.1 404 Page Not Found", true, 404);
         exit("You cannot do this.");
     } else {
         ini_set('memory_limit', '196M');
         $pid = Session::get('pid');
         if (Session::get('job_id') == FALSE) {
             $job_id = '';
         } else {
             $job_id = Session::get('job_id');
         }
         $rxl_id = Input::get('fax_prescribe_id');
         $html = $this->page_medication($rxl_id)->render();
         $user_id = Session::get('user_id');
         $file_path = __DIR__ . "/../../public/temp/rx_" . time() . "_" . $user_id . ".pdf";
         $this->generate_pdf($html, $file_path);
         while (!file_exists($file_path)) {
             sleep(2);
         }
         $row1 = Rx_list::find($rxl_id);
         $file_original = $row1->rxl_medication . ' ' . $row1->rxl_dosage . ' ' . $row1->rxl_dosage_unit . ', ' . $row1->rxl_sig . ' ' . $row1->rxl_route . ' ' . $row1->rxl_frequency . ' for ' . $row1->rxl_reason;
         $result['id'] = $this->fax_document($pid, 'Prescription/Refill Authorization', 'yes', $file_path, $file_original, '', '', $job_id, 'no');
         $result['message'] = 'Prescription added to fax queue!';
         Session::put('job_id', $result['id']);
         unlink($file_path);
         echo json_encode($result);
     }
 }