Reporting Module Release Notes 0.7.x

 

Version 0.7.8 released July 23, 2013 

This release contains only 2 tickets, and is a bug fix release primarily aimed at addressing one critical bug where Sql-based definitions were returning incorrect cached values if they were being evaluated consecutively with differing parameter values.  See REPORT-519

Version 0.7.7 released June 24, 2013

This release contains only 4 tickets.  Two of these tickets have significance that bears describing here.  The first, REPORT-485, fixes a bug that was introduced in release 0.7.5 in certain environments, typically seen if a user's database was not set up as UTF-8.  The solution for this ticket resulted in migrating the reporting module off of it's use of sqldiff.xml for database changesets, and onto the use of liquibase.  This also resulted in explicity increasing the minimum required version of the reporting module to 1.6.6 (this dependency already existed implicitly due to the fact that reporting requires calculation and calculation requires 1.6.6)  The other significant change is REPORT-503, which removes a loophole that previously made it possible to pass a parameter into an evaluation context, and have that parameter used by definitions without the need for those definitions to explicitly declare it.  This may have an impact on reports defined in code, in that it will expose these situations as new bugs in those reports.

Version 0.7.6 released May 9, 2013

Minor release containing several bug fixes and small enhancements.

Version 0.7.5 released February 14, 2013

Release following a reporting module sprint and a patient summary sprint, both of which resolved several outstanding issues and added in a handful of new features to the reporting module.

Version 0.7.4 released January 7, 2013

Small release to get a few minor fixes and improvements out the door, following feedback during the implementers conference and in order to prepare for the January 2013 reporting module sprint.

Version 0.7.3.1 released October 8, 2012

Minor bug-fixing release following the 0.7.3 release. See release notes for full details.

Version 0.7.3 released October 2, 2012

This release overlapped with the Patient Summary sprint, and many of the features included within were added in support of that effort. This includes the ability to use groovy scripts, translations, and other utilities within a Text Template Renderer in order to produce a more customized html, xml, or other text-based output. The other significant change in this release is to the manner in which particular renderers are enabled for a given report definition. In previous versions, there were a number of renderers that were generally available for any report - for example CSV, TSV, Excel (default), and Html (default). This has been changed such that these no longer are available by default, with only an improved Web renderer available for all reports unconditionally. To re-enable these renderer options, they must be explictly added via Report Designs. See the user documentation and the full release notes for further details.

Version 0.7.2.2 released August 28, 2012

Minor bug-fixing release following the 0.7.2.1 release. See release notes for full details.

Version 0.7.2.1 released August 20, 2012

Minor bug-fixing release following the 0.7.2 release. See release notes for full details.

Version 0.7.2 released August 10, 2012

This release builds on the 0.7.1 release, providing management pages for some of the new features added in the earlier release, such as Report Processors, Patient, Encounter, and Obs Data Definitions, and Scheduled Reports, and providing improved user interface pages when running a report and when viewing the progress and results of a run report. It also adds an initial version of a new tool to build dynamic tables of patient data, allowing the user to specify the row filters and the column specifications that they want to use to drive their patient export. It also includes a number of valuable bug fixes and minor enhancements, including a raw SQL Indicator, and the ability to use runtime expressions rather than fixed values as parameters when scheduling reports. Finally, the module has been mavenized and had multi-version testing introduced, which should improve it's reliability going forwards.

See release notes for full details.

Screenshots:

Report Dashboard

Schedule a Report

Run a Report

Report Status

Data Export Tool

Version 0.7.1.1 released April 11, 2012

This release adds a single bugfix to 0.7.1, fixing REPORT-368, where if you have an incorrect value for the scheduler.password GP, it used to lead to multiple failed login attempts, which would lock your admin account.

Version 0.7.1 released March 16, 2012

This release changes the way reports are run. Whereas in prior versions, direct report evaluations within the UI ran reports synchronously and the user had to wait for the report evaluation to complete in order to view the results, in this version all report evaluations are processed asynchronously, and are queued for processing to ensure that only a configurable maximum number of reports can be evaluated at any one point in time. Users can navigate away once they have kicked off a report, and come back to the results page at a later point in time when ready.

Additionally, this release adds a new feature called Report Processors. Although these are currently able to be created via the API, Report Processors provide a mechanism for automatically adding one or more processing steps to a Report after it has been evaluated and rendered. Examples of where we expect these Processors to be utilized are in sending out emails with the details of a given report once it has finished generating, sending alerts or other messages to users indicating that a particular report has completed, performing additional logging or data processing on the report data, or sending the report data to another system, such as a data warehouse or a data aggregation tool.

Under the hood, this release changes all of the scheduled tasks from user-managed to module-managed scheduled tasks. So users will no longer see reporting-related tasks appear in the scheduler management pages.

Finally, this version addresses a number of bug fixes. See release notes for full details.

Version 0.7.0.1 released December 20, 2011

This point release addressed only a single ticket: Reporting module crashes OpenMRS 1.9 on startup. It was needed due to a late change in OpenMRS 1.9 to the hibernate version which introduced an incompatibility. This version is the minimum required by anyone running reporting on OpenMRS 1.9 or later

Version 0.7.0 released December 8, 2011

Key New Features

This module marks the introduction of generic Data Definitions and Query components to the reporting module API, and the incorporation of these components into a generic set of Row-Per-Object Dataset Definitions. The intention of these is to expand the reporting module beyond being Patient- and Cohort-centric. Implementations of these interfaces in this initial release include the following:

Data Definitions:
  • PersonDataDefinition - supports returning information like birthdate, age, gender, and other person-level data for either an individual person or a group of persons
  • PatientDataDefinition - supports returning information like patient identifiers, encounters, and other patient-level data for either a single patient or a cohort of patients. This data definition could provide an alternative to Logic for supporting re-usable queries for retrieving particular patient data
  • EncounterDataDefinition: supports returning information like encounter datetime, provider, location, and type for either a single encounter or a group of encounters
Query Definitions:
  • PersonQuery - supports defining re-usable queries for returning all Persons that fit a certain set of criteria
  • (PatientQuery is supported via the pre-existing CohortDefinition interface)
  • EncounterQuery - supports defining re-usable queries for returning all Encounters that fit a certain set of criteria
  • ObsQuery - supports defining re-usable queries for returning all Obs that fit a certain set of criteria
Dataset Definitions:
  • PatientDataSetDefinition - supports defining a table of data, where columns are defined by PatientDataDefinitions and rows are defined by CohortDefinitions
  • EncounterDataSetDefinition - supports defining a table of data, where columns are defined by EncounterDataDefinitions and rows are defined by EncounterQueries

Additional Features and Bug Fixes (full release notes are available here)

  • REPORT-33 - PatientIdentifierCohortEvaluator calls PatientService.getPatients(String, String, List<PatientIdentifier>) incorrectly
  • REPORT-89 - Re-implement Patient Identifier Cohort Definition
  • REPORT-113 - Search for Encounters by Provider
  • REPORT-191 - Localize the reporting UI
  • REPORT-201 - Size of Sql Editor window should be increased on SqlCohortDefinition and SqlDataSetDefinition editor pages
  • REPORT-203 - Html Widgets for definition classes should sort definitions alphabetically
  • REPORT-204 - The box for entering the composition string on the Composition Cohort Definition editor should be increased in size
  • REPORT-212 - If a parameter is added to a sql definition that has "date" in the name, save this parameter as a java.util.Date
  • REPORT-222 - Allow User object as Parameter for ReportDefinitions
  • REPORT-227 - Limiting a coded observation query by an encounter type does not work right
  • REPORT-259 - Indicators Over Time Broken
  • REPORT-263 - Investigate whether all reporting tables correctly work with sync
  • REPORT-264 - Support message translations as definition names when rendering reports
  • REPORT-266 - Delete old reports task is not working if report definition has been deleted in the meantime
  • REPORT-274 - A user with all the Task scheduling previleges and reporting module related previleges can't access the Report Scheduling page
  • REPORT-286 - Error when calculating history of indicators
  • REPORT-294 - Minor bug with Excel Template Renderer

Note also that we have removed the links to the Indicator over Time and Dataset Viewer pages, as they are not working 100% properly. Please vote for these features to return, and what in particular you would like to see change with them, if you are an active user of these features.

Important Information for Developers coding against the Reporting Module API

Compatibility with previous releases

There are several known incompatibility issues with previous releases. The following is a summary of each issue and recommended fix:

  • TODO
Compatibility with future releases

It is important to note that all definition interfaces remain subject to change, particularly those new interfaces that have been introduced in this release. Developers who wish to program against these APIs should be aware of this.