{{-- ─── Print area ───────────────────────────────────────────── --}}
نسخه
@php $patientName = $prescription->patientRecord?->full_name ?? ''; $nameLength = mb_strlen($patientName, 'UTF-8'); $nameClass = 'patient-name'; if ($nameLength > 20) { $nameClass .= ' very-long-name'; } elseif ($nameLength > 14) { $nameClass .= ' long-name'; } $dateStr = $prescription->issue_date ?? ''; if ($dateStr && preg_match('/^\d{4}-\d{2}-\d{2}/', $dateStr)) { try { $dateStr = \Morilog\Jalali\Jalalian::fromCarbon(\Carbon\Carbon::parse($dateStr))->format('Y/m/d'); } catch (\Exception $e) {} } @endphp
{{ $patientName }}
{{ $dateStr }}
@if ($type === 'lab') @foreach (['CBC','PT/PTT/INR','BS','HIV/Ab     HBS/Ag     Hcv/Ab'] as $test) @endforeach
- {!! $test !!}
@else @php $content = $prescription->content ?? ''; preg_match_all('/]*>(.*?)<\/li>/s', $content, $m); $lines = $m[1] ?? []; if (empty($lines)) { $cleaned = preg_replace('//i', "\n", $content); $lines = explode("\n", strip_tags($cleaned)); } $lines = array_values(array_filter( array_map(fn ($l) => html_entity_decode(trim(strip_tags($l)), ENT_QUOTES, 'UTF-8'), $lines) )); @endphp @foreach ($lines as $line) @php $parts = preg_split('/\s+/', trim($line)); $type_str = array_shift($parts); $freq = !empty($parts) ? array_pop($parts) : ''; $count = $dose = ''; $nameParts = []; foreach ($parts as $p) { if (str_starts_with($p, '#') && $count === '') { $count = $p; } elseif (preg_match('/^\d+(mg|g|ml|mcg|iu)$/i', $p) && $dose === '') { $dose = $p; } else { $nameParts[] = $p; } } $drugName = implode(' ', $nameParts); @endphp @endforeach
- {{ $type_str }} {{ $drugName }} {{ $dose }} {{ $count }} {{ $freq }}
@endif