radfusion/routes/web.php
2025-01-21 23:16:03 +06:00

101 lines
4.8 KiB
PHP

<?php
use App\Http\Controllers\Api\WorklistController as ApiWorklistController;
use App\Http\Controllers\Guest\ViewSharedStudyController;
use App\Http\Controllers\SocialLoginController;
use App\Http\Controllers\Staff\AssignmentController;
use App\Http\Controllers\Staff\AttachmentController;
use App\Http\Controllers\Staff\AuditLogController;
use App\Http\Controllers\Staff\DicomViewerController;
use App\Http\Controllers\Staff\HistoryController;
use App\Http\Controllers\Staff\MetadataController;
use App\Http\Controllers\Staff\ReportController;
use App\Http\Controllers\Staff\ReportDownloadController;
use App\Http\Controllers\Staff\StudiesController;
use App\Http\Controllers\Staff\WorklistController;
use App\Http\Controllers\System\SyncOrthancController;
use Illuminate\Support\Facades\Route;
Route::get('/', fn () => redirect()->route('staff.worklist.index'));
Route::view('close', 'content.pages.close-window')->name('close');
Route::group(['prefix' => 'pacs', 'as' => 'pacs.'], function () {
Route::get('sync', SyncOrthancController::class)->name('sync');
});
Route::middleware([
'auth:sanctum',
config('jetstream.auth_session'),
'verified',
])->group(function () {
Route::group(['prefix' => 'api', 'as' => 'api.'], function () {
Route::get('studies', [ApiWorklistController::class, 'studies'])->name('studies');
});
Route::group(['prefix' => 'viewer', 'as' => 'viewer.'], function () {
Route::get('stone/{hashid}', [DicomViewerController::class, 'stone'])->name('stone');
Route::get('ohif/{hashid}', [DicomViewerController::class, 'ohif'])->name('ohif');
});
Route::group(['as' => 'staff.'], function () {
Route::group(['prefix' => 'worklist', 'as' => 'worklist.'], function () {
Route::get('/', [WorklistController::class, 'index'])->name('index');
});
Route::group(['prefix' => 'studies', 'as' => 'studies.'], function () {
Route::get('show', [StudiesController::class, 'show'])->name('show');
Route::get('attach', [StudiesController::class, 'attachments'])->name('attach');
});
Route::group(['prefix' => 'assign', 'as' => 'assign.'], function () {
Route::get('', [AssignmentController::class, 'show'])->name('show');
Route::post('{hashid}', [AssignmentController::class, 'save'])->name('save');
Route::delete('{hashid}', [AssignmentController::class, 'remove'])->name('remove');
});
Route::group(['prefix' => 'history', 'as' => 'history.'], function () {
Route::get('{hashid}', [HistoryController::class, 'view'])->name('view');
Route::get('{hashid}/edit', [HistoryController::class, 'edit'])->name('edit');
Route::post('{hashid}', [HistoryController::class, 'save'])->name('save');
});
Route::group(['prefix' => 'attachment', 'as' => 'attachment.'], function () {
Route::get('{uuid}', [AttachmentController::class, 'view'])->name('view');
Route::post('{hashid}', [AttachmentController::class, 'upload'])->name('upload');
Route::delete('{hashid}/{media}', [AttachmentController::class, 'delete'])->name('delete');
});
Route::group(['prefix' => 'meta', 'as' => 'meta.'], function () {
Route::get('{hashid}', [MetadataController::class, 'view'])->name('view');
Route::get('{hashid}/edit', [MetadataController::class, 'edit'])->name('edit');
Route::post('{hashid}', [MetadataController::class, 'save'])->name('save');
});
Route::group(['prefix' => 'report', 'as' => 'report.'], function () {
Route::get('popup', [ReportController::class, 'popup'])->name('popup');
Route::get('view/{uuid}', [ReportController::class, 'view'])->name('view');
Route::get('edit/{uuid}', [ReportController::class, 'edit'])->name('edit');
Route::get('create/{hashid}', [ReportController::class, 'create'])->name('create');
Route::post('save', [ReportController::class, 'save'])->name('save');
Route::get('download/{uuid}/{format}', ReportDownloadController::class)->name('download');
});
Route::group(['prefix' => 'audit', 'as' => 'audit.'], function () {
Route::get('popup', [AuditLogController::class, 'popup'])->name('popup');
});
});
});
Route::group(['prefix' => 'shares', 'as' => 'shares.'], function () {
Route::get('study/{hashid}', [ViewSharedStudyController::class, 'show'])->name('show');
Route::post('auth/{hashid}', [ViewSharedStudyController::class, 'auth'])->name('auth');
});
Route::group(['prefix' => 'social', 'as' => 'social.'], function () {
Route::get('{driver}', [SocialLoginController::class, 'redirect'])->name('login');
Route::get('{driver}/callback', [SocialLoginController::class, 'callback']);
});