public function postCc()
 {
     $q = strtolower(Input::get('term'));
     if (!$q) {
         return;
     }
     $data['response'] = 'false';
     $query = Encounters::where('encounter_cc', 'LIKE', "%{$q}%")->where('practice_id', '=', Session::get('practice_id'))->select('encounter_cc')->distinct()->get();
     if ($query) {
         $data['message'] = array();
         $data['response'] = 'true';
         foreach ($query as $row) {
             $data['message'][] = array('label' => $row->encounter_cc, 'value' => $row->encounter_cc);
         }
     }
     echo json_encode($data);
 }
 public function dashboard()
 {
     $practice = DB::table('practiceinfo')->where('practice_id', '=', Session::get('practice_id'))->first();
     $user_id = Session::get('user_id');
     $result = User::find($user_id);
     $practice_id = Session::get('practice_id');
     $fax_query = Received::where('practice_id', '=', $practice_id)->count();
     $displayname = $result->displayname;
     $from = $displayname . ' (' . $user_id . ')';
     $data['header'] = $this->mobile_header_build(Session::get('displayname'));
     if (Session::get('group_id') == '2') {
         $data1['number_messages'] = Messaging::where('mailbox', '=', $user_id)->count();
         $data1['number_documents'] = Scans::where('practice_id', '=', $practice_id)->count() + $fax_query;
         $data1['number_appts'] = $this->getNumberAppts($user_id);
         $query1 = DB::table('t_messages')->join('demographics', 't_messages.pid', '=', 'demographics.pid')->where('t_messages.t_messages_from', '=', $from)->where('t_messages.t_messages_signed', '=', 'No')->count();
         $query2 = DB::table('encounters')->join('demographics', 'encounters.pid', '=', 'demographics.pid')->where('encounters.encounter_provider', '=', $displayname)->where('encounters.encounter_signed', '=', 'No')->count();
         $data1['number_drafts'] = $query1 + $query2;
         $data1['number_reminders'] = DB::table('alerts')->join('demographics', 'alerts.pid', '=', 'demographics.pid')->where('alerts.alert_provider', '=', $user_id)->where('alerts.alert_date_complete', '=', '0000-00-00 00:00:00')->where('alerts.alert_reason_not_complete', '=', '')->where(function ($query_array) {
             $query_array->where('alerts.alert', '=', 'Laboratory results pending')->orWhere('alerts.alert', '=', 'Radiology results pending')->orWhere('alerts.alert', '=', 'Cardiopulmonary results pending')->orWhere('alerts.alert', '=', 'Referral pending')->orWhere('alerts.alert', '=', 'Reminder')->orWhere('alerts.alert', '=', 'REMINDER');
         })->count();
         $data1['number_bills'] = Encounters::where('bill_submitted', '=', 'No')->where('user_id', '=', $user_id)->count();
         $data1['number_tests'] = Tests::whereNull('pid')->where('practice_id', '=', $practice_id)->count();
     }
     $data['content'] = View::make('mobile.home_content', $data1)->render();
     $data['form'] = '';
     $left_panel_array = array(array('Schedule', 'mobile_schedule'), array('Inbox', 'mobile_inbox'));
     if (Session::get('group_id') != '100') {
         $left_panel_array[] = array('Drafts', 'mobile_drafts');
         $left_panel_array[] = array('Alerts', 'mobile_alerts');
         if (Session::get('patient_centric') == 'n') {
             $left_panel_array[] = array('Scans', 'mobile_scan');
             if ($practice->fax_type != "") {
                 $left_panel_array[] = array('Faxes', 'mobile_fax');
             }
         }
     }
     $data['left_panel'] = $this->mobile_menu_build($left_panel_array, "left_panel_list", 'mobile_click_home');
     $data['right_panel'] = '';
     $this->layout->style = HTML::style('css/mobile.css');
     $this->layout->style .= HTML::style('css/toastr.min.css');
     $this->layout->script = $this->js_assets('base', true);
     $this->layout->content = View::make('mobile.home', $data);
 }
 public function postLetterTemplateConstruct()
 {
     $pid = Session::get('pid');
     $row1 = Encounters::where('pid', '=', Session::get('pid'))->where('eid', '!=', '')->where('practice_id', '=', Session::get('practice_id'))->orderBy('eid', 'desc')->first();
     if ($row1) {
         $lastvisit = date('F jS, Y', strtotime($row1->encounter_DOS));
     } else {
         $lastvisit = "No previous visits.";
     }
     $ptname = Session::get('ptname');
     $row = Demographics::find($pid);
     $arr['start'] = 'This letter is in regards to ' . $row->firstname . ' ' . $row->lastname . ' (Date of Birth: ' . date('F jS, Y', $this->human_to_unix($row->DOB)) . '), who is a patient of mine.  ' . $row->firstname . ' was last seen by me on ' . $lastvisit . '.  ';
     $arr['firstname'] = $row->firstname;
     echo json_encode($arr);
 }
 protected function getMenuData()
 {
     $menu_data = array();
     $row = Practiceinfo::find(Session::get('practice_id'));
     $menu_data['mtm'] = $row->mtm_extension;
     $menu_data['id'] = Session::get('pid');
     $row1 = Encounters::where('pid', '=', Session::get('pid'))->where('eid', '!=', '')->where('practice_id', '=', Session::get('practice_id'))->orderBy('eid', 'desc')->first();
     if ($row1) {
         $menu_data['lastvisit'] = date('F jS, Y', strtotime($row1->encounter_DOS));
     } else {
         $menu_data['lastvisit'] = "No previous visits.";
     }
     $row2 = Schedule::where('pid', '=', Session::get('pid'))->where('start', '>', time())->first();
     if (isset($row2->start)) {
         $menu_data['nextvisit'] = '<br>' . date('F jS, Y, g:i A', $row2->start);
     } else {
         $menu_data['nextvisit'] = 'None.';
     }
     $row3 = Encounters::where('pid', '=', Session::get('pid'))->where('eid', '!=', '')->where('practice_id', '=', Session::get('practice_id'))->where('encounter_template', '=', 'standardpsych')->where('addendum', '=', 'n')->orderBy('eid', 'desc')->first();
     if ($row3) {
         $psych_date = strtotime($row3->encounter_DOS);
         $new_psych_date = $psych_date + 31556926;
         $psych_query = Encounters::where('pid', '=', Session::get('pid'))->where('eid', '!=', '')->where('practice_id', '=', Session::get('practice_id'))->where('addendum', '=', 'n')->where(function ($query_array1) {
             $query_array1->where('encounter_template', '=', 'standardpsych')->orWhere('encounter_template', '=', 'standardpsych1');
         })->orderBy('eid', 'desc')->get();
         $tp_date = '';
         if ($psych_query) {
             $i = 0;
             $psych_comp = '';
             $psych_comp1 = '';
             $tp_eid = '';
             foreach ($psych_query as $psych_row) {
                 $planInfo = Plan::find($psych_row->eid);
                 if ($planInfo) {
                     if ($i == 0) {
                         $psych_comp = $planInfo->goals;
                         $psych_comp .= $planInfo->tp;
                         $tp_eid = $psych_row->eid;
                         $tp_eid1 = $tp_eid;
                     } else {
                         $psych_comp1 = $planInfo->goals;
                         $psych_comp1 .= $planInfo->tp;
                         $tp_eid1 = $psych_row->eid;
                     }
                     if ($psych_comp1 != $psych_comp && $i != 0) {
                         $tp = DB::table('encounters')->where('eid', '=', $tp_eid)->first();
                         $tp_date = '<strong>Most recent TP adjustment:</strong> ' . date('F jS, Y', strtotime($tp->encounter_DOS)) . '<br>';
                         break;
                     } else {
                         $i++;
                         $tp_eid = $tp_eid1;
                     }
                 }
             }
         }
         $menu_data['psych'] = '<strong>Last Annual Psychiatric Eval:</strong> ' . date('F jS, Y', $psych_date) . '<br><strong>Next Annual Psychiatric Eval Due:</strong> ' . date('F jS, Y', $new_psych_date) . '<br>' . $tp_date;
     } else {
         $menu_data['psych'] = '';
     }
     $menu_data['supplements'] = $row->supplements_menu_item;
     $menu_data['immunizations'] = $row->immunizations_menu_item;
     return $menu_data;
 }
 public function dashboard()
 {
     $user_id = Session::get('user_id');
     $practice_id = Session::get('practice_id');
     $data['practiceinfo'] = Practiceinfo::find($practice_id);
     $result = User::find($user_id);
     $data['displayname'] = $result->displayname;
     $displayname = $result->displayname;
     $fax_query = Received::where('practice_id', '=', $practice_id)->count();
     $from = $displayname . ' (' . $user_id . ')';
     if (Session::get('group_id') == '2') {
         $data['number_messages'] = Messaging::where('mailbox', '=', $user_id)->count();
         $data['number_documents'] = Scans::where('practice_id', '=', $practice_id)->count() + $fax_query;
         $data['number_appts'] = $this->getNumberAppts($user_id);
         $query1 = DB::table('t_messages')->join('demographics', 't_messages.pid', '=', 'demographics.pid')->where('t_messages.t_messages_from', '=', $from)->where('t_messages.t_messages_signed', '=', 'No')->count();
         $query2 = DB::table('encounters')->join('demographics', 'encounters.pid', '=', 'demographics.pid')->where('encounters.encounter_provider', '=', $displayname)->where('encounters.encounter_signed', '=', 'No')->count();
         $data['number_drafts'] = $query1 + $query2;
         $data['number_reminders'] = DB::table('alerts')->join('demographics', 'alerts.pid', '=', 'demographics.pid')->where('alerts.alert_provider', '=', $user_id)->where('alerts.alert_date_complete', '=', '0000-00-00 00:00:00')->where('alerts.alert_reason_not_complete', '=', '')->where(function ($query_array) {
             $query_array->where('alerts.alert', '=', 'Laboratory results pending')->orWhere('alerts.alert', '=', 'Radiology results pending')->orWhere('alerts.alert', '=', 'Cardiopulmonary results pending')->orWhere('alerts.alert', '=', 'Referral pending')->orWhere('alerts.alert', '=', 'Reminder')->orWhere('alerts.alert', '=', 'REMINDER');
         })->count();
         $data['number_bills'] = Encounters::where('bill_submitted', '=', 'No')->where('user_id', '=', $user_id)->count();
         $data['number_tests'] = Tests::whereNull('pid')->where('practice_id', '=', $practice_id)->count();
         if ($data['practiceinfo']->mtm_extension == 'y') {
             $mtm_users_array = explode(",", $data['practiceinfo']->mtm_alert_users);
             if (in_array($user_id, $mtm_users_array)) {
                 $data['mtm_alerts'] = Alerts::where('alert_date_complete', '=', '0000-00-00 00:00:00')->where('alert_reason_not_complete', '=', '')->where('alert', '=', 'Medication Therapy Management')->where('practice_id', '=', $practice_id)->count();
                 $data['mtm_alerts_status'] = "y";
             } else {
                 $data['mtm_alerts_status'] = "n";
             }
         } else {
             $data['mtm_alerts_status'] = "n";
         }
         $data['vaccine_supplement_alert'] = $this->vaccine_supplement_alert($practice_id);
     }
     if (Session::get('group_id') == '3') {
         $data['number_messages'] = Messaging::where('mailbox', '=', $user_id)->count();
         $data['number_documents'] = Scans::where('practice_id', '=', $practice_id)->count() + $fax_query;
         $data['number_drafts'] = DB::table('t_messages')->join('demographics', 't_messages.pid', '=', 'demographics.pid')->where('t_messages.t_messages_from', '=', $from)->where('t_messages.t_messages_signed', '=', 'No')->count();
         $data['number_reminders'] = DB::table('alerts')->join('demographics', 'alerts.pid', '=', 'demographics.pid')->where('alerts.alert_provider', '=', $user_id)->where('alerts.alert_date_complete', '=', '0000-00-00 00:00:00')->where('alerts.alert_reason_not_complete', '=', '')->where(function ($query_array) {
             $query_array->where('alerts.alert', '=', 'Laboratory results pending')->orWhere('alerts.alert', '=', 'Radiology results pending')->orWhere('alerts.alert', '=', 'Cardiopulmonary results pending')->orWhere('alerts.alert', '=', 'Referral pending')->orWhere('alerts.alert', '=', 'Reminder')->orWhere('alerts.alert', '=', 'REMINDER');
         })->count();
         $data['number_bills'] = Encounters::where('bill_submitted', '=', 'No')->where('practice_id', '=', $practice_id)->count();
         $data['number_tests'] = Tests::whereNull('pid')->where('practice_id', '=', $practice_id)->count();
         $data['vaccine_supplement_alert'] = $this->vaccine_supplement_alert($practice_id);
     }
     if (Session::get('group_id') == '4') {
         $data['number_messages'] = Messaging::where('mailbox', '=', $user_id)->count();
         $data['number_bills'] = Encounters::where('bill_submitted', '=', 'No')->where('practice_id', '=', $practice_id)->count();
         $data['number_documents'] = Scans::where('practice_id', '=', $practice_id)->count() + $fax_query;
     }
     if (Session::get('group_id') == '100') {
         $row = Demographics_relate::where('id', '=', $user_id)->first();
         Session::put('pid', $row->pid);
     }
     if (Session::get('group_id') == '1') {
         if ($practice_id == '1') {
             $data['saas_admin'] = 'y';
         } else {
             $data['saas_admin'] = 'n';
         }
         if (Session::get('patient_centric') != 'y') {
             $users = DB::table('users')->where('group_id', '=', '2')->where('practice_id', '=', Session::get('practice_id'))->first();
             if ($users) {
                 $data['users_needed'] = 'n';
             } else {
                 $data['users_needed'] = 'y';
             }
         } else {
             $data['users_needed'] = 'n';
         }
         if (Session::get('patient_centric') != 'y') {
             $schedule = DB::table('practiceinfo')->where('practice_id', '=', Session::get('practice_id'))->whereNull('minTime')->first();
             if ($schedule) {
                 $data['schedule_needed'] = 'y';
             } else {
                 $data['schedule_needed'] = 'n';
             }
         } else {
             $data['schedule_needed'] = 'n';
         }
     }
     if ($data['practiceinfo']->weekends == '1') {
         $data['weekends'] = 'true';
     } else {
         $data['weekends'] = 'false';
     }
     $data['minTime'] = ltrim($data['practiceinfo']->minTime, "0");
     $data['maxTime'] = ltrim($data['practiceinfo']->maxTime, "0");
     if (Session::get('group_id') == '2') {
         $provider = Providers::find(Session::get('user_id'));
         $data['schedule_increment'] = $provider->schedule_increment;
     } else {
         $data['schedule_increment'] = '15';
     }
     if (!Session::get('encounter_active')) {
         Session::put('encounter_active', 'n');
     }
     if ($data['practiceinfo']->fax_type != "") {
         $data1['fax'] = true;
     } else {
         $data1['fax'] = false;
     }
     $this->layout->style = $this->css_assets();
     $this->layout->script = $this->js_assets('home');
     $this->layout->content = '';
     if (Session::get('group_id') == '1') {
         $this->layout->content .= View::make('search', $this->getSearchData())->render();
         $this->layout->content .= View::make('dashboard', $data)->render();
         $this->layout->content .= View::make('setup')->render();
         $this->layout->content .= View::make('users')->render();
         $this->layout->content .= View::make('extensions', $data)->render();
         $this->layout->content .= View::make('schedule_admin')->render();
         $this->layout->content .= View::make('update')->render();
         $this->layout->content .= View::make('logs')->render();
         $this->layout->content .= View::make('schedule')->render();
     }
     if (Session::get('group_id') == '2' || Session::get('group_id') == '3' || Session::get('group_id') == '4') {
         $this->layout->content .= View::make('search', $this->getSearchData())->render();
         $this->layout->content .= View::make('dashboard', $data)->render();
         $this->layout->content .= View::make('demographics')->render();
         $this->layout->content .= View::make('options')->render();
         $this->layout->content .= View::make('messaging', $data1)->render();
         $this->layout->content .= View::make('schedule')->render();
         $this->layout->content .= View::make('billing')->render();
         $this->layout->content .= View::make('financial')->render();
         $this->layout->content .= View::make('office')->render();
         if (Session::get('patient_centric') == 'yp' && Session::get('group_id') == '2') {
             $this->layout->content .= View::make('setup')->render();
         }
     }
     if (Session::get('group_id') == '100') {
         $this->layout->content .= View::make('dashboard', $data)->render();
         $this->layout->content .= View::make('demographics')->render();
         $this->layout->content .= View::make('messaging', $data1)->render();
         $this->layout->content .= View::make('schedule')->render();
         $this->layout->content .= View::make('issues')->render();
         $this->layout->content .= View::make('encounters')->render();
         $this->layout->content .= View::make('t_messages')->render();
         $this->layout->content .= View::make('medications')->render();
         $this->layout->content .= View::make('supplements')->render();
         $this->layout->content .= View::make('allergies')->render();
         $this->layout->content .= View::make('immunizations')->render();
         $this->layout->content .= View::make('documents')->render();
         $this->layout->content .= View::make('forms')->render();
         $this->layout->content .= View::make('graph')->render();
     }
 }