Overview
Build a rules-engine-driven workflow that automatically generates a full set of required certifications for a worker based on three inputs: Role, State, and Client/Hospital. Once generated, the system should manage the full lifecycle of each requirement — including status tracking, reminders, and renewals.
Problem
Today, certification requirements are manually determined and tracked, leading to:
- Missed or inconsistent requirements across similar placements
- Manual effort to look up what's needed per state/client
- Compliance gaps when certifications expire without notice
- No standardized process for renewals or reminder notifications
Proposed Solution
1. Rules Engine — Layered Requirement Logic
Requirements should be resolved by stacking rules in priority layers:
| Layer | Scope | Example |
| -- | -- | -- |
| Universal | All roles, all states, all clients | BLS, TB Test, Background Check, Drug Screen, HIPAA, OSHA, Fire Safety |
| Role-specific | By role | RN → ACLS, IV Cert, State License; CNA → Abuse Training; RT → Ventilator Competency |
| State-specific | By role + state | RN in California → COVID Vax, Hepatitis B; RN in CA/NY at certain hospitals → NRP |
| Client-specific | By role + client/hospital | Hospital clients → PALS, Restraint Training, Physical Exam; SNF clients → Dementia Care |
Example: An RN in California at Hospital A (Kaiser) would auto-receive:
- BLS, ACLS, PALS, NRP, TB, Flu, COVID, Hepatitis B, Background Check, Drug Screen, HIPAA, OSHA, Fire Safety, State License, IV Cert, Restraint Training, Physical Exam, Ventilator Competency
2. Certification Lifecycle Management
Each generated certification record should track:
- Status: Missing → Submitted → Active → Renewal Due → Expired
- Issue date and expiration date (auto-calculated from validity period)
- Renewal window (configurable per cert type, e.g., 60 days before expiry for BLS, 90 days for licenses)
- Non-expiring certs (e.g., Hepatitis B) marked as "Completed" with no renewal cycle
3. Reminders & Notifications
- Automated reminders sent when a certification enters its renewal window
- Escalation notifications if a cert expires without renewal
- Channels: Email + in-app notifications (SMS as a future enhancement)
- Configurable reminder cadence (e.g., 60 days, 30 days, 14 days, 7 days before expiry)
4. Admin Configuration
- Admin UI to manage rules (add/edit/remove cert requirements per role/state/client combination)
- Ability to bulk-update rules (e.g., "add COVID vaccination requirement to all California roles")
- Audit log of rule changes
Acceptance Criteria
- [ ] Given a Role + State + Client selection, the system auto-generates the correct set of required certifications
- [ ] Rules are layered (universal → role → state → client) and produce the union of all matching rules
- [ ] Each certification has a configurable validity period and renewal window
- [ ] Certifications auto-transition to "Renewal Due" status when entering their renewal window
- [ ] Certifications auto-transition to "Expired" when past their expiration date
- [ ] Reminder notifications are sent at configurable intervals before expiration
- [ ] Admins can create, edit, and delete rules via an admin interface
- [ ] Compliance percentage is calculated and visible per worker
- [ ] Non-expiring certifications (e.g., Hepatitis B) are handled correctly
Technical Considerations
- Rules engine should be data-driven (stored in DB, not hardcoded) for easy admin management
- Consider a
certification_rules table with columns: role, state, client, cert_type, validity_months, renewal_window_days
- Background job / cron for daily status checks and reminder dispatch
- API endpoints needed: generate requirements, update cert status, CRUD for rules, get compliance summary
Out of Scope (Future Enhancements)
- SMS notifications
- Integration with third-party credential verification services
- Worker self-service upload portal (separate ticket)
- Mobile push notifications