@php $data = $assessment->data ?? []; $bandLabels = ['6-12' => '6–12 months', '13-35' => '13 months – 2 years 11 months', '3-5' => '3–5 years']; $rowsByBand = [ '6-12' => [ ['key' => 'visual_acuity', 'label' => 'Visual acuity', 'sub' => 'Lea gratings at 57 cm in CPM', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ['key' => 'contrast_sensitivity', 'label' => 'Contrast sensitivity', 'sub' => 'Hiding Heidi at 40 cm', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ['key' => 'visual_field', 'label' => 'Visual field', 'sub' => '30° from fixation @ 50 cm with lea wand', 'od' => 'star', 'os' => 'star', 'ou' => 'val', 'rem' => 'val'], ['key' => 'fixation', 'label' => 'Fixation', 'sub' => '', 'od' => 'val', 'os' => 'val', 'ou' => 'na', 'rem' => 'val'], ['key' => 'tracking', 'label' => 'Tracking', 'sub' => '', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ['key' => 'scanning', 'label' => 'Scanning — shift gaze', 'sub' => '', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ], '13-35' => [ ['key' => 'visual_acuity', 'label' => 'Visual acuity', 'sub' => 'Lea gratings at 57 cm in CPM', 'od' => 'val', 'os' => 'val', 'ou' => 'val', 'rem' => 'val'], ['key' => 'color_vision', 'label' => 'Color vision', 'sub' => 'HRR pseudoisochromatic plates', 'od' => 'val', 'os' => 'val', 'ou' => 'val', 'rem' => 'val'], ['key' => 'contrast_sensitivity', 'label' => 'Contrast sensitivity', 'sub' => 'Hiding Heidi at 40 cm', 'od' => 'val', 'os' => 'val', 'ou' => 'val', 'rem' => 'val'], ['key' => 'visual_field', 'label' => 'Visual field', 'sub' => '30° from fixation @ 50 cm with lea wand', 'od' => 'star', 'os' => 'star', 'ou' => 'val', 'rem' => 'val'], ['key' => 'fixation', 'label' => 'Fixation', 'sub' => '', 'od' => 'val', 'os' => 'val', 'ou' => 'val', 'rem' => 'val'], ['key' => 'tracking', 'label' => 'Tracking', 'sub' => '', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ['key' => 'scanning', 'label' => 'Scanning — shift gaze', 'sub' => '', 'od' => 'na', 'os' => 'na', 'ou' => 'val', 'rem' => 'val'], ], ]; $rowsByBand['3-5'] = $rowsByBand['13-35']; $rows = $rowsByBand[$assessment->age_band] ?? $rowsByBand['13-35']; $arms = []; for ($i = 0; $i < 8; $i++) { $a = $i * 45 * M_PI / 180; $arms[] = ['x' => round(48 + 38 * cos($a), 1), 'y' => round(48 + 38 * sin($a), 1)]; } $val = function ($key, $col) use ($data) { $c = $col === 'rem' ? 'remarks' : $col; return $data[$key][$c] ?? ''; }; $motor = [ ['key' => 'saccades', 'label' => 'Saccades', 'sub' => 'wolf wand · refer scoring sheet'], ['key' => 'pursuit', 'label' => 'Pursuit', 'sub' => 'wolf wand · refer scoring sheet'], ]; $patientName = $patient->patient_name ?? $patient->name ?? 'Patient'; $assessedAt = $assessment->assessed_at ?? $assessment->updated_at; @endphp Functional vision assessment — {{ $patientName }}

Functional vision assessment

{{ $bandLabels[$assessment->age_band] ?? $assessment->age_band }}
Patient{{ $patientName }}
MR no.{{ $patient->mr_id ?? '—' }}
Assessed{{ $assessedAt ? \Illuminate\Support\Carbon::parse($assessedAt)->format('d M Y') : '—' }}
@foreach ($rows as $row) @foreach (['od', 'os', 'ou', 'rem'] as $col) @php $type = $row[$col]; @endphp @if ($type === 'na') @elseif ($type === 'star') @php $vals = $data[$row['key']][$col] ?? []; @endphp @else @endif @endforeach @endforeach
ParameterODOSOURemarks
{{ $row['label'] }}@if($row['sub']){{ $row['sub'] }}@endif @foreach ($arms as $i => $arm) @endforeach {{ $val($row['key'], $col) ?: '—' }}
@foreach ($motor as $row) @endforeach
Ocular motorAbilityAccuracyHead movementBody movement
{{ $row['label'] }}{{ $row['sub'] }} {{ $data[$row['key']]['ability'] ?? '' ?: '—' }} {{ $data[$row['key']]['accuracy'] ?? '' ?: '—' }} {{ $data[$row['key']]['head_movement'] ?? '' ?: '—' }} {{ $data[$row['key']]['body_movement'] ?? '' ?: '—' }}