Skip to main content
Version: 3.0.1

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

TermDefinition
Report ContentsA metadata section displaying report identification, creation information, and filter criteria
Print TimestampThe date and time when the report was printed or exported to PDF
Client AttributionIdentification 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)

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)

ComponentTypePathRequirements
TrendsReportPrintControllerControllerapp/Http/Controllers/TrendsReportPrintController.phpREQ-PRINT-001, 002, 003, 004, 005
OutcomesReportPrintControllerControllerapp/Http/Controllers/OutcomesReportPrintController.phpREQ-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 TypeLocation
Viewviews/TrendsReportPrint.vue
Viewviews/OutcomesReportPrint.vue
Viewviews/RunPrintPreview.vue

Cross-Reference:

Print requirements are implemented alongside report-specific requirements:

  • TrendsReportPrintController also implements REQ-REPORTS-011 (Export and Print Trends Report)
  • OutcomesReportPrintController also implements REQ-REPORTS-019 (Export and Print Outcomes Report)

Traceability Matrix

RequirementTitleVerificationImplementationTest CasesStatus
REQ-PRINT-001Generate Standardized PDF File NamesTestTrendsReportPrintController, OutcomesReportPrintController (+ frontend)TC-PRINT-001Draft
REQ-PRINT-002Display Standardized Report HeaderTestTrendsReportPrintController, OutcomesReportPrintController (+ frontend)TC-PRINT-002Draft
REQ-PRINT-003Include Complete Report DataTestTrendsReportPrintController, OutcomesReportPrintControllerTC-PRINT-003Draft
REQ-PRINT-004Display Standardized Report FooterTestTrendsReportPrintController, OutcomesReportPrintController (+ frontend)TC-PRINT-004Draft
REQ-PRINT-005Include Report Metadata SectionTestTrendsReportPrintController, OutcomesReportPrintController (+ frontend)TC-PRINT-005Draft

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

IDQuestionSourceOwnerDate Raised
OQ-001Assumptions inferred from context, not explicitly stated in source. Confirm accuracy with SME.Assumptions@SME-TBDTBD

Acceptance Tests

Test: REQ-PRINT-001

Back to requirement

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

Back to requirement

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

Back to requirement

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

Back to requirement

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

Back to requirement

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 ItemSource ReferenceDisposition
REQ-PRINT-001 (PDF naming)3.0.0-Print Reports Done Row 1Preserved as FR-PRINT-001
REQ-PRINT-002 (Header)3.0.0-Print Reports Done Row 2Preserved as FR-PRINT-002
REQ-PRINT-003 (Data content)3.0.0-Print Reports Done Row 3, 4Preserved as FR-PRINT-003
REQ-PRINT-004 (Footer)3.0.0-Print Reports Done Row 5Preserved as FR-PRINT-004
REQ-PRINT-005 (Metadata)3.0.0-Print Reports Done Row 6, 7; Planned Row 1Preserved 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