@if (! $patient) Search by name, MRN, phone or national ID.
@if ($patientQuery !== '' && $matches->isEmpty())

No patient matches “{{ $patientQuery }}”.

@endif @if ($matches->isNotEmpty()) @elseif ($patientQuery === '')

Search the register above. Once the patient is selected, the schedule form opens with their immunization history beside it, so the next dose of each course is suggested.

@endif
@else
Doses already given roll the next one forward automatically by the vaccine's interval — scheduling here starts or continues a course by hand.
@csrf @if ($errors->any())

The dose was not scheduled.

    @foreach ($errors->all() as $message)
  • {{ $message }}
  • @endforeach
@endif
Choose another patient

{{ $patient->full_name }}

{{ $patient->medical_record_number }}

{{ $patient->age_display }} · {{ $patient->gender_label }} @if ($patient->phone) · {{ $patient->phone }} @endif

@if ($patient->isRestricted())

Restricted record — access is logged.

@endif
@if ($history->isEmpty()) Nothing has been scheduled or given for this patient yet — the dose above starts the record. @else
    @foreach ($history as $entry)
  • {{ $entry->vaccine?->name ?? 'Unknown vaccine' }} · dose {{ $entry->dose_number }}

    @if ($entry->status === 'administered') Given {{ $entry->administered_at?->format('d M Y') }} @else Due {{ $entry->scheduled_date?->format('d M Y') }} @endif @if ($entry->vaccine && $entry->vaccine->doses_required > 1) · of {{ $entry->vaccine->doses_required }} @endif

  • @endforeach
@endif
@endif