OMRS15 - Getting Data Out tutorial

  • View
    3.071

  • Download
    2

  • Category

    Software

Preview:

Citation preview

OpenMRS: Getting Data Out

Michael SeatonLead Developer, Partners in Health, Boston MA

https://github.com/mseatonIRC: mseaton

Agenda (rough)Introductions, overview and use cases

SQL

Cohort Builder

BIRT and Jasper

DHIS Report Module

Break

Bahmni Reporting

Reporting Module Overview

Reporting Module Implementation Examples

Future plans

Break

Hands-on Session(s)

Introductions

● Who are you? What is your involvement with OpenMRS?

● Why are you here?

● How are you doing reporting and analysis within OpenMRS today?

● What is your goal for this session? What would make this successful for you?

Getting Data Out - Use Cases

Getting Data Out: Use CasesPeriod Indicator Reports

Monthly, quarterly, semi-annual, annual reports, typically containing metrics and indicators on program or other data

Aggregate Database /

DHIS2

Getting Data Out: Use CasesData Exports

Get out all of the data that you put in, optionally filtered or formatted in certain ways. Support further analysis in tools like Excel, SAS, Stata, to populate data warehouses, or direct usage.

Getting Data Out: Use CasesAd-hoc queries and analysis

Able to quickly find patients and data of interest (cohort analysis, MEQ, clinical follow-up, etc), and to obtain quick answers to questions about data in the system

Getting Data Out: Use CasesFormatted reports, interactive dashboards, printable patient summaries, etc.

Getting Data Out: Use Cases

What other problems are you trying to solve?

Getting Data Out - The Solutions (to date)

An overview of reporting tools in OpenMRSPlain old SQL

Direct SQL plays a role in almost all of the reporting solutions to date. The most fundamental of which is simply bypassing the OpenMRS application itself and going straight in through a tool with an ODBC / JDBC connection.

Pros:● SQL skills are common● No application changes necessary● Able to optimize for speed

Cons:● Requires knowledge of database schema● Many “gotchas”, around voided data, etc● Scripts may not work as expected across versions● Can get very messy for complicated queries

An overview of reporting tools in OpenMRSPlain old SQL

Direct SQL plays a role in almost all of the reporting solutions to date. The most fundamental of which is simply bypassing the OpenMRS application itself and going straight in through a tool with an ODBC / JDBC connection.

DEMONSTRATIONS

Reporting Compatibility Module (Cohort Builder and Data Export tool)

https://wiki.openmrs.org/display/docs/ReportingCompatibility+Module

Originally part of core OpenMRS application, later moved into a module, this has long been deprecated in favor of a vision for improved tools that leverage the reporting module API, but these have yet to fully develop. Still a go-to tool for many OpenMRS implementations

Pros:● Easy to use, no programming required● Good for quickly finding patients of interest● No equivalent replacement tool

Cons:● Limited support; deprecated● Not easily extensible● Cannot parameterize saved queries

An overview of reporting tools in OpenMRS

Reporting Compatibility Module (Cohort Builder and Data Export tool)

https://wiki.openmrs.org/display/docs/ReportingCompatibility+Module

Originally part of core OpenMRS application, later moved into a module, this has long been deprecated in favor of a vision for improved tools that leverage the reporting module API, but these have yet to fully develop. Still a go-to tool for many OpenMRS implementations

An overview of reporting tools in OpenMRS

DEMONSTRATIONS

BIRT Report Module

https://wiki.openmrs.org/display/docs/BIRT+Report+Module+Installation+Guide

This module represented our initial capabilities for integrating with a 3rd party engine to produce nicely formatted reports. Though still used by a number of implementations, this module has had no active developer support for many years. Potential future support may exist as an extension to reporting module (https://issues.openmrs.org/browse/REPORT-251)

Pros:● Leverage full power of BIRT reporting engine● Produce nice reports in various formats (eg. PDF)

Cons:● Requires installation of BIRT runtime on server● Most reports embed SQL into report design● No longer supported by anyone

An overview of reporting tools in OpenMRS

BIRT Report Module

https://wiki.openmrs.org/display/docs/BIRT+Report+Module+Installation+Guide

This module represented our initial capabilities for integrating with a 3rd party engine to produce nicely formatted reports. Though still used by a number of implementations, this module has had no active developer support for many years. Potential future support may exist as an extension to reporting module (https://issues.openmrs.org/browse/REPORT-251)

An overview of reporting tools in OpenMRS

DEMONSTRATIONS??

Jasper Reports Module

https://wiki.openmrs.org/display/docs/Jasper+Report+Module

Built and maintained by the team behind the OpenHMIS distribution (http://openhmisafrica.org), this module enables nicely-formatted reports to be produced via the Jasper reports engine, and is used by OpenHMIS for reporting within their inventory and cashier modules.

Pros:● Leverage full power of Jasper reporting engine● Produce nice reports in various formats (eg. PDF)

Cons:● Most reports embed SQL into report design

An overview of reporting tools in OpenMRS

Jasper Reports Module

https://wiki.openmrs.org/display/docs/Jasper+Report+Module

Built and maintained by the team behind the OpenHMIS distribution (http://openhmisafrica.org), this module enables nicely-formatted reports to be produced via the Jasper reports engine, and is used by OpenHMIS for reporting within their inventory and cashier modules.

An overview of reporting tools in OpenMRS

DEMONSTRATIONS

ANYONE FROM OpenHMIS?

DHIS Report Module

https://wiki.openmrs.org/display/docs/DHIS+Report+Module+-+SHR+Customized+Version

This module aims to enable the extraction of indicator data from OpenMRS to DHIS2. Although currently limited to supporting direct SQL for each data element, future plans are to broaden the ability to link data elements to calcualtions in the reporting module: ( https://wiki.openmrs.org/display/~sandeepraparthi/DHISreport+Module+2.0+-+Integration+with+Reporting+Module )

Pros:● Easy to understand● Allows implementers to integrate with DHIS2

Cons:● Reliance on only SQL has limitations and can lead to

errors

An overview of reporting tools in OpenMRS

DHIS Report Module

https://wiki.openmrs.org/display/docs/DHIS+Report+Module+-+SHR+Customized+Version

This module aims to enable the extraction of indicator data from OpenMRS to DHIS2. Although currently limited to supporting direct SQL for each data element, future plans are to broaden the ability to link data elements to calcualtions in the reporting module: ( https://wiki.openmrs.org/display/~sandeepraparthi/DHISreport+Module+2.0+-+Integration+with+Reporting+Module )

An overview of reporting tools in OpenMRS

DEMONSTRATIONS

Maurya

Bahmni Reporting

https://bahmni.atlassian.net/wiki/display/BAH/Reports

Bahmni utilizes Jasper Reports, Dynamic Reports (http://www.dynamicreports.org/), and SQL scripts for it’s reporting

Pros:● Implementations can add their own custom reports● Direct SQL scripts can lead to improved performance● Use of Jasper reports enables formatted output

Cons:● Focused on reports and exports, not ad hoc analysis?● Reliance on SQL scripting by implementations?

An overview of reporting tools in OpenMRS

Bahmni Reporting

https://bahmni.atlassian.net/wiki/display/BAH/Reports

Bahmni utilizes Jasper Reports, Dynamic Reports (http://www.dynamicreports.org/), and SQL scripts for it’s reporting

An overview of reporting tools in OpenMRS

DEMONSTRATIONS

Vinay

Reporting and Reporting REST Module

● https://wiki.openmrs.org/display/docs/Reporting+Module● https://wiki.openmrs.org/display/docs/Reporting+REST+Web+Services

The core reporting framework supported and maintained by the community, these modules are distributed with the OpenMRS 2.x release line and is the intended platform upon which future reporting and analysis tools can be designed.

Pros:● Actively developed and supported by community● Designed for extensibility and reusability● Intended for a broader set of use cases than

formatted reports (exports, cohort analysis, etc)

Cons:● Is not as focused as other modules - lots to learn● User-facing tool development has lagged behind API● Documentation needs improvement

An overview of reporting tools in OpenMRS

Reporting and Reporting REST Module

● https://wiki.openmrs.org/display/docs/Reporting+Module● https://wiki.openmrs.org/display/docs/Reporting+REST+Web+Services

The core reporting framework supported and maintained by the community, these modules are distributed with the OpenMRS 2.x release line and is the intended platform upon which future reporting and analysis tools can be designed.

An overview of reporting tools in OpenMRS

DEMONSTRATIONS

Reporting UI Module

https://wiki.openmrs.org/display/docs/Reporting+UI+Module

User interface tools, built within the OpenMRS 2.x Application, and leveraging the reporting module and reporting REST web services. This is where recent efforts towards building a replacement to the Cohort Builder has happened.

An overview of reporting tools in OpenMRS

Getting Data Out - The Future

The Future

● Improved analysis tools (cohort builder, ad hoc query tool)

● Improved report authoring tools (xml reports, domain query language?)

● Data Warehouses / Materialized views

● OHDSI (Odyssey) integration - http://www.ohdsi.org/

● Big Data

● Your ideas and wishlist?

Deeper dive into the reporting module

https://github.com/mseaton/openmrs-module-reportingdemo

● Set-up reports automatically in your module / distribution● Define libraries of reusable queries, calculations, indicators, and other reporting elements● Create custom report outputs, render reports to various formats● Configure reports to automatically run on a scheduled basis● And so much more!

Deeper dive into the other reporting solutions presented here today

● Based on interest and availability of presenters, can dive deeper into hands-on training on other tools

Hands-on Session(s)