Print Reports
Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: Generating printed and PDF-exported reports with standardized formatting Domain: PRINT
Statement
The system shall generate printed and PDF-exported reports with standardized formatting, including file naming conventions, report structure (headers, footers, metadata), and data completeness requirements.
Printed reports include all data from the on-screen report regardless of application pagination. Each report contains a header with application branding and report identification, a Report Contents section with metadata and filter criteria, the complete data in tabular format, and a footer with user identification, confidentiality notice, timestamp, and client attribution.
Behavior Overview (Illustrative)
This diagram illustrates the high-level behavior. It does not specify UI layout, styling, or interaction details.
Definitions
| Term | Definition |
|---|---|
| Report Contents | A metadata section displaying report identification, creation information, and filter criteria |
| Print Timestamp | The date and time when the report was printed or exported to PDF |
| Client Attribution | Identification of the client organization that owns the report data |
Functional Requirements
File Export (REQ-PRINT-001)
FR-PRINT-001 Generate Standardized PDF File Names
The system shall generate PDF export files with standardized file names that include the report type and creation date.
Acceptance Criteria:
File Name Components:
- The file name shall include the report name
- The file name shall include the report creation date
- The file extension shall be .pdf
Format Specification:
- The date format shall be dd-Mmm-yyyy (two-digit day, three-letter month abbreviation, four-digit year)
- The file name shall follow the format pattern "[Report Name] dd-Mmm-yyyy.pdf"
Trace: Source: 3.0.0-Print Reports (Done Row 1) | Jira: [Pending] | Tests: See TC-PRINT-001
Report Header (REQ-PRINT-002)
FR-PRINT-002 Display Standardized Report Header
The system shall display a standardized header on the first page of printed reports containing application branding and report identification.
Acceptance Criteria:
- The header shall appear on the first page of the printed report
- The header shall include the application logo
- The header shall include the report title corresponding to the report type
Trace: Source: 3.0.0-Print Reports (Done Row 2) | Jira: [Pending] | Tests: See TC-PRINT-002
Report Data (REQ-PRINT-003)
FR-PRINT-003 Include Complete Report Data
The system shall include all data from the on-screen report in printed output, regardless of application pagination.
Acceptance Criteria:
Column Completeness:
- The printed report shall include all columns from the on-screen report
- Column headers shall match the on-screen report headers
- Data values shall appear under correct column headers
Row Completeness:
- The printed report shall include all rows returned by the report query
- Application pagination shall not limit rows in printed output
Presentation:
- Data shall be presented in tabular format
Trace: Source: 3.0.0-Print Reports (Done Row 3, 4) | Jira: [Pending] | Tests: See TC-PRINT-003
Report Footer (REQ-PRINT-004)
FR-PRINT-004 Display Standardized Report Footer
The system shall display a standardized footer on printed reports containing user identification, confidentiality notice, timestamp, and client attribution.
Acceptance Criteria:
- The footer shall appear on printed report pages
- The footer shall identify the user who printed the report
- The footer shall include a confidentiality notice
- The footer shall include the print timestamp
- The footer shall include client attribution
Trace: Source: 3.0.0-Print Reports (Done Row 5) | Jira: [Pending] | Tests: See TC-PRINT-004
Report Metadata (REQ-PRINT-005)
FR-PRINT-005 Include Report Metadata Section
The system shall include a Report Contents section in printed output displaying report identification, creation information, and filter criteria.
Acceptance Criteria:
Position:
- The Report Contents section shall be positioned above the main data section
Content:
- The section shall display the report name
- The section shall display the user who created the report
- The section shall display the report creation date
- The section shall display the filters used to generate the report
Trace: Source: 3.0.0-Print Reports (Done Row 6, 7; Planned Row 1) | Jira: [Pending] | Tests: See TC-PRINT-005
Configuration Options
Verified: None - print functionality uses static implementation with no configurable environment variables or deployment parameters. Report data and formatting options are passed dynamically from the frontend via cached request data (TrendsReportPrintController.php, OutcomesReportPrintController.php).
Assumptions
- Users have appropriate role permissions to print or export reports
- Reports are generated from existing on-screen report views
- Client name is configured in the system for attribution purposes
- Browser print functionality or PDF export capability is available
[REVIEW REQUIRED: Assumptions inferred from context, not explicitly stated in source. Confirm accuracy with SME.]
UI Notes (Illustrative)
FR-PRINT-001 UI Specifications
- Example file name: "Outcomes Report 15-Jun-2021.pdf"
FR-PRINT-002 UI Specifications
- Header layout:
- Top left: pcr.ai logo
- Top right: Report title (e.g., "Outcomes Report")
FR-PRINT-003 UI Specifications
- Main data displayed in tabular format
- All columns from on-screen report included
- All rows from query included regardless of pagination
FR-PRINT-004 UI Specifications
- Footer layout:
- Left: "Printed by:" followed by user name
- Center (line 1): "Confidential"
- Center (line 2): Date and time printed
- Right: "Property of [client name]" (e.g., "Property of Quest")
FR-PRINT-005 UI Specifications
- Report Contents section positioned above main data section
- Alignment: left aligned
- Section title: "Report Contents"
- Content items displayed on separate lines:
- Report name
- Created by
- Report creation date
- Filters used
Implementation (Illustrative)
| Component | Type | Path | Requirements |
|---|---|---|---|
TrendsReportPrintController | Controller | app/Http/Controllers/TrendsReportPrintController.php | REQ-PRINT-001, 002, 003, 004, 005 |
OutcomesReportPrintController | Controller | app/Http/Controllers/OutcomesReportPrintController.php | REQ-PRINT-001, 002, 003, 004, 005 |
Architecture Notes:
- Print Controllers: Provide report data for print view rendering; actual PDF generation and print formatting handled by frontend Vue.js components
- Data Completeness: Controllers return all report data without pagination limits (REQ-PRINT-003)
- Frontend Responsibility: File naming (REQ-PRINT-001), headers (REQ-PRINT-002), footers (REQ-PRINT-004), and metadata sections (REQ-PRINT-005) are implemented in frontend print stylesheets and templates
Frontend Components:
| Component Type | Location |
|---|---|
| View | views/TrendsReportPrint.vue |
| View | views/OutcomesReportPrint.vue |
| View | views/RunPrintPreview.vue |
Cross-Reference:
Print requirements are implemented alongside report-specific requirements:
TrendsReportPrintControlleralso implements REQ-REPORTS-011 (Export and Print Trends Report)OutcomesReportPrintControlleralso implements REQ-REPORTS-019 (Export and Print Outcomes Report)
Traceability Matrix
| Requirement | Title | Verification | Implementation | Test Cases | Status |
|---|---|---|---|---|---|
| REQ-PRINT-001 | Generate Standardized PDF File Names | Test | TrendsReportPrintController, OutcomesReportPrintController (+ frontend) | TC-PRINT-001 | Draft |
| REQ-PRINT-002 | Display Standardized Report Header | Test | TrendsReportPrintController, OutcomesReportPrintController (+ frontend) | TC-PRINT-002 | Draft |
| REQ-PRINT-003 | Include Complete Report Data | Test | TrendsReportPrintController, OutcomesReportPrintController | TC-PRINT-003 | Draft |
| REQ-PRINT-004 | Display Standardized Report Footer | Test | TrendsReportPrintController, OutcomesReportPrintController (+ frontend) | TC-PRINT-004 | Draft |
| REQ-PRINT-005 | Include Report Metadata Section | Test | TrendsReportPrintController, OutcomesReportPrintController (+ frontend) | TC-PRINT-005 | Draft |
Notes
- Consistent header/footer layout applies across all printed reports
- Report metadata (Report Contents section) always precedes main data section
- Standard date format used throughout: dd-Mmm-yyyy
Open Questions
| ID | Question | Source | Owner | Date Raised |
|---|---|---|---|---|
| OQ-001 | Assumptions inferred from context, not explicitly stated in source. Confirm accuracy with SME. | Assumptions | @SME-TBD | TBD |
Acceptance Tests
Test: REQ-PRINT-001
Test: TC-PRINT-001 - Verify default file name format
Given: User is viewing a report in the application
When: User exports the report to PDF
Then: The default file name shall follow format "[Report Name] dd-Mmm-yyyy.pdf"
And: The report name shall match the type of report
And: The date shall reflect the report creation date
Test: REQ-PRINT-002
Test: TC-PRINT-002 - Verify header content
Given: User is viewing a report in the application
When: User prints the report
Then: The header shall appear on the first page
And: The application logo shall be displayed
And: The report title shall be displayed
Test: REQ-PRINT-003
Test: TC-PRINT-003a - Verify all columns present
Given: User is viewing a report in the application
When: User prints the report
Then: All columns from the on-screen report shall appear in the printed report
And: Column headers shall match the on-screen headers
And: Data values shall appear under the correct column headers
Test: TC-PRINT-003b - Verify all rows present
Given: User is viewing a report with paginated data
When: User prints the report
Then: All rows from the report query shall be included in the printed output
And: Rows shall not be limited by pagination
Test: REQ-PRINT-004
Test: TC-PRINT-004 - Verify footer content
Given: User is viewing a report in the application
When: User prints the report
Then: The footer shall display the current user's name
And: The footer shall display a confidentiality notice
And: The footer shall display the print date and time
And: The footer shall display the client attribution
Test: REQ-PRINT-005
Test: TC-PRINT-005a - Verify Report Contents section position
Given: User is viewing a report in the application
When: User prints the report
Then: The Report Contents section shall appear above the main data section
Test: TC-PRINT-005b - Verify Report Contents data items
Given: User is viewing a report in the application
When: User prints the report
Then: The Report Contents section shall have title "Report Contents"
And: Report name shall be displayed
And: Created by user shall be displayed
And: Report creation date shall be displayed
And: Filters used shall be displayed
And: Values shall correctly reflect the report metadata
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 (no new capabilities introduced)
- Traceability matrix is complete
Reviewer Notes
Conversion Notes:
No requirement consolidation was performed for this domain. The five source requirements represent distinct capabilities:
| Original Item | Source Reference | Disposition |
|---|---|---|
| REQ-PRINT-001 (PDF naming) | 3.0.0-Print Reports Done Row 1 | Preserved as FR-PRINT-001 |
| REQ-PRINT-002 (Header) | 3.0.0-Print Reports Done Row 2 | Preserved as FR-PRINT-002 |
| REQ-PRINT-003 (Data content) | 3.0.0-Print Reports Done Row 3, 4 | Preserved as FR-PRINT-003 |
| REQ-PRINT-004 (Footer) | 3.0.0-Print Reports Done Row 5 | Preserved as FR-PRINT-004 |
| REQ-PRINT-005 (Metadata) | 3.0.0-Print Reports Done Row 6, 7; Planned Row 1 | Preserved as FR-PRINT-005 |
Rationale: These requirements address distinct aspects of printed report output (file naming, header, body content, footer, metadata). They are not variants of a single capability and therefore do not exhibit requirement explosion patterns.
UI Detail Extraction: Layout and visual specifications were extracted from requirement Notes sections and SDD file (output/pilot/restructured/sdd/print-design.md) and moved to the UI Notes (Illustrative) section.
Reversibility: Source preserved at output/pilot/restructured/print.md