Files
aso/Modules/Internal/Http/Controllers/Api/OptionController.php
Linksehat Staging Server ce024c2bcd merge
2023-05-08 08:50:15 +07:00

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)
{
//
}
}