{{-- Smart Report v2 - Stool analysis (ST). --}} {{-- Mirrors SmartReportService::GetStoolanalysisPDF (lines 7106-7824). --}} {{-- Single page: Color, Consistency, Mucus, UDF, SPC, SRBC, CYST, Ova, --}} {{-- CystTypes, Oocyst, OvaTypes, Fat Globules, Yeast. --}} @php $service = $service ?? app(\App\Services\SmartReportV2Service::class); $Package = $group['package'] ?? ($group['firstPackage'] ?? null); $model = $Package ? $service->buildStoolModel($Package) : []; // v1 (GetStoolanalysisPDF 7111-7115): title = package test name // (REPORT_DISPLAY_NAME_AR override), description = SMART_DESC_AR. $stoolTestName = $Package->lABCATEGORYPACKAGE->NAME_AR ?? ''; if (!empty($Package->lABCATEGORYPACKAGE->REPORT_DISPLAY_NAME_AR)) $stoolTestName = $Package->lABCATEGORYPACKAGE->REPORT_DISPLAY_NAME_AR; @endphp
@include('pdf.smart_report.components.backgrounds.bg', ['template' => 'stool', 'page' => 1]) @include('pdf.smart_report.components.patient_header', [ 'Order' => $Order, 'Profile' => $Profile, 'firstPackage' => $Package, 'Category' => $stoolTestName, 'Description' => $Package->lABCATEGORYPACKAGE->SMART_DESC_AR ?? '', 'topStrip' => 'stool', 'setAdvice' => false, ]) {{-- ── Color ────────────────────────────────────────────────── --}} @if (!empty($model['color'])) @if (!empty($model['color']['image']) && is_file($model['color']['image'])) @endif @php $hex = $model['color']['hex_code'] ?? '#000'; $hexTrimmed = ltrim($hex, '#'); $r = hexdec(substr($hexTrimmed,0,2)); $g = hexdec(substr($hexTrimmed,2,2)); $b = hexdec(substr($hexTrimmed,4,2)); @endphp
{{ $model['color']['name_ar'] }}
{{ $model['color']['name_en'] }}
@endif {{-- ── Consistency ──────────────────────────────────────────── --}} @if (!empty($model['consistency']))
{{ $model['consistency']['name_ar'] }}
{{ $model['consistency']['name_en'] }}
@endif {{-- ── Mucus ────────────────────────────────────────────────── --}} @if (!empty($model['mucus'])) @if ($model['mucus']['variant'] === 'unseen') @elseif ($model['mucus']['variant'] === 'seen') @elseif ($model['mucus']['variant'] === 'label')
{{ $model['mucus']['name'] }}
@if (!empty($model['mucus']['image']) && is_file($model['mucus']['image'])) @endif @endif @endif {{-- ── Undigested Food (UDF) ────────────────────────────────── --}} @if (!empty($model['udf'])) @if ($model['udf']['variant'] === 'unseen') @elseif ($model['udf']['variant'] === 'seen') @elseif ($model['udf']['variant'] === 'label')
{{ $model['udf']['name'] }}
@if (!empty($model['udf']['image']) && is_file($model['udf']['image'])) @endif @endif @endif {{-- ── SPC (Stool Pus Cells) ────────────────────────────────── --}} @if (!empty($model['spc'])) @if ($model['spc']['variant'] === 'option') @php $spcColor = ($model['spc']['is_hpf_range'] ?? false) ? '#000000' : (($model['spc']['is_normal'] ?? false) ? 'rgb(120,201,38)' : 'rgb(221,52,68)'); @endphp {{-- LTR value ("0-1 H.P.F"): direction:ltr keeps the " H.P.F" --}} {{-- order (isolate would flip it to "H.P.F 4" under the RTL page). --}} {{-- Centred on the same column (≈117mm) as the Cysts/Ova "seen" --}} {{-- graphic so the microscopic-exam values line up vertically. --}}
{{ $model['spc']['label'] }}
@elseif ($model['spc']['variant'] === 'numeric')
{{ $model['spc']['min_normal'] }}
{{ $model['spc']['max_normal'] }}
@if (!empty($model['spc']['image']) && is_file($model['spc']['image'])) @endif @php $spcColor2 = ($model['spc']['type'] === 'normal') ? 'rgb(120,201,38)' : 'rgb(221,52,68)'; $mv = (int) round($model['spc']['move']); if ($model['spc']['type'] === 'normal') $spcLeft = 24 + ($mv - 1) * 4; elseif ($model['spc']['type'] === 'high') $spcLeft = 52 + ($mv - 1) * 3; else $spcLeft = 22 - ($mv - 1) * 3; @endphp
{{ $model['spc']['result'] }} {{ $model['spc']['unit'] }}
@endif @if (!empty($model['spc']['desc_ar']))
{!! $service->isolateLtrRuns($model['spc']['desc_ar']) !!}
@endif @endif {{-- ── SRBC (Stool RBC) ─────────────────────────────────────── --}} @if (!empty($model['srbc'])) @if ($model['srbc']['variant'] === 'option') @php $srbcColor = ($model['srbc']['is_hpf_range'] ?? false) ? '#000000' : (($model['srbc']['is_normal'] ?? false) ? 'rgb(120,201,38)' : 'rgb(221,52,68)'); @endphp
{{ $model['srbc']['label'] }}
@elseif ($model['srbc']['variant'] === 'numeric')
{{ $model['srbc']['min_normal'] }}
{{ $model['srbc']['max_normal'] }}
@if (!empty($model['srbc']['image']) && is_file($model['srbc']['image'])) @endif @php $srbcColor2 = ($model['srbc']['type'] === 'normal') ? 'rgb(120,201,38)' : 'rgb(221,52,68)'; $mv2 = (int) round($model['srbc']['move']); if ($model['srbc']['type'] === 'normal') $srbcLeft = 24 + ($mv2 - 1) * 4; elseif ($model['srbc']['type'] === 'high') $srbcLeft = 52 + ($mv2 - 1) * 3; else $srbcLeft = 22 - ($mv2 - 1) * 3; @endphp
{{ $model['srbc']['result'] }} {{ $model['srbc']['unit'] }}
@endif @if (!empty($model['srbc']['desc_ar']))
{!! $service->isolateLtrRuns($model['srbc']['desc_ar']) !!}
@endif @endif {{-- ── CYST ─────────────────────────────────────────────────── --}} @if (!empty($model['cyst'])) @if ($model['cyst']['variant'] === 'comment')
Parasite:{{ $model['cyst']['comment'] }}
@elseif ($model['cyst']['variant'] === 'unseen') @elseif ($model['cyst']['variant'] === 'seen') @elseif ($model['cyst']['variant'] === 'cstparts' && !empty($model['cyst']['image']) && is_file($model['cyst']['image'])) @elseif ($model['cyst']['variant'] === 'numbers' && !empty($model['cyst']['image']) && is_file($model['cyst']['image'])) @endif @if (!empty($model['cyst']['desc_ar']))
{!! $service->isolateLtrRuns($model['cyst']['desc_ar']) !!}
@endif @endif {{-- ── Ova ──────────────────────────────────────────────────── --}} @if (!empty($model['ova'])) @if ($model['ova']['variant'] === 'comment')
Parasite:{{ $model['ova']['comment'] }}
@elseif ($model['ova']['variant'] === 'unseen') @elseif ($model['ova']['variant'] === 'seen') @elseif ($model['ova']['variant'] === 'cstparts' && !empty($model['ova']['image']) && is_file($model['ova']['image'])) @elseif ($model['ova']['variant'] === 'numbers' && !empty($model['ova']['image']) && is_file($model['ova']['image'])) @endif @if (!empty($model['ova']['desc_ar']))
{!! $service->isolateLtrRuns($model['ova']['desc_ar']) !!}
@endif @endif {{-- ── Cyst Types (SCYSTT) ──────────────────────────────────── --}} @if (!empty($model['cyst_types'])) @php $cystStr = collect($model['cyst_types'])->pluck('name_en')->implode(', '); @endphp
أنواع الخراجات
Cyst/trophozoite
{{ $cystStr }}
@endif {{-- ── Oocyst ───────────────────────────────────────────────── --}} @if (!empty($model['oocyst'])) @php $oocystStr = collect($model['oocyst'])->pluck('name_en')->implode(', '); @endphp
البويضة
Oocyst
{{ $oocystStr }}
@endif {{-- ── Ova Types (SOVAT) ────────────────────────────────────── --}} @if (!empty($model['ova_types'])) @php $ovaStr = collect($model['ova_types'])->pluck('name_en')->implode(', '); @endphp
أنواع البويضات
Ova types
{{ $ovaStr }}
@endif {{-- ── Fat Globules (SFG) ───────────────────────────────────── --}} @if (!empty($model['sfg']))
كريات الدهون
Fat Globuls
@if (!empty($model['sfg']['image']) && is_file($model['sfg']['image'])) @endif @endif {{-- ── Yeast (SYE) ──────────────────────────────────────────── --}} @if (!empty($model['sye']))
خميرة
Yeast
@if (!empty($model['sye']['image']) && is_file($model['sye']['image'])) @endif @endif