Skip to main content
Version: Next

Reports

Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: Analytical and statistical report generation, viewing, and export for PCR run data Domain: REPORTS


Statement

The system shall generate, display, and export analytical and statistical reports from PCR run data, including Levey Jennings quality control charts, outcome trends analysis, and detailed outcomes reporting.

Reports provide quality control monitoring through Westgard-tracked control performance visualization, trend analysis with configurable alerting, and detailed outcome data for runs and wells. Users can create datasets through filter selection, navigate to related data, export to multiple formats, and receive notifications when alert thresholds are exceeded. Multi-site managers can view and filter data across sites, while role-based access controls feature availability.


Behavior Overview (Illustrative)

This diagram illustrates the high-level report generation behavior. It does not specify UI layout, styling, or interaction details.


Definitions

TermDefinition
Levey Jennings (LJ) ChartA quality control chart that displays control measurements over time with statistical limits
Westgard RulesStatistical rules for evaluating quality control data, typically using mean and standard deviation bands
Standard Deviation (SD)A measure of the amount of variation in a set of values
Coefficient of Variation (CV)The ratio of the standard deviation to the mean, expressed as a percentage
RangeA named time period with associated Mean, SD, and CV values for Westgard tracking
Crossover WellA well that appears in multiple contexts (e.g., repeated across runs)
Extraction DateThe date when sample extraction was performed on the instrument
ControlA sample with known expected outcome used for quality assurance
OutcomeThe final result classification for a well (e.g., Positive, Negative, Invalid)
AggregationCombining data across multiple categories into summary statistics

Assumptions

SME confirmed 2026-01-20.

  • Users accessing report features have at minimum Junior User role permissions
  • Run data exists in the system before reports can be generated
  • At least one mix with Westgard-tracked controls is configured for Levey Jennings reporting
  • Multi-site features are only visible to Manager role users when multi-site mode is enabled
  • Archived runs are always excluded from reports and cannot be included unless unarchived first

Functional Requirements

Levey Jennings Reporting (REQ-REPORTS-001 through REQ-REPORTS-007)

FR-REPORTS-001 Generate Levey Jennings Report

The system shall generate a Levey Jennings report displaying Westgard-tracked control performance over time through chart visualization and tabular data.

Acceptance Criteria:

Chart Display:

  • Display a Levey Jennings chart with control data points plotted against time
  • Display statistical bands (Mean, +/-1SD, +/-2SD, +/-3SD) on the chart
  • Y-axis range shall be +/- 4 standard deviations from mean
  • Chart background colors shall indicate zones: Green (within 1SD), Yellow (1-2SD), Red (2-3SD), Grey (beyond 3SD)
  • When multiple extraction instruments are selected, mean/SD lines shall be hidden and background colors disabled by default

Data Table:

  • Display a data table with control measurements
  • Table shall include: Date, Control Name, Range Name, Thermocycler, Extraction Instrument, CT/Quantity, Mean, SD, CV, Event
  • Sort data by Extraction Date
  • Provide page navigation for large datasets

Data Representation:

  • Display controls based on error status: normal, resolved error, unresolved error
  • Round CT values to nearest integer on display
  • When Westgard settings have been updated, display a notification banner

Trace: Source: 3.0.0-Levey Jennings report (Rows 1, 2, 34-50, 51-58) | Tests: See scenarios


FR-REPORTS-002 Create Levey Jennings Dataset

The system shall allow users to create a filtered dataset for the Levey Jennings report by selecting criteria from filter controls.

Acceptance Criteria:

Filter Options:

  • Provide filters for: Date Range, Mixes, Target, Control, Control Type, Thermocycler, Extraction Instrument, Range Name
  • Control Type, Thermocycler, and Extraction Instrument shall support multi-select

Dynamic Behavior:

  • Filter options shall update dynamically based on previous selections
  • Filters with no available options shall be disabled
  • Filters with only one option shall auto-select that option
  • Generate the dataset upon user confirmation

Trace: Source: 3.0.0-Levey Jennings report (Rows 3-8, 69) | Tests: See scenarios


FR-REPORTS-003 Navigate from Levey Jennings Report

The system shall allow users to navigate from the Levey Jennings report to related data for detailed information.

Acceptance Criteria:

  • Selecting a data point shall display detailed information for that point
  • Selecting a table row shall navigate to the associated runfile
  • Provide a control to clear all filter selections
  • Support standard page navigation (back, breadcrumbs)

Trace: Source: 3.0.0-Levey Jennings report (Rows 59-62) | Tests: See scenarios


FR-REPORTS-004 Export Levey Jennings Report

The system shall allow users to export Levey Jennings report data to a file format.

Acceptance Criteria:

  • Export shall include column headers matching displayed table columns
  • Event column shall include Westgard configuration events
  • Export shall include newly created ranges not yet visible in table
  • Export shall include Site column when multi-site is enabled

Trace: Source: 3.0.0-Levey Jennings report (Rows 9-12, 66, 83) | Tests: See scenarios


FR-REPORTS-005 Manage Westgard Ranges

The system shall allow users to view, create, and edit Westgard statistical ranges for controls.

Acceptance Criteria:

Range Creation:

  • Allow creation of new ranges with: Name, Start Date, CT/Quantity type, Mean, Standard Deviation
  • Range names shall be unique within the control
  • End date of a range shall be automatically set to the start date of the next range

Range Values:

  • Mean shall be a positive number
  • Standard Deviation shall be greater than zero
  • CV shall be calculated and displayed as a percentage
  • Benchmark CV shall be enterable manually
  • Each range shall have single Mean/SD/CV values

Editing:

  • Calculate Mean/SD based on visible graph data upon user request
  • Existing ranges with associated controls shall have date range editing restricted
  • Changes shall require user confirmation before saving
  • Edit settings shall be disabled until all required filters are filled

Error Handling:

  • Standard Deviation is zero or negative: Display validation error and prevent save
  • Mean is negative: Display validation error and prevent save
  • Duplicate range name: Display "Range name must be unique within this control"

Trace: Source: 3.0.0-Levey Jennings report (Rows 13-33, 64-65, 67-68, 70), 3.0.0-Settings - Validate SD | Tests: See scenarios


FR-REPORTS-006 Bulk Edit Westgard Limits

The system shall allow Senior and Super-Admin users to update Westgard limits for multiple controls simultaneously.

Acceptance Criteria:

  • Updates shall apply to all Westgard limits matching the current selection
  • Future unused Westgard limits shall be ignored during bulk updates
  • Display warnings for invalid date ranges
  • Require confirmation before applying changes to multiple extraction instruments

Trace: Source: 3.0.0-Levey Jennings report (Rows 71-76), 3.0.0-Enable edit westgard button, 3.0.0-Add create ranges form | Tests: [Pending]


FR-REPORTS-007 Configure Westgard Display Options

The system shall allow users to configure display options for the Levey Jennings chart.

Acceptance Criteria:

  • Provide toggles for: Show Mean, Show SD Lines, Show Bands
  • Provide a legend showing symbol meanings
  • When multiple extraction instruments are selected, optionally display Westgard bands
  • Provide secondary priority ordering configuration for Westgard-tracked controls

Trace: Source: 3.0.0-Levey Jennings report (Rows 52-58, 63), 3.0.0-Show westgard bands in LJ Report for multiple e-instruments, 3.0.0-Select Second Priority of ordering Westgards | Tests: [Pending]


Trends Reporting (REQ-REPORTS-008 through REQ-REPORTS-015)

The system shall generate a Trends report displaying outcome trends over time through chart visualization and tabular data.

Acceptance Criteria:

Chart Display:

  • Display a trends chart with outcomes plotted over time
  • X-axis shall display date/time based on selected interval (Day/Week/Month)
  • Y-axis shall display count or percentage
  • Outcome colors shall be consistent with system color scheme

Data Table:

  • Display a data table with: Date, Outcome, Count, Percentage
  • Control outcomes shall be included and distinguished from patient well outcomes

Trace: Source: 3.0.0-Trends Report (Rows 2-4, 27-29, 32-42) | Tests: See scenarios


The system shall allow users to create a filtered dataset for the Trends report by selecting criteria from filter controls.

Acceptance Criteria:

Filter Options:

  • Provide filters for: Date Range, Mix, Target, Outcome, Interval
  • Outcome options shall be populated based on mix/target selection

Dynamic Behavior:

  • Filter options shall update dynamically based on previous selections
  • Filter selections shall be remembered during the session
  • Extraction date shall be used for date filtering
  • Generate the dataset upon user confirmation

Trace: Source: 3.0.0-Trends Report (Rows 14-23, 63-64), 3.0.0-Use Extraction Date Instead of Runfile Created At | Tests: See scenarios


The system shall allow users to navigate from the Trends report to related data for detailed information.

Acceptance Criteria:

  • Selecting a data point or row shall navigate to the Outcomes Report with matching filters
  • Support standard page navigation (back, breadcrumbs)

Trace: Source: 3.0.0-Trends Report (Rows 1, 47) | Tests: [Pending]


The system shall allow users to export and print the Trends report data.

Acceptance Criteria:

Export:

  • Export to Excel shall be supported
  • Export to CSV shall be supported
  • Export shall include all displayed columns

Print:

  • Print shall include headers, footers, and full table contents
  • File names shall include report identifiers

Trace: Source: 3.0.0-Trends Report (Rows 5-13, 69) | Tests: [Pending]


The system shall allow users to view aggregated trends data across multiple dimensions.

Acceptance Criteria:

  • Support aggregation per filter type
  • Aggregated errors shall be displayable on the graph
  • Y-axis range shall adjust to aggregated data
  • Support splitting data by thermocycler
  • Support splitting data by extraction instrument
  • Provide an aggregated thermocycler option

Trace: Source: 3.0.0-Trends Report (Rows 24-25, 50-51, 55-62) | Tests: [Pending]


The system shall allow users to create, configure, and manage alerts based on trends data thresholds.

Acceptance Criteria:

Alert Configuration:

  • Allow creation of alerts with: name, condition, threshold
  • Alerts shall be configurable to target specific mixes, targets, and outcomes
  • Alerts shall be enableable/disableable
  • Alert threshold values shall be displayable on the trends chart

Scheduling:

  • Alerts shall support scheduled evaluation (daily, weekly, monthly)
  • Alerts shall support rolling time period evaluation
  • Default view mode shall be changeable to rolling period
  • Schedule frequency options shall include: daily, weekly, monthly

Trace: Source: 3.0.0-Alerts (Rows 1-26), 3.0.0-Trends Report Alert Form, 3.0.0-Show Alert Threshold Value in Alert Chart, 3.0.0-Scheduled Alerts, 3.0.0-On Rolling Period | Tests: See scenarios


FR-REPORTS-014 Trigger and Deliver Alert Notifications

The system shall evaluate alert conditions and notify users when thresholds are exceeded.

Acceptance Criteria:

Alert Evaluation:

  • Evaluate alerts based on configured conditions
  • Send notifications when alerts trigger

Notification Delivery:

  • Notifications shall include relevant alert details
  • Email notifications shall be sent to configured recipients
  • Notifications shall be displayed in the system notification area
  • Notifications shall include which alert triggered and timestamp
  • Notifications shall be dismissible

Trace: Source: 3.0.0-Alerts (Rows 14-15, 24, 27-46) | Tests: See scenarios


The system shall handle special data conditions in the Trends report including wildcard placeholders and combined outcome statuses.

Acceptance Criteria:

  • When outcomes contain wildcards or placeholders, display a generalized explanatory message
  • Support displaying both exported and non-exported outcomes together
  • Export status shall be indicated when relevant

Trace: Source: 3.0.0-Show Generalized Message for Outcomes, 3.0.0-Combine Exported and Non-Exported Outcomes | Tests: [Pending]


Outcomes Reporting (REQ-REPORTS-016 through REQ-REPORTS-020)

FR-REPORTS-016 Generate Outcomes Report

The system shall generate an Outcomes report displaying detailed outcome data for run files.

Acceptance Criteria:

Data Display:

  • Display a table with: Run Name, Date, Mix, Target, Well, Patient ID, Outcome, Quantification
  • Table shall be sortable by configurable column
  • Dataset parameters shall be displayed
  • Quantification column shall be shown dynamically when relevant

Detail Expansion:

  • Rows shall be expandable to show additional well details
  • Multiple rows shall be expandable simultaneously

Trace: Source: 3.0.0-Outcomes Report (Rows 18-19, 27-29), 3.0.0-Outcomes Report - Added Rows, 3.0.0-Dynamically Show Quant Column | Tests: See scenarios


FR-REPORTS-017 Create Outcomes Dataset

The system shall allow users to create a filtered dataset for the Outcomes report by selecting criteria from filter controls.

Acceptance Criteria:

Filter Options:

  • Provide filters for: Date Range, Mix, Target, Outcome, Patient ID
  • Filters shall be combinable

Dynamic Behavior:

  • Filter options shall update dynamically based on previous selections
  • Provide a control to clear all filter selections
  • Extraction date shall be used for date filtering
  • Generate the dataset upon user confirmation

Trace: Source: 3.0.0-Outcomes Report (Rows 14-17, 20-26), 3.0.0-Outcome Report - Use Extraction Date | Tests: [Pending]


FR-REPORTS-018 Navigate from Outcomes Report

The system shall allow users to navigate from the Outcomes report to related data for detailed information.

Acceptance Criteria:

  • Selecting a table row shall navigate to the associated runfile
  • Provide page navigation controls (next, previous, page numbers)
  • Support standard page navigation (back, breadcrumbs)

Trace: Source: 3.0.0-Outcomes Report (Rows 34-37) | Tests: [Pending]


FR-REPORTS-019 Export and Print Outcomes Report

The system shall allow users to export and print the Outcomes report data.

Acceptance Criteria:

Export:

  • Export to CSV shall be supported
  • Export shall include all displayed columns
  • Well comments shall be included in export

Print:

  • Print shall include headers, footers, and full table contents
  • Landscape orientation shall be supported for print
  • File names shall include report identifiers

Trace: Source: 3.0.0-Outcomes Report (Rows 1-13), 3.0.0-Well Comments on Export, 3.0.0-Remove Portrait | Tests: [Pending]


FR-REPORTS-020 Configure Combined Outcomes

The system shall allow users to configure how combined outcomes are displayed and managed.

Acceptance Criteria:

  • Sample type selection shall be available in combined outcome configuration
  • Groups shall be normalizable for combined outcomes
  • Combined outcomes shall support displaying both exported and non-exported outcomes together

Trace: Source: 3.0.0-Improve combined outcome section UI, 3.0.0-Show sample type drop down in combined outcome edit widget, 3.0.0-Import - Normalize Groups, 3.0.0-Combine Exported and Non-Exported Outcomes | Tests: [Pending]


Cross-Cutting Report Capabilities (REQ-REPORTS-021 through REQ-REPORTS-024)

FR-REPORTS-021 Multi-Site Report Access

The system shall allow Manager users to view and filter report data across multiple sites.

Acceptance Criteria:

Access and Filtering:

  • Manager users shall have access to a Site filter (multi-select)
  • Manager users shall see a Site column in report tables
  • Charts shall differentiate data points by site
  • Exports shall include Site column when multi-site is enabled

Data Handling:

  • Multi-site data shall be aggregated when multiple sites are selected
  • Alerts shall support site-specific or global scope
  • Alert notifications shall indicate source site
  • Super-admin shall not be able to modify Westgard settings across sites

Trace: Source: 3.0.0-Levey Jennings report (Rows 77-86), 3.0.0-Trends Report (Rows 65-68), 3.0.0-Alerts (Rows 47-51), 3.0.0-Multisite with Sorting Order Selector | Tests: See scenarios


FR-REPORTS-022 Exclude Archived Runs from Reports

The system shall exclude runs marked with archive tags from report datasets by default.

Acceptance Criteria:

  • Archived runs shall not be included in Levey Jennings report datasets
  • Archived runs shall not be included in Trends report datasets
  • Archived runs shall not be included in Outcomes report datasets
  • Exclusion behavior shall be consistent with archive mode settings

Trace: Source: 3.0.0-LJ Reports - Consider Archive Runs, 3.0.0-Trends Report - Consider Archive Runs, 3.0.0-Outcomes Report - Consider Archive Runs | Tests: See scenarios


FR-REPORTS-023 Display Crossover Wells in Reports

The system shall identify and distinctly display crossover wells in all report types.

Acceptance Criteria:

Levey Jennings:

  • Crossover wells shall display a distinct indicator in Levey Jennings reports
  • Crossover wells shall display an "R" tag indicator

Trends and Outcomes:

  • Crossover wells shall be indicated in Trends report data
  • Crossover wells shall display appropriate indicator in Outcomes reports
  • Crossover wells shall be filterable or highlightable in Trends

General:

  • Crossover wells shall be distinguishable from standard wells in both charts and tables

Trace: Source: 3.0.0-Crossover Wells, 3.0.0-Crossover Wells - Trends Report, 3.0.0-Outcomes Report - Crossover Wells | Tests: See scenarios


FR-REPORTS-024 Role-Based Report Access

The system shall control access to report features based on user role.

Acceptance Criteria:

  • All authenticated users shall be able to view reports
  • Role-based restrictions shall apply to specific features (e.g., Westgard editing)
  • Feature access shall be consistent with system role definitions
  • Senior and Super-Admin roles shall have access to bulk Westgard editing
  • Manager role shall have access to multi-site features

Trace: Source: 3.0.0-Trends Report (Rows 43-46), 3.0.0-Outcomes Report (Rows 30-33) | Tests: See scenarios


Performance Requirements (REQ-REPORTS-025)

FR-REPORTS-025 Report Performance

The system shall optimize report generation and display for acceptable performance with large datasets.

Acceptance Criteria:

  • Reports shall initially populate within acceptable time for typical datasets
  • Reports shall repopulate within acceptable time after filter changes
  • Large datasets shall use progressive loading or pagination
  • Reports shall resize responsively when browser window is resized

Trace: Source: 3.0.0-Trends Report - Performance Problem Solutions, 3.0.0-Infinity / Lazy Loading | Tests: See scenarios


Configuration Options

OptionDefaultDescriptionAffects
default_lj_unitCTDefault unit for Levey Jennings Y-axis (CT or Quantity)FR-REPORTS-001
lj_show_meantrueDefault visibility of mean line on chartFR-REPORTS-007
lj_show_sd_linestrueDefault visibility of SD lines on chartFR-REPORTS-007
lj_show_bandstrueDefault visibility of color bands on chartFR-REPORTS-007
trends_default_intervalWeekDefault time interval for trends aggregationFR-REPORTS-008
alert_email_enabledtrueWhether email notifications are sent for alertsFR-REPORTS-014
archive_exclusion_defaulttrueDefault behavior for excluding archived runsFR-REPORTS-022
progressive_loading_threshold1000Row count threshold for enabling progressive loadingFR-REPORTS-025

Open Questions

IDQuestionOwnerStatusResolution
OQ-01Can Benchmark CV be manually overridden or is it always calculated?-ResolvedSee FR-REPORTS-005 - Benchmark CV is configurable via Westgard range settings
OQ-02What is the full scope of combined outcome configuration options?-DeferredScope is defined in Combined Outcome Configuration (KITCFG). Requires RULES domain extraction review - TBD
OQ-03What are the specific performance thresholds (e.g., load time in seconds)?-ResolvedUse global NFRs (REQ-NFR-001: 3 seconds page load, REQ-NFR-002: 10 seconds for reanalysis)
OQ-04What is the definition of "large dataset" for progressive loading trigger?-Resolved10,000 records triggers progressive loading

UI Notes (Illustrative)

FR-REPORTS-001 UI Specifications

  • Page header displays "Levey Jennings"
  • Top section: Title, view options
  • Middle section: LJ chart/plot area
  • Bottom section: Data table with controls
  • Footer: Page navigation

FR-REPORTS-002 UI Specifications

  • Dropdown options displayed in alphabetical order
  • "Create Report" button generates the dataset
  • Range Name filter replaces previous "Lot" terminology

FR-REPORTS-003 UI Specifications

  • Hovering over a data point shows a graph popup with details
  • Reset filters button clears all selections

FR-REPORTS-005 UI Specifications

  • Settings panel/modal design for Westgard range editing
  • Form layout with input fields for Name, Start Date, Mean, SD
  • Calculate button to populate Mean/SD from visible data
  • Save/Cancel buttons with Save enabled only when changes made
  • Helper text explains editing restrictions for ranges with controls

FR-REPORTS-007 UI Specifications

  • Legend widget showing symbol meanings
  • Settings widget provides visibility toggles

FR-REPORTS-008 UI Specifications

  • Report displayed in Reports menu as "Trends"
  • Chart area above table area
  • Menu bar displays action buttons

FR-REPORTS-013 UI Specifications

  • Alert creation form with name, condition, threshold fields
  • Alerts list showing all configured alerts
  • Threshold line displayed on chart when alert selected

FR-REPORTS-016 UI Specifications

  • Report displayed in Reports menu as "Outcomes"
  • Expand button on each row for details
  • Dataset parameters displayed above table

General UI Patterns

  • Chart Presentation: LJ charts use color-coded bands for Westgard limits (red for out-of-range, yellow for warning)
  • Table Layout: Results displayed in tabular format with sortable columns
  • Navigation: Click-through to underlying run data
  • Alert Indicators: Visual markers for triggered alerts
  • Report Naming: Consistent naming convention across reports
  • Export Options: Selection controls for export format

Implementation (Illustrative)

Backend Components

ComponentTypeLocationRequirements
LJReportControllerControllercode/app/Http/Controllers/LJReportController.phpFR-REPORTS-001, 002, 003, 005, 007, 023
LJReportDownloadControllerControllercode/app/Http/Controllers/LJReportDownloadController.phpFR-REPORTS-004
LJReportLotsControllerControllercode/app/Http/Controllers/LJReportLotsController.phpFR-REPORTS-002, 005
RunLJReportsControllerControllercode/app/Http/Controllers/RunLJReportsController.phpFR-REPORTS-002, 003
LjReportExportExportcode/app/Exports/LjReportExport.phpFR-REPORTS-004
TrendsReportControllerControllercode/app/Http/Controllers/TrendsReport/TrendsReportController.phpFR-REPORTS-008, 009, 010, 012, 015
TrendsReportExportControllerControllercode/app/Http/Controllers/TrendsReportExportController.phpFR-REPORTS-011
TrendsReportPrintControllerControllercode/app/Http/Controllers/TrendsReportPrintController.phpFR-REPORTS-011
TrendsReportExportExportcode/app/Exports/TrendsReportExport.phpFR-REPORTS-011
TrendsReportAlertsControllerControllercode/app/Http/Controllers/TrendsReportAlertsController.phpFR-REPORTS-013, 014
TrendsReportAlertControllerControllercode/app/Http/Controllers/TrendsReport/TrendsReportAlertController.phpFR-REPORTS-013, 014
TrendsReportAlertEnableControllerControllercode/app/Http/Controllers/TrendsReportAlertEnableController.phpFR-REPORTS-013
TrendsReportAlertDisableControllerControllercode/app/Http/Controllers/TrendsReportAlertDisableController.phpFR-REPORTS-013
OutcomesReportControllerControllercode/app/Http/Controllers/OutcomesReportController.phpFR-REPORTS-016, 017, 018
OutcomesReportExportControllerControllercode/app/Http/Controllers/OutcomesReportExportController.phpFR-REPORTS-019
OutcomesReportPrintControllerControllercode/app/Http/Controllers/OutcomesReportPrintController.phpFR-REPORTS-019
ReportingsControllerControllercode/app/Http/Controllers/ReportingsController.phpFR-REPORTS-016

Frontend Components

Component TypeLocation
Viewviews/LjReport.vue
Viewviews/TrendsReport.vue
Viewviews/OutcomesReport.vue
Viewviews/guided-trends-report/GuidedTrendsReportView.vue
Viewviews/guided-trends-report/GuidedTrendsReportFilterView.vue
Viewviews/guided-trends-report/GuidedTrendsReportWizardView.vue
Componentscomponents/reports/
Componentscomponents/lj-report/
Componentscomponents/outcome-report/
Componentscomponents/trends-report/

Traceability Matrix

RequirementTitleVerificationImplementationTest CasesStatus
REQ-REPORTS-001Generate Levey Jennings ReportTestLJReportControllerSee scenariosDraft
REQ-REPORTS-002Create Levey Jennings DatasetTestLJReportController, LJReportLotsController, RunLJReportsControllerSee scenariosDraft
REQ-REPORTS-003Navigate from Levey Jennings ReportTestLJReportController, RunLJReportsControllerSee scenariosDraft
REQ-REPORTS-004Export Levey Jennings ReportTestLJReportDownloadController, LjReportExportSee scenariosDraft
REQ-REPORTS-005Manage Westgard RangesTestLJReportController, LJReportLotsControllerSee scenariosDraft
REQ-REPORTS-006Bulk Edit Westgard LimitsTest[TBD][Pending]Draft
REQ-REPORTS-007Configure Westgard Display OptionsTestLJReportController[Pending]Draft
REQ-REPORTS-008Generate Trends ReportTestTrendsReportControllerSee scenariosDraft
REQ-REPORTS-009Create Trends DatasetTestTrendsReportControllerSee scenariosDraft
REQ-REPORTS-010Navigate from Trends ReportTestTrendsReportController[Pending]Draft
REQ-REPORTS-011Export and Print Trends ReportTestTrendsReportExportController, TrendsReportPrintController, TrendsReportExport[Pending]Draft
REQ-REPORTS-012Aggregate Trends DataTestTrendsReportController[Pending]Draft
REQ-REPORTS-013Manage Trends AlertsTestTrendsReportAlertsController, TrendsReportAlertEnableController, TrendsReportAlertDisableControllerSee scenariosDraft
REQ-REPORTS-014Trigger and Deliver Alert NotificationsTestTrendsReportAlertsController, TrendsReportAlertControllerSee scenariosDraft
REQ-REPORTS-015Handle Special Trends DataTestTrendsReportController[Pending]Draft
REQ-REPORTS-016Generate Outcomes ReportTestOutcomesReportController, ReportingsControllerSee scenariosDraft
REQ-REPORTS-017Create Outcomes DatasetTestOutcomesReportController[Pending]Draft
REQ-REPORTS-018Navigate from Outcomes ReportTestOutcomesReportController[Pending]Draft
REQ-REPORTS-019Export and Print Outcomes ReportTestOutcomesReportExportController, OutcomesReportPrintController[Pending]Draft
REQ-REPORTS-020Configure Combined OutcomesTest[TBD][Pending]Draft
REQ-REPORTS-021Multi-Site Report AccessTest(Cross-cutting - site filtering in all controllers)See scenariosDraft
REQ-REPORTS-022Exclude Archived Runs from ReportsTest(Cross-cutting - run filters in all controllers)See scenariosDraft
REQ-REPORTS-023Display Crossover Wells in ReportsTestLJReportControllerSee scenariosDraft
REQ-REPORTS-024Role-Based Report AccessTest(Cross-cutting - middleware)See scenariosDraft
REQ-REPORTS-025Report PerformanceTest(Cross-cutting - pagination in all controllers)See scenariosDraft

Notes

  • Report naming has been updated from legacy conventions
  • The "Range Name" terminology replaces previous "Lot" nomenclature
  • Performance optimization for large datasets is tracked separately as non-functional requirement

Acceptance Tests

Test: REQ-REPORTS-001

Back to requirement

Test: Verify Levey Jennings report generation

Given: User has at minimum Junior User role
And: Westgard-tracked controls exist in the system
When: User navigates to Reports > Levey Jennings
And: User selects filter criteria and generates report
Then: The system shall display a Levey Jennings chart
And: The system shall display control data points plotted against time
And: The system shall display statistical bands on the chart
And: The system shall display a data table with control measurements

Test: Verify chart statistical bands

Given: User on Levey Jennings page with data displayed
When: Observe the chart
Then: Mean line shall be displayed
And: +/- 1, 2, 3 SD lines shall be displayed
And: Background colors shall indicate zones (Green within 1SD, Yellow 1-2SD, Red 2-3SD, Grey beyond 3SD)

Test: Verify table columns

Given: User on Levey Jennings page with data displayed
When: Check the data table
Then: Table shall include columns: Date, Control Name, Range Name, Thermocycler, Extraction Instrument, CT/Quantity, Mean, SD, CV, Event
And: Data shall be sorted by Extraction Date

Test: REQ-REPORTS-002

Back to requirement

Test: Create dataset with dynamic filter updates

Given: User on Levey Jennings page
When: User selects a Mix from dropdown
Then: Target dropdown shall update to show only targets in selected mix
And: Other downstream dropdowns shall update accordingly
And: Dropdowns with no options shall be disabled

Test: Auto-select single option

Given: User on Levey Jennings page
When: A dropdown has only one available option
Then: That option shall be automatically selected

Test: REQ-REPORTS-003

Back to requirement

Test: Verify navigation to runfile

Given: User on Levey Jennings page with data displayed
When: User selects a table row
Then: User shall be navigated to the associated runfile

Test: Verify data point details

Given: User on Levey Jennings page with data displayed
When: User selects a data point on the chart
Then: Detailed information for that data point shall be displayed

Test: REQ-REPORTS-004

Back to requirement

Test: Verify export includes all columns

Given: User on Levey Jennings page with data displayed
When: User exports the report
Then: Export file shall include column headers matching displayed table columns
And: Export shall include Event column with Westgard configuration events

Test: REQ-REPORTS-005

Back to requirement

Test: Add new Westgard range

Given: User on Levey Jennings page with edit permissions
When: User creates new Westgard range with Name, Start Date, Mean, SD
And: User saves the range
Then: New range shall be created
And: Range shall be visible in the system

Test: Validation - SD must be positive

Given: User creating new Westgard range
When: User enters SD value of 0 or negative
Then: Validation error shall be displayed
And: Save shall be disabled

Test: Calculate Mean/SD from data

Given: User on Levey Jennings page with data displayed
When: User requests calculation of Mean/SD
Then: Mean and SD shall be populated based on visible graph data

Test: REQ-REPORTS-008

Back to requirement

Test: Verify Trends report generation

Given: User has at minimum Junior User role
And: Run data exists in the system
When: User navigates to Reports > Trends
And: User selects filter criteria and generates report
Then: The system shall display a trends chart
And: The system shall display outcome trends plotted over time
And: The system shall display a data table with Date, Outcome, Count, Percentage

Test: REQ-REPORTS-009

Back to requirement

Test: Verify filter options update dynamically

Given: User on Trends page
When: User selects a Mix from the filter
Then: Outcome options shall be populated based on the selected mix/target
And: Filter selections shall be remembered during the session

Test: REQ-REPORTS-013

Back to requirement

Test: Create alert

Given: User on Trends alerts configuration
When: User creates new alert with name, condition, threshold
And: User saves alert
Then: Alert shall be created
And: Alert shall be visible in alerts list

Test: Alert threshold on chart

Given: Alert configured with threshold
When: User views Trends chart
Then: Threshold line shall be displayed on chart

Test: REQ-REPORTS-014

Back to requirement

Test: Alert triggers notification

Given: Alert configured with threshold of 10
When: Trends data exceeds threshold
Then: Alert shall be triggered
And: Notification shall be sent to configured users
And: Notification shall include alert name and timestamp

Test: REQ-REPORTS-016

Back to requirement

Test: Verify Outcomes report generation

Given: User has at minimum Junior User role
And: Run data exists in the system
When: User navigates to Reports > Outcomes
And: User selects filter criteria and generates report
Then: The system shall display a table with Run Name, Date, Mix, Target, Well, Patient ID, Outcome, Quantification
And: Table shall be sortable

Test: Expand row for details

Given: User on Outcomes page with data displayed
When: User expands a row
Then: Additional well details shall be displayed
And: User shall be able to collapse the row

Test: REQ-REPORTS-021

Back to requirement

Test: Manager sees site filter

Given: User logged in as Manager
And: Multi-site mode is enabled
When: User navigates to any report page
Then: Site filter shall be visible
And: Site column shall be visible in table

Test: Non-manager no site filter

Given: User logged in as Junior or Senior
When: User navigates to any report page
Then: Site filter shall not be visible
And: Site column shall not be visible

Test: REQ-REPORTS-022

Back to requirement

Test: Archived runs excluded

Given: Some runs are marked with archive tags
When: User generates any report (LJ, Trends, or Outcomes)
Then: Archived runs shall not be included in report data

Test: REQ-REPORTS-023

Back to requirement

Test: Crossover well indicator in LJ

Given: Run contains crossover wells
When: User views Levey Jennings report
Then: Crossover wells shall display "R" tag indicator
And: Crossover wells shall be distinguishable from standard wells

Test: REQ-REPORTS-024

Back to requirement

Test: All users can view reports

Given: User logged in with any authenticated role
When: User navigates to Reports menu
Then: User shall be able to view Levey Jennings, Trends, and Outcomes reports

Test: Role restrictions for Westgard editing

Given: User logged in as Junior User
When: User views Levey Jennings report
Then: Westgard editing controls shall not be available

Test: REQ-REPORTS-025

Back to requirement

Test: Large dataset loading

Given: Dataset with 10,000+ records
When: User generates report
Then: Report shall load with progressive loading
And: Initial display shall complete within acceptable time

Design DocumentRelevant Sections
SDD ArchitectureDatabase Schema, API Layer
SDD AlgorithmsStatistical Calculations

Appendix: Process Artifacts

Completion Checklist

  • All requirements are capability-level (describe behavior, not UI)
  • Requirement variants consolidated (no requirement explosion)
  • UI details are fully demoted to Illustrative section
  • Configuration options are not encoded as requirements
  • Acceptance criteria describe behavior, not UI mechanics
  • Every requirement has acceptance criteria and source traceability
  • Error handling addressed for I/O, validation, and external system requirements
  • Open questions documented with owners assigned
  • Consolidations documented in Reviewer Notes with reversibility info
  • Module can survive a full UI redesign unchanged
  • Refinements folded into Acceptance Criteria
  • Traceability matrix is complete
  • Implementation section documents code locations

Reviewer Notes

Consolidation Summary

The following items from the original source were consolidated during the initial SRS creation (not during this readability conversion):

Original ItemSource ReferenceDisposition
REQ-REPORTS-001 (Display LJ report)3.0.0-LJ Rows 1-2, 34-38, 51Merged -> REQ-REPORTS-001
REQ-REPORTS-003 (Display LJ chart)3.0.0-LJ Rows 39-50, 52-58Merged -> REQ-REPORTS-001
REQ-REPORTS-009 (Westgard ordering)3.0.0-Select Second PriorityDemoted -> REQ-REPORTS-007 AC
REQ-REPORTS-011 (Multi-instrument bands)3.0.0-Show westgard bandsDemoted -> REQ-REPORTS-007 AC

Rationale: Displaying the LJ report and displaying the LJ chart are not separate capabilities - they are the same report interface. Chart display options and ordering priorities are configuration/refinements of the core display capability.

Requirement Count Summary

CategorySource CountSRS CountDisposition
Levey Jennings1275 consolidated
Trends23815 consolidated (many were variants)
Outcomes1055 consolidated
Cross-Cutting-5Extracted from report-specific requirements
Total452520 consolidated

Reversibility: Source: output/pilot/restructured/reports.md

Readability Conversion Notes

This file was converted to the new SRS readability format on 2026-01-24. Changes made:

  1. Added Statement section (2 paragraphs describing core behavior)
  2. Added Behavior Overview mermaid flowchart marked "(Illustrative)"
  3. Grouped Acceptance Criteria by concern where applicable
  4. Moved all tests to end of document with back-links
  5. Changed "Non-Normative" to "Illustrative" throughout
  6. Added blank lines after **Acceptance Criteria:** and *italic headers:*
  7. Consolidated Open Questions into single table
  8. Reorganized Implementation section with Backend/Frontend sub-sections

Normative data preserved:

  • All 25 REQ-REPORTS-* identifiers (as FR-REPORTS-*)
  • All acceptance criteria (131 total ACs + 3 error handling rules)
  • All traceability references
  • All configuration options
  • All test scenarios