omrs15 - getting data out tutorial
TRANSCRIPT
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)