middleware('auth'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $episode_id = session()->get('episode_id'); $patient_id = session()->get('patient_id'); $patient = Patient::find($patient_id); $categories = DB::table('patient_categories')->where('available', 1)->pluck("name", "id"); $marital_statuses = DB::table('marital_statuses')->pluck("name", "id")->prepend('-- Select --',''); $districts = DB::table('districts')->pluck("name", "id")->prepend('-- Select --',''); $care_entry_points = DB::table('care_entry_points')->pluck("name", "id")->prepend('-- Select --',''); $drug_categories = DB::table('drug_categories')->get(); $triage_id = get_name($episode_id, "id", "triage_id", "patient_episodes"); $triage = Triage::find($triage_id); $documents = PatientDocument::where('patient_id',$patient_id)->orderBy('created_at','desc')->take(2)->get(); $known_patient_allergies = Allergy::where('patient_id' , $patient_id)->orderBy('created_at', 'desc')->take(2)->get(); $known_patient_alerts = Alert::where('patient_id' , $patient_id)->orderBy('created_at','desc')->take(2)->get(); $drug_categories_array = DB::table('drug_categories')->pluck('name', 'id'); //check if there is ART clinic registration data for this paatient $existing_episode_art_clinic_registration = ArtClinicRegistration::where(['patient_id' => $patient_id])->get(); //dd($existing_episode_art_clinic_registration); return view('hiv::art_clinic.create',compact('patient_id','episode_id','patient','categories','marital_statuses','drug_categories','documents','known_patient_alerts','known_patient_allergies','drug_categories_array','triage','districts','care_entry_points')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $test_type_array = array( "Test_Type" => $request->test_type, "Where?" => $request->where ); $test_type_serial = serialize($test_type_array); //Care Entry Point $care_entry_point_array = array( "Care_Entry_Point" => $request->care_entry_point, "Other(Specify)" => $request->other_care_entry_point ); $care_entry_point_serial = serialize($care_entry_point_array); //Treatment supporter $treatment_supporter_array = array( "Treatment_Supporter_Name" => $request->treatment_supporter_name, "Phone" => $request->treatment_supporter_phone, "District" => $request->district, "County" => $request->county_id, "Subcounty" => $request->subcounty_id, "Parish" => $request->parish, "Village" => $request->village ); $treatment_supporter_serial = serialize($treatment_supporter_array); //save data into the art_clinic_registration $art_clinic_registration = new ArtClinicRegistration; $art_clinic_registration->patient_id = $request->patient_id; $art_clinic_registration->marital_status = $request->marital_status; $art_clinic_registration->art_clinic_number = $request->art_clinic_number; /* ========== register the patient in hiv_patients table ========== */ $hiv_patient = new HivPatient; $hiv_patient->patient_id = session()->get('patient_id'); $hiv_patient->art_clinic_number = $request->art_clinic_number; $hiv_patient->save(); /* ===================== */ $art_clinic_registration->date_confirmed_HIV = isset($request->date_hiv_confirmed) ? Carbon::createFromFormat('d/m/Y', $request->date_hiv_confirmed)->toDateString() : null; $art_clinic_registration->test_type = $test_type_serial; $art_clinic_registration->care_entry_point = $care_entry_point_serial; $art_clinic_registration->treatment_supporter = $treatment_supporter_serial; $art_clinic_registration->home_based_care_by = $request->home_based_care_provided_by; $art_clinic_registration->created_by = auth()->user()->id; if ($art_clinic_registration->save()) { flash('ART details have been filled. Please fill out the ART continuation card')->success(); return redirect('art_continuation_card'); } return redirect()->back()->withInput(); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } /* Display ART continuation card */ public function create_art_continuation_card() { $patient_id = session()->get('patient_id'); $patient = Patient::find($patient_id); $categories = DB::table('patient_categories')->where('available', 1)->pluck("name", "id"); $marital_statuses = DB::table('marital_statuses')->pluck("name", "id")->prepend('-- Select --',''); $districts = DB::table('districts')->pluck("name", "id")->prepend('-- Select --',''); $fp_options = DB::table('art_card_family_planning_methods')->pluck("name", "id")->prepend('-- Select --',''); $tb_statuses = DB::table('tuberclosis_statuses')->pluck("name", "id")->prepend('-- Select --',''); $potential_side_effects = DB::table('art_potential_side_effects')->pluck("name","id")->prepend('-- Select --',''); $oi_options = DB::table('art_oi')->pluck("name","id")->prepend('-- Select --',''); $nutrition = DB::table('nutrition')->pluck("name","id")->prepend('-- Select --',''); $arv_adherence_reasons = DB::table('arv_adherence_reasons')->pluck("name","id")->prepend('-- Select --',''); $drug_categories = DB::table('drug_categories')->get(); $documents = PatientDocument::where('patient_id',$patient_id)->orderBy('created_at','desc')->take(2)->get(); $known_patient_allergies = Allergy::where('patient_id',$patient_id)->orderBy('created_at','desc')->take(2)->get(); $known_patient_alerts = Alert::where('patient_id' , $patient_id)->orderBy('created_at','desc')->take(2)->get(); $drug_categories_array = DB::table('drug_categories')->pluck('name', 'id'); //check if there is ART clinic registration data for this paatient $existing_art_continuation_card_records = ArtContinuationCard::where(['patient_id' => $patient_id])->get(); $existing_art_continuation_card_records_array = $existing_art_continuation_card_records->toArray(); return view('hiv::art_clinic.create_ART_continuation_card',compact('patient_id','patient','categories','marital_statuses','drug_categories','documents','known_patient_alerts','known_patient_allergies','drug_categories_array','districts','fp_options','tb_statuses','potential_side_effects','oi_options','nutrition','arv_adherence_reasons','existing_art_continuation_card_records_array','existing_art_continuation_card_records')); } /* Store art continuation card details */ public function store_art_continuation_card(Request $request) { //ART $art_array = array( "Date started ART" => isset($request->date_started_art) ? Carbon::createFromFormat('d/m/Y', $request->date_started_art)->toDateString() : null, "Duration" => $request->art_duration, "Date started current ART regime" => isset($request->art_regime_start_date) ? Carbon::createFromFormat('d/m/Y', $request->art_regime_start_date)->toDateString() : null, "Current Regime Duration" => $request->art_regime_duration ); $art_serial = serialize($art_array); //MUAC and oedema $muac_array = array( "muac" => $request->muac, "oedema" => $request->oedema ); $muac_serial = serialize($muac_array); //Pregnacy $pregnancy_array = array( "Pregnant" => $request->pregnant, "EDD" => isset($request->edd) ? Carbon::createFromFormat('d/m/Y', $request->edd)->toDateString() : null, "EMTCT" => $request->emtct, "ANC Location" => $request->anc_location, "Gestation" => $request->gestation, "FP" => $request->fp ); $pregnancy_serial = serialize($pregnancy_array); //TB $tb_array = array( "TB Status" => $request->tb_status, "TB Rx start date" => isset($request->tb_rx_start_date) ? Carbon::createFromFormat('d/m/Y', $request->tb_rx_start_date)->toDateString() : null, "Stop date" => isset($request->tb_rx_stop_date) ? Carbon::createFromFormat('d/m/Y', $request->tb_rx_stop_date)->toDateString() : null, "District TB Register Number" => $request->district_tb_register_no ); $tb_serial = serialize($tb_array); //Side effects $side_effects_array = array( "Potential side effects" => $request->potential_side_effects, "Others" => $request->other_side_effects ); $side_effects_serial = serialize($side_effects_array); //New OI $new_oi = array( "New OI / other problems" => $request->new_oi, "Other" => $request->new_oi_other ); $new_oi_serial = serialize($new_oi); //Nutrition $nutrition_array = array( "Nutrition" => $request->nutrition, "Functional Status" => $request->functional_status, "WHO Stage" => $request->who_stage ); $nutrition_serial = serialize($nutrition_array); //CPT / Dapsone $cpt_dapsone_array = array( "Adherence" => $request->cpt_dapsone_adherence, "Number of pills dispensed" => $request->cpt_no_pills_dispensed, "Number of days passed" => $request->cpt_no_days_passed ); $cpt_dapsone_serial = serialize($cpt_dapsone_array); //INH $inh_array = array( "Number of pills dispensed" => $request->inh_no_pills_dispensed, "Number of days passed" => $request->inh_no_days_passed ); $inh_serial = serialize($inh_array); //Other meds $other_meds_array = array( "Other Meds Dispensed including nutritional supplement" => $request->other_meds ); $other_meds_serial = serialize($other_meds_array); //ARVs $arvs_array = array( "Adherence" => $request->arvs_adherence, "Why?" => $request->arvs_adherence_why, "Others" => $request->arvs_other, "Regime" => $request->arvs_regime, "Number of pills dispensed" => $request->arvs_no_pills_dispensed, "Number of days passed" => $request->arvs_no_days_passed, ); $arvs_serial = serialize($arvs_array); //Ix $ix_array = array( "CD4 count" => $request->cd4_count, "Date" => isset($request->cd4_count_date) ? Carbon::createFromFormat('d/m/Y', $request->cd4_count_date)->toDateString() : null, "Other Ix" => $request->other_ix, "Nutrition supplements" => $request->nutritional_supplements ); $ix_serial = serialize($ix_array); //Referrals $referrals_array = array( "Consultation / link/provide" => $request->consultation_link_provide, "Date" => isset($request->consultation_link_provide_date) ? Carbon::createFromFormat('d/m/Y', $request->consultation_link_provide_date)->toDateString() : null, "Nutrition support" => $request->nutritional_support, "Nutrition support Date" => isset($request->nutritional_support_date) ? Carbon::createFromFormat('d/m/Y', $request->nutritional_support_date)->toDateString() : null, "Hospitalization" => $request->hospitalisation, "Duration" => $request->hospitalisation_duration ); $referrals_serial = serialize($referrals_array); //Appointments $appointment_array = array( "Next Appointment ART date" => isset($request->next_appointment_date) ? Carbon::createFromFormat('d/m/Y', $request->next_appointment_date)->toDateString() : null, "Other Appointment" => $request->other_appointment, "Other Appointment Date" => isset($request->other_appointment_date) ? Carbon::createFromFormat('d/m/Y', $request->other_appointment_date)->toDateString() : null ); $appointment_serial = serialize($appointment_array); $art_continuation_card = new ArtContinuationCard; $art_continuation_card->patient_id = $request->patient_id; $art_continuation_card->episode_id = session()->get('episode_id'); $art_continuation_card->clinician_id = auth()->user()->id; $art_continuation_card->follow_up = $request->follow_up; $art_continuation_card->ART = $art_serial; $art_continuation_card->muac_oedema = $muac_serial; $art_continuation_card->pregnancy = $pregnancy_serial; $art_continuation_card->TB = $tb_serial; $art_continuation_card->side_effects = $side_effects_serial; $art_continuation_card->OI = $new_oi_serial; $art_continuation_card->nutrition = $nutrition_serial; $art_continuation_card->cpt_dapsone = $cpt_dapsone_serial; $art_continuation_card->INH = $inh_serial; $art_continuation_card->other_meds = $other_meds_serial; $art_continuation_card->ARVs = $arvs_serial; $art_continuation_card->Ix = $ix_serial; $art_continuation_card->referrals = $referrals_serial; $art_continuation_card->appointments = $appointment_serial; if ($art_continuation_card->save()) { flash("ART continuation details have been added")->success(); return redirect('patient_episodes'); } return redirect()->back()->withInput(); } }