Files
onboard/routes/api.php
2026-04-21 10:08:14 +09:00

93 lines
5.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use App\Http\Controllers\Api\AuthController;
use App\Http\Controllers\Api\DepartmentController;
use App\Http\Controllers\Api\MetrikaFormController;
use App\Http\Controllers\Api\ReportController;
use App\Http\Controllers\Api\RoleController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:sanctum');
// API для авторизации
Route::prefix('auth')->group(function () {
Route::post('/register', [AuthController::class, 'register']);
Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth:sanctum');
Route::get('/user', [AuthController::class, 'user'])->middleware('auth:sanctum');
Route::put('/profile', [AuthController::class, 'updateProfile'])->middleware('auth:sanctum');
Route::get('/check-token', [AuthController::class, 'checkToken']);
Route::get('/users', [AuthController::class, 'getUsers'])->middleware('auth:sanctum');
Route::put('/users/{id}', [AuthController::class, 'updateUser'])->middleware('auth:sanctum');
});
Route::middleware(['auth:sanctum'])->group(function () {
// Формы метрик
Route::prefix('metric-forms')->group(function () {
Route::get('/{group}', [MetrikaFormController::class, 'getForm'])->name('metric-forms.show');
Route::get('/{group}/existing', [MetrikaFormController::class, 'getExistingData']);
Route::post('/{group}/save', [MetrikaFormController::class, 'saveForm'])->name('metric-forms.save');
Route::get('/{report}/{group}/edit', [MetrikaFormController::class, 'getEditForm']);
// Получение отчета по дате (просмотр)
Route::get('/{group}/report-by-date', [MetrikaFormController::class, 'getReportByDate'])
->name('metric-forms.report-by-date');
// Календарь с отправленными отчетами
Route::get('/{group}/calendar-with-reports', [MetrikaFormController::class, 'getCalendarWithReports'])
->name('metric-forms.calendar-with-reports');
});
Route::prefix('mis')->group(function () {
Route::post('/patients', [ReportController::class, 'getPatients']);
Route::post('/patients/count', [ReportController::class, 'getPatientsCount']);
Route::post('/patients/counts', [ReportController::class, 'getPatientsCounts']);
Route::get('/patients/search', [ReportController::class, 'searchMisPatients']);
Route::get('/mkb/search', [ReportController::class, 'searchMkb']);
Route::get('/services/search', [ReportController::class, 'searchMedicalServices']);
Route::get('/department-users', [ReportController::class, 'getDepartmentUsers']);
Route::prefix('operations')->group(function () {
Route::get('/', [\App\Http\Controllers\Api\OperationController::class, 'operations']);
});
});
Route::prefix('statistics')->group(function () {
Route::prefix('reports')->group(function () {
Route::get('/unwanted-events', [\App\Http\Controllers\Api\StatisticController::class, 'getUnwantedEvents']);
});
});
Route::prefix('report')->group(function () {
Route::get('/', [ReportController::class, 'index']);
Route::post('/', [ReportController::class, 'store']);
Route::post('/manual-patients', [ReportController::class, 'createManualPatient']);
Route::patch('/manual-patients/{departmentPatientId}', [ReportController::class, 'updateManualPatient']);
Route::post('/manual-patients/{departmentPatientId}/outcome', [ReportController::class, 'setManualPatientOutcome']);
Route::post('/manual-patients/{departmentPatientId}/link', [ReportController::class, 'linkManualPatient']);
Route::get('/manual-patients/{departmentPatientId}/operations', [ReportController::class, 'getManualPatientOperations']);
Route::post('/manual-patients/{departmentPatientId}/operations', [ReportController::class, 'createManualPatientOperation']);
Route::patch('/manual-patients/{departmentPatientId}/operations/{operationId}', [ReportController::class, 'updateManualPatientOperation']);
Route::delete('/manual-patients/{departmentPatientId}/operations/{operationId}', [ReportController::class, 'deleteManualPatientOperation']);
Route::post('/observation/remove', [ReportController::class, 'removeObservation']);
Route::delete('/unwanted-event/{unwantedEvent}', [ReportController::class, 'removeUnwantedEvent']);
Route::get('/check', [ReportController::class, 'checkReport'])
->name('api.reports.check');
});
Route::prefix('app')->group(function () {
Route::prefix('user')->group(function () {
Route::prefix('roles')->group(function () {
Route::get('/', [RoleController::class, 'getUserRoles']);
Route::post('/', [RoleController::class, 'setUserRole']);
});
});
Route::prefix('departments')->group(function () {
Route::get('/', [DepartmentController::class, 'index']);
});
});
});