{{-- resources/views/probation/cases/_treatment_plan.blade.php Tool C โ Individual Treatment Plan (Sentence plan, from Tool A = RNR). Areas flagged in the latest RNR come first, open, with the RNR comments as a starting point for "Needs". Every area filled in is mirrored in the Interventions tab automatically when saved. --}} @php $areas = config('probation_supervision.treatment_areas'); $instAreas = config('probation_supervision.treatment_areas_institution'); $statuses = config('probation_supervision.intervention_statuses'); $items = $case->treatmentPlan->keyBy('area'); $others = $case->treatmentPlan->where('area', 'other')->values(); $rnr = $case->assessments->where('tool', 'RNR')->sortByDesc('id')->first(); $rr = optional($rnr)->responses ?? []; $flagged = function ($a) use ($rr) { return $a['rnr'] && (($rr['summary'][$a['rnr']] ?? 'N') === 'Y'); }; // flagged areas first, keep config order otherwise $ordered = collect($areas)->sortBy(fn ($a, $k) => ($flagged($a) ? 0 : 1) . str_pad(array_search($k, array_keys($areas)), 3, '0', STR_PAD_LEFT)); $nFlagged = collect($areas)->filter($flagged)->count(); $instOpen = $case->treatmentPlan->whereIn('area', array_keys($instAreas))->count() > 0 || $case->case_type === 'aftercare_borstal'; $officer = optional($case->officer)->name; $ivBadge = function ($item) use ($statuses) { $iv = optional($item)->intervention; if (!$iv) return ''; $cls = ['planned' => 'bg-secondary', 'ongoing' => 'bg-primary', 'completed' => 'bg-success'][$iv->status] ?? 'bg-secondary'; return 'Intervention ยท ' . e($statuses[$iv->status] ?? $iv->status) . ''; }; @endphp