fix(assessments): enable engine by default and wire into live UI
Deploy Ladill Care / deploy (push) Successful in 54s

The assessment engine was built but opt-in and hidden: flag defaulted
off, no sidebar entry, and no settings toggle. Default assessments_engine
on, auto-seed catalog when empty, add Settings toggle and Assessments
nav, and surface guidance from the patients list.
This commit is contained in:
isaacclad
2026-07-16 23:05:48 +00:00
parent 2ce4bc8993
commit f6780b9958
13 changed files with 120 additions and 4 deletions
+12 -1
View File
@@ -23,13 +23,24 @@
@endif
</x-care.page-hero>
@if (request('focus') === 'assessments')
<div class="rounded-2xl border border-sky-100 bg-sky-50 px-4 py-3 text-sm text-sky-900">
<p class="font-medium">Clinical assessments</p>
<p class="mt-1 text-sky-800/90">
Open a patient chart for assessments, pathways, and outcomes or start a visit from
<a href="{{ route('care.queue.index') }}" class="font-medium underline">Queue</a>
and use <strong>Universal intake</strong> / <strong>Clinical pathways</strong> on the consultation.
</p>
</div>
@endif
<form method="GET" class="flex flex-wrap gap-3 rounded-2xl border border-slate-200 bg-white p-4">
<input type="search" name="q" value="{{ request('q') }}" placeholder="Name, phone, patient ID, national ID…"
class="min-w-[200px] flex-1 rounded-lg border-slate-300 text-sm">
<input type="date" name="date_of_birth" value="{{ request('date_of_birth') }}"
class="rounded-lg border-slate-300 text-sm" title="Date of birth">
<button type="submit" class="btn-primary">Search</button>
@if (request()->hasAny(['q', 'date_of_birth', 'phone', 'national_id', 'patient_number']))
@if (request()->hasAny(['q', 'date_of_birth', 'phone', 'national_id', 'patient_number', 'focus']))
<a href="{{ route('care.patients.index') }}" class="rounded-lg border border-slate-200 px-4 py-2 text-sm text-slate-600">Clear</a>
@endif
</form>
@@ -89,6 +89,21 @@
@endif
@if ($canManage)
<x-settings.card title="Clinical assessments" description="Layered intake, disease pathways (stroke, diabetes, COPD, …), scoring instruments, and outcome tracking on consultations and patient charts.">
<label class="flex items-start gap-3 text-sm">
<input type="checkbox" name="assessments_engine" value="1"
@checked(old('assessments_engine', $assessmentsEngineEnabled ?? true))
class="mt-0.5 rounded border-slate-300">
<span>
<span class="font-medium text-slate-800">Enable clinical assessments engine</span>
<span class="mt-0.5 block text-xs text-slate-500">
Shows universal intake, pathway suggestions, and disease forms on consultations.
Open a patient consultation (Queue) or patient chart Assessments / Pathways / Outcomes.
</span>
</span>
</label>
</x-settings.card>
<x-settings.card title="Messaging" description="Patient email and SMS use suite messaging by default — no Bird or SMS API keys required.">
<p class="text-sm text-slate-600">
Set a Ladill mailbox (From address) and optional SMS sender ID under Account Messaging.
@@ -30,6 +30,23 @@
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.25 4.5h13.5a.75.75 0 0 1 .75.75v15.75a.75.75 0 0 1-.75.75H5.25a.75.75 0 0 1-.75-.75V5.25a.75.75 0 0 1 .75-.75Z" />'];
}
// 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' => 'Assessments',
'route' => route('care.patients.index', ['focus' => 'assessments']),
'active' => request()->routeIs('care.assessments.*')
|| request()->routeIs('care.pathways.*')
|| request()->routeIs('care.outcomes.*'),
'icon' => '<path stroke-linecap="round" stroke-linejoin="round" d="M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z" />',
];
}
// Lab, pharmacy, billing, and Queue service counters are Pro/Enterprise modules.
if (! empty($hasPaidPlan)) {
if ($permissions->can($member, 'lab.view')) {