nhance/enrollment-dashboard.md
2026-06-05 11:32:52 +05:30

5.1 KiB

Enrollment Collection V1 — HR Dashboard API

Created: 2026-06-03
Controller: App\Controllers\EnrollmentCollectionV1DashboardController
Model: App\Models\EnrollmentCollectionV1DashboardModel
Source queries: metabase_raw_queries.csv → collection Enrollment Collection V1
Base app URL (local): https://localhost/PHP828APPS/ruc/nhance/index.php
Total KPIs: 10


Overview

All Enrollment Collection V1 KPIs from Enrollment Collection V1 are implemented as PHP model methods.
SQL uses Metabase param {{client_policy_id}} → CodeIgniter bind :client_policy_id:.

What URL fragment Use case
Single KPI kpi/{slug or Metabase id} One card at a time
All KPIs all Full enrollment dashboard (10 KPIs)
Debug / preview debug / preview Admin / FE testing

Query param: client_policy or client_policy_id (required for kpi / all).


Route stacks

1. Admin — authMVC

Prefix: util/enrollment-collection-v1

Method Path Purpose
GET util/enrollment-collection-v1/preview UI debug grid
GET util/enrollment-collection-v1/preview/{policy_id} Same, policy in URL
GET util/enrollment-collection-v1/debug Raw JSON (all KPIs)
GET util/enrollment-collection-v1/debug/{policy_id} Same, policy in URL
GET util/enrollment-collection-v1/all JSON — all 6 KPIs
GET util/enrollment-collection-v1/kpi/{slug|id} JSON — single KPI

2. Frontend / HR App — authJWT

Prefix: employeeRest/enrollment-collection-v1

Same paths as above under employeeRest/ (Bearer + X-App-Signature).


How to call

Important: Admin routes live under the util/ prefix (same as util/claims-collection-v2).
enrollment-collection-v1/preview without util/ will return 404.

GET /index.php/util/enrollment-collection-v1/preview?client_policy=4687
GET /index.php/util/enrollment-collection-v1/all?client_policy=4687
GET /index.php/util/enrollment-collection-v1/kpi/originally_enrolled?client_policy=4687
GET /index.php/util/enrollment-collection-v1/kpi/117?client_policy=4687
GET /index.php/util/enrollment-collection-v1/debug?client_policy=4687

Full local example:

https://localhost/PHP828APPS/ruc/nhance/index.php/util/enrollment-collection-v1/preview?client_policy=4687

All 10 KPIs

Metabase ID Method slug Label Rows
115 originally_enrolled Originally Enrolled single
116 added_subsequently Added Subsequently single
117 gender_split Gender Split multi
119 enrollment_relationship Relationship multi
122 average_age_by_enrollment_month Average age by Enrolment month multi
123 original_base_premium Original Base Premium single
124 overall_active Overall Active single
125 enrollment_age_group Age Group multi
126 additions_premium Additions Premium single
127 net_premium Net Premium single

Slug enrollment_relationship avoids clashing with Claims V2 claim_amount_by_relationship (ticket-level).


Output columns

Slug Key row fields
originally_enrolled Originally Enrolled
added_subsequently Subsequent Additions
gender_split gender, member_count, percentage
enrollment_relationship relationship, member_count, percentage
average_age_by_enrollment_month enrollment_month, month_label, average_age, enrollments
original_base_premium opening_premium
overall_active Overall Active
enrollment_age_group age_group, member_count, percentage
additions_premium additions_premium
net_premium net_premium

Sample all response (excerpt)

{
  "status": true,
  "policy_id": 4687,
  "data": {
    "originally_enrolled": {
      "id": 115,
      "label": "Originally Enrolled",
      "rows": [{ "Originally Enrolled": "320" }]
    },
    "gender_split": {
      "id": 117,
      "label": "Gender Split",
      "rows": [
        { "gender": "Male", "member_count": "180", "percentage": "56.25" }
      ]
    }
  }
}

Files

File Purpose
app/Models/EnrollmentCollectionV1DashboardModel.php KPI SQL, KPI_MAP, KPI_LABELS
app/Controllers/EnrollmentCollectionV1DashboardController.php kpi(), all(), preview(), debug()
app/Views/enrollment_collection_v1_dashboard.php Preview UI
app/Config/Routes.php enrollment-collection-v1 groups (util + employeeRest)
tests/smoke_enrollment_collection_v1.php php tests/smoke_enrollment_collection_v1.php 4687
enrollment-dashboard.md This document

  • Claims dashboard: hr-dashboard.mdclaims-collection-v2 (36 KPIs)

BE notes

  • Run php tests/smoke_enrollment_collection_v1.php {policy_id} after model changes.
  • Status filters in CSV use 'Active' (capital A) for some KPIs; kept as in Metabase export.