Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Building Reports Inside OpenMRS (For Implementers)

IMAGE OF THREE REPORTS

There are three different options for building reports. The Period Indicator Report option as well as the Row-Per-Patient option are a shortcut method of building these particular reports. All reports are associated with one or more DataSet Definitions. The association with these two reports is done automatically whereas for the third option, Custom Report(Advanced), you create a Report Definition and a DataSet Definition and link them explicitly. For more information see Types of Reports.

In the two tutorials that follow, an example of one report built using the shortcut method, a Period Indicator Report, will be demonstrated. The second example will show a Custom Report in the form of a Simple Row-Per-Patient report where you will explicitly create and link the Report and DataSet Definition.

Building a Simple Row-Per-Patient Step-By-Step

This step-by-step tutorial will guide the user in the creation of a Row-Per-Patient Report, using a simple row-per-patient report as an example. It will show how to create the underlying dataset definition for the report as well the report itself.
 
See Row-Per-Domain Object Report Definition for details.
 
 

Create a report that includes patients and gives some information about them.

Needed components (Must be done in this order as the first items are building blocks for items thereafter):

Step 1. Build DataSet Definition\
 

Step 2. Build Report\
 

Step 2. Add DataSet to Report\
 
 

Create DataSet Definition

 

 

 
 

Create Report Definition

 

 

 

Add the DataSet Definition to the Report

 

 

 
 

Building Indicator Reports Step-By-Step

Period Indicator Report

This step-by-step tutorial will guide the user in the creation of indicator reports, using a Period Indicator Report as an example. It will show how to create the underlying components for the report as well as how to set up the first question.
 
See Indicator Report Definition for details.
 
 

Create a report that only includes people in the Heart Failure Program. Many questions will restrict by gender. The first question will be:  

* Percentage of men whose main job is farming.

Needed components (Must be done in this order as the first items are building blocks for items thereafter):

Step 1. Build Cohorts

Step 2. Build Indicators

Step 3. Build Dimension

Step 4. Create Report

Step 5. Add Filter

Step 6. Add Dimension

Step 7. Add Question

Cohort Indicator with Dimensions Report

This step-by-step tutorial will guide the user in the creation of indicator reports, using a Cohort Indicator with Dimensions Report as an example. It will show how to create the underlying components for the report as well as how to set up the first question. This example will highlight how parameters are used in reports. See Understanding Parameters\ for details.
 
See Indicator Report Definition for details.
 
 

The first question will be:  

* People in the HIV Program at the endDate of the report.

Needed components (Must be done in this order as the first items are building blocks for items thereafter):

Step 1. Build Cohort

Step 2. Build Indicator

Step 3. Create Data Set Definition

Step 4. Create Report

Step 5. Add Data Set Definition to Report

Building Indicator Report Components

Creating Cohort Queries

See Cohort Query Definition\.

 

 
 

Male Cohort--Returns all male patients.

 

 

 
 

Farmer Cohort--Returns all patients whose main activity is farming.

 

 
 

In Heart Failure Program Cohort--Returns all patients who are in the Heart Failure Program on a specific date.  You will set that date to be the End Date of the report in the indicator.  By using a parameter here, this cohort can be reused more easily. For instance, you could create two indicators, one which uses this cohort with the End Date of the report and one which uses this cohort with the Start Date of the report.

 

 

 
 

Heart Failure Form Cohort--Returns the patients who have any of the Heart Failure forms filled out.

 

 
 


In HIV Program Cohort--Returns the patients who in the HIV Program at the End Date of the report.
 

 

 
 


Transportation Cost Cohort--Returns the patients who have a transportation cost observation.


 
 

Health Center Location Cohort--Returns the patients who have been assigned a specific health center as a patient attribute.


 
 


Composition Cohorts

Composition Cohorts are a way to combine two or more cohorts or negate a single cohort. See Cohort Queries\.

Farmer and In Heart Failure Program Cohort--Returns all patients who both have the main activity of farming and are in the Heart Failure Program on a specific date.
 
 

Creating Cohort Indicators

See Indicator Definition\.

 

 

 
 

Farmer Indicator--Returns the percent patients in the Heart Failure Program at the report End Date whose main activity is farming and whose health center is set as the Location parameter passed into the report (at runtime).

 

You have to create cohorts for Health Center Location, Farmers, and In Heart Failure Program before you can create this indicator. You can't aggregate something you haven't created yet.
See Cohorts\ for step-by-step instructions.
 

 
NOTE--The cohort must have the word Location in the name in order to be used in the Location Filter.
 
 

 
NOTE--The numerator is automatically constrained by the denominator. This means that the numerator will only return members who are Farmers and also In Heart Failure Program.  
 
 
Notice that you have to put in the Start Date, End Date, and Location. The End Date parameter will be passed into the denominator cohort, In Heart Failure Program. The Start Date and Location are not used. 
The only reason to keep these two as parameters for your indicator is so that you can use this indicator in a Period Indicator Report (which requires all three parameters to be present). 

See Understanding Parameters\ for a quick overview of parameters use.
 
 

Transportation Cost Indicator--Returns the median cost of transport for the cohort of patients who have a cost of transport (in this case in Rwandan Francs).

 

 
NOTE--If you have any problems with the logic tokens not being recognized and the indicator preview failing, make sure that your logic tokens have been registered.
 
 


In HIV Program Indicator--Returns the number of patients in the HIV Program on the End Date of the report.
 

 

 
 

Creating Dimensions

See Dimension Definition\.

 

 


 

 
You have to create a Male Cohort before this option will show up in the Cohort Definition drop down here.
See Cohorts\ for step-by-step instructions.  Now create a Female Cohort Query and Add that to your dimension on your own.
 

Creating a Period Indicator Report


Setting Up a Period Indicator Report

Add Filter to Report


Add Dimension(s) to Report


Add Indicators (Questions) to Report



Running a Period Indicator Report

See Running a Period Indicator Report\.

 
 

Creating an Indicator with Dimensions Report

Create Data Set Definition

 

 

 
 

Add Question

 

 

 

 
 

Create Report



 

 
 

Add Data Set Definition

 

 

 

 

 
 

Running an Indicator with Dimension Report

See Running an Indicator with Dimension Report\.

 
 

Screen Casts Step-By-Step

To help get you started with the Reporting Module, we have put together a few screen casts.

Building Reports Inside Modules (For Developers)

Developing a Report Module

Getting Started with the basicreportmodule

IMPORTANT-- This module does not exist yet.  For now, see the following modules for ideas:

rwandareports

pihmalawi

mdrtb

Understanding and Extending the basicreportmodule

Custom Extension of the Reporting Framework

This release is our first stable release of the Reporting API. We have designed what we consider to be the basis for all of the APIs needed for the reporting. We feel very confident that the classes and interfaces designed will allow you to use and extend the API to:

  • Define new cohort queries to allow users to calculate a custom metric that is specific to your organization.
  • Define new data set definitions to expose data sets that are important to your users.
  • Define new custom data set definitions that can be used in any implementation.
  • Define a custom report based on your own data set definition.
  • Build new reporting tools and user interfaces (e.g. a custom Reporting Dashboard for clinicians or an interactive data quality tool for data managers).
  • Render reports in a standard format (e.g. SDMX-HD).
  • Render reports in a proprietary format (e.g. .docx).
  • Define custom logic rules to be used in indicators and cohort queries.
  • Define new data quality rules to allow data managers to identify problems areas within your form entry process.

Using Parameters in SQL Cohort Queries

Pre-defined parameters:startDate, endDate, and location.
Self-defined parameters: you can include the parameters in sql queries by using the notation of :parameterName. For example, you can set up enrollment date by using :enrollmentDate in your sql statement. Remember to choose the correct data type. In this example, the data type should be date instead of string. If not, the program will treat it as a string instead of date. You won't get a date picker for this field as well. Also, those parameters cannot be part of the SELECT statement. Instead, they should be used in the WHERE clause.

  • No labels