Show nursing care on patient chart for floor nurses.
Deploy Ladill Care / deploy (push) Successful in 1m11s
Deploy Ladill Care / deploy (push) Successful in 1m11s
Nurses without consult rights see unit placement, MAR, nursing assessments, and meds/labs instead of the GP consult/pathways toolkit. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -193,33 +193,83 @@ class PatientController extends Controller
|
||||
if ($assessmentsEnabled) {
|
||||
$careFeatures->ensureAssessmentCatalog();
|
||||
}
|
||||
|
||||
$isNurseStation = $permissions->can($member, 'nursing.station.view');
|
||||
$canConsult = $permissions->can($member, 'consultations.manage');
|
||||
$canViewLab = $permissions->can($member, 'lab.view') || $permissions->can($member, 'lab.results.view');
|
||||
$canViewRx = $permissions->can($member, 'prescriptions.view') || $permissions->can($member, 'prescriptions.manage');
|
||||
$canViewBills = $permissions->can($member, 'bills.view');
|
||||
$canViewMar = $permissions->can($member, 'mar.view') || $permissions->can($member, 'mar.manage');
|
||||
|
||||
$canViewAssessments = $assessmentsEnabled && $permissions->can($member, 'assessments.view');
|
||||
$canCaptureAssessment = $assessmentsEnabled && (
|
||||
// GP instruments / pathways CTAs stay consult-gated; nurses capture via unit boards.
|
||||
$canCaptureAssessment = $assessmentsEnabled && $canConsult && (
|
||||
$permissions->can($member, 'assessments.capture')
|
||||
|| $permissions->can($member, 'assessments.manage')
|
||||
);
|
||||
$canViewPathways = $canConsult && $permissions->can($member, 'pathways.manage');
|
||||
|
||||
$recentAssessments = collect();
|
||||
$latestUniversalIntake = null;
|
||||
$nursingAssessments = collect();
|
||||
$activePlacedVisit = null;
|
||||
$latestVitals = null;
|
||||
|
||||
if ($canViewAssessments) {
|
||||
$branchScope = app(OrganizationResolver::class)->branchScope($member);
|
||||
$recentAssessments = $patient->assessments()
|
||||
$assessmentQuery = $patient->assessments()
|
||||
->with('template')
|
||||
->when($branchScope, fn ($q) => $q->where('branch_id', $branchScope))
|
||||
->orderByDesc('created_at')
|
||||
->limit(10)
|
||||
->get();
|
||||
->orderByDesc('created_at');
|
||||
|
||||
$latestUniversalIntake = $patient->assessments()
|
||||
->with(['template', 'answers.question'])
|
||||
->when($branchScope, fn ($q) => $q->where('branch_id', $branchScope))
|
||||
->whereHas('template', fn ($q) => $q->where('code', 'universal_intake'))
|
||||
->whereIn('status', [\App\Models\Assessment::STATUS_DRAFT, \App\Models\Assessment::STATUS_COMPLETED])
|
||||
->orderByDesc('created_at')
|
||||
if ($isNurseStation && ! $canConsult) {
|
||||
$nursingAssessments = (clone $assessmentQuery)
|
||||
->whereHas('template', fn ($q) => $q->whereIn(
|
||||
'code',
|
||||
\App\Services\Care\NursingAssessmentService::NURSING_PACK_CODES,
|
||||
))
|
||||
->limit(10)
|
||||
->get();
|
||||
} else {
|
||||
$recentAssessments = (clone $assessmentQuery)->limit(10)->get();
|
||||
$latestUniversalIntake = $patient->assessments()
|
||||
->with(['template', 'answers.question'])
|
||||
->when($branchScope, fn ($q) => $q->where('branch_id', $branchScope))
|
||||
->whereHas('template', fn ($q) => $q->where('code', 'universal_intake'))
|
||||
->whereIn('status', [\App\Models\Assessment::STATUS_DRAFT, \App\Models\Assessment::STATUS_COMPLETED])
|
||||
->orderByDesc('created_at')
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
||||
if ($isNurseStation) {
|
||||
$activePlacedVisit = $patient->visits()
|
||||
->whereIn('status', [Visit::STATUS_OPEN, Visit::STATUS_IN_PROGRESS])
|
||||
->whereNotNull('care_unit_id')
|
||||
->with(['careUnit', 'bed'])
|
||||
->orderByDesc('placed_at')
|
||||
->first();
|
||||
|
||||
if ($activePlacedVisit) {
|
||||
$latestVitals = \App\Models\VisitVital::owned($this->ownerRef($request))
|
||||
->where('visit_id', $activePlacedVisit->id)
|
||||
->orderByDesc('recorded_at')
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
||||
return view('care.patients.show', array_merge($dashboard, [
|
||||
'canManage' => $canManage,
|
||||
'isNurseStation' => $isNurseStation,
|
||||
'canConsult' => $canConsult,
|
||||
'canViewLab' => $canViewLab,
|
||||
'canViewRx' => $canViewRx,
|
||||
'canViewBills' => $canViewBills,
|
||||
'canViewMar' => $canViewMar,
|
||||
'canViewPathways' => $canViewPathways,
|
||||
'activePlacedVisit' => $activePlacedVisit,
|
||||
'latestVitals' => $latestVitals,
|
||||
'nursingAssessments' => $nursingAssessments,
|
||||
'messagingSmsReady' => $suiteSmsReady || $credential->hasValidSms(),
|
||||
'messagingEmailReady' => $suiteEmailReady || $credential->hasValidBird(),
|
||||
'suiteMessagingReady' => $suiteEmailReady || $suiteSmsReady,
|
||||
|
||||
Reference in New Issue
Block a user