updated streamline-setup v2

This commit is contained in:
2025-01-15 08:53:49 -08:00
committed by alec.turner
parent a2ce9248f0
commit 4b569f81b0
20228 changed files with 2932048 additions and 63204 deletions
@@ -0,0 +1,324 @@
<?php
namespace Modules\Hiv\Http\Controllers;
use Illuminate\Http\Request;
use Streamline\Models\PatientDocument;
use Streamline\Models\Alert;
use Streamline\Models\Allergy;
use Streamline\Models\Patient;
use Streamline\Models\Triage;
use Streamline\Models\ArtClinicRegistration;
use Streamline\Models\ArtContinuationCard;
use Carbon\Carbon;
use Streamline\Models\HivPatient;
use Illuminate\Support\Facades\DB;
class AntiretralViralTherapyController extends Controller
{
public function __construct() {
$this->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();
}
}
@@ -0,0 +1,13 @@
<?php
namespace Modules\Hiv\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
@@ -0,0 +1,174 @@
<?php
namespace Modules\Hiv\Http\Controllers;
use Illuminate\Http\Request;
use Streamline\Models\Patient;
use Streamline\Models\PatientCategory;
use Streamline\Models\MaritalStatus;
use Streamline\Models\DrugCategory;
use Streamline\Models\HivCounsellingAndTesting;
class HIVController extends Controller
{
/**
* 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()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* 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)
{
//
}
public function menu()
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where('id', $patient_id)->first();
$categories = PatientCategory::pluck("name", "id");
$marital_statuses = MaritalStatus::pluck("name", "id");
$drug_categories = DrugCategory::get();
return view('hiv::hiv.menu',compact('patient_id', 'episode_id', 'patient', 'categories', 'marital_statuses','drug_categories'));
}
public function hiv_counselling_and_testing()
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where('id', $patient_id)->first();
$categories = PatientCategory::pluck("name", "id");
$marital_statuses = MaritalStatus::pluck("name", "id");
$drug_categories = DrugCategory::get();
return view('hiv::hiv.hiv_counselling_and_testing',compact('patient_id', 'episode_id', 'patient', 'categories', 'marital_statuses','drug_categories'));
}
public function store_hct_form(Request $request)
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$hiv_counselling_and_testing = new HivCounsellingAndTesting;
$hiv_counselling_and_testing->patient_id = $patient_id;
$hiv_counselling_and_testing->episode_id = $episode_id;
$hiv_counselling_and_testing->counselling_date = isset($request->counselling_date) ? Carbon::createFromFormat('d/m/Y', $request->counselling_date)->toDateString() : null;
$hiv_counselling_and_testing->is_center_static = $request->is_center_static;
$hiv_counselling_and_testing->registration_number = $request->registration_number;
$hiv_counselling_and_testing->accompanied_by = $request->accompanied_by;
$hiv_counselling_and_testing->counselled_as = $request->counselled_as;
$hiv_counselling_and_testing->approach = $request->approach;
$hiv_counselling_and_testing->hct_entry_point = $request->hct_entry_point;
$hiv_counselling_and_testing->ever_tested_for_hiv_before = $request->ever_tested_for_hiv_before;
$hiv_counselling_and_testing->times_tested_in_last_12_months = $request->times_tested_in_last_12_months;
$hiv_counselling_and_testing->number_of_sexual_partners_in_last_12_months = $request->number_of_sexual_partners_in_last_12_months;
$hiv_counselling_and_testing->partner_tested_before = $request->partner_tested_before;
$hiv_counselling_and_testing->partner_results = $request->partner_results;
$hiv_counselling_and_testing->confirmatory_lab = $request->confirmatory_lab;
$hiv_counselling_and_testing->results_received = $request->results_received;
$hiv_counselling_and_testing->results_received_as_a_couple = $request->results_received_as_a_couple;
$hiv_counselling_and_testing->is_there_suspision_for_tb = $request->is_there_suspision_for_tb;
$hiv_counselling_and_testing->has_client_started_cotrimoxazole_prophylaxis = $request->has_client_started_cotrimoxazole_prophylaxis;
$hiv_counselling_and_testing->has_client_been_linked_to_care = $request->has_client_been_linked_to_care;
$hiv_counselling_and_testing->where_is_the_client_care = $request->where_is_the_client_care;
$hiv_counselling_and_testing->cd4_count_results = $request->cd4_count_results;
$hiv_counselling_and_testing->hiv_recency_test_result = $request->hiv_recency_test_result;
$hiv_counselling_and_testing->counsellor = $request->counsellor;
$hiv_counselling_and_testing->save();
flash("couselling and testing details have been saved")->success();
return redirect('hiv_counselling_and_testing');
}
/*
* appointment follow up form
*/
public function appointment_follow_up()
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where('id', $patient_id)->first();
$categories = PatientCategory::pluck("name", "id");
$marital_statuses = MaritalStatus::pluck("name", "id");
$drug_categories = DrugCategory::get();
return view('hiv::hiv.appointment_follow_up',compact('patient_id', 'episode_id', 'patient', 'categories', 'marital_statuses','drug_categories'));
}
public function health_unit_tb_form()
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where('id', $patient_id)->first();
$categories = PatientCategory::pluck("name", "id");
$marital_statuses = MaritalStatus::pluck("name", "id");
$drug_categories = DrugCategory::get();
return view('hiv::hiv.health_unit_tuberclosis_form',compact('patient_id', 'episode_id', 'patient', 'categories', 'marital_statuses','drug_categories'));
}
}