radfusion/app/Http/Controllers/Staff/DicomViewerController.php
2025-01-25 15:51:03 +06:00

35 lines
908 B
PHP

<?php
namespace App\Http\Controllers\Staff;
use App\Http\Controllers\HashidControllerBase;
use App\Models\Study;
use App\Services\AuditTrail\Activity;
use Closure;
use Illuminate\Support\Str;
class DicomViewerController extends HashidControllerBase
{
public function stone()
{
return $this->loadViewer(fn (Study $study) => $study->getStoneLink());
}
public function ohif()
{
return $this->loadViewer(fn (Study $study) => $study->getOhifLink());
}
private function loadViewer(Closure $callback)
{
$this->decodeKeys();
$study = Study::findOrFail($this->key);
$url = $callback($study);
abort_if(blank($url), 404);
$title = Str::limit($study->getPatientDemographic(), 40);
audit()->on($study)->did(Activity::Image_Download)->log();
return view('staff.studies.viewer', compact('url', 'title'));
}
}