search_date_by){ case 'yesterday': $end_date = Carbon::yesterday()->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::yesterday()->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "Yesterday "; break; case 'custom_date': $end_date = Carbon::parse($request->start_date)->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::parse($request->start_date)->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "From: " . streamline_date($start_date) . " "; break; case 'custom_date_range': $end_date = Carbon::parse($request->end_date)->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::parse($request->start_date)->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "From: " . streamline_date($start_date) . " to " . streamline_date($end_date) . " "; break; case 'today': default: $end_date = Carbon::today()->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::today()->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "Today "; break; } $episodes = PatientEpisode::leftJoin('triage', 'patient_episodes.triage_id', '=', 'triage.id') ->leftJoin('patients', 'patient_episodes.patient_id', '=', 'patients.id') ->leftJoin('consultations as c', 'patient_episodes.id', '=', 'c.episode_id') ->leftJoin('districts', 'patients.district_id', '=', 'districts.id') ->leftJoin('subcounties', 'patients.subcounty_id', '=', 'subcounties.id') ->leftJoin('parishes', 'patients.parish_id', '=', 'parishes.id') ->leftJoin('villages', 'patients.village_id', '=', 'villages.id') ->leftJoin('family_relations', 'patients.next_of_kin_relationship', '=', 'family_relations.id') ->select('patient_episodes.id as id', 'first_name', 'last_name', 'date_of_birth', 'gender', 'citizenship', 'next_of_kin', 'national_id', 'phone', 'rbs', 'phone_of_next_of_kin', 'next_of_kin_relationship', 'family_relations.name as relation', 'observations', 'new_attendance', 'villages.name as village', 'parishes.name as parish', 'subcounties.name as subcounty', 'districts.name as district', 'patient_episodes.created_at', 'patient_episodes.consultation_id','patient_episodes.triage_id') ->whereBetween('patient_episodes.created_at', [$start_date, $end_date])->orderBy('id', 'asc') ->get(); $hospital_info = HospitalInformation::find(1); return view('reports::hmis_reports.002.page-1', compact('search_text', 'episodes', 'start_date','hospital_info','end_date')); } public function page_1_print($start_date, $end_date) { $episodes = PatientEpisode::leftJoin('triage', 'patient_episodes.triage_id', '=', 'triage.id') ->leftJoin('patients', 'patient_episodes.patient_id', '=', 'patients.id') ->leftJoin('consultations as c', 'patient_episodes.id', '=', 'c.episode_id') ->leftJoin('districts', 'patients.district_id', '=', 'districts.id') ->leftJoin('subcounties', 'patients.subcounty_id', '=', 'subcounties.id') ->leftJoin('parishes', 'patients.parish_id', '=', 'parishes.id') ->leftJoin('villages', 'patients.village_id', '=', 'villages.id') ->leftJoin('family_relations', 'patients.next_of_kin_relationship', '=', 'family_relations.id') ->select('patient_episodes.id as id', 'first_name', 'last_name', 'date_of_birth', 'gender', 'citizenship', 'next_of_kin', 'national_id', 'phone', 'rbs', 'phone_of_next_of_kin', 'next_of_kin_relationship', 'family_relations.name as relation', 'observations', 'new_attendance', 'villages.name as village', 'parishes.name as parish', 'subcounties.name as subcounty', 'districts.name as district', 'patient_episodes.created_at', 'patient_episodes.consultation_id','patient_episodes.triage_id') ->whereBetween('patient_episodes.created_at', [$start_date, $end_date])->orderBy('id', 'asc') ->get(); $search_text = "From: " . streamline_date($start_date) . " to " . streamline_date($end_date); $hospital_info = HospitalInformation::find(1); $data = [ 'search_text' => $search_text, 'episodes' => $episodes, 'hospital_info' => $hospital_info, 'start_date' => $start_date, 'end_date' => $end_date ]; $pdf = SnappyPDF::loadView('reports::hmis_reports/002/page-1-print', $data) ->setOrientation('landscape') ->setPaper('a3') ->setOption('margin-bottom', 10) ->setOption('footer-left', 'Stre@mline') ->setOption('footer-right', '[page] of [toPage]'); return $pdf->inline('HMIS OPD 002 - Outpatient Register' . date(" d-m-y h:ia") . '.pdf'); } public function page_2(Request $request) { $search_text = !empty($request->search_text)? $request->search_text :""; if(!empty($request->page_1_start_date)){ $end_date = $request->end_date; $start_date = $request->page_1_start_date; } else switch ($request->search_date_by){ case 'yesterday': $end_date = Carbon::yesterday()->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::yesterday()->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "Yesterday "; break; case 'custom_date': $end_date = Carbon::parse($request->start_date)->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::parse($request->start_date)->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "From: " . streamline_date($start_date) . " "; break; case 'custom_date_range': $end_date = Carbon::parse($request->end_date)->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::parse($request->start_date)->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "From: " . streamline_date($start_date) . " to " . streamline_date($end_date) . " "; break; case 'today': default: $end_date = Carbon::today()->endOfDay()->format('Y-m-d H:i:s'); $start_date = Carbon::today()->startOfDay()->format('Y-m-d H:i:s'); $search_text .= "Today "; break; } $episodes = PatientEpisode::leftJoin('triage', 'patient_episodes.triage_id', '=', 'triage.id') ->leftJoin('patients', 'patient_episodes.patient_id', '=', 'patients.id') ->leftJoin('consultations as c', 'patient_episodes.id', '=', 'c.episode_id') ->leftJoin('treatments as t', 'patient_episodes.id', '=', 't.episode_id') ->leftJoin('investigation_results as or', 'or.episode_id','patient_episodes.id') ->leftJoin('eye_clinic_main_exam as e', 'patient_episodes.id', '=', 'e.episode_id') ->select('patient_episodes.id as id', 'first_name', 'last_name', 'date_of_birth', 'gender', 'next_of_kin', 'national_id','patients.id as patient_id', 'attendance', 'phone', 'phone_of_next_of_kin', 'new_attendance', 're_attendance','primary_diagnosis','other_diagnoses','rdt',DB::raw('GROUP_CONCAT(drugs) as drugs'),DB::raw('GROUP_CONCAT(frequencies) as frequencies'),DB::raw('GROUP_CONCAT(durations) as durations'),DB::raw('GROUP_CONCAT(doses) as doses'),'tb_status_assessment', 'next_of_kin_relationship', 'right_eye_diagnosis', 'triage.symptoms', 'c.symptoms as symps', 'patient_episodes.clinic_id', 'left_eye_diagnosis', DB::raw('GROUP_CONCAT(or.investigation_id) as investigation_ids'), 'observations', 'new_attendance', 'patient_episodes.created_at', 'patient_episodes.consultation_id','patient_episodes.triage_id', 'number', 'c.referred_to') ->whereBetween('patient_episodes.created_at', [$start_date, $end_date])->orderBy('id', 'asc')->groupBy('id') ->get(); $hospital_info = HospitalInformation::find(1); $fever_symptom_ids = DB::table('symptoms')->where('name', 'LIKE', "%fever%")->orderBy('name')->pluck('id')->toArray(); $tb_clinic_ids = DB::table('clinics')->where('name', 'LIKE', "%tb%")->orWhere('name', 'LIKE', "%tuber%")->pluck('id')->toArray(); $investigations = Investigation::whereIn('hmis_002_slug', [2,3])->pluck('id')->toArray(); return view('reports::hmis_reports.002.page-2', compact('search_text', 'episodes', 'start_date', 'end_date', 'hospital_info', 'fever_symptom_ids','tb_clinic_ids','investigations')); } public function page_2_print(Request $request) { $data = [ 'search_text' => $request->search_text, 'episodes'=> unserialize($request->episodes), 'start_date' => $request->start_date, 'end_date' => $request->end_date, 'hospital_info' => unserialize($request->hospital_info), 'fever_symptom_ids'=> unserialize($request->fever_symptom_ids), 'tb_clinic_ids'=> unserialize($request->tb_clinic_ids), 'investigations'=> unserialize($request->investigations) ]; $pdf = SnappyPDF::loadView('reports::hmis_reports/002/page-2-print', $data) ->setOrientation('landscape') ->setPaper('a3') ->setOption('margin-bottom', 10) ->setOption('footer-left', 'Stre@mline') ->setOption('footer-right', '[page] of [toPage]'); return $pdf->inline('HMIS OPD 002 - Outpatient Register' . date(" d-m-y h:ia") . '.pdf'); } }