@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)
| - |
{!! $test !!} |
@endforeach
@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
| - |
{{ $type_str }} |
{{ $drugName }} |
{{ $dose }} |
{{ $count }} |
{{ $freq }} |
@endforeach
@endif