radfusion/app/Http/Controllers/Staff/DicomViewerController.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'));
}
}