@php $patient = $order->patient; $modalityOptions = \App\Support\Lookup::options('modality'); $studies = $order->items; $criticalUncalled = $studies->filter( fn ($item) => $item->radiologyReport?->is_critical && $item->critical_called_at === null && $item->radiologyReport->status !== 'cancelled' ); $closed = in_array($order->status, ['cancelled', 'rejected'], true); @endphp @if ($patient?->isRestricted()) Restricted record @endif Request workspace {{-- ------------------------------------------------------------ notices --}} @if ($criticalUncalled->isNotEmpty())
{{ $criticalUncalled->map(fn ($item) => $item->radiologyReport->study_name)->implode(', ') }}. A critical finding may not leave the department until the referring clinician has been called — use Verify to record who took the call.
@endif @if ($patient?->isRestricted())
Access is limited to accounts holding the restricted-access permission, and this access is logged.
@endif
{{-- ------------------------------------------------------- studies --}}
{{ $studies->count() }} study line(s)
    @forelse ($studies as $item) @php $report = $item->radiologyReport; $images = collect($report?->image_paths ?? []); $canDictate = ! $closed && ! in_array($item->status, ['cancelled', 'rejected'], true) && (! $report || $report->status !== 'verified'); $canVerify = $report && $report->status !== 'verified' && $report->status !== 'cancelled'; $needCall = $canVerify && $report->is_critical && $item->critical_called_at === null; @endphp
  • {{ $loop->iteration }}

    {{ $item->test_name }}

    @if ($report?->modality) {{ $report->modality_label }} @endif @if ($report?->is_critical) Critical finding @endif @if ($report && $report->status === 'amended') amended copy @endif

    {{ collect([ $report?->body_part, $report?->contrast_used ? 'contrast: '.$report->contrast_agent : null, $report?->film_number ? 'film '.$report->film_number : null, ])->filter()->implode(' · ') ?: $item->labTest?->code }}

    @if ($report?->impression)

    Impression

    {{ $report->impression }}

    @if ($report->findings)
    Full findings

    {{ $report->findings }}

    @endif @if ($report->recommendation)

    Recommendation: {{ $report->recommendation }}

    @endif
    @endif
    @if ($report?->radiologist) {{ $report->status === 'verified' ? 'Verified' : 'Dictated' }} by {{ $report->radiologist->name }} @if ($report->reported_at) · {{ $report->reported_at->format('d M H:i') }} @endif @if ($report->verifiedBy && $report->status === 'verified') · signed {{ $report->verifiedBy->name }} sig {{ \Illuminate\Support\Str::limit($report->signature_hash, 12, '') }}… @endif @else Not yet dictated @endif
    @if ($item->critical_called_at)

    Critical finding reported to {{ $item->critical_called_to }} on {{ $item->critical_called_at->format('d M H:i') }} @if ($item->criticalAcknowledgedBy) · acknowledged by {{ $item->criticalAcknowledgedBy->name }} @endif

    @endif
    @if ($report) @else not started @endif
    @can('radiology.report') @if ($canDictate) @endif @if ($report && $report->status === 'verified') @endif @endcan @can('radiology.upload-images') @endcan @if ($report) @endif
    @can('radiology.verify') @if ($canVerify) @if ($needCall) @else
    @csrf @method('PATCH')
    @endif @elseif ($report && $report->status === 'verified')

    Signed & final

    @endif @endcan
    @if ($images->isNotEmpty())
    @foreach ($images as $index => $path) Image {{ $index + 1 }} @endforeach {{ $images->count() }} image(s) filed
    @endif
  • @empty
  • No study lines on this request.
  • @endforelse
@if ($order->clinical_notes)

{{ $order->clinical_notes }}

@endif
{{-- --------------------------------------------------------- sidebar --}}
{{ $patient ? \Illuminate\Support\Str::of($patient->full_name)->explode(' ')->filter()->take(2)->map(fn ($p) => \Illuminate\Support\Str::upper(\Illuminate\Support\Str::substr($p, 0, 1)))->implode('') : '—' }}

{{ $patient?->full_name ?? '—' }}

{{ $patient?->medical_record_number }}

Age / sex
{{ $patient?->age_display ?? '—' }} · {{ $patient?->gender_label ?? '—' }}
@if ($patient?->phone)
Phone
{{ $patient->phone }}
@endif
@if ($patient?->allergies_summary && auth()->user()?->can('patients.view-clinical'))
Allergies: {{ $patient->allergies_summary }}
@endif @can('patients.view') Open the record @endcan
Ordered
{{ $order->ordered_at?->format('d M Y H:i') ?? '—' }}@if ($order->orderedBy) by {{ $order->orderedBy->name }} @endif
Priority
{{ $order->priority_label }}
Workflow
{{ $order->status_label }}
@if ($order->completed_at)
Completed
{{ $order->completed_at->format('d M Y H:i') }}
@endif @if ($order->released_at)
Released
{{ $order->released_at->format('d M Y H:i') }}
@endif
  1. 1. Dictate — modality, technique, findings, impression. The line moves to completed.
  2. 2. Verify — a second signature signs the report. A critical finding cannot leave until the call is recorded.
  3. 3. Amend — a verified report is immutable; corrections are new, re-signed copies with the reason retained.
{{-- ----------------------------------------------------- dictate modals --}} @foreach ($studies as $item) @php $report = $item->radiologyReport; $canDictate = ! $closed && ! in_array($item->status, ['cancelled', 'rejected'], true) && (! $report || $report->status !== 'verified'); @endphp @can('radiology.report') @if ($canDictate)
@csrf

{{ $report ? 'Re-dictate' : 'Dictate' }} — {{ $item->test_name }}

{{ $patient?->full_name }} · {{ $order->order_no }}. The report files under your name and awaits a verifying signature.

@endif @endcan @endforeach {{-- ------------------------------------------------------ verify modals --}} @foreach ($studies as $item) @php $report = $item->radiologyReport; $needCall = $report && $report->status !== 'verified' && $report->is_critical && $item->critical_called_at === null; @endphp @can('radiology.verify') @if ($needCall)
@csrf @method('PATCH')

Critical finding — record the call

{{ $report->study_name }} for {{ $patient?->full_name }}: “{{ \Illuminate\Support\Str::limit($report->impression, 200) }}”

The verification completes only together with the call — the loop must close.
@endif @endcan @endforeach {{-- ------------------------------------------------------- image modals --}} @foreach ($studies as $item) @can('radiology.upload-images')
@csrf

File images — {{ $item->test_name }}

Up to 10 files per batch — JPG, PNG, BMP, GIF or DICOM, 20 MB each. Filing images opens a report shell if none exists yet.

@endcan @endforeach {{-- ------------------------------------------------------- amend modals --}} @foreach ($studies as $item) @php $report = $item->radiologyReport; @endphp @can('radiology.report') @if ($report && $report->status === 'verified')
@csrf @method('PATCH')

Amend — {{ $report->study_name }}

The verified report stays on file; this issues a corrected, re-signed copy. @if ($report->amendment_reason) Previous amendment: {{ $report->amendment_reason }} @endif

@endif @endcan @endforeach