Files
streamline-emr/docker/statistics/Modules/EyeClinic/Http/Controllers/EyeClinicController.php
T
2025-03-31 03:46:05 +03:00

1082 lines
61 KiB
PHP
Executable File

<?php
namespace Modules\EyeClinic\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Streamline\Models\Clinic;
use Streamline\Models\Diagnosis;
use Streamline\Models\DiagnosisCategory;
use Streamline\Models\EyeClinicAdditionalTests;
use Streamline\Models\EyeClinicBaseExamRefraction;
use Streamline\Models\EyeClinicMainExam;
use Streamline\Models\InpatientInfo;
use Streamline\Models\InvestigationResults;
use Streamline\Models\OrderedEyeGlasses;
use Streamline\Models\OrderedInvestigation;
use Streamline\Models\OrderedProcedure;
use Streamline\Models\OrderedSundry;
use Streamline\Models\PatientAppointment;
use Streamline\Models\PatientDocument;
use Streamline\Models\PatientEpisode;
use Streamline\Models\SlitLampTestArea;
use Streamline\Models\SlitLampTestAreaValue;
use Streamline\Models\Strabismus;
use Streamline\Models\Patient;
use Streamline\Models\Treatment;
use Streamline\Models\Triage;
use Streamline\Models\User;
class EyeClinicController extends Controller {
public function index(){}
public function main_exam_route() {
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$main_exam = EyeClinicMainExam::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->first();
if (is_null($main_exam)){
return self::create_main_exam();
}
switch ($main_exam->completed) {
case '0': // Pending
return self::edit_main_exam($main_exam->id);
case '1': // Completed
return self::show_main_exam($main_exam->id);
default: // Not created yet
return self::create_main_exam();
}
}
public function base_exam_refraction(){
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
// formulate the CVF dropdown
$visual_acuity_distance = array("0" => "--Select--","6/4" => "6/4","6/5" => "6/5","6/6" => "6/6","6/9" => "6/9","6/12" => "6/12","6/18" => "6/18","6/24" => "6/24","6/36" => "6/36","6/60" => "6/60","5/60" => "5/60","4/60" => "4/60","3/60" => "3/60","2/60" => "2/60","1/60" => "1/60","HM" => "HM","PL" => "PL","NPL" => "NPL");
$visual_acuity_near = array("0" => "--Select--","N4" => "N4","N5" => "N5","N6" => "N6","N7" => "N7","N8" => "N8","N9" => "N9","N10" => "N10","N11" => "N11");
$cvf = array("0" => "--Select--","Sector A" => "Sector A","Sector B" => "Sector B","Sector C" => "Sector C","Sector D" => "Sector D","Sector E" => "Sector E","Sector F" => "Sector F","Sector H" => "Sector H","Sector G" => "Sector G");
// check if there is a previous exam
$base_exam = EyeClinicBaseExamRefraction::where(['episode_id' => $episode_id])->first();
if ($base_exam){
return view('eye_clinic::eye_clinic.base_exam_refraction_details', compact('patient', 'base_exam'));
} else {
return view('eye_clinic::eye_clinic.base_exam_refraction', compact('patient', 'cvf', 'visual_acuity_distance', 'visual_acuity_near'));
}
}
public function edit_base_exam_refraction(){
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
// formulate the CVF dropdown
$visual_acuity_distance = array("0" => "--Select--","6/4" => "6/4","6/5" => "6/5","6/6" => "6/6","6/9" => "6/9","6/12" => "6/12","6/18" => "6/18","6/24" => "6/24","6/36" => "6/36","6/60" => "6/60","5/60" => "5/60","4/60" => "4/60","3/60" => "3/60","2/60" => "2/60","1/60" => "1/60","HM" => "HM","PL" => "PL","NPL" => "NPL");
$visual_acuity_near = array("0" => "--Select--","N4" => "N4","N5" => "N5","N6" => "N6","N7" => "N7","N8" => "N8","N9" => "N9","N10" => "N10","N11" => "N11");
$cvf = array("0" => "--Select--","Sector A" => "Sector A","Sector B" => "Sector B","Sector C" => "Sector C","Sector D" => "Sector D","Sector E" => "Sector E","Sector F" => "Sector F","Sector H" => "Sector H","Sector G" => "Sector G");
// check if there is a previous exam
$base_exam = EyeClinicBaseExamRefraction::where(['episode_id' => $episode_id])->first();
return view('eye_clinic::eye_clinic.edit_base_exam_refraction', compact('patient', 'cvf', 'visual_acuity_distance', 'visual_acuity_near', 'base_exam'));
}
public function save_base_exam_refraction(Request $request){
$base_exam = new EyeClinicBaseExamRefraction;
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$base_exam->patient_id = $patient_id;
$base_exam->episode_id = $episode_id;
$base_exam->neuro_oriented = isset($request->neuro_oriented) ? 1 : 0;
$base_exam->neuro_mood = $request->neuro_mood;
$base_exam->pupils_perrl = isset($request->pupils_perrl) ? 1 : 0;
$base_exam->pupils_right_dark = $request->pupils_right_dark;
$base_exam->pupils_right_light = $request->pupils_right_light;
$base_exam->pupils_right_shape = $request->pupils_right_shape;
$base_exam->pupils_right_react = $request->pupils_right_react;
$base_exam->pupils_right_apd = $request->pupils_right_apd;
$base_exam->pupils_left_dark = $request->pupils_left_dark;
$base_exam->pupils_left_light = $request->pupils_left_light;
$base_exam->pupils_left_shape = $request->pupils_left_shape;
$base_exam->pupils_left_react = $request->pupils_left_react;
$base_exam->pupils_left_apd = $request->pupils_left_apd;
$base_exam->visual_acuity_method = $request->visual_acuity_method;
$base_exam->visual_acuity_distance_sc_right = $request->visual_acuity_distance_sc_right;
$base_exam->visual_acuity_distance_sc_right_scale = $request->visual_acuity_distance_sc_right_scale;
$base_exam->visual_acuity_distance_sc_left = $request->visual_acuity_distance_sc_left;
$base_exam->visual_acuity_distance_sc_left_scale = $request->visual_acuity_distance_sc_left_scale;
$base_exam->visual_acuity_distance_cc_right = $request->visual_acuity_distance_cc_right;
$base_exam->visual_acuity_distance_cc_right_scale = $request->visual_acuity_distance_cc_right_scale;
$base_exam->visual_acuity_distance_cc_left = $request->visual_acuity_distance_cc_left;
$base_exam->visual_acuity_distance_cc_left_scale = $request->visual_acuity_distance_cc_left_scale;
$base_exam->visual_acuity_distance_ph_right = $request->visual_acuity_distance_ph_right;
$base_exam->visual_acuity_distance_ph_right_scale = $request->visual_acuity_distance_ph_right_scale;
$base_exam->visual_acuity_distance_ph_left = $request->visual_acuity_distance_ph_left;
$base_exam->visual_acuity_distance_ph_left_scale = $request->visual_acuity_distance_ph_left_scale;
$base_exam->visual_acuity_near_sc_right = $request->visual_acuity_near_sc_right;
$base_exam->visual_acuity_near_sc_right_scale = $request->visual_acuity_near_sc_right_scale;
$base_exam->visual_acuity_near_sc_left = $request->visual_acuity_near_sc_left;
$base_exam->visual_acuity_near_sc_left_scale = $request->visual_acuity_near_sc_left_scale;
$base_exam->visual_acuity_near_cc_right = $request->visual_acuity_near_cc_right;
$base_exam->visual_acuity_near_cc_right_scale = $request->visual_acuity_near_cc_right_scale;
$base_exam->visual_acuity_near_cc_left = $request->visual_acuity_near_cc_left;
$base_exam->visual_acuity_near_cc_left_scale = $request->visual_acuity_near_cc_left_scale;
$base_exam->manifest_retinoscope = 1;
$base_exam->manifest_autorefractor = 1;
//autorefrator
$base_exam->manifest_auto_right_sphere = $request->manifest_auto_right_sphere;
$base_exam->manifest_auto_right_cylinder = $request->manifest_auto_right_cylinder;
$base_exam->manifest_auto_right_axis = $request->manifest_auto_right_axis;
$base_exam->manifest_auto_left_sphere = $request->manifest_auto_left_sphere;
$base_exam->manifest_auto_left_cylinder = $request->manifest_auto_left_cylinder;
$base_exam->manifest_auto_left_axis = $request->manifest_auto_left_axis;
//retinoscope
$base_exam->manifest_ret_right_sphere = $request->manifest_ret_right_sphere;
$base_exam->manifest_ret_right_cylinder = $request->manifest_ret_right_cylinder;
$base_exam->manifest_ret_right_axis = $request->manifest_ret_right_axis;
$base_exam->manifest_ret_left_sphere = $request->manifest_ret_left_sphere;
$base_exam->manifest_ret_left_cylinder = $request->manifest_ret_left_cylinder;
$base_exam->manifest_ret_left_axis = $request->manifest_ret_left_axis;
$base_exam->keratometry_k1_left = $request->keratometry_k1_left;
$base_exam->keratometry_k2_left = $request->keratometry_k2_left;
$base_exam->keratometry_axis_left = $request->keratometry_axis_left;
$base_exam->keratometry_k1_right = $request->keratometry_k1_right;
$base_exam->keratometry_k2_right = $request->keratometry_k2_right;
$base_exam->keratometry_axis_right = $request->keratometry_axis_right;
$base_exam->subjective_left_sphere = $request->subjective_left_sphere;
$base_exam->subjective_right_sphere = $request->subjective_right_sphere;
$base_exam->subjective_left_cylinder = $request->subjective_left_cylinder;
$base_exam->subjective_right_cylinder = $request->subjective_right_cylinder;
$base_exam->subjective_left_axis = $request->subjective_left_axis;
$base_exam->subjective_right_axis = $request->subjective_right_axis;
$base_exam->best_left_vision = $request->best_left_vision;
$base_exam->best_right_vision = $request->best_right_vision;
$base_exam->added_values = $request->added_values;
$base_exam->comment = $request->comment;
$base_exam->pd_right_eye = $request->pd_right_eye;
$base_exam->pd_left_eye = $request->pd_left_eye;
$base_exam->created_by = Auth::id();
if ($base_exam->save()){
flash("Eye clinic base exam refraction details saved successfully")->success();
return redirect("/patient_episodes");
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
public function update_base_exam_refraction($id, Request $request){
$base_exam = EyeClinicBaseExamRefraction::find($id);
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$base_exam->patient_id = $patient_id;
$base_exam->episode_id = $episode_id;
$base_exam->neuro_oriented = isset($request->neuro_oriented) ? 1 : 0;
$base_exam->neuro_mood = $request->neuro_mood;
$base_exam->pupils_perrl = isset($request->pupils_perrl) ? 1 : 0;
$base_exam->pupils_right_dark = $request->pupils_right_dark;
$base_exam->pupils_right_light = $request->pupils_right_light;
$base_exam->pupils_right_shape = $request->pupils_right_shape;
$base_exam->pupils_right_react = $request->pupils_right_react;
$base_exam->pupils_right_apd = $request->pupils_right_apd;
$base_exam->pupils_left_dark = $request->pupils_left_dark;
$base_exam->pupils_left_light = $request->pupils_left_light;
$base_exam->pupils_left_shape = $request->pupils_left_shape;
$base_exam->pupils_left_react = $request->pupils_left_react;
$base_exam->pupils_left_apd = $request->pupils_left_apd;
$base_exam->visual_acuity_method = $request->visual_acuity_method;
$base_exam->visual_acuity_distance_sc_right = $request->visual_acuity_distance_sc_right;
$base_exam->visual_acuity_distance_sc_right_scale = $request->visual_acuity_distance_sc_right_scale;
$base_exam->visual_acuity_distance_sc_left = $request->visual_acuity_distance_sc_left;
$base_exam->visual_acuity_distance_sc_left_scale = $request->visual_acuity_distance_sc_left_scale;
$base_exam->visual_acuity_distance_cc_right = $request->visual_acuity_distance_cc_right;
$base_exam->visual_acuity_distance_cc_right_scale = $request->visual_acuity_distance_cc_right_scale;
$base_exam->visual_acuity_distance_cc_left = $request->visual_acuity_distance_cc_left;
$base_exam->visual_acuity_distance_cc_left_scale = $request->visual_acuity_distance_cc_left_scale;
$base_exam->visual_acuity_distance_ph_right = $request->visual_acuity_distance_ph_right;
$base_exam->visual_acuity_distance_ph_right_scale = $request->visual_acuity_distance_ph_right_scale;
$base_exam->visual_acuity_distance_ph_left = $request->visual_acuity_distance_ph_left;
$base_exam->visual_acuity_distance_ph_left_scale = $request->visual_acuity_distance_ph_left_scale;
$base_exam->visual_acuity_near_sc_right = $request->visual_acuity_near_sc_right;
$base_exam->visual_acuity_near_sc_right_scale = $request->visual_acuity_near_sc_right_scale;
$base_exam->visual_acuity_near_sc_left = $request->visual_acuity_near_sc_left;
$base_exam->visual_acuity_near_sc_left_scale = $request->visual_acuity_near_sc_left_scale;
$base_exam->visual_acuity_near_cc_right = $request->visual_acuity_near_cc_right;
$base_exam->visual_acuity_near_cc_right_scale = $request->visual_acuity_near_cc_right_scale;
$base_exam->visual_acuity_near_cc_left = $request->visual_acuity_near_cc_left;
$base_exam->visual_acuity_near_cc_left_scale = $request->visual_acuity_near_cc_left_scale;
$base_exam->manifest_retinoscope = 1;
$base_exam->manifest_autorefractor = 1;
//autorefrator
$base_exam->manifest_auto_right_sphere = $request->manifest_auto_right_sphere;
$base_exam->manifest_auto_right_cylinder = $request->manifest_auto_right_cylinder;
$base_exam->manifest_auto_right_axis = $request->manifest_auto_right_axis;
$base_exam->manifest_auto_left_sphere = $request->manifest_auto_left_sphere;
$base_exam->manifest_auto_left_cylinder = $request->manifest_auto_left_cylinder;
$base_exam->manifest_auto_left_axis = $request->manifest_auto_left_axis;
//retinoscope
$base_exam->manifest_ret_right_sphere = $request->manifest_ret_right_sphere;
$base_exam->manifest_ret_right_cylinder = $request->manifest_ret_right_cylinder;
$base_exam->manifest_ret_right_axis = $request->manifest_ret_right_axis;
$base_exam->manifest_ret_left_sphere = $request->manifest_ret_left_sphere;
$base_exam->manifest_ret_left_cylinder = $request->manifest_ret_left_cylinder;
$base_exam->manifest_ret_left_axis = $request->manifest_ret_left_axis;
$base_exam->keratometry_k1_left = $request->keratometry_k1_left;
$base_exam->keratometry_k2_left = $request->keratometry_k2_left;
$base_exam->keratometry_axis_left = $request->keratometry_axis_left;
$base_exam->keratometry_k1_right = $request->keratometry_k1_right;
$base_exam->keratometry_k2_right = $request->keratometry_k2_right;
$base_exam->keratometry_axis_right = $request->keratometry_axis_right;
$base_exam->subjective_left_sphere = $request->subjective_left_sphere;
$base_exam->subjective_right_sphere = $request->subjective_right_sphere;
$base_exam->subjective_left_cylinder = $request->subjective_left_cylinder;
$base_exam->subjective_right_cylinder = $request->subjective_right_cylinder;
$base_exam->subjective_left_axis = $request->subjective_left_axis;
$base_exam->subjective_right_axis = $request->subjective_right_axis;
$base_exam->best_left_vision = $request->best_left_vision;
$base_exam->best_right_vision = $request->best_right_vision;
$base_exam->added_values = $request->added_values;
$base_exam->comment = $request->comment;
$base_exam->pd_right_eye = $request->pd_right_eye;
$base_exam->pd_left_eye = $request->pd_left_eye;
$base_exam->created_by = Auth::id();
if ($base_exam->save()){
flash("Eye clinic base exam refraction details Updated successfully")->info();
return redirect("/patient_episodes");
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
public function create_main_exam(){
$clinics = Clinic::orderBy('name')->pluck("name", "id")->toArray();
$clinics = array_prepend($clinics, "Don't assign clinic", '0');
$users = User::orderBy('first_name')->select("id", "first_name", "last_name")->get();
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
$diagnoses = Diagnosis::orderBy('name')->pluck("name", "id")->prepend('- select -', '');
$diagnosis_categories = DiagnosisCategory::all();
$documents = PatientDocument::where('patient_id', $patient_id)->where('episode_id', $episode_id)->orderBy('created_at', 'desc')->get();
$outcomes = DB::table('outcomes')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$wards = DB::table('wards')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$referrals = DB::table('referral_hospitals')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$slit_lamp_test_areas = SlitLampTestArea::get();
$slit_lamp_test_area_values = SlitLampTestAreaValue::get();
$treatment = Treatment::where(['patient_id'=>$patient_id,'episode_id'=>$episode_id,'tta'=>0])->first();
/* get ordered procedures */
$ordered_procedures = OrderedProcedure::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for ordered investigations,procedures and treatment
$ordered_investigations = OrderedInvestigation::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for investigation results
$investigation_results = InvestigationResults::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
/* get ordered sundries */
$ordered_sundries = OrderedSundry::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for authenticated investigations
$ordered_eye_glasses = OrderedEyeGlasses::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
// check if there is a previous exam
$main_exam = EyeClinicMainExam::where(['episode_id' => $episode_id])->first();
$base_exam = EyeClinicBaseExamRefraction::where(['episode_id' => $episode_id])->first();
$users_collection = DB::table('users')->orderBy("first_name","asc")->select("id")->get()->toArray();
$users_array = [];
foreach ($users_collection as $value){
$user = User::find($value->id);
if (!is_null($user)) {
$users_array[$value->id] = get_full_name($value->id, 'id', 'first_name', 'last_name', 'users');
}
}
$users_array = ['' => '- select -'] + $users_array;
return view('eye_clinic::eye_clinic.main_exam', compact('patient', 'base_exam', 'diagnoses', 'outcomes', 'wards', 'referrals','users_array',
'ordered_investigations', 'ordered_sundries', 'ordered_procedures', 'ordered_eye_glasses', 'treatment', 'slit_lamp_test_areas', 'slit_lamp_test_area_values',
'investigation_results', 'diagnosis_categories', 'patient_id', 'documents', 'clinics', 'users'));
}
public function show_main_exam($id){
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
$slit_lamp_test_areas = SlitLampTestArea::get();
$slit_lamp_test_area_values = SlitLampTestAreaValue::get();
$documents = PatientDocument::where('patient_id', $patient_id)->where('episode_id', $episode_id)->orderBy('created_at', 'desc')->get();
$diagnoses = Diagnosis::orderBy('name')->pluck("name", "id")->prepend('- select -', '');
$diagnosis_categories = DiagnosisCategory::orderBy('name', 'asc')->pluck("name", "id")->prepend('- select -', '')->prepend('N/A', 'N/A');
$outcomes = DB::table('outcomes')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$wards = DB::table('wards')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$referrals = DB::table('referral_hospitals')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$treatment = Treatment::where(['patient_id'=>$patient_id,'episode_id'=>$episode_id,'tta'=>0])->first();
/* get ordered procedures */
$ordered_procedures = OrderedProcedure::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for ordered investigations,procedures and treatment
$ordered_investigations = OrderedInvestigation::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for investigation results
$investigation_results = InvestigationResults::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
/* get ordered sundries */
$ordered_sundries = OrderedSundry::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for authenticated investigations
$ordered_eye_glasses = OrderedEyeGlasses::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
$clinics = Clinic::orderBy('name')->pluck("name", "id")->toArray();
$users = DB::table('users')->orderBy('name')->pluck(DB::raw("CONCAT(first_name,' ',last_name) AS name"), 'id');
$appointment = PatientAppointment::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->first();
// check if there is a previous exam
$main_exam = EyeClinicMainExam::where(['episode_id' => $episode_id])->first();
return view('eye_clinic::eye_clinic.main_exam_details', compact('patient', 'main_exam', 'diagnoses', 'outcomes', 'wards', 'referrals',
'ordered_investigations', 'ordered_sundries', 'ordered_procedures', 'ordered_eye_glasses', 'treatment', 'slit_lamp_test_areas', 'slit_lamp_test_area_values',
'investigation_results', 'diagnosis_categories', 'patient_id', 'documents', 'clinics', 'users', 'appointment'));
}
public function edit_main_exam($id){
$clinics = Clinic::orderBy('name')->pluck("name", "id")->toArray();
$clinics = array_prepend($clinics, "Don't assign clinic", '0');
$users = User::orderBy('first_name')->select("id", "first_name", "last_name")->get();
$base_exam = $main_exam = [];
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
$diagnoses = Diagnosis::orderBy('name', 'asc')->where('available', 1)->whereNotNull('diagnosis_category')->get(["name", "id", "diagnosis_category"])->toArray();
$diagnosis_categories = DiagnosisCategory::all();
$documents = PatientDocument::where('patient_id', $patient_id)->where('episode_id', $episode_id)->orderBy('created_at', 'desc')->get();
$outcomes = DB::table('outcomes')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$wards = DB::table('wards')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$referrals = DB::table('referral_hospitals')->whereNull('deleted_at')->orderBy('name')->pluck('name', 'id')->prepend('- select -', '');
$treatment = Treatment::where(['patient_id'=>$patient_id,'episode_id'=>$episode_id,'tta'=>0])->first();
/* get ordered procedures */
$ordered_procedures = OrderedProcedure::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for ordered investigations,procedures and treatment
$ordered_investigations = OrderedInvestigation::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for investigation results
$investigation_results = InvestigationResults::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
/* get ordered sundries */
$ordered_sundries = OrderedSundry::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
//check for authenticated investigations
$ordered_eye_glasses = OrderedEyeGlasses::where(['patient_id' => $patient_id,'episode_id' => $episode_id])->get();
$slit_lamp_test_areas = SlitLampTestArea::get();
$slit_lamp_test_area_values = SlitLampTestAreaValue::get();
$users_collection = DB::table('users')->orderBy("first_name","asc")->select("id")->get()->toArray();
$users_array = [];
foreach ($users_collection as $value){
$user = User::find($value->id);
if (!is_null($user)) {
$users_array[$value->id] = get_full_name($value->id, 'id', 'first_name', 'last_name', 'users');
}
}
$users_array = ['' => '- select -'] + $users_array;
// check if there is a previous exam
$main_exam = EyeClinicMainExam::where(['episode_id' => $episode_id])->first();
return view('eye_clinic::eye_clinic.edit_main_exam', compact('patient', 'base_exam', 'diagnoses', 'outcomes', 'wards', 'referrals', 'users_array',
'ordered_investigations', 'ordered_sundries', 'ordered_procedures', 'ordered_eye_glasses', 'treatment', 'main_exam', 'slit_lamp_test_areas',
'slit_lamp_test_area_values', 'investigation_results', 'diagnosis_categories', 'patient_id', 'documents', 'clinics', 'users'));
}
public function save_main_exam(Request $request){
$test = new EyeClinicMainExam();
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
// performing an ordered procedure.
if(!is_null($request->perform)){
for($i = 0; $i < count($request->perform); $i++){
OrderedProcedure::where('procedure_id', $request->perform[$i])->update([
'performed' => '1'
]);
}
}
// performing an ordered procedure.
if (!is_null($request->perform_selected)) {
foreach ($request->perform_selected as $procedure_array_id) {
$arr = explode(",", get_name($request->procedure_order_perform[$procedure_array_id], 'id', 'performed', 'ordered_procedures'));
$arr_id = explode(",", get_name($request->procedure_order_perform[$procedure_array_id], 'id', 'performed_id', 'ordered_procedures'));
$performed_id = record_staff_that_has_performed_the_service($patient_id, $episode_id, 1, $request->perform[$procedure_array_id],
0, $request->procedure_performed_by[$procedure_array_id]);
if (isset($arr[$request->procedure_performed_position[$procedure_array_id]])) {
$arr[$request->procedure_performed_position[$procedure_array_id]] = 1;
$arr_id[$request->procedure_performed_position[$procedure_array_id]] = $performed_id;
$update = DB::table('ordered_procedures')->where('id', $request->procedure_order_perform[$procedure_array_id])
->update(['performed' => implode(",", $arr), 'performed_id' => implode(",", $arr_id)]);
}
}
}
$test->patient_id = $patient_id;
$test->episode_id = $episode_id;
$test->external_right = $request->external_right;
$test->external_left = $request->external_left;
$test->slit_ll_right = isset($request->slit_ll_right) ? implode(",",$request->slit_ll_right): "";
$test->slit_ll_left = isset($request->slit_ll_left) ? implode(",",$request->slit_ll_left): "";
$test->slit_cs_right = isset($request->slit_cs_right) ? implode(",",$request->slit_cs_right): "";
$test->slit_cs_left = isset($request->slit_cs_left) ? implode(",",$request->slit_cs_left): "";
$test->slit_cornea_right = isset($request->slit_cornea_right) ? implode(",",$request->slit_cornea_right): "";
$test->slit_cornea_left = isset($request->slit_cornea_left) ? implode(",",$request->slit_cornea_left): "";
$test->slit_ac_right = isset($request->slit_ac_right) ? implode(",",$request->slit_ac_right): "";
$test->slit_ac_left = isset($request->slit_ac_left) ? implode(",",$request->slit_ac_left): "";
$test->slit_iris_right = isset($request->slit_iris_right) ? implode(",",$request->slit_iris_right): "";
$test->slit_iris_left = isset($request->slit_iris_left) ? implode(",",$request->slit_iris_left): "";
$test->slit_lens_right = isset($request->slit_lens_right) ? implode(",",$request->slit_lens_right): "";
$test->slit_lens_left = isset($request->slit_lens_left) ? implode(",",$request->slit_lens_left): "";
$test->slit_vit_right = isset($request->slit_vit_right) ? implode(",",$request->slit_vit_right): "";
$test->slit_vit_left = isset($request->slit_vit_left) ? implode(",",$request->slit_vit_left): "";
$test->slit_retina_right = isset($request->slit_retina_right) ? implode(",",$request->slit_retina_right): "";
$test->slit_retina_left = isset($request->slit_retina_left) ? implode(",",$request->slit_retina_left): "";
$test->slit_optic_disc_right = isset($request->slit_optic_disc_right) ? implode(",",$request->slit_optic_disc_right): "";
$test->slit_optic_disc_left = isset($request->slit_optic_disc_left) ? implode(",",$request->slit_optic_disc_left): "";
$test->slit_ll_other_right = $request->slit_ll_other_right ?? "";
$test->slit_ll_other_left = $request->slit_ll_other_left ?? "";
$test->slit_cs_other_right = $request->slit_cs_other_right ?? "";
$test->slit_cs_other_left = $request->slit_cs_other_left ?? "";
$test->slit_cornea_other_right = $request->slit_cornea_other_right ?? "";
$test->slit_cornea_other_left = $request->slit_cornea_other_left ?? "";
$test->slit_ac_other_right = $request->slit_ac_other_right ?? "";
$test->slit_ac_other_left = $request->slit_ac_other_left ?? "";
$test->slit_iris_other_right = $request->slit_iris_other_right ?? "";
$test->slit_iris_other_left = $request->slit_iris_other_left ?? "";
$test->slit_lens_other_right = $request->slit_lens_other_right ?? "";
$test->slit_lens_other_left = $request->slit_lens_other_left ?? "";
$test->slit_vit_other_right = $request->slit_vit_other_right ?? "";
$test->slit_vit_other_left = $request->slit_vit_other_left ?? "";
$test->slit_retina_other_right = $request->slit_retina_other_right ?? "";
$test->slit_retina_other_left = $request->slit_retina_other_left ?? "";
$test->slit_optic_disc_other_right = $request->slit_optic_disc_other_right ?? "";
$test->slit_optic_disc_other_left = $request->slit_optic_disc_other_left ?? "";
$test->cdr_left = $request->cdr_left;
$test->cdr_right = $request->cdr_right;
$test->iop_left = $request->iop_left;
$test->iop_right = $request->iop_right;
$test->advice = $request->advice;
$test->outcome_id = $request->outcome;
$test->completed = 0;
$test->left_eye_diagnosis = implode(',',$request->left_eye_diagnosis);
$test->right_eye_diagnosis = implode(',',$request->right_eye_diagnosis);
$test->review_date = $request->review_date;
$test->doctors_notes = $request->doctors_notes;
$test->history_comments = $request->history_comments;
$test->time = $request->time;
$test->created_by = Auth::id();
$episode = PatientEpisode::find($episode_id);
// Handle the buttons on the test page
switch ($request->get('submit-btn')):
case 'eye_glasses':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/eye_glasses/order';
break;
case 'treatment':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/prescriptions/create/';
break;
case 'procedures':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/order_procedures/';
break;
case 'sundries':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/order_sundries/';
break;
case 'investigations':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/investigations/investigations_review';
break;
case 'patient_documents':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/patient_documents/create';
break;
case 'complete':
$test->completed = 1;
$url = '/patient_flow_monitoring/index';
break;
case 'save_main_exam':
$test->completed = 0;
$url = '/patient_flow_monitoring/index';
break;
default:
break;
endswitch;
$test->save();
$episode->consultation_id = $test->id;
$episode->save();
switch ($request->outcome):
case 1: //Admitted
$inpatient = new InpatientInfo;
$inpatient->patient_id = $patient_id;
$inpatient->episode_id = $episode_id;
$inpatient->admitted_on = Carbon::parse($request->admitted_on)->format('Y-m-d');
$inpatient->ward_id = $request->ward_id;
$inpatient->left_eye_diagnosis = implode(",",$request->left_eye_diagnosis);
$inpatient->right_eye_diagnosis = implode(",",$request->right_eye_diagnosis);
$inpatient->comments = $request->comments;
$inpatient->created_by = Auth::id();
$inpatient->save();
$test->ward_id = $request->ward_id;
$test->admitted_on = Carbon::parse($request->admitted_on)->format('Y-m-d');
break;
case 3: // Home with followup
$test->followup_where = 'Hospital';
$test->followup_when = Carbon::parse($request->followup_when)->format('Y-m-d');
// save information to the follow-up table
$appointment = new PatientAppointment();
$appointment->patient_id = $patient_id;
$appointment->incharge_id = $request->followup_in_charge;
$appointment->clinic_allocation = 1;
$appointment->episode_id = $episode_id;
$appointment->appointment_date = Carbon::parse($request->followup_when)->format('Y-m-d');
$appointment->appointment_time = $request->followup_in_time;
$appointment->created_from = "Eye Clinic Main Exam";
$appointment->created_by = Auth::id();
$appointment->updated_by = Auth::id();
$appointment->save();
break;
case 4: // Referred
$test->referred_to = $request->referral_id;
$test->referral_notes = $request->referral_notes;
break;
default:
break;
endswitch;
if ($test->save()){
flash("Eye clinic main exam saved successfully")->success();
return redirect($url);
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
public function update_main_exam(Request $request, $id){
$test = EyeClinicMainExam::find($id);
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
if(!is_null($request->perform)){
for($i = 0; $i < count($request->perform); $i++){
OrderedProcedure::where('procedure_id', $request->perform[$i])->update([
'performed' => '1'
]);
}
}
// performing an ordered procedure.
if (!is_null($request->perform_selected)) {
foreach ($request->perform_selected as $procedure_array_id) {
$arr = explode(",", get_name($request->procedure_order_perform[$procedure_array_id], 'id', 'performed', 'ordered_procedures'));
$arr_id = explode(",", get_name($request->procedure_order_perform[$procedure_array_id], 'id', 'performed_id', 'ordered_procedures'));
$performed_id = record_staff_that_has_performed_the_service($patient_id, $episode_id, 1, $request->perform[$procedure_array_id],
0, $request->procedure_performed_by[$procedure_array_id]);
if (isset($arr[$request->procedure_performed_position[$procedure_array_id]])) {
$arr[$request->procedure_performed_position[$procedure_array_id]] = 1;
$arr_id[$request->procedure_performed_position[$procedure_array_id]] = $performed_id;
$update = DB::table('ordered_procedures')->where('id', $request->procedure_order_perform[$procedure_array_id])
->update(['performed' => implode(",", $arr), 'performed_id' => implode(",", $arr_id)]);
}
}
}
$test->patient_id = $patient_id;
$test->episode_id = $episode_id;
$test->external_right = $request->external_right;
$test->external_left = $request->external_left;
$test->slit_ll_right = isset($request->slit_ll_right) ? implode(",",$request->slit_ll_right): "";
$test->slit_ll_left = isset($request->slit_ll_left) ? implode(",",$request->slit_ll_left): "";
$test->slit_cs_right = isset($request->slit_cs_right) ? implode(",",$request->slit_cs_right): "";
$test->slit_cs_left = isset($request->slit_cs_left) ? implode(",",$request->slit_cs_left): "";
$test->slit_cornea_right = isset($request->slit_cornea_right) ? implode(",",$request->slit_cornea_right): "";
$test->slit_cornea_left = isset($request->slit_cornea_left) ? implode(",",$request->slit_cornea_left): "";
$test->slit_ac_right = isset($request->slit_ac_right) ? implode(",",$request->slit_ac_right): "";
$test->slit_ac_left = isset($request->slit_ac_left) ? implode(",",$request->slit_ac_left): "";
$test->slit_iris_right = isset($request->slit_iris_right) ? implode(",",$request->slit_iris_right): "";
$test->slit_iris_left = isset($request->slit_iris_left) ? implode(",",$request->slit_iris_left): "";
$test->slit_lens_right = isset($request->slit_lens_right) ? implode(",",$request->slit_lens_right): "";
$test->slit_lens_left = isset($request->slit_lens_left) ? implode(",",$request->slit_lens_left): "";
$test->slit_vit_right = isset($request->slit_vit_right) ? implode(",",$request->slit_vit_right): "";
$test->slit_vit_left = isset($request->slit_vit_left) ? implode(",",$request->slit_vit_left): "";
$test->slit_retina_right = isset($request->slit_retina_right) ? implode(",",$request->slit_retina_right): "";
$test->slit_retina_left = isset($request->slit_retina_left) ? implode(",",$request->slit_retina_left): "";
$test->slit_optic_disc_right = isset($request->slit_optic_disc_right) ? implode(",",$request->slit_optic_disc_right): "";
$test->slit_optic_disc_left = isset($request->slit_optic_disc_left) ? implode(",",$request->slit_optic_disc_left): "";
$test->slit_ll_other_right = $request->slit_ll_other_right ?? "";
$test->slit_ll_other_left = $request->slit_ll_other_left ?? "";
$test->slit_cs_other_right = $request->slit_cs_other_right ?? "";
$test->slit_cs_other_left = $request->slit_cs_other_left ?? "";
$test->slit_cornea_other_right = $request->slit_cornea_other_right ?? "";
$test->slit_cornea_other_left = $request->slit_cornea_other_left ?? "";
$test->slit_ac_other_right = $request->slit_ac_other_right ?? "";
$test->slit_ac_other_left = $request->slit_ac_other_left ?? "";
$test->slit_iris_other_right = $request->slit_iris_other_right ?? "";
$test->slit_iris_other_left = $request->slit_iris_other_left ?? "";
$test->slit_lens_other_right = $request->slit_lens_other_right ?? "";
$test->slit_lens_other_left = $request->slit_lens_other_left ?? "";
$test->slit_vit_other_right = $request->slit_vit_other_right ?? "";
$test->slit_vit_other_left = $request->slit_vit_other_left ?? "";
$test->slit_retina_other_right = $request->slit_retina_other_right ?? "";
$test->slit_retina_other_left = $request->slit_retina_other_left ?? "";
$test->slit_optic_disc_other_right = $request->slit_optic_disc_other_right ?? "";
$test->slit_optic_disc_other_left = $request->slit_optic_disc_other_left ?? "";
$test->cdr_left = $request->cdr_left;
$test->cdr_right = $request->cdr_right;
$test->iop_left = $request->iop_left;
$test->iop_right = $request->iop_right;
$test->advice = $request->advice;
$test->outcome_id = $request->outcome;
$test->review_date = $request->review_date;
$test->doctors_notes = $request->doctors_notes;
$test->history_comments = $request->history_comments;
$test->time = $request->time;
if(!empty($request->left_eye_diagnosis)){ $test->left_eye_diagnosis = implode(",",$request->left_eye_diagnosis); }
if(!empty($request->right_eye_diagnosis)){ $test->right_eye_diagnosis = implode(",",$request->right_eye_diagnosis); }
$test->created_by = Auth::id();
switch ($request->outcome):
case 1: //Admitted
$inpatient = new InpatientInfo;
$inpatient->patient_id = $patient_id;
$inpatient->episode_id = $episode_id;
$inpatient->admitted_on = Carbon::parse($request->admitted_on)->format('Y-m-d');
$inpatient->ward_id = $request->ward_id;
$inpatient->left_eye_diagnosis = implode(",",$request->left_eye_diagnosis);
$inpatient->right_eye_diagnosis = implode(",",$request->right_eye_diagnosis);
$inpatient->comments = $request->comments;
$inpatient->created_by = Auth::id();
$inpatient->save();
$test->ward_id = $request->ward_id;
$test->admitted_on = Carbon::parse($request->admitted_on)->format('Y-m-d');
break;
case 3: // Home with followup
$test->followup_where = $request->followup_where;
$test->followup_when = Carbon::parse($request->followup_when)->format('Y-m-d');
// check if there is an appointment for this episode
$previous_appointment = PatientAppointment::where(['episode_id' => $episode_id])->first();
if ($previous_appointment) {
$appointment = $previous_appointment;
} else {
$appointment = new PatientAppointment();
$appointment->patient_id = $patient_id;
$appointment->created_by = Auth::id();
$appointment->episode_id = $episode_id;
}
$appointment->incharge_id = $request->followup_in_charge;
$appointment->clinic_allocation = $request->followup_clinic_allocation;
$appointment->appointment_date = Carbon::parse($request->followup_when)->format('Y-m-d');
$appointment->appointment_time = $request->followup_in_time;
$appointment->created_from = "Consultation";
$appointment->updated_by = Auth::id();
$appointment->save();
break;
case 4: // Referred
$test->referred_to = $request->referral_id;
$test->referral_notes = $request->referral_notes;
break;
default:
break;
endswitch;
$episode = PatientEpisode::find($episode_id);
// Handle the buttons on the test page
switch ($request->get('submit-btn')):
case 'eye_glasses':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/eye_glasses/order';
break;
case 'treatment':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/prescriptions/create/';
break;
case 'procedures':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/order_procedures/';
break;
case 'sundries':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/order_sundries/';
break;
case 'investigations':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/investigations/investigations_review';
break;
case 'patient_documents':
session()->put('redirect_to_consultation', '/eye_clinic/main_exam_route');
$url = '/patient_documents/create';
break;
case 'complete':
$test->completed = 1;
$url = '/patient_flow_monitoring/index';
break;
case 'save_main_exam':
$test->completed = 0;
$url = '/patient_flow_monitoring/index';
break;
default:
break;
endswitch;
$test->save();
$episode->consultation_id = $test->id;
if ($episode->save()){
flash("Eye clinic main exam Updated successfully")->success();
return redirect($url);
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
public function additional_tests(){
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
// check if there is a previous test
$test = EyeClinicAdditionalTests::where(['episode_id' => $episode_id])->first();
if ($test){
return view('eye_clinic::eye_clinic.additional_tests_details', compact('patient', 'test'));
} else {
return view('eye_clinic::eye_clinic.additional_tests', compact('patient'));
}
}
public function save_additional_tests(Request $request){
$test = new EyeClinicAdditionalTests();
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$test->patient_id = $patient_id;
$test->episode_id = $episode_id;
$test->pachymetry_right = $request->pachymetry_right;
$test->pachymetry_left = $request->pachymetry_left;
$test->pachymetry_date = $request->pachymetry_date;
$test->schirmers_right = $request->schirmers_right;
$test->schirmers_left = $request->schirmers_left;
$test->anesthesia = isset($request->anesthesia) ? 1 : 0;
$test->keratometry_right_1 = $request->keratometry_right_1;
$test->keratometry_right_2 = $request->keratometry_right_2;
$test->keratometry_right_3 = $request->keratometry_right_3;
$test->keratometry_left_1 = $request->keratometry_left_1;
$test->keratometry_left_2 = $request->keratometry_left_2;
$test->keratometry_left_3 = $request->keratometry_left_3;
$test->keratometry_method = $request->keratometry_method;
$test->glare_testing_method = $request->glare_testing_method;
$test->glare_testing_right_off = $request->glare_testing_right_off;
$test->glare_testing_right_low = $request->glare_testing_right_low;
$test->glare_testing_right_med = $request->glare_testing_right_med;
$test->glare_testing_right_high = $request->glare_testing_right_high;
$test->glare_testing_left_off = $request->glare_testing_left_off;
$test->glare_testing_left_low = $request->glare_testing_left_low;
$test->glare_testing_left_med = $request->glare_testing_left_med;
$test->glare_testing_left_high = $request->glare_testing_left_high;
$test->gonioscopy_right_one = $request->gonioscopy_right_one;
$test->gonioscopy_left_one = $request->gonioscopy_left_one;
$test->gonioscopy_right_two = $request->gonioscopy_right_two;
$test->gonioscopy_right_three = $request->gonioscopy_right_three;
$test->gonioscopy_left_two = $request->gonioscopy_left_two;
$test->gonioscopy_left_three = $request->gonioscopy_left_three;
$test->gonioscopy_right_four = $request->gonioscopy_right_four;
$test->gonioscopy_left_four = $request->gonioscopy_left_four;
$test->worth_distance = $request->worth_distance;
$test->worth_near = $request->worth_near;
$test->amsler_right = $request->amsler_right;
$test->amsler_left = $request->amsler_left;
$test->pam_right = $request->pam_right;
$test->pam_left = $request->pam_left;
$test->test_osmo_right = $request->test_osmo_right;
$test->test_osmo_left = $request->test_osmo_left;
$test->stereo_unable = isset($request->stereo_unable) ? 1 : 0;
$test->stereo_animals = $request->stereo_animals;
$test->stereo_circles = $request->stereo_circles;
$test->stereo_lang = $request->stereo_lang;
$test->dye_disap_right = $request->dye_disap_right;
$test->dye_disap_left = $request->dye_disap_left;
$test->created_by = Auth::id();
if ($test->save()){
flash("Eye clinic additional tests saved successfully")->success();
return redirect("/patient_episodes");
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
/*
* Create Strabismus resource
*/
public function strabismus()
{
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$patient = Patient::where(['id' => $patient_id])->first();
$strabismus = Strabismus::where(['episode_id' => $episode_id])->first();
if ($strabismus){
return view('eye_clinic::eye_clinic.strabismus_details', compact('patient', 'strabismus'));
} else {
return view('eye_clinic::eye_clinic.strabismus_create', compact('patient'));
}
}
/*
* Store strabismus form details
*/
public function store_strabismus(Request $request)
{
$strabismus = new Strabismus;
$patient_id = session()->get('patient_id');
$episode_id = session()->get('episode_id');
$strabismus->patient_id = $patient_id;
$strabismus->episode_id = $episode_id;
$strabismus->method = $request->_method;
$strabismus->ortho = $request->ortho;
$strabismus->correction_sc = $request->correction_sc;
$strabismus->correction_cc = $request->correction_cc;
$strabismus->fixing_eye_right = $request->fixing_eye_right;
$strabismus->fixing_eye_left = $request->fixing_eye_left;
$strabismus->distance_top_big = $request->distance_top_big;
$strabismus->distance_top_small = $request->distance_top_small;
$strabismus->near_top_big = $request->near_top_big;
$strabismus->near_top_small = $request->near_top_small;
$strabismus->near_top_3ds_big = $request->near_top_3ds_big;
$strabismus->near_top_3ds_small = $request->near_top_3ds_small;
$strabismus->near_top_bifocals_big = $request->near_top_bifocals_big;
$strabismus->near_top_bifocals_small = $request->near_top_bifocals_small;
$strabismus->distance_bottom_big = $request->distance_bottom_big;
$strabismus->distance_bottom_small = $request->distance_bottom_small;
$strabismus->near_bottom_big = $request->near_bottom_big;
$strabismus->near_bottom_small = $request->near_bottom_small;
$strabismus->near_bottom_3ds_big = $request->near_bottom_3ds_big;
$strabismus->near_bottom_3ds_small = $request->near_bottom_3ds_small;
$strabismus->near_bottom_bifocals_big = $request->near_bottom_bifocals_big;
$strabismus->near_bottom_bifocals_small = $request->near_bottom_bifocals_small;
$strabismus->convergence_distance_right = $request->convergence_distance_right;
$strabismus->convergence_distance_left = $request->convergence_distance_left;
$strabismus->convergence_near_right = $request->convergence_near_right;
$strabismus->convergence_near_left = $request->convergence_near_left;
$strabismus->divergence_distance_right = $request->divergence_distance_right;
$strabismus->divergence_distance_left = $request->divergence_distance_left;
$strabismus->divergence_near_right = $request->divergence_near_right;
$strabismus->divergence_near_left = $request->divergence_near_left;
$strabismus->near_point_of_convergence = $request->near_point_of_convergence;
$strabismus->npa_right = $request->npa_right;
$strabismus->aa_right = $request->aa_right;
$strabismus->npa_left = $request->npa_left;
$strabismus->aa_left = $request->aa_left;
$strabismus->npa_both = $request->npa_both;
$strabismus->aa_both = $request->aa_both;
$strabismus->left_eye_drawing_big1 = $request->left_eye_drawing_big1;
$strabismus->left_eye_drawing_small1 = $request->left_eye_drawing_small1;
$strabismus->left_near_eye_box1 = $request->left_near_eye_box1;
$strabismus->left_eye_drawing_big2 = $request->left_eye_drawing_big2;
$strabismus->left_eye_drawing_small2 = $request->left_eye_drawing_small2;
$strabismus->left_eye_drawing_big3 = $request->left_eye_drawing_big3;
$strabismus->left_eye_drawing_small3 = $request->left_eye_drawing_small3;
$strabismus->left_near_eye_box2 = $request->left_near_eye_box2;
$strabismus->left_eye_drawing_big4 = $request->left_eye_drawing_big4;
$strabismus->left_eye_drawing_small4 = $request->left_eye_drawing_small4;
$strabismus->left_eye_drawing_big5 = $request->left_eye_drawing_big5;
$strabismus->left_eye_drawing_small5 = $request->left_eye_drawing_small5;
$strabismus->left_near_eye_box3 = $request->left_near_eye_box3;
$strabismus->left_eye_drawing_big6 = $request->left_eye_drawing_big6;
$strabismus->left_eye_drawing_small6 = $request->left_eye_drawing_small6;
$strabismus->right_eye_left_single_box1 = $request->right_eye_left_single_box1;
$strabismus->eyes_drawing_seperator_big1 = $request->eyes_drawing_seperator_big1;
$strabismus->eyes_drawing_seperator_small1 = $request->eyes_drawing_seperator_small1;
$strabismus->eyes_drawing_seperator_big2 = $request->eyes_drawing_seperator_big2;
$strabismus->eyes_drawing_seperator_small2 = $request->eyes_drawing_seperator_small2;
$strabismus->right_eye_left_single_box2 = $request->right_eye_left_single_box2;
$strabismus->eyes_drawing_seperator_big3 = $request->eyes_drawing_seperator_big3;
$strabismus->eyes_drawing_seperator_small3 = $request->eyes_drawing_seperator_small3;
$strabismus->eyes_drawing_seperator_big4 = $request->eyes_drawing_seperator_big4;
$strabismus->eyes_drawing_seperator_small4 = $request->eyes_drawing_seperator_small4;
$strabismus->right_eye_left_single_box3 = $request->right_eye_left_single_box3;
$strabismus->eyes_drawing_seperator_big5 = $request->eyes_drawing_seperator_big5;
$strabismus->eyes_drawing_seperator_small5 = $request->eyes_drawing_seperator_small5;
$strabismus->eyes_drawing_seperator_big6 = $request->eyes_drawing_seperator_big6;
$strabismus->eyes_drawing_seperator_small6 = $request->eyes_drawing_seperator_small6;
$strabismus->left_eye_right_single_box1 = $request->left_eye_right_single_box1;
$strabismus->left_eye_right_single_box2 = $request->left_eye_right_single_box2;
$strabismus->left_eye_right_single_box3 = $request->left_eye_right_single_box3;
$strabismus->left_eye_left_single_box1 = $request->left_eye_left_single_box1;
$strabismus->right_eye_drawing_big1 = $request->right_eye_drawing_big1;
$strabismus->right_eye_drawing_small1 = $request->right_eye_drawing_small1;
$strabismus->right_eye_drawing_big2 = $request->right_eye_drawing_big2;
$strabismus->right_eye_drawing_small2 = $request->right_eye_drawing_small2;
$strabismus->left_eye_left_single_box2 = $request->left_eye_left_single_box2;
$strabismus->right_eye_drawing_big3 = $request->right_eye_drawing_big3;
$strabismus->right_eye_drawing_small3 = $request->right_eye_drawing_small3;
$strabismus->right_eye_drawing_big4 = $request->right_eye_drawing_big4;
$strabismus->right_eye_drawing_small4 = $request->right_eye_drawing_small4;
$strabismus->left_eye_left_single_box3 = $request->left_eye_left_single_box3;
$strabismus->right_eye_drawing_big5 = $request->right_eye_drawing_big5;
$strabismus->right_eye_drawing_small5 = $request->right_eye_drawing_small5;
$strabismus->right_eye_drawing_big6 = $request->right_eye_drawing_big6;
$strabismus->right_eye_drawing_small6 = $request->right_eye_drawing_small6;
$strabismus->right_head_tilt_top_big = $request->right_head_tilt_top_big;
$strabismus->right_head_tilt_top_small = $request->right_head_tilt_top_small;
$strabismus->right_head_tilt_bottom_big = $request->right_head_tilt_bottom_big;
$strabismus->right_head_tilt_bottom_small = $request->right_head_tilt_bottom_small;
$strabismus->left_head_tilt_top_big = $request->left_head_tilt_top_big;
$strabismus->left_head_tilt_top_small = $request->left_head_tilt_top_small;
$strabismus->left_head_tilt_bottom_big = $request->left_head_tilt_bottom_big;
$strabismus->left_head_tilt_bottom_small = $request->left_head_tilt_bottom_small;
$strabismus->nystagmus = $request->nystagmus;
$strabismus->abnormal_head_position = $request->abnormal_head_position;
$strabismus->next_to_nystagmus = $request->next_to_nystagmus;
$strabismus->next_to_abnormal_head_position = $request->next_to_abnormal_head_position;
$strabismus->fly_positive = $request->fly_positive;
$strabismus->fly_negative = $request->fly_negative;
$strabismus->unable = $request->unable;
$strabismus->animals = $request->animals;
$strabismus->circles = $request->circles;
$strabismus->lang = $request->lang;
$strabismus->bruckner = $request->bruckner;
$strabismus->induced_tropia = $request->induced_tropia;
$strabismus->angle_toppa = $request->angle_toppa;
$strabismus->bagolini_lens = $request->bagolini_lens ;
$strabismus->double_maddox_right_small = $request->double_maddox_right_small;
$strabismus->double_maddox_right_big = $request->double_maddox_right_big;
$strabismus->double_maddox_left_small = $request->double_maddox_left_small;
$strabismus->worth_4_dot_distance = $request->worth_4_dot_distance;
$strabismus->worth_4_dot_near = $request->worth_4_dot_near;
$strabismus->created_by = Auth::id();
if ($strabismus->save()){
flash("Strabismus saved successfully")->success();
return redirect("/patient_episodes");
} else {
flash("Something went wrong. Please try again.")->error();
return back()->withInput();
}
}
public function store_new_test_area_value(Request $request){
$new_value = new SlitLampTestAreaValue;
$new_value->name = $request->test_area_new_value;
$new_value->slit_lamp_test_area_id = $request->test_area_id;
$new_value->created_by = Auth::id();
$new_value->save();
$slit_lamp_test_area = SlitLampTestArea::find($request->test_area_id);
$ext_left = "";
$ext_left .= "<div class='col-md-4'>";
$ext_left .= "<div class='checkbox checkbox-success checkbox-circle'>";
$ext_left .= "<input id='checkbox_".$slit_lamp_test_area->slug."_left_".$new_value->id."' type='checkbox' name='".$slit_lamp_test_area->slug."_left[]' value='". $new_value->id."'>";
$ext_left .= "<label for='checkbox_".$slit_lamp_test_area->slug."_left_".$new_value->id."'> <b>".$new_value->name."</b> </label>";
$ext_left .= "</div>";
$ext_left .= "</div>";
$ext_right = "";
$ext_right .= "<div class='col-md-4'>";
$ext_right .= "<div class='checkbox checkbox-success checkbox-circle'>";
$ext_right .= "<input id='checkbox_".$slit_lamp_test_area->slug."_right_".$new_value->id."' type='checkbox' name='".$slit_lamp_test_area->slug."_right[]' value='". $new_value->id."'>";
$ext_right .= "<label for='checkbox_".$slit_lamp_test_area->slug."_right_".$new_value->id."'> <b>".$new_value->name."</b> </label>";
$ext_right .= "</div>";
$ext_right .= "</div>";
if($new_value->save()){
return array($ext_left, $ext_right);
}else{
return 'fail';
}
}
}