omrs15 - getting data out tutorial

28
OpenMRS: Getting Data Out Michael Seaton Lead Developer, Partners in Health, Boston MA https://github.com/mseaton IRC: mseaton

Upload: michael-seaton

Post on 19-Feb-2017

3.071 views

Category:

Software


2 download

TRANSCRIPT

Page 1: OMRS15 - Getting Data Out tutorial

OpenMRS: Getting Data Out

Michael SeatonLead Developer, Partners in Health, Boston MA

https://github.com/mseatonIRC: mseaton

Page 2: OMRS15 - Getting Data Out tutorial

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)

Page 3: OMRS15 - Getting Data Out tutorial

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?

Page 4: OMRS15 - Getting Data Out tutorial

Getting Data Out - Use Cases

Page 5: OMRS15 - Getting Data Out tutorial

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

Page 6: OMRS15 - Getting Data Out tutorial

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.

Page 7: OMRS15 - Getting Data Out tutorial

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

Page 8: OMRS15 - Getting Data Out tutorial

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

Page 9: OMRS15 - Getting Data Out tutorial

Getting Data Out: Use Cases

What other problems are you trying to solve?

Page 10: OMRS15 - Getting Data Out tutorial

Getting Data Out - The Solutions (to date)

Page 11: OMRS15 - Getting Data Out tutorial

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

Page 12: OMRS15 - Getting Data Out tutorial

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

Page 13: OMRS15 - Getting Data Out tutorial

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

Page 14: OMRS15 - Getting Data Out tutorial

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

Page 15: OMRS15 - Getting Data Out tutorial

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

Page 16: OMRS15 - Getting Data Out tutorial

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??

Page 17: OMRS15 - Getting Data Out tutorial

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

Page 18: OMRS15 - Getting Data Out tutorial

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?

Page 19: OMRS15 - Getting Data Out tutorial

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

Page 20: OMRS15 - Getting Data Out tutorial

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

Page 21: OMRS15 - Getting Data Out tutorial

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

Page 22: OMRS15 - Getting Data Out tutorial

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

Page 23: OMRS15 - Getting Data Out tutorial

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

Page 24: OMRS15 - Getting Data Out tutorial

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

Page 25: OMRS15 - Getting Data Out tutorial

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

Page 26: OMRS15 - Getting Data Out tutorial

Getting Data Out - The Future

Page 27: OMRS15 - Getting Data Out tutorial

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?

Page 28: OMRS15 - Getting Data Out tutorial

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)