radfusion/app/Http/Controllers/Staff/DicomViewerController.php
2025-01-08 20:59:38 +06:00

33 lines
803 B
PHP

<?php
namespace App\Http\Controllers\Staff;
use App\Http\Controllers\HashidControllerBase;
use App\Models\Study;
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);
return view('staff.studies.viewer', compact('url', 'title'));
}
}