Report Design Manager
This page is derived from older reporting documentation and may not reflect the current behavior of the reporting module. Contributions to align it with the latest version are welcome.
Configure and manage output formats for your reports through the Report Design Manager interface.
The Report Design Manager is your central hub for configuring how reports are presented to users. Here you link specific output formats (renderers) to reports, configure template settings, and manage the availability of different output options across your organization.
Table of Contents
Understanding Report Designs
What is a Report Design?
A Report Design is a configuration that connects:
A specific report definition (your data and logic)
A renderer type (how to format the output)
Custom settings (templates, properties, parameters)
User access permissions (who can use this format)
Report Design vs Report Definition
Report Definition
Contains: Data logic, cohorts, indicators, parameters
Defines: What data to collect and how to calculate it
Created by: Report builders in the reporting interface
Report Design
Contains: Output formatting instructions
Defines: How data should be presented to users
Created by: Administrators in the Design Manager
Relationship
Report Definition (HIV Monthly Report)
├── Report Design 1: Excel Standard Export
├── Report Design 2: Excel Template (Management)
├── Report Design 3: HTML Dashboard
└── Report Design 4: XML ExportBuilt-in vs Custom Designs
Built-in Designs
Always Available:
Web Display (default for all reports)
Standard Excel, CSV, HTML exports
Characteristics:
No configuration required
Work with any report
Limited customization options
Custom Designs
Created Through Design Manager:
Excel templates with custom layouts
HTML templates with specific styling
Custom CSV formats
Specialized XML outputs
Characteristics:
Require configuration and setup
Linked to specific reports
Highly customizable
Can include advanced features
Accessing Design Manager
Navigation Path
Log into OpenMRS with administrative privileges
Navigate: Administration → Report Administration
Click: Report Designs
Required Permissions
Manage Report DesignsView Administration FunctionsManage Reports(for full functionality)
Interface Overview
Main Design List
All configured report designs displayed in table format
Filter options by report or renderer type
Quick actions for edit, delete, preview
Design Categories
Standard Renderers: CSV, Excel, HTML, XML
Template Renderers: Excel templates, Text templates
Custom Renderers: Organization-specific formats
Creating Report Designs
Step-by-Step Process
Step 1: Access Creation Interface
Click: "Add Another" button in Report Designs
Select: Report definition from dropdown
Choose: Renderer type
Step 2: Basic Configuration
Name: User-friendly display name (e.g., "Management Dashboard")
Report Definition: Select target report
Renderer Type: Choose from available options
Description: Brief explanation for usersStep 3: Renderer-Specific Setup
Configuration varies by renderer type:
Standard Excel Renderer
Configuration Options:
- Include column headers: Yes/No
- Date format: System default or custom
- Number formatting: Decimal places, thousands separatorCSV Renderer
Configuration Options:
- Field delimiter: Comma, semicolon, tab, custom
- Text delimiter: Quote marks, none
- File extension: .csv, .txt, custom
- Character encoding: UTF-8, ASCII, otherHTML Renderer
Configuration Options:
- Include CSS styling: Yes/No
- Table formatting: Basic, enhanced
- Page layout: Single page, multi-pageConfiguring Standard Renderers
Excel Export Design
Use Case: Professional reports with consistent formatting
Configuration Steps:
Select: "Excel Report Renderer"
Set Name: "Professional Excel Export"
Configure Options:
Include Headers: Yes Date Format: dd/MMM/yyyy Number Format: #,##0.00 Sheet Names: Auto-generate from data set names
CSV Export Design
Use Case: Data analysis and external system integration
Configuration Steps:
Select: "CSV Report Renderer"
Set Name: "Data Analysis Export"
Configure Options:
Field Delimiter: , (comma) Text Delimiter: " (quote) File Extension: .csv Encoding: UTF-8 Include Headers: Yes
Custom CSV Format
Use Case: Integration with specific external systems
Configuration Steps:
Select: "Delimited Text Report Renderer"
Set Name: "Government Reporting Format"
Configure Options:
Field Delimiter: | (pipe) Text Delimiter: None File Extension: .txt Date Format: yyyy-MM-dd Header Row: Custom headers
Template-Based Designs
Excel Template Design
Prerequisites: Template file already created
Configuration Steps:
Select: "Excel-based Template"
Upload Template: Browse and select .xls file
Configure Template Properties:
Template File: Upload your .xls template Expressions: - Prefix: # (default) - Suffix: # (default)Set Repeating Sections (if needed):
Sheet: 1 Row: 8 Dataset: patientListAdd Design Properties:
Property Key: reportTitle Property Value: Monthly HIV Program Report
Text Template Design
Prerequisites: Template content prepared
Configuration Steps:
Select: "HTML/text-based template"
Paste Template Content: Full HTML/text template
Set Content Type: text/html, text/xml, text/plain
Configure Template Engine: Groovy or Velocity
Advanced Template Configuration
Excel Template Properties
Repeating Sections Configuration
For Row-Per-Patient Data:
Repeating Sections Configuration:
Sheet: 1 (first worksheet)
Row: 5 (starting row for patient data)
Dataset: patientDemographics (data set containing patient list)
Result: Row 5 repeats for each patientFor Multi-Location Reports:
Repeating Sections Configuration:
Sheet: 2 (location summary worksheet)
Column: C (starting column for location data)
Dataset: locationSummary (data set containing location breakdown)
Result: Column C repeats for each locationFor Multi-Sheet Reports:
Repeating Sections Configuration:
Sheet: 3 (template sheet to repeat)
Dataset: programData (data set containing program breakdown)
Result: Sheet 3 repeats for each programDesign Properties
Custom Properties for Templates:
reportTitle = Monthly Program Performance Report
facilityLogo = /path/to/logo.png
contactEmail = reports@healthfacility.org
disclaimerText = This report contains confidential health informationUsage in Template:
Cell A1: #property.reportTitle#
Cell A2: Contact: #property.contactEmail#Text Template Configuration
Template Engine Selection
Groovy Engine:
More powerful scripting capabilities
Full Java library access
Better for complex data manipulation
Syntax:
<% code %>and$variable
Velocity Engine:
Simpler syntax
Faster for basic templating
Limited programming features
Syntax:
#set($var = value)and$variable
Content Type Options
text/html - HTML web pages
text/xml - XML data exports
text/plain - Plain text reports
application/json - JSON data (custom)
text/csv - Custom CSV formatsManaging Output Options
Controlling Available Formats
Default Behavior
Without custom report designs:
Web Display: Always available
Standard Exports: Excel, CSV, HTML, XML available for all reports
With Custom Designs
When you add custom report designs:
Custom formats appear in output format dropdown
Standard formats remain unless specifically disabled
Users choose from all available options
Format Organization
Naming Strategy
Use descriptive names that indicate:
Purpose: "Management Summary", "Data Analysis Export"
Audience: "Clinical Staff Dashboard", "Government Report"
Format: "Excel Template", "Mobile HTML View"
Examples:
✅ Good Names:
- "Executive Dashboard (HTML)"
- "Government Reporting Format (CSV)"
- "Patient Summary (PDF-ready HTML)"
- "Data Analysis Export (Excel)"
❌ Poor Names:
- "Report Design 1"
- "Excel Export"
- "Template"
- "HTML Version"Grouping Related Designs
For Complex Reports with Multiple Audiences:
HIV Program Report
├── "Clinical Summary (Web)" - For daily clinical use
├── "Management Dashboard (HTML)" - For supervisors
├── "Government Report (Excel)" - For official reporting
└── "Data Export (CSV)" - For analysisUser Experience Considerations
Output Format Selection
When users run reports, they see:
Choose Output Format:
○ Web Display (default)
○ Excel Export
○ Clinical Summary (Web)
○ Management Dashboard (HTML)
○ Government Report (Excel)
○ Data Export (CSV)Loading and Performance
Consider user impact:
Web Display: Instant results
Standard Exports: Fast generation
Custom Templates: May take longer
Complex Templates: Consider caching
Advanced Configuration
Conditional Output Options
Role-Based Format Availability
Configure different formats for different user types:
Clinical Users:
Web Display
Patient List (Excel)
Clinical Summary (HTML)
Management Users:
Web Display
Management Dashboard (HTML)
Executive Report (Excel Template)
Data Analysts:
All standard exports
Data Analysis (CSV)
Statistical Export (Excel)
Report-Specific Configurations
Patient-Level Reports
Appropriate formats:
Excel for patient lists
HTML for patient summaries
CSV for data analysis
Avoid: Complex templates (performance)
Indicator Reports
Appropriate formats:
Excel templates for management
HTML dashboards for monitoring
Web display for interactive exploration
Avoid: Large CSV exports (unnecessary)
Performance Optimization
Template Complexity Guidelines
Simple Templates (< 1 second):
Basic data substitution
Minimal calculations
Small data sets (< 100 rows)
Moderate Templates (1-10 seconds):
Basic repeating sections
Simple charts/graphs
Medium data sets (100-1000 rows)
Complex Templates (10+ seconds):
Multiple repeating sections
Complex calculations
Large data sets (> 1000 rows)
Multiple worksheets/pages
Caching Strategies
For Frequently Run Reports:
Consider pre-generating during off-peak hours
Cache results for common parameter combinations
Use simpler formats for frequent access
Multi-Language Support
Template Localization
For International Deployments:
Design Properties:
locale = en_US
dateFormat = MM/dd/yyyy
numberFormat = #,##0.00
currencySymbol = $
Alternative for French:
locale = fr_FR
dateFormat = dd/MM/yyyy
numberFormat = # ##0,00
currencySymbol = €Content Translation
In Templates:
<!-- English Version -->
<h1>Monthly Report</h1>
<p>Generated on: ${reportDate}</p>
<!-- French Version -->
<h1>Rapport Mensuel</h1>
<p>Généré le: ${reportDate}</p>User Access Control
Permission-Based Access
Design Management Permissions
Creating/Editing Designs:
Manage Report DesignsManage ReportsView Administration Functions
Using Custom Formats:
Run ReportsView ReportsAccess to underlying report definition
Role-Based Format Control
Implementation Strategy
Option 1: Multiple Report Definitions
Create separate reports for different audiences
Link appropriate designs to each report
Control access via report permissions
Option 2: Single Report, Multiple Designs
One report definition with comprehensive data
Multiple designs for different presentation needs
All users see all format options
Option 3: Custom Role Checking
Advanced: Custom renderers that check user roles
Most flexible but requires development
Testing Access Control
Validation Process
Create test user accounts with different role combinations
Test report access with each account type
Verify format availability matches expectations
Check output quality for each user type
Document access patterns for future reference
Maintenance and Updates
Regular Maintenance Tasks
Monthly Reviews
Check template performance - Monitor generation times
Review user feedback - Address usability issues
Update templates - Incorporate new requirements
Clean up unused designs - Remove obsolete formats
Quarterly Assessments
Evaluate format usage - Which designs are actually used?
Performance optimization - Improve slow templates
User training needs - Address knowledge gaps
Technology updates - Leverage new features
Version Control
Template Updates
When modifying existing designs:
Backup current version - Export existing configuration
Test changes thoroughly - Use test environment
Document modifications - What changed and why
Communicate changes - Notify affected users
Monitor for issues - Watch for problems after deployment
Change Documentation
Design Update Log:
Date: January 15, 2024
Design: HIV Management Dashboard
Version: 2.1
Changes:
- Added patient contact information section
- Fixed calculation error in retention rate
- Updated facility logo and branding
- Improved mobile responsiveness
Testing: Validated with Q4 2023 data
Deployed: January 20, 2024Backup and Recovery
Design Export
Regular backup process:
Export design configurations - Save settings and templates
Document dependencies - Note required modules/versions
Store template files - Keep copies of .xls and template files
Test restoration - Verify backups work
Disaster Recovery
If designs are lost:
Import saved configurations - Restore from backups
Re-upload template files - Restore custom templates
Test all formats - Verify functionality
Update documentation - Reflect any changes
Troubleshooting
Common Issues and Solutions
🚫 Design Not Appearing in Output Options
Symptoms: Custom format doesn't show in dropdown when running report
Common Causes:
Design not linked to correct report definition
User lacks required permissions
Design configuration incomplete
Solutions:
Verify report linkage - Check Report Definition field
Check user permissions - Confirm user can access format
Complete configuration - Ensure all required fields filled
Test with admin account - Isolate permission issues
📊 Template Rendering Errors
Symptoms: Error messages when generating template-based reports
Common Causes:
Corrupted template files
Invalid template syntax
Missing template dependencies
Solutions: