{{-- Smart Report v2 - Culture (UC, SC, BC). --}} {{-- Mirrors SmartReportService::GetUCPDF (lines 4516-4847). Multi-page layout --}} {{-- with organism info + drug sensitivity lists (Sensitive/Intermediate/ --}} {{-- Resistant). v1 paginates when y hits 261; builder paginates at 12 / page. --}} @php /** @var array $group Group view-model from WebController v2 dispatch */ /** @var \App\Services\SmartReportV2Service $service */ $service = $service ?? app(\App\Services\SmartReportV2Service::class); $Package = $group['package'] ?? ($group['firstPackage'] ?? null); $model = $Package ? $service->buildCultureModel($Package) : ['organism' => ['name_en' => '', 'result_en' => '', 'result_ar' => ''], 'pages' => [['sensitive' => [], 'intermediate' => [], 'resistant' => []]]]; $iconSensitive = public_path('img/smart-report-pdf/sensitive.png'); $iconIntermediate = public_path('img/smart-report-pdf/intermediate.png'); $iconResistant = public_path('img/smart-report-pdf/resistant.png'); @endphp @foreach ($model['pages'] as $pageIdx => $page)
@include('pdf.smart_report.components.backgrounds.bg', ['template' => 'culture', 'page' => 1]) @include('pdf.smart_report.components.patient_header', [ 'Order' => $Order, 'Profile' => $Profile, 'firstPackage' => $Package, 'Category' => (($Package->lABCATEGORYPACKAGE->REPORT_DISPLAY_NAME_AR ?? null) ?: ($Package->lABCATEGORYPACKAGE->NAME_AR ?? '')), 'Description' => $Package->lABCATEGORYPACKAGE->SMART_DESC_AR ?? '', 'setAdvice' => false, ]) {{-- Organism text at (136, 107) bold 12pt --}} @if (!empty($model['organism']['name_en']))
{{ $model['organism']['name_en'] }}
@endif {{-- Organism type - English at (0, 106) right-aligned in 78mm ultralight 10pt --}} @if (!empty($model['organism']['result_en']))
{{ $model['organism']['result_en'] }}
@endif {{-- Organism type - Arabic at (64, 112) left-aligned ultralight 10pt --}} @if (!empty($model['organism']['result_ar']))
{{ $model['organism']['result_ar'] }}
@endif {{-- Column headers. In v1 these overlap oddly; we preserve the exact --}} {{-- coordinates so every page matches the legacy background template. --}}
Resistant
(مقاوم)
Sensitive
(حساس)
Intermediate
(حساسية متوسطة)
{{-- Drug list: v1 stacks sensitive → intermediate → resistant as ONE --}} {{-- vertical list, 70mm coloured bar at (15,$y) + drug name at --}} {{-- (138.5,$y), y=151 stepping 10mm, capped at 11 rows/page by the --}} {{-- builder so a long panel wraps to a new page instead of overrunning --}} {{-- the footer. Each row carries its sensitivity 'type' → bar colour. --}} @php $y = 151; $rowIcon = [ 'sensitive' => $iconSensitive, 'intermediate' => $iconIntermediate, 'resistant' => $iconResistant, ]; // Back-compat: fall back to the old per-type shape if a cached model // predates the flattened 'rows' key. $rows = $page['rows'] ?? array_merge( array_map(fn ($d) => $d + ['type' => 'sensitive'], $page['sensitive'] ?? []), array_map(fn ($d) => $d + ['type' => 'intermediate'], $page['intermediate'] ?? []), array_map(fn ($d) => $d + ['type' => 'resistant'], $page['resistant'] ?? []) ); @endphp @foreach ($rows as $drug) @php $icon = $rowIcon[$drug['type'] ?? 'sensitive'] ?? $iconSensitive; @endphp @if (is_file($icon)) @endif
{{ $drug['name_en'] ?: $drug['name_ar'] }}
@php $y += 10; @endphp @endforeach
@endforeach