@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 }}
| Parameter | OD | OS | OU | Remarks |
@foreach ($rows as $row)
| {{ $row['label'] }}@if($row['sub']){{ $row['sub'] }}@endif |
@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
{{ $val($row['key'], $col) ?: '—' }} |
@endif
@endforeach
@endforeach
| Ocular motor | Ability | Accuracy | Head movement | Body movement |
@foreach ($motor as $row)
| {{ $row['label'] }}{{ $row['sub'] }} |
{{ $data[$row['key']]['ability'] ?? '' ?: '—' }} |
{{ $data[$row['key']]['accuracy'] ?? '' ?: '—' }} |
{{ $data[$row['key']]['head_movement'] ?? '' ?: '—' }} |
{{ $data[$row['key']]['body_movement'] ?? '' ?: '—' }} |
@endforeach