Release Notes 1.8.0 Beta

January 7, 2011

This version of OpenMRS is a prerelease and not considered worthy for production use. Its function is to give users an idea of what to expect in the upcoming major release (1.8.0) and help discover any possible obscure new bugs.

What's New

Version 1.8.0 Beta of OpenMRS has a couple of new features but our main focus over the past couple of months has been on addressing performance bottlenecks in the core application and several modules that we deemed widely used, it is highly recommended to upgrade the modules to their latest versions to maximize the benefits this release has to offer. You may also visit Performance Tuning page and find out how best to tune your installation for better performance. You can download OpenMRS 1.8 Beta to try/test it

Performance Improvements: (See below for the complete list in the  change log section)

  • The Patient Dashboard  and a number of other pages load faster.
  • Search results are returned in a shorter time e.g when searching for patients, encounters, concepts etc.
  • The cohort builder has been sped up.
  • The data exports feature has been improved to consume less memory and attain better speed
  • More performance focused work has been done in the modules that are commonly used across most implementations, feel free to browse the module repository to check for any new versions and upgrade.

You can visit Performance improvement statistics page to view the performance measurement comparisons between version 1.8.0 beta and 1.7.0 stable release.

New Features: (See below for the complete list in the  change log section)

  • Program Location Module has been incorporated into the Core application
  • Improved workflow when adding a new program and state
  • Added complex obs BinaryDataHandler to core
  • Showing of a list of currently logged in users
  • Improve workflow when ending a program with a terminal state.
  • Ability to archive HL7 to file system instead of moving it to file system
  • Ability to view schema of a published form

A huge thanks to the 42 people that contributed code to this release: aravindm, astelmashenko, bmamlin, bwolfe, crecabarren, cristian.chircu, diptanuc, djazayeri, dthomas, firzhan, gigix, hablutzel1, harsha.cse, jKeiper, knoll_frank, l0s, luzhuangwei, mblanchette, mcunderlik, mharrison, misha680, mogoodrich, mseaton, ndutta, nribeka, n.nehete, r0bb, raff, shazin, slorenz, sneha, stuartgunter, sunbiz, syhaas, thadk, tks423, uday_rayala, umashanthi, upul, wyclif, yhemanth, zabilcm

Not to mention all the people that contributed in countless other ways to support this release and be a great part of the shaping of this release: pbiondich, mdowney.

Community Input

We welcome any user to download OpenMRS 1.8 Beta and try it out, give us feedback, and potentially bug reports on this release. We especially ask current users try this version out on their own database and with their custom modules.

Even if you don't have time to do any thorough testing, we'd really appreciate it if you can upgrade a copy of your database to the 1.8 data model, and report on any errors than may occur in the upgrade script.

If a new bug is found, send an email to one of the [mailing lists|] or create a new JIRA ticket (click upper right icon) Signup for an ?[OpenMRS ID|]

We do not recommend using this in a production environment!


OpenMRS 1.8.0 Beta represents version

Download OpenMRS 1.8 Beta

Bundled Modules

These modules are bundled with the 1.8 beta openmrs.war download. They will be started automatically.

  • Logic 0.4.1
  • Form Entry 5.0.1
  • HTML Form Entry 1.7.1
  • Reporting 0.5.2
  • Reporting Compatibility
  • Serialization.xstream 0.2.5
  • Xforms 3.9.7
  • HTML Widgets

Non-Backwards-Compatible Changes for Developers



  • [TRUNK-28] - Let the javascript pages cache
  • [TRUNK-205] - Remove ConceptWord from API
  • [TRUNK-207] - Issue with formatting the module config.xml in the Eclipse Studio
  • [TRUNK-263] - Normalize address field names
  • [TRUNK-277] - Problems in upating patient address
  • [TRUNK-317] - Combo box for coded concepts in patient dashboard summary
  • [TRUNK-341] - cannot edit user's name
  • [TRUNK-417] - Enable filtering users by role on the Manage Users page
  • [TRUNK-429] - PatientSetService.getEncounters(Cohort patients) does not return all Encounters
  • [TRUNK-430] - Updating location on Encounter should cascade the update to Obs
  • [TRUNK-435] - Cached presentation locales never refreshes
  • [TRUNK-558] - Empty person attributes are created when adding a new person
  • [TRUNK-1606] - 1 Patients Returned Shown When No Patients Found to Merge
  • [TRUNK-1607] - Redesign the Short Patient Form
  • [TRUNK-1612] - Improve the loading of widgets on the patient search page
  • [TRUNK-1621] - Patient pages occasionally loading improperly
  • [TRUNK-1628] - Administration page fails to load with error in /view/admin/maintenance/localHeader.jsp
  • [TRUNK-1635] - Error when clicking Become this User: context.ContextAuthenticationException
  • [TRUNK-1645] - Remove concept.default_charge from the data model.
  • [TRUNK-1651] - Error page is shown when removing a preferred name and fix tooltip for the mappings label on the concept form
  • [TRUNK-1655] - Incomplete looking drop-downs in Firefox
  • [TRUNK-1658] - NullPointerException while OpenmrsClassLoader unloads classes
  • [TRUNK-1661] - isOpenmrsObjectCollection returns true for collections of non-OpenmrsObject
  • [TRUNK-1662] - Modify functionality of getConceptByMapping method
  • [TRUNK-1663] - Improve speed of concept searching
  • [TRUNK-1666] - Improve speed of iterating changes during module development
  • [TRUNK-1667] - Improve speed of patient dashboard loading
  • [TRUNK-1669] - Cleanup code in PortletTag
  • [TRUNK-1670] - Create a cache for the model created in the PortletController
  • [TRUNK-1671] - Do some caching inside in the FieldGenTag
  • [TRUNK-1672] - Add column indexes to the form table
  • [TRUNK-1673] - Add column indexes to the user, roles tables
  • [TRUNK-1675] - person.uuid gets overwritten by Patient constructor Patient(Person person)
  • [TRUNK-1676] - Errors with Concept Proposal Management- Ignore fails
  • [TRUNK-1685] - Jetty:run uses webapp folder as base for exploded war files
  • [TRUNK-1687] - Fix installer target in build.xml
  • [TRUNK-1688] - Fix compile warning
  • [TRUNK-1690] - Add coding conventions to maven
  • [TRUNK-1694] - Patient Programs portlet is slow
  • [TRUNK-1695] - Speed up PatientDashboardController.referenceData
  • [TRUNK-1696] - Speed up LocaleUtility.getDefaultLocale() (because of frequent usage on patient dashboard)
  • [TRUNK-1697] - Speed up Concept.getName(Locale)
  • [TRUNK-1702] - ConceptNameTag cannot be updated
  • [TRUNK-1703] - jetty:run locks static resources on windows
  • [TRUNK-1704] - jetty resource filtering prevents running mvn eclipse:eclipse
  • [TRUNK-1709] - person_name.person_id is NULLable
  • [TRUNK-1713] - Fix dependencies in maven project for move to Spring 3
  • [TRUNK-1715] - Remove/Disable View Patient Dashboard link on New Encounter or provide a pretty error message
  • [TRUNK-1721] - SchedulerService.saveTask is logging too much information
  • [TRUNK-1726] - Allow jetty context to be configured
  • [TRUNK-1747] - Fix maven build to not fail if .svn folders not present
  • [TRUNK-1810] - Don't accept blank answers for security questions
  • [TRUNK-1825] - Upgrading concept tables from 1.6 to 1.7 gives some spurious warnings
  • [TRUNK-1830] - Duplicate dependencies in poms
  • [TRUNK-1833] - Archive HL7 to file system instead of moving it to file system
  • [TRUNK-1839] - OpenMRS 1.8 does not run on Tomcat 5.5
  • [TRUNK-1841] - View Patient Dashboard link on Add Encounter page causes an error
  • [TRUNK-1847] - New obs in sets do not have + sign next to creator/changed by
  • [TRUNK-1855] - EncounterService.getAllEncounterTypes() should include retired Encounter Types
  • [TRUNK-1857] - DWR "no data recieved from server" error message
  • [TRUNK-1866] - Openmrs:FormatDate tag doesn't localize when using the "format" attribute
  • [TRUNK-1871] - PatientServiceImpl.saveReasonForExit needs to provide a change message when updating the reason for exit obs
  • [TRUNK-1881] - Datepicker calendar doesn't show all the years
  • [TRUNK-1886] - java.lang.ArrayIndexOutOfBoundsException: 1
  • [TRUNK-1887] - Redirecting to wrong page at login
  • [TRUNK-1888] - Modify HibernateConceptDao "getConceptByMapping" method so that it ignores voided concepts -- Openmrs 1.6, 1.7
  • [TRUNK-1912] - Patient filter incompatibilities between OpenMRS 1.5 and 1.6
  • [TRUNK-1914] - The Update Concept Words Task is slow
  • [TRUNK-1915] - PatientService.getPatients(String, int, Integer) should accept a null second parameter
  • [TRUNK-1921] - JTDS JDBC Driver not supported
  • [TRUNK-1923] - PatientServiceImpl.saveCauseOfDeathObs needs to provide a change message when updating the cause of death obs
  • [TRUNK-1933] - Cannot edit an encounter's details

New Features

  • [TRUNK-8] - Add a check for the java version at Openmrs startup
  • [TRUNK-22] - Improve workflow when adding a new program and state
  • [TRUNK-23] - Automatic registration of core roles and privileges
  • [TRUNK-24] - Improve workflow when ending a program with a terminal state.
  • [TRUNK-25] - Edit drug order needs a link back to the patient's dashboard
  • [TRUNK-241] - Add Maven Integration
  • [TRUNK-297] - Fix Initialization Wizard to Show More Progress
  • [TRUNK-298] - Support for Large Patient Sets
  • [TRUNK-379] - Focused OpenMRS optimizations
  • [TRUNK-408] - Review Program Location Module and incorporate it into the Core codebase
  • [TRUNK-432] - Show a list of currently logged in users
  • [TRUNK-434] - Multi Level Database Caching
  • [TRUNK-1462] - Ability to view schema of a published form?
  • [TRUNK-1613] - Allow caching of javascript files provided by modules
  • [TRUNK-1615] - The patient dashboard is slow to load when there are a lot of infopath forms
  • [TRUNK-1616] - Search for patient by ID number is slow
  • [TRUNK-1617] - Generating reports takes a long time (Birt Module)
  • [TRUNK-1623] - Speed up the form schema designer
  • [TRUNK-1652] - Convert the dojo widgets to jquery widgets
  • [TRUNK-1653] - Add complex obs BinaryDataHandler to core?
  • [TRUNK-1674] - Add column indexes to the queried tables
  • [TRUNK-1681] - Update build.xml to forward to maven targets
  • [TRUNK-1698] - Add HL7 NTE (OBX comment) processing to ORUR01Handler
  • [TRUNK-1699] - DWRConceptService invokes findConcepts while searching for concepts
  • [TRUNK-1700] - Improve the user interface for the 'Manage users' page
  • [TRUNK-1701] - Reduce the time it takes to execute doStartTag() method of the FormatTag
  • [TRUNK-1707] - JQuery UI theme changed to match OpenMRS theme
  • [TRUNK-1710] - patientSummary extension point in patientOverview.jsp needs patientId parameter
  • [TRUNK-1712] - Rename modified dependencies in maven repository and project
  • [TRUNK-1723] - Localize error messages in PatientIdentifierValidator
  • [TRUNK-1739] - Do performance benchmarks through continuous integration with web testing
  • [TRUNK-1740] - Speed up "Edit Encounter" page
  • [TRUNK-1750] - Speed up searches
  • [TRUNK-1751] - Speed up and improve page loading
  • [TRUNK-1752] - Speed up various reporting technologies
  • [TRUNK-1753] - Speed up workflows
  • [TRUNK-1754] - Speed up reporting module
  • [TRUNK-1758] - Automatically generate distributable source files using maven assembly plugin for 1.8, using ant task for 1.6.x and 1.7.x
  • [TRUNK-1762] - Make OpenMRS easier to use with JRebel
  • [TRUNK-1766] - Create a 1.8 performance testing module
  • [TRUNK-1767] - Create large demo dataset for 1.6, 1.7, and 1.8 data models
  • [TRUNK-1779] - OpenMRS should allow application data directory (and thus location of to be specified in a Servlet API compatible manner
  • [TRUNK-1828] - Remove concept_derived table and Derived datatype
  • [TRUNK-1842] - Add index on obs table to speed up queries for "does latest obs have value X?"
  • [TRUNK-1851] - SpringController can be replaced with UrlFilenameViewController, works correctly under OSGi HTTP Service
  • [TRUNK-1860] - Create a multi-column index on the obs table
  • [TRUNK-1862] - Add methods to the API to support batch look up
  • [TRUNK-1865] - Refactor regimens portlet so it does not use ConceptService.getConceptByName
  • [TRUNK-1909] - Create new getConceptsByMapping API method that returned retired concept
  • [TRUNK-1927] - Update release process wiki page to reflect steps for maven
  • [TRUNK-1932] - Daemon threads need to be able to spawn other daemon threads