mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-11 18:51:31 +00:00
146 lines
5.3 KiB
PHP
146 lines
5.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\Insurance\Http\Controllers;
|
|
|
|
use Illuminate\Database\QueryException;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Streamline\Models\Diagnosis;
|
|
use Streamline\Models\Drug;
|
|
use Streamline\Models\InsuranceDiseaseGroup;
|
|
|
|
class InsuranceDiseaseGroupsController extends Controller {
|
|
|
|
public function index() {
|
|
$groups = InsuranceDiseaseGroup::get();
|
|
|
|
return view('insurance::insurance_disease_groups.index', compact('groups'));
|
|
}
|
|
|
|
public function create() {
|
|
$diagnoses = DB::table('diagnoses')->where('available', 1)->pluck('name', 'id');
|
|
$drugs = DB::table('drugs')->where('available', 1)->pluck('name', 'id');
|
|
$investigations = DB::table('investigations')->pluck('name', 'id');
|
|
$procedures = DB::table('procedures')->where('available', 1)->pluck('name', 'id');
|
|
|
|
return view('insurance::insurance_disease_groups.create', compact('investigations', 'diagnoses', 'drugs', 'procedures'));
|
|
}
|
|
|
|
public function store(Request $request) {
|
|
request()->validate([
|
|
'name' => 'required',
|
|
'diagnoses' => 'required'
|
|
]);
|
|
|
|
$group = new InsuranceDiseaseGroup();
|
|
|
|
$group->name = $request->name;
|
|
$group->diagnoses = implode(",", $request->diagnoses);
|
|
$group->investigations = $request->investigations ? implode(",", $request->investigations) : '';
|
|
$group->treatments = $request->drugs ? implode(",", $request->drugs) : '';
|
|
$group->procedures = $request->procedures ? implode(",", $request->procedures) : '';
|
|
$group->created_by = Auth::id();
|
|
|
|
try {
|
|
$group->save();
|
|
flash("Insurance Disease Group has been created")->success();
|
|
return redirect("/insurance_disease_groups/index");
|
|
} catch (QueryException $e) {
|
|
flash("An error occurred. Please try again later")->error();
|
|
return back()->withInput();
|
|
}
|
|
}
|
|
|
|
public function edit($id) {
|
|
$group = InsuranceDiseaseGroup::find($id);
|
|
|
|
$diagnoses = DB::table('diagnoses')->where('available', 1)->pluck('name', 'id');
|
|
$drugs = DB::table('drugs')->where('available', 1)->pluck('name', 'id');
|
|
$investigations = DB::table('investigations')->pluck('name', 'id');
|
|
$procedures = DB::table('procedures')->where('available', 1)->pluck('name', 'id');
|
|
|
|
return view('insurance::insurance_disease_groups.edit', compact('group', 'diagnoses', 'drugs', 'investigations', 'procedures'));
|
|
}
|
|
|
|
public function update(Request $request) {
|
|
request()->validate([
|
|
'name' => 'required',
|
|
'diagnoses' => 'required'
|
|
]);
|
|
|
|
$group = InsuranceDiseaseGroup::find($request->id);
|
|
|
|
$group->name = $request->name;
|
|
$group->diagnoses = implode(",", $request->diagnoses);
|
|
$group->investigations = $request->investigations ? implode(",", $request->investigations) : '';
|
|
$group->treatments = $request->drugs ? implode(",", $request->drugs) : '';
|
|
$group->procedures = $request->procedures ? implode(",", $request->procedures) : '';
|
|
$group->updated_by = Auth::id();
|
|
|
|
try {
|
|
$group->save();
|
|
flash("Insurance Disease Group has been updated")->success();
|
|
return redirect("/insurance_disease_groups/index");
|
|
} catch (QueryException $e) {
|
|
flash("An error occurred. Please try again later")->error();
|
|
return back()->withInput();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
*/
|
|
public function delete($id) {
|
|
$group = InsuranceDiseaseGroup::find($id);
|
|
|
|
try {
|
|
$group->delete();
|
|
flash("Insurance Disease Group has been deactivated")->success();
|
|
return redirect("/insurance_disease_groups/index");
|
|
} catch (QueryException $e) {
|
|
flash("An error occurred. Please try again later")->error();
|
|
return back()->withInput();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Display a listing of the inactive resource(s).
|
|
*
|
|
*/
|
|
public function inactive() {
|
|
$groups = InsuranceDiseaseGroup::onlyTrashed()->get();
|
|
|
|
return view('insurance::insurance_disease_groups.inactive', compact('groups'));
|
|
}
|
|
|
|
/**
|
|
* Activate the specified resource in storage.
|
|
*
|
|
*/
|
|
public function restore($id) {
|
|
$group = InsuranceDiseaseGroup::withTrashed()->find($id);
|
|
|
|
try {
|
|
$group->restore();
|
|
flash("Insurance Disease Group has been restored")->success();
|
|
return redirect("/insurance_disease_groups/index");
|
|
} catch (QueryException $e) {
|
|
flash("An error occurred. Please try again later")->error();
|
|
return back()->withInput();
|
|
}
|
|
}
|
|
|
|
public function details($id) {
|
|
$group = InsuranceDiseaseGroup::find($id);
|
|
|
|
$diagnoses = DB::table('diagnoses')->where('available', 1)->pluck('name', 'id');
|
|
$drugs = DB::table('drugs')->where('available', 1)->pluck('name', 'id');
|
|
$investigations = DB::table('investigations')->pluck('name', 'id');
|
|
$procedures = DB::table('procedures')->where('available', 1)->pluck('name', 'id');
|
|
|
|
return view('insurance::insurance_disease_groups.details', compact('investigations', 'diagnoses', 'drugs', 'procedures', 'group'));
|
|
}
|
|
}
|