@include('care.partials.patient-header', [ 'patient' => $patient, 'outstandingMinor' => $patientHeaderMeta['outstanding_minor'] ?? 0, 'allergies' => $patientHeaderMeta['allergies'] ?? [], 'insuranceSummary' => $patientHeaderMeta['insurance_summary'] ?? null, 'emergency' => $patientHeaderMeta['emergency'] ?? false, 'currency' => $currency ?? 'GHS', ])

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

@if ($canManage) @else @endif

Personal information

National ID
{{ $patient->national_id ?? '—' }}
Email
{{ $patient->email ?? '—' }}
Address
{{ collect([$patient->address, $patient->city, $patient->region])->filter()->implode(', ') ?: '—' }}
Branch
{{ $patient->branch?->name ?? '—' }}
@if ($patient->notes)

{{ $patient->notes }}

@endif

Medical history

Allergies

@forelse ($patient->allergies as $allergy)

{{ $allergy->allergen }} ({{ $allergySeverities[$allergy->severity] ?? $allergy->severity }})

@empty

None recorded

@endforelse

Conditions

@forelse ($patient->conditions as $condition)

{{ $condition->condition }}@if ($condition->is_chronic) (chronic)@endif

@empty

None recorded

@endforelse

Family history

@forelse ($patient->familyHistory as $entry)

{{ $entry->relation }}: {{ $entry->condition }}

@empty

None recorded

@endforelse

Visit & clinical history

Recent visits

@forelse ($visits as $visit)

{{ $visit->checked_in_at?->format('d M Y H:i') ?? '—' }} · {{ config('care.visit_statuses')[$visit->status] ?? $visit->status }} @if ($visit->branch) · {{ $visit->branch->name }} @endif

@empty

No visits yet

@endforelse

Consultations

@forelse ($consultations as $consultation)

{{ $consultation->started_at?->format('d M Y') ?? '—' }} @if ($consultation->practitioner) · {{ $consultation->practitioner->name }} @endif @if ($consultation->diagnoses->isNotEmpty()) — {{ $consultation->diagnoses->first()->description }} @endif

@empty

No consultations yet

@endforelse

Laboratory

@forelse ($laboratory as $lab)

{{ $lab->investigationType->name }} · {{ $lab->completed_at?->format('d M Y') ?? '—' }} @if ($lab->result?->is_abnormal) abnormal @endif

@empty

No lab results yet

@endforelse

Prescriptions

@forelse ($prescriptions as $rx)

{{ $rx->created_at->format('d M Y') }} · {{ config('care.prescription_statuses')[$rx->status] ?? $rx->status }} · {{ $rx->items->pluck('name')->take(2)->join(', ') }}

@empty

No prescriptions yet

@endforelse
@if ($canViewAssessments ?? false)

Assessments

View all
@if ($latestUniversalIntake ?? null) @php $ccAnswer = $latestUniversalIntake->answers->first(fn ($a) => $a->question?->code === 'chief_complaint'); @endphp

Patient history form

{{ $assessmentStatuses[$latestUniversalIntake->status] ?? $latestUniversalIntake->status }} · {{ $latestUniversalIntake->created_at?->format('d M Y') ?? '—' }}

@if ($ccAnswer)

{{ \Illuminate\Support\Str::limit((string) $ccAnswer->authoritativeValue(), 120) }}

@endif
@endif @forelse ($recentAssessments as $assessment)

{{ $assessment->template->name }} · {{ ($assessmentStatuses[$assessment->status] ?? $assessment->status) }} · {{ $assessment->created_at?->format('d M Y') ?? '—' }}

@empty

No assessments yet

@endforelse @if ($canViewAssessments ?? false)

@if ($canCaptureAssessment ?? false) Start assessment @endif Condition pathways Follow-up scores

@endif
@endif
@include('care.partials.patient-timeline', ['events' => $patientTimeline ?? []]) @if ($canManage)

Message patient

Uses suite messaging by default (no API keys). Account messaging settings · Advanced keys

@if (! ($messagingSmsReady ?? false) || ! ($messagingEmailReady ?? false))

@if (! ($messagingSmsReady ?? false) && ! ($messagingEmailReady ?? false)) Messaging is not available yet. Bind a mailbox under Account → Messaging once platform keys are configured, or connect product keys under Integrations. @elseif (! ($messagingSmsReady ?? false)) SMS is not available (platform SMS key missing and no product SMS credentials). @else Email is not available (platform email key missing and no Bird credentials). Set a mailbox under Account → Messaging when suite email is live. @endif

@endif
@csrf

To: {{ $patient->phone ?: 'no phone on file' }}

@csrf

To: {{ $patient->email ?: 'no email on file' }}

@endif

Emergency contacts

@forelse ($patient->emergencyContacts as $contact)

{{ $contact->name }}@if ($contact->is_primary) (primary)@endif

{{ $contact->phone }} · {{ $contact->relationship ?? '—' }}

@empty

None recorded

@endforelse

Insurance

@forelse ($patient->insurancePolicies as $policy)

{{ $policy->provider_name }}

{{ $policy->policy_number ?? '—' }} · {{ $policy->coverage_type ?? '—' }}

@empty

None recorded

@endforelse
@php $money = fn ($minor) => config('care.billing.currency').' '.number_format($minor / 100, 2); @endphp

Billing

@forelse ($invoices as $invoice)
{{ $invoice->invoice_number }}

{{ $invoice->created_at->format('d M Y') }} · {{ $money($invoice->total_minor) }} · {{ config('care.bill_statuses')[$invoice->status] ?? $invoice->status }}

@empty

No invoices yet

@endforelse

Documents