34 lines
877 B
PHP
34 lines
877 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Staff;
|
|
|
|
use App\Http\Controllers\HashedStudyControllerBase;
|
|
use App\Models\Study;
|
|
use App\Services\AuditTrail\Activity;
|
|
use Closure;
|
|
use Illuminate\Support\Str;
|
|
|
|
class DicomViewerController extends HashedStudyControllerBase
|
|
{
|
|
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)
|
|
{
|
|
$study = $this->getStudy();
|
|
$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'));
|
|
}
|
|
}
|