Report Builders Guide: Creating Reports in OpenMRS
This guide is for implementers, data managers, and advanced users who need to create and modify reports using the OpenMRS Reporting Module interface.
Before You Start
Prerequisites
User Permissions: Ensure you have the required privileges:
Manage ReportsManage Report DefinitionsManage Data Set DefinitionsManage Cohort DefinitionsManage Indicator DefinitionsManage Dimension Definitions
Basic Understanding: Familiarity with your OpenMRS data structure
Planning: Clear idea of what your report should accomplish
Planning Your Report
1. Define Your Goals
Ask yourself:
Who will use this report?
What questions should it answer?
When will it be run (frequency)?
How will the results be used?
2. Choose Report Type
Row-per-Patient: Need detailed patient-level data?
Indicator Report: Need summary statistics and counts?
Custom Report: Need combination of both?
3. Identify Data Requirements
Patient Population: Which patients should be included?
Time Period: Fixed dates or parameter-driven?
Data Points: What specific information is needed?
Calculations: Any ratios, percentages, or derived values?
Accessing Report Building Tools
Navigate to Administration → Manage Report Definitions
Available Tools:
Report Definitions - Main report containers
Data Set Definitions - Data structure definitions
Cohort Queries - Patient group definitions
Indicator Definitions - Calculation definitions
Dimension Definitions - Filter/grouping definitions
Building Blocks Overview
Architecture Hierarchy
Report Definition
├── Data Set Definition 1
│ ├── Indicators
│ │ ├── Cohort Queries
│ │ └── Dimensions
│ └── Filters
└── Data Set Definition 2
├── Patient Properties
└── ParametersCore Building Blocks
👥 Cohort Queries
Purpose: Define groups of patients who meet specific criteria
Examples:
"Patients enrolled in HIV program"
"Children under 5 years old"
"Patients with TB diagnosis in the last 6 months"
📊 Indicators
Purpose: Perform calculations on cohorts (counts, percentages, averages)
Examples:
Count of patients in HIV program
Percentage of patients with viral load suppression
Average age of TB patients
🔍 Dimensions
Purpose: Break down indicators by categories
Examples:
Gender (Male/Female)
Age groups (0-5, 6-14, 15+)
Location (Clinic A, Clinic B)
📋 Data Set Definitions
Purpose: Organize data structure for reports
Types:
Simple Patient Data Set (row-per-patient)
Period Indicator Data Set (summary statistics)
Cohort Indicator with Dimensions Data Set (categorized summaries)