Files
streamline-emr/docker/streamline-src/app/Http/Controllers/GeneralSettingsController.php
T
alec.turner 4a89356390 Import latest app updates from streamline
An updated set of source files and initialization was provided by streamline to
address issues observed during initial testing. These files have been updated in
order to generate a new set of app images.
2024-04-11 11:16:51 -07:00

186 lines
9.6 KiB
PHP
Executable File

<?php
namespace Streamline\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Streamline\Models\Clinic;
use Streamline\Models\GeneralSettings;
use Streamline\Models\Services;
use Streamline\Models\PermissionCategory;
use Streamline\Models\StreamlineSetupStep;
use Streamline\Models\User;
class GeneralSettingsController extends Controller
{
public function edit_settings()
{
$general_settings = GeneralSettings::find(1);
$services = Services::pluck('name', 'id')->toArray();
$services = ['' => '- select -'] + $services;
$clinics = Clinic::pluck('name', 'id')->toArray();
$clinics = ['' => '- select -'] + $clinics;
return view('general_settings.edit', compact('general_settings', 'services', 'clinics'));
}
public function save_settings(Request $request)
{
$general_settings = GeneralSettings::find(1);
$general_settings->donor_feature = $request->donor_feature;
$general_settings->ward_prescription_model = $request->ward_prescription_model;
$general_settings->show_drug_brand_name = $request->show_drug_brand_name;
$general_settings->family_accounts_feature = $request->family_accounts_feature;
$general_settings->family_account_over_consumption = $request->allow_over_consumption;
$general_settings->currency_code = $request->currency_code;
$general_settings->password_expiration_days = $request->password_expiration_days;
$general_settings->session_expiration_time = $request->session_expiration_time;
$general_settings->enable_sms = $request->enable_sms;
$general_settings->incoming_prescription_confirmation_feature = $request->incoming_prescription_confirmation_feature;
$general_settings->add_stamp_to_pdf_feature = $request->add_stamp_to_pdf_feature;
$general_settings->consultation_attendance = $request->consultation_attendance;
$general_settings->inpatient_sheet_extras= $request->inpatient_sheet_extras;
$general_settings->add_lab_stamp_to_pdf_feature = $request->add_lab_stamp_to_pdf_feature;
$general_settings->enable_dipensing_unpaid_prescription = $request->enable_dipensing_unpaid_prescription;
$general_settings->item_batch_tracking = $request->item_batch_tracking;
$general_settings->enable_patient_debt_reminder = $request->enable_patient_debt_reminder;
$general_settings->enable_performing_unpaid_consultations = $request->enable_performing_unpaid_consultations;
$general_settings->disable_out_of_stock_message = $request->disable_out_of_stock_message;
$general_settings->allow_prescribing_out_of_stock_drugs = $request->allow_prescribing_out_of_stock_drugs;
$general_settings->enable_dispensing_non_invoiced_prescription = $request->enable_dispensing_non_invoiced_prescription;
$general_settings->chi_enabled = $request->chi_enabled;
$general_settings->batch_tracking_method = $request->batch_tracking_method;
$general_settings->patient_accounts_enabled = $request->patient_accounts_enabled;
$general_settings->enable_performing_unpaid_review_consultations = $request->enable_performing_unpaid_review_consultations;
if ($request->add_service_to_patient_bill != 0) {
if (isset($request->service_id) && $request->service_id != 0) {
$general_settings->add_service_to_patient_bill = $request->service_id;
} else {
$general_settings->add_service_to_patient_bill = 0;
}
} else {
$general_settings->add_service_to_patient_bill = 0;
}
$general_settings->enable_performing_unpaid_investigations = $request->enable_performing_unpaid_investigations;
$general_settings->cashier_receipts_print_format = $request->cashier_receipts_print_format;
$general_settings->investigation_billing_mode = $request->investigation_billing_mode;
$general_settings->enable_tuberculosis_screening = $request->enable_tuberculosis_screening;
$general_settings->point_of_inventory_reduction = $request->point_of_inventory_reduction;
$general_settings->view_procedure_price_on_order = $request->view_procedure_price_on_order;
$general_settings->view_prescription_price_on_order = $request->view_prescription_price_on_order;
$general_settings->view_investigation_price_on_order = $request->view_investigation_price_on_order;
$general_settings->view_sundry_price_on_order = $request->view_sundry_price_on_order;
$general_settings->view_service_price_on_order = $request->view_service_price_on_order;
$general_settings->eye_module_enabled = $request->eye_module_enabled;
$general_settings->payments_from_banks_with_lesser_balance = $request->payments_from_banks_with_lesser_balance;
$general_settings->system_language = $request->system_language;
$general_settings->smart_triage_feature = $request->smart_triage_feature;
$general_settings->apply_triage_grade = $request->apply_triage_grade;
$general_settings->allow_dispensing_out_of_stock_drugs = $request->allow_dispensing_out_of_stock_drugs;
$general_settings->allow_issuing_out_of_stock_drugs = $request->allow_issuing_out_of_stock_drugs;
$general_settings->smart_discharge_feature = $request->smart_discharge_feature;
$general_settings->default_hospital_clinic = $request->default_hospital_clinic;
$general_settings->enable_fingerprint = $request->enable_fingerprint;
$general_settings->full_detail_receipt_print = $request->full_detail_receipt_print;
$general_settings->inpatient_sheet_with_detailed_notes = $request->inpatient_sheet_with_detailed_notes;
$general_settings->show_symptoms_on_consultation = $request->show_symptoms_on_consultation;
$general_settings->select_clinic_order_type = $request->select_clinic_order_type;
$general_settings->enable_hiv_and_gbv_screening_tool = $request->enable_hiv_and_gbv_screening_tool;
$general_settings->enable_hiv_screening_tool = $request->enable_hiv_screening_tool;
$general_settings->enable_gbv_screening_tool = $request->enable_gbv_screening_tool;
$general_settings->stock_levels_to_consider = $request->stock_levels_to_consider;
$general_settings->allow_lab_number_editing = $request->allow_lab_number_editing;
$general_settings->allow_editing_name_of_lab_doctor = $request->allow_editing_name_of_lab_doctor;
$general_settings->save();
flash("Settings have been updated")->success();
if (session()->has('streamline_setup')) {
//update the streamline setup table with the new finished step
$streamline_setup = new StreamlineSetupStep;
$streamline_setup->step = "general settings configuration";
$streamline_setup->completion_status = 1;
$streamline_setup->save();
session()->forget('streamline_setup');
return redirect("home");
}
return redirect("general_settings/edit");
}
public function activate_streamline_modules()
{
$permission_categories = PermissionCategory::orderBy('name', 'asc')->get();
return view('general_settings.activate_streamline_modules', compact('permission_categories'));
}
public function store_activated_modules(Request $request)
{
$activated_categories_array = $request->permission_category;
$all_permission_categories = PermissionCategory::pluck('id')->toArray();
//loop through the categories and activate only the checked ones
for ($i = 0; $i < count($all_permission_categories); $i++) {
$category = PermissionCategory::find($all_permission_categories[$i]);
if (in_array($all_permission_categories[$i], $activated_categories_array)) {
$category->is_module_active = 1;
} else {
$category->is_module_active = 0;
}
$category->update();
}
flash("Active modules have been activated")->success();
return redirect("activate_streamline_modules");
}
public function edit_personal_settings(Request $request)
{
$general_settings = User::find(Auth::id());
return view('general_settings.personal_settings_edit', compact('general_settings'));
}
public function save_personal_settings(Request $request)
{
$user = User::find(Auth::id());
if ($user) {
$user->system_language = $request->system_language;
$user->update();
flash('settings have been updated')->success();
return redirect('personal_settings/edit');
}
flash('system could not update the settings')->success();
return redirect()->back();
}
public function edit_number_of_active_users_limit_settings(Request $request)
{
$general_settings = GeneralSettings::find(1);
return view('general_settings.number_of_active_users_settings_edit', compact('general_settings'));
}
public function save_number_of_active_users_limit_settings(Request $request)
{
try {
$general_settings = GeneralSettings::find(1);
$general_settings->number_of_active_users_limit = $request->number_of_active_users_limit;
$general_settings->update();
flash('settings have been updated')->success();
return redirect()->route('general_settings.active_users_limit_settings');
} catch (\Throwable $th) {
flash('system could not update the settings')->error();
return redirect()->back();
}
}
}