Files
onboard/app/Http/Controllers/Api/StatisticController.php
brusnitsyn 52a80ccd3b nothing
2026-02-20 17:28:16 +09:00

52 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Department;
use App\Services\DateRangeService;
use App\Services\ReportService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class StatisticController extends Controller
{
public function __construct(
protected DateRangeService $dateRangeService,
protected ReportService $reportService
) {}
public function getUnwantedEvents(Request $request)
{
$user = Auth::user();
$validated = $request->validate([
'startAt' => 'required',
'endAt' => 'required',
'departmentId' => 'required',
]);
$dateRange = $this->dateRangeService->getNormalizedDateRange($user, $validated['startAt'], $validated['endAt']);
$department = Department::findSole($request->departmentId, 'department_id');
$unwantedEvents = $this->reportService->getUnwantedEvents($department, $dateRange);
return response()->json($unwantedEvents);
}
public function getObservablePatients(Request $request)
{
$user = Auth::user();
$validated = $request->validate([
'startAt' => 'required',
'endAt' => 'required',
'departmentId' => 'required'
]);
$dateRange = $this->dateRangeService->getNormalizedDateRange($user, $validated['startAt'], $validated['endAt']);
$department = Department::findSole($request->departmentId, 'department_id');
$observablePatients = $this->reportService->getPatientsByStatus($department, $user, 'observation', $dateRange);
return response()->json($observablePatients);
}
}