Ladill Care
@php $member = auth()->user() ? app(\App\Services\Care\OrganizationResolver::class)->memberFor(auth()->user()) : null; $permissions = app(\App\Services\Care\CarePermissions::class); $organization = auth()->user() ? app(\App\Services\Care\OrganizationResolver::class)->resolveForUser(auth()->user()) : null; $nav = [ ['name' => 'Dashboard', 'route' => route('care.dashboard'), 'active' => request()->routeIs('care.dashboard'), 'icon' => ''], ]; if ($permissions->can($member, 'patients.view')) { $nav[] = ['name' => 'Patients', 'route' => route('care.patients.index'), 'active' => request()->routeIs('care.patients.*'), 'icon' => '']; } if ($permissions->can($member, 'appointments.view')) { $nav[] = ['name' => 'Appointments', 'route' => route('care.appointments.index'), 'active' => request()->routeIs('care.appointments.*'), 'icon' => '']; $nav[] = ['name' => 'Queue', 'route' => route('care.queue.index'), 'active' => request()->routeIs('care.queue.*') || request()->routeIs('care.consultations.*'), 'icon' => '']; } // Clinical assessments (layered intake / pathways) — on by default; toggle in Settings. $assessmentsEngineOn = $organization && app(\App\Services\Care\CareFeatures::class)->enabled( $organization, \App\Services\Care\CareFeatures::ASSESSMENTS_ENGINE, ); if ($assessmentsEngineOn && $permissions->can($member, 'assessments.view') && $permissions->can($member, 'patients.view')) { $nav[] = [ 'name' => 'Clinical forms', 'route' => route('care.patients.index', ['focus' => 'assessments']), 'active' => request()->routeIs('care.assessments.*') || request()->routeIs('care.pathways.*') || request()->routeIs('care.outcomes.*'), 'icon' => '', ]; } // Lab, pharmacy, billing, and Queue service counters are Pro/Enterprise modules. if (! empty($hasPaidPlan)) { if ($permissions->can($member, 'lab.view')) { $nav[] = ['name' => 'Laboratory', 'route' => route('care.lab.queue.index'), 'active' => request()->routeIs('care.lab.*'), 'icon' => '']; } if ($permissions->can($member, 'prescriptions.view')) { $nav[] = ['name' => 'Pharmacy queue', 'route' => route('care.prescriptions.queue'), 'active' => request()->routeIs('care.prescriptions.*') && ! request()->routeIs('care.pharmacy.*'), 'icon' => '']; } if ($permissions->can($member, 'pharmacy.view')) { $nav[] = ['name' => 'Inventory', 'route' => route('care.pharmacy.drugs.index'), 'active' => request()->routeIs('care.pharmacy.*'), 'icon' => '']; } if ($permissions->can($member, 'bills.view')) { $nav[] = ['name' => 'Billing', 'route' => route('care.bills.index'), 'active' => request()->routeIs('care.bills.*', 'care.obligations.*'), 'icon' => '']; } if ($permissions->can($member, 'reports.finance.view')) { $nav[] = ['name' => 'Reports', 'route' => route('care.reports.index'), 'active' => request()->routeIs('care.reports.*'), 'icon' => '']; } // Specialty modules (Settings → Modules) — no separate Service Queues nav; // Ladill Queue embeds on clinical / pharmacy / lab / specialty pages. $specialtyModules = app(\App\Services\Care\SpecialtyModuleService::class)->enabledModules($organization); foreach ($specialtyModules as $item) { $roles = $item['definition']['roles'] ?? []; if (is_array($roles) && $roles !== [] && $member && ! in_array($member->role, $roles, true)) { continue; } $nav[] = [ 'name' => $item['definition']['nav_label'] ?? $item['definition']['label'], 'route' => route('care.specialty.show', $item['key']), 'active' => request()->routeIs('care.specialty.show') && request()->route('module') === $item['key'], 'icon' => '', ]; } } $adminNav = []; if ($permissions->can($member, 'admin.departments.view')) { $adminNav[] = ['name' => 'Departments', 'route' => route('care.departments.index'), 'active' => request()->routeIs('care.departments.*'), 'icon' => '']; } if ($permissions->can($member, 'admin.practitioners.view')) { $adminNav[] = ['name' => 'Practitioners', 'route' => route('care.practitioners.index'), 'active' => request()->routeIs('care.practitioners.*'), 'icon' => '']; } if ($permissions->can($member, 'audit.view')) { $adminNav[] = ['name' => 'Audit log', 'route' => route('care.audit.index'), 'active' => request()->routeIs('care.audit.*'), 'icon' => '']; } $settingsActive = (request()->routeIs('care.settings*') && ! request()->routeIs('care.pro.*')) || request()->routeIs('care.branches.*') || request()->routeIs('care.members.*') || request()->routeIs('care.integrations*') || request()->routeIs('care.devices.*'); @endphp
@if ($permissions->can($member, 'settings.view')) Settings @endif @php $proActive = request()->routeIs('care.pro.*'); $issueActive = request()->routeIs('care.issues.*'); $isAccountOwner = \App\Support\StaffUx::showBilling(auth()->user()); @endphp @if ($isAccountOwner) @if (! empty($hasPaidPlan)) {{ ! empty($isEnterprise) ? 'Care Enterprise' : 'Care Pro' }} @else Upgrade to Pro @endif @else Report Issue @endif