public function postPreviousEncounters()
 {
     $encounter = Encounters::find(Session::get('eid'));
     $query = DB::table('encounters')->where('pid', '=', Session::get('pid'))->where('addendum', '=', 'n')->where('practice_id', '=', Session::get('practice_id'))->orderBy('encounter_DOS', 'asc')->where('eid', '!=', Session::get('eid'));
     if ($encounter->encounter_template == 'standardpsych' || $encounter->encounter_template == 'standardpsych1') {
         $query->where(function ($query_array1) {
             $query_array1->where('encounter_template', '=', 'standardpsych')->orWhere('encounter_template', '=', 'standardpsych1');
         });
     } else {
         $query->where('encounter_template', '=', $encounter->encounter_template);
     }
     $result = $query->get();
     $data = array();
     if ($result) {
         foreach ($result as $row) {
             $key = $row->eid;
             $value = date('Y-m-d', $this->human_to_unix($row->encounter_DOS)) . ' (Chief complaint: ' . $row->encounter_cc . ')';
             $data[$key] = $value;
         }
     }
     echo json_encode($data);
 }
 public function postCopyEncounter()
 {
     $eid = Input::get('copy_encounter_from');
     $encounter = Encounters::find(Session::get('eid'));
     if ($encounter->encounter_template == 'standardmedical') {
         $table_array1 = array("hpi", "ros", "vitals", "pe", "labs", "procedure", "rx", "assessment", "plan");
         $table_array2 = array("other_history");
     }
     if ($encounter->encounter_template == 'clinicalsupport') {
         $table_array1 = array("hpi", "labs", "procedure", "rx", "assessment", "plan");
         $table_array2 = array("other_history");
     }
     if ($encounter->encounter_template == 'standardpsych' || $encounter->encounter_template == 'standardpsych1') {
         $table_array1 = array("hpi", "ros", "vitals", "pe", "rx", "assessment", "plan");
         $table_array2 = array("other_history");
     }
     foreach ($table_array1 as $table1) {
         $table_query1 = DB::table($table1)->where('eid', '=', $eid)->first();
         if ($table_query1) {
             $data2 = (array) $table_query1;
             unset($data2['eid']);
             $data2['eid'] = Session::get('eid');
             $query1 = DB::table($table1)->where('eid', '=', Session::get('eid'))->first();
             if ($query1) {
                 DB::table($table1)->where('eid', '=', Session::get('eid'))->update($data2);
                 $this->audit('Update');
             } else {
                 DB::table($table1)->insert($data2);
                 $this->audit('Add');
             }
         }
     }
     $table_query2 = DB::table('other_history')->where('eid', '=', $eid)->get();
     if ($table_query2) {
         foreach ($table_query2 as $table_row) {
             $data3 = (array) $table_row;
             unset($data3['eid']);
             unset($data3['oh_id']);
             $data3['eid'] = Session::get('eid');
             $query2 = DB::table('other_history')->where('eid', '=', Session::get('eid'))->first();
             if ($query2) {
                 $data3[$primary] = $query2->oh_id;
                 DB::table('other_history')->where('oh_id', '=', $query2->oh_id)->update($data3);
                 $this->audit('Update');
             } else {
                 DB::table('other_history')->insert($data3);
                 $this->audit('Add');
             }
         }
     }
     echo "Copied previous encounter elements to new encounter.";
 }
 public function postGetPrevention($eid)
 {
     $pid = Session::get('pid');
     $row = Demographics::find($pid);
     $dob1 = $this->human_to_unix($row->DOB);
     $encounterInfo = Encounters::find($eid);
     $dos1 = $this->human_to_unix($encounterInfo->encounter_DOS);
     $agediff = $dos1 - $dob1;
     if ($agediff < 31556926) {
         $data['prevent_established1'] = '99391';
         $data['prevent_new1'] = '99381';
     }
     if ($agediff >= 31556926 && $agediff < 157784630) {
         $data['prevent_established1'] = '99392';
         $data['prevent_new1'] = '99382';
     }
     if ($agediff >= 157784630 && $agediff < 378683112) {
         $data['prevent_established1'] = '99393';
         $data['prevent_new1'] = '99383';
     }
     if ($agediff >= 378683112 && $agediff < 568024668) {
         $data['prevent_established1'] = '99394';
         $data['prevent_new1'] = '99384';
     }
     if ($agediff >= 568024668 && $agediff < 1262277040) {
         $data['prevent_established1'] = '99395';
         $data['prevent_new1'] = '99385';
     }
     if ($agediff >= 1262277040 && $agediff < 2051200190) {
         $data['prevent_established1'] = '99396';
         $data['prevent_new1'] = '99386';
     }
     if ($agediff >= 2051200190) {
         $data['prevent_established1'] = '99397';
         $data['prevent_new1'] = '99387';
     }
     echo json_encode($data);
 }
 protected function page_invoice1($eid)
 {
     $pid = Session::get('pid');
     $assessmentInfo = Assessment::find($eid);
     if ($assessmentInfo) {
         $data['assessment'] = '';
         if ($assessmentInfo->assessment_1 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_1 . '<br />';
             if ($assessmentInfo->assessment_2 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_2 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_2 . '<br />';
             if ($assessmentInfo->assessment_3 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_3 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_3 . '<br />';
             if ($assessmentInfo->assessment_4 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_4 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_4 . '<br />';
             if ($assessmentInfo->assessment_5 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_5 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_5 . '<br />';
             if ($assessmentInfo->assessment_6 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_6 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_6 . '<br />';
             if ($assessmentInfo->assessment_7 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_7 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_7 . '<br />';
             if ($assessmentInfo->assessment_8 == '') {
                 $data['assessment'] .= '<br />';
             }
         }
         if ($assessmentInfo->assessment_8 != '') {
             $data['assessment'] .= $assessmentInfo->assessment_8 . '<br /><br />';
         }
     } else {
         $data['assessment'] = '';
     }
     $result1 = DB::table('billing_core')->where('eid', '=', $eid)->orderBy('cpt_charge', 'desc')->get();
     if ($result1) {
         $charge = 0;
         $payment = 0;
         $data['text'] = '<table class="pure-table"><tr><th style="width:14%">PROCEDURE</th><th style="width:14%">UNITS</th><th style="width:50%">DESCRIPTION</th><th style="width:22%">CHARGE PER UNIT</th></tr>';
         foreach ($result1 as $key1 => $value1) {
             $cpt_charge1[$key1] = $value1->cpt_charge;
         }
         array_multisort($cpt_charge1, SORT_DESC, $result1);
         foreach ($result1 as $result1a) {
             if ($result1a->cpt) {
                 $query2 = DB::table('cpt_relate')->where('cpt', '=', $result1a->cpt)->first();
                 if ($query2) {
                     $result2 = DB::table('cpt_relate')->where('cpt', '=', $result1a->cpt)->first();
                 } else {
                     $result2 = DB::table('cpt')->where('cpt', '=', $result1a->cpt)->first();
                 }
                 $data['text'] .= '<tr><td>' . $result1a->cpt . '</td><td>' . $result1a->unit . '</td><td>' . $result2->cpt_description . '</td><td>$' . $result1a->cpt_charge . '</td></tr>';
                 $charge += $result1a->cpt_charge * $result1a->unit;
             } else {
                 $data['text'] .= '<tr><td>Date of Payment:</td><td>' . $result1a->dos_f . '</td><td>' . $result1a->payment_type . '</td><td">$(' . $result1a->payment . ')</td></tr>';
                 $payment = $payment + $result1a->payment;
             }
         }
         $balance = $charge - $payment;
         $charge = number_format($charge, 2, '.', ',');
         $payment = number_format($payment, 2, '.', ',');
         $balance = number_format($balance, 2, '.', ',');
         $data['text'] .= '<tr><td></td><td></td><td><strong>Total Charges:</strong></td><td><strong>$' . $charge . '</strong></td></tr><tr><td></td><td></td><td><strong>Total Payments:</strong></td><td><strong>$' . $payment . '</strong></td></tr><tr><td></td><td></td><td></td><td><hr/></td></tr><tr><td></td><td></td><td><strong>Remaining Balance:</strong></td><td><strong>$' . $balance . '</strong></td></tr></table>';
     } else {
         $data['text'] = 'No procedures.';
     }
     $row = Demographics::find($pid);
     $practice = Practiceinfo::find(Session::get('practice_id'));
     $data['practiceName'] = $practice->practice_name;
     $data['practiceInfo1'] = $practice->street_address1;
     if ($practice->street_address2 != '') {
         $data['practiceInfo1'] .= ', ' . $practice->street_address2;
     }
     $data['practiceInfo2'] = $practice->city . ', ' . $practice->state . ' ' . $practice->zip;
     $data['practiceInfo3'] = 'Phone: ' . $practice->phone . ', Fax: ' . $practice->fax;
     $data['disclaimer'] = '<br>Please send a check payable to ' . $practice->practice_name . ' and mail it to:';
     $data['disclaimer'] .= '<br>' . $practice->billing_street_address1;
     if ($practice->billing_street_address2 != '') {
         $data['text'] .= ', ' . $practice->billing_street_address2;
     }
     $data['disclaimer'] .= '<br>' . $practice->billing_city . ', ' . $practice->billing_state . ' ' . $practice->billing_zip;
     $data['patientInfo1'] = $row->firstname . ' ' . $row->lastname;
     $data['patientInfo2'] = $row->address;
     $data['patientInfo3'] = $row->city . ', ' . $row->state . ' ' . $row->zip;
     $data['patientInfo'] = $row;
     $data['dob'] = date('m/d/Y', $this->human_to_unix($row->DOB));
     $encounterInfo = Encounters::find($eid);
     $data['encounter_DOS'] = date('F jS, Y', $this->human_to_unix($encounterInfo->encounter_DOS));
     $data['encounter_provider'] = $encounterInfo->encounter_provider;
     $query1 = DB::table('insurance')->where('pid', '=', $pid)->where('insurance_plan_active', '=', 'Yes')->get();
     $data['insuranceInfo'] = '';
     if ($query1) {
         foreach ($query1 as $row1) {
             $data['insuranceInfo'] .= $row1->insurance_plan_name . '; ID: ' . $row1->insurance_id_num . '; Group: ' . $row1->insurance_group . '; ' . $row1->insurance_insu_lastname . ', ' . $row1->insurance_insu_firstname . '<br><br>';
         }
     }
     $data['title'] = "INVOICE";
     $data['date'] = date('F jS, Y', time());
     $result = DB::table('demographics_notes')->where('pid', '=', Session::get('pid'))->where('practice_id', '=', Session::get('practice_id'))->first();
     if (is_null($result->billing_notes) || $result->billing_notes == '') {
         $billing_notes = 'Invoice for encounter (Date of Service: ' . $data['encounter_DOS'] . ') printed on ' . $data['date'] . '.';
     } else {
         $billing_notes = $result->billing_notes . "\n" . 'Invoice for encounter (Date of Service: ' . $data['encounter_DOS'] . ') printed on ' . $data['date'] . '.';
     }
     $billing_notes_data = array('billing_notes' => $billing_notes);
     DB::table('demographics_notes')->where('pid', '=', Session::get('pid'))->where('practice_id', '=', Session::get('practice_id'))->update($billing_notes_data);
     $this->audit('Update');
     return View::make('pdf.invoice_page', $data);
 }
 public function postTagQuery($pid)
 {
     $practice_id = Session::get('practice_id');
     $query_text = DB::table('tags_relate');
     $tags = Input::get('tags_array');
     foreach ($tags[0] as $tag) {
         $query_text->where('tags_id', '=', $tag);
     }
     if ($pid != '0') {
         $query_text->where('pid', '=', $pid);
     }
     $page = Input::get('page');
     $limit = Input::get('rows');
     $sidx = Input::get('sidx');
     $sord = Input::get('sord');
     $sord = strtolower($sord);
     $query = $query_text->get();
     if ($query) {
         $count = count($query);
         $total_pages = ceil($count / $limit);
     } else {
         $count = 0;
         $total_pages = 0;
     }
     if ($page > $total_pages) {
         $page = $total_pages;
     }
     $start = $limit * $page - $limit;
     if ($start < 0) {
         $start = 0;
     }
     $query1 = $query_text->orderBy($sidx, $sord)->skip($start)->take($limit)->get();
     $response['page'] = $page;
     $response['total'] = $total_pages;
     $response['records'] = $count;
     if ($query1) {
         $records1 = array();
         $i = 0;
         foreach ($query1 as $row) {
             $records1[$i]['index'] = $i;
             $records1[$i]['pid'] = $row->pid;
             $row1 = Demographics::find($row->pid);
             $records1[$i]['lastname'] = $row1->lastname;
             $records1[$i]['firstname'] = $row1->firstname;
             if ($row->eid != '') {
                 $row2 = Encounters::find($row->eid);
                 $records1[$i]['doc_date'] = $row2->encounter_date;
                 $records1[$i]['doctype'] = 'Encounter';
                 $records1[$i]['doctype_index'] = 'eid';
                 $records1[$i]['doc_id'] = $row->eid;
             }
             if ($row->t_messages_id != '') {
                 $row3 = T_messages::find($row->t_messages_id);
                 $records1[$i]['doc_date'] = $row3->t_messages_date;
                 $records1[$i]['doctype'] = 'Telephone Message';
                 $records1[$i]['doctype_index'] = 't_messages_id';
                 $records1[$i]['doc_id'] = $row->t_messages_id;
             }
             if ($row->message_id != '') {
                 $row4 = Messaging::find($row->message_id);
                 $records1[$i]['doc_date'] = $row4->date;
                 $records1[$i]['doctype'] = 'Message';
                 $records1[$i]['doctype_index'] = 'message_id';
                 $records1[$i]['doc_id'] = $row->message_id;
             }
             if ($row->documents_id != '') {
                 $row5 = Documents::find($row->documents_id);
                 $records1[$i]['doc_date'] = $row5->documents_date;
                 $records1[$i]['doctype'] = 'Documents';
                 $records1[$i]['doctype_index'] = 'documents_id';
                 $records1[$i]['doc_id'] = $row->documents_id;
             }
             if ($row->hippa_id != '') {
                 $row6 = Hippa::find($row->hippa_id);
                 $records1[$i]['doc_date'] = $row6->hippa_date_release;
                 $records1[$i]['doctype'] = 'Records Release';
                 $records1[$i]['doctype_index'] = 'hippa_id';
                 $records1[$i]['doc_id'] = $row->hippa_id;
             }
             if ($row->appt_id != '') {
                 $row7 = Schedule::find($row->appt_id);
                 $records1[$i]['doc_date'] = $row7->timestamp;
                 $records1[$i]['doctype'] = 'Appointment';
                 $records1[$i]['doctype_index'] = 'appt_id';
                 $records1[$i]['doc_id'] = $row->appt_id;
             }
             if ($row->tests_id != '') {
                 $row8 = Tests::find($row->tests_id);
                 $records1[$i]['doc_date'] = $row8->test_datetime;
                 $records1[$i]['doctype'] = 'Test Results';
                 $records1[$i]['doctype_index'] = 'tests_id';
                 $records1[$i]['doc_id'] = $row->tests_id;
             }
             if ($row->mtm_id != '') {
                 $row9 = Mtm::find($row->mtm_id);
                 $records1[$i]['doc_date'] = $row9->mtm_date_completed;
                 $records1[$i]['doctype'] = 'Medication Therapy Management';
                 $records1[$i]['doctype_index'] = 'mtm_id';
                 $records1[$i]['doc_id'] = $row->mtm_id;
             }
             $i++;
         }
         $response['rows'] = $records1;
     } else {
         $response['rows'] = '';
     }
     echo json_encode($response);
 }