mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-11 18:51:31 +00:00
186 lines
9.6 KiB
PHP
Executable File
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();
|
|
}
|
|
}
|
|
}
|