Year End HSEQ Review
The Year End HSEQ Review module allows admin users to create annual review documents that summarize the year's MOC activity, assess effectiveness, and document improvement actions.
Overview
This module is accessible only to Admin users from the sidebar under "Year End HSEQ Review".
Feature location: src/features/year_end_review/
Creating a Review
Navigate to Year End HSEQ Review → Create New to start a new review document.
The review editor presents a structured document with the following sections:
| Section | Content |
|---|---|
| Purpose and Scope | Editable rich text (pre-filled with template content) |
| BSM Procedure 023 | Reference to the BSM procedure governing MOC |
| TMSA Element 7 | Reference to the TMSA element for management of change |
| Participants | Table of assigned participants for the review |
| MOCs Generated | Auto-populated table of MOCs created during the review year |
| Effectiveness | Narrative assessment of the year's MOC effectiveness |
| Improvements | List of improvements identified (multi-entry input) |
| Issues Noticed | List of issues encountered (multi-entry input) |
| Actions | List of actions to be taken (multi-entry input) |
| Review Metadata | Prepared by, department name, reviewed by, date of review |
The document sections are pre-filled with template content defined in:
src/features/year_end_review/utils/end_of_year_json.tsx
Editing a Review
Navigate to Year End HSEQ Review → Recent Reviews to see all previously created reviews. Click on a review to open it in edit mode.
In edit mode, the same editor is displayed with the saved data pre-populated. Changes can be saved with or without full validation.
Document Structure
The review document uses a split layout:
- Main editor — Rich text sections rendered through
EndOfYearWrapperEditor - Sidebar — Sticky table of contents for quick section navigation via
EndOfYearReviewTableOfContentsComponent
Data Model
Year-end reviews are stored using a flexible schema (src/models/end_year.ts) with strict: false, allowing any fields to be stored. The key data structure is:
interface FinalYearEndData {
effectiveness: string;
improvements: string[];
issuesNoticed: string[];
actions: string[];
reviewMinutesPreparedBy: string;
departmentName: string;
reviewByDepartmentHead: string;
dateOfReview: string;
}
API
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/year-end-review | Fetch all reviews or a specific review by id query param |
| POST | /api/year-end-review | Create a new review |
| PUT | /api/year-end-review?id={id} | Update an existing review |