142 lines
3.5 KiB
PHP
Executable File
142 lines
3.5 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Modules\Internal\Http\Controllers\Api;
|
|
|
|
use App\Models\Icd;
|
|
use App\Models\OLDLMS\Healthcare;
|
|
use App\Models\Organization;
|
|
use App\Models\Practitioner;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
|
|
class OptionController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
* @return Renderable
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$request->validate([
|
|
'type' => 'required',
|
|
'search' => 'required'
|
|
]);
|
|
|
|
switch ($request->type) {
|
|
case 'diagnosis':
|
|
$icds = Icd::query()
|
|
->where('code', 'LIKE', '%'.$request->search.'%')
|
|
->orWhere('name', 'LIKE', '%'.$request->search.'%')
|
|
->limit('10')
|
|
->get();
|
|
|
|
return $icds;
|
|
break;
|
|
case 'doctors':
|
|
$doctors = Practitioner::query()
|
|
->whereHas('person', function ($person) use ($request) {
|
|
$person->where('name', 'LIKE', '%'.$request->search.'%');
|
|
})
|
|
->limit('10')
|
|
->get();
|
|
|
|
$doctors = $doctors->map(function($doctor) {
|
|
$doctorDetail = $doctor->person->toArray();
|
|
unset($doctorDetail['id']);
|
|
|
|
return array_merge([
|
|
'id' => $doctor->id,
|
|
'code' => $doctor->code
|
|
], $doctorDetail);
|
|
});
|
|
|
|
return $doctors;
|
|
break;
|
|
case 'healthcares':
|
|
$healthcares = Organization::query()
|
|
->hospital()
|
|
->where('name', 'LIKE', '%'.$request->search.'%')
|
|
->limit('10')
|
|
->get();
|
|
|
|
return $healthcares;
|
|
break;
|
|
case 'linksehat-healthcares':
|
|
$healthcares = Healthcare::query()
|
|
->where('sHealthCare', 'LIKE', '%'.$request->search.'%')
|
|
->limit('10')
|
|
->get();
|
|
|
|
return $healthcares;
|
|
break;
|
|
|
|
default:
|
|
# code...
|
|
break;
|
|
}
|
|
|
|
return view('internal::index');
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
* @return Renderable
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('internal::create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
* @param Request $request
|
|
* @return Renderable
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the specified resource.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function show($id)
|
|
{
|
|
return view('internal::show');
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function edit($id)
|
|
{
|
|
return view('internal::edit');
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
* @param Request $request
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
* @param int $id
|
|
* @return Renderable
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
//
|
|
}
|
|
}
|