70 lines
2.1 KiB
PHP
70 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Resources\IndexSttMedicalHistoryResource;
|
|
use App\Http\Resources\SI\SttMedicalHistoryResource as SiSttMedicalHistoryResource;
|
|
use App\Http\Resources\Mis\SttMedicalHistoryResource as MisSttMedicalHistoryResource;
|
|
use App\Models\ArchiveStatus;
|
|
use App\Models\SI\SttMedicalHistory;
|
|
use App\Repositories\MedicalHistoryRepository;
|
|
use App\Services\ArchiveCardService;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Inertia;
|
|
|
|
class IndexController extends Controller
|
|
{
|
|
private MedicalHistoryRepository $repository;
|
|
private ArchiveCardService $cardService;
|
|
|
|
public function __construct(MedicalHistoryRepository $repository, ArchiveCardService $cardService)
|
|
{
|
|
$this->repository = $repository;
|
|
$this->cardService = $cardService;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$pageSize = $request->get('page_size', 50);
|
|
$searchText = $request->get('search', null);
|
|
$dateExtractFrom = $request->get('date_extract_from', null);
|
|
$dateExtractTo = $request->get('date_extract_to', null);
|
|
$status = $request->get('status', null);
|
|
|
|
// $data = $this->repository->unifiedSearch(
|
|
// $searchText,
|
|
// $dateExtractFrom,
|
|
// $dateExtractTo,
|
|
// $status,
|
|
// $pageSize
|
|
// );
|
|
|
|
$data = $this->cardService->get(
|
|
$searchText,
|
|
$dateExtractFrom,
|
|
$dateExtractTo,
|
|
$status,
|
|
$pageSize
|
|
);
|
|
|
|
// dd($data);
|
|
|
|
$statuses = ArchiveStatus::all()->map(function ($status) {
|
|
return [
|
|
'value' => $status->id,
|
|
'label' => $status->text
|
|
];
|
|
});
|
|
|
|
return Inertia::render('Home/Index', [
|
|
'cards' => IndexSttMedicalHistoryResource::collection($data),
|
|
'statuses' => $statuses,
|
|
'filters' => array_merge($request->only([
|
|
'search', 'date_extract_from', 'date_extract_to',
|
|
'page_size', 'page', 'status'
|
|
]))
|
|
]);
|
|
|
|
}
|
|
}
|