Keep consultation context on nested clinical pages and add Call again on patient queue cards.
Deploy Ladill Care / deploy (push) Successful in 1m7s

Doctors can return to the active consultation from forms, lab, prescriptions, pathways, and bills; queue cards can re-announce called/serving tickets via the existing Queue recall bridge.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-17 17:48:34 +00:00
co-authored by Cursor
parent e73b39b678
commit 94e53d05bf
21 changed files with 615 additions and 30 deletions
@@ -12,6 +12,7 @@ use App\Models\Visit;
use App\Services\Care\AssessmentService;
use App\Services\Care\CareFeatures;
use App\Services\Care\CarePermissions;
use App\Services\Care\ConsultationReturnContext;
use App\Services\Care\FhirAssessmentExporter;
use App\Services\Care\OrganizationResolver;
use Illuminate\Http\JsonResponse;
@@ -54,6 +55,7 @@ class AssessmentController extends Controller
'statuses' => config('care.assessment_statuses'),
'categories' => config('care.assessment_template_categories'),
'filters' => $request->only(['status', 'template_code', 'category']),
'returnConsultation' => app(ConsultationReturnContext::class)->resolve($request, (int) $patient->id),
]);
}
@@ -111,8 +113,13 @@ class AssessmentController extends Controller
$context,
);
$return = app(ConsultationReturnContext::class);
return redirect()
->route('care.assessments.show', $assessment)
->route('care.assessments.show', array_filter([
'assessment' => $assessment,
...$return->routeQuery($request),
]))
->with('success', 'Assessment started.');
}
@@ -141,8 +148,14 @@ class AssessmentController extends Controller
],
);
$return = app(ConsultationReturnContext::class);
$return->remember($consultation);
return redirect()
->route('care.assessments.show', $assessment)
->route('care.assessments.show', array_filter([
'assessment' => $assessment,
...$return->query($consultation),
]))
->with('success', 'Assessment started.');
}
@@ -177,11 +190,15 @@ class AssessmentController extends Controller
}
}
$return = app(ConsultationReturnContext::class);
return view('care.assessments.show', [
'assessment' => $assessment,
'answersByCode' => $answersByCode,
'canEdit' => $canEdit,
'statuses' => config('care.assessment_statuses'),
'returnConsultation' => $return->resolve($request, (int) $assessment->patient_id)
?? $return->resolveLinked($request, $assessment->consultation),
]);
}
@@ -205,8 +222,13 @@ class AssessmentController extends Controller
array_key_exists('notes', $validated) ? $validated['notes'] : null,
);
$return = app(ConsultationReturnContext::class);
return redirect()
->route('care.assessments.show', $assessment)
->route('care.assessments.show', array_filter([
'assessment' => $assessment,
...$return->routeQuery($request),
]))
->with('success', 'Assessment saved.');
}
@@ -240,8 +262,13 @@ class AssessmentController extends Controller
$this->ownerRef($request),
);
$return = app(ConsultationReturnContext::class);
return redirect()
->route('care.assessments.show', $assessment)
->route('care.assessments.show', array_filter([
'assessment' => $assessment,
...$return->routeQuery($request),
]))
->with('success', 'Assessment completed.');
}