Release Notes 1.5.0

Release date: Sept 14th 2009

Version 1.5 of OpenMRS is packed with new features:

  • Added a wizard for easier setup of the OpenMRS database and runtime properties file. Just deploy the war file into Tomcat, view it in a web browser, and it will step through creating your database for you.
  • Removed the need to run and update-to-latest sql files. When downloading an updated OpenMRS file, simply upload the new war file to Tomcat, view it in a web browser, and it will show you what database updates are needed before it can start.
  • Images, xrays, sound files, etc can now be stored or referenced as "Complex" observations in the database
  • UTF-8 characters are now fully supported in both database elements and as a translation item
  • Automatic UUIDs on all objects/rows
  • Better memory management
  • Plus many more smaller features, improvements, and bug fixes!

We recommend all users upgrade to this version of OpenMRS. Please allow anywhere between 10 minutes and 10 hours for your sql upgrade depending on the size of your database. 1.5 is not backwards compatible with 1.4, so you will not be able to roll back the database easily.


SQL Updates

Database creation and updating is done in the webapp at startup now.
These files are only needed if database creation or database updating needs to be done offline. Otherwise, just install the OpenMRS war (or api jar) and run through the updates automatically.

Bundled Modules

These modules are bundled with the 1.5 openmrs.war download. They will be started automatically and can be removed if they are not wanted.

What's New Since The 1.4.0 Release?

User-visible features and bug fixes


Added an initialization wizard for easier setup of the openmrs database and runtime properties


Added an update wizard for an admin to see in the webapp what updates are required for openmrs to run


Added automatic UUIDs to all objects/rows


Added support for complex observations to be stored



Memory leak fixes


OpenMRS database auto updated at OpenMRS startup


Added spain name and address format. Fixed familyName layout overwrite bug - #1629 (Thanks emendez!)


UTF8 Localization Support (thanks konnikov!)


Added extension point for formentry and htmlformentry forms to be listed in the same place


Add Admin Page Showing Which Database Updates Have Been Executed (thanks Knoll_Frank!)


Program names should be unique (thanks Knoll_Frank!)


Unlabeled symptom durations in Encounter view


Added constructs to data export


Added Cohort Report Designer


Only show add / edit links if concepts.locked is false (thanks arhine!)


mergePatients in PatientService allows merging a patient to itself (thanks strategist333!)


Bug causing report macros to fail when then include certain parameters


Cannot uncheck privileges from a newly created role on subsequent saves (thanks Knoll_Frank!)


Velocity errors keep surfacing when downloading a form in formentry.


Concept Stats for Numeric Concepts is broken


Search for Forms not working all the time (thanks Jchern!)


Add Ability to Edit User Properties (thanks clare!)


Change Default Locale and Make it Customizable (thanks wchoi!)


Manage Obs page should not show Void This Obs button if the obs has not been created yet


Data Truncated for column error


Made Minimum Searching Characters customizable (thanks Knoll_Frank!)


When displaying states in cohort builder, made sorting intelligent (thanks wchoi!)


Problems with removing or adding Graphs in Dashboard (thanks isherman!)


Internationalization issue: Missing key on Find Patient Screen (thanks Anuraag!)


Internationalization issue: Missing key on Patient results screen (thanks Anuraag!)


Move tribe to person attribute (thanks upul!)


Problems with Data Export Output File (Concept Text and Concept ID)


Show hl7_in_error rows in the webapp (thanks sthaiya!)


Added a way to inactivate and reactivate locations (thanks sdefabbiakane!)


Made Mongolian cyrillic characters work (thanks nribeka!)


Concept Dictionary should include column Set Members indicating Concept Set Membership (thanks Daniel.futerman!)


person search widget should show some identifier (thanks Knoll_Frank!)


Cohort Builder display instead of


Fix Dojo Javascript Paging (thanks cnaut!)


Handle query string edge case where no form id given (thanks wmrowan!)


Unable to add new Encounter Types With Long Descriptions (thanks Cory.M!)


Unvoid obs button on Manage Obs page is in the wrong place (thanks Knoll_Frank!)


Improve observation graph servlet


Patient Age incorrect when creating a new patient using a birth date (thanks tmdugan!)


Request: Display actual cause of death if Other Non Coded selected


Add note about not requiring username when creating user (thanks luzhuangwei!)


Privilege View Tribes required to view users and add users (thanks upul!)


Remove Work with these patients and My Patient Set feature from core


Delete Selected Encounter Types fails when there are no encounter types selected (thanks Cory.M!)


Added internationalization to pages that were missing it (thanks nribeka!)


Make Mark Alert As Read more readable (thanks upul!)


Options Page Modifications (thanks upul!)


Minor improvements to Form Management page (thanks wmrowan!)


Retired concepts are found w/out checking include retired


Add format drop down pick list to PersonAttributeType.form (thanks Knoll_Frank!)


Person Attribute Edit Permission (thanks upul!)


List of drugs cannot show voided drugs (thanks Knoll_Frank!)


When managing groups of items (Locations,Encounter Types, etc), deleting with no item selected should be handled gracefully (thanks dkayiwa!)


Should not allow saving Person Attribute Types with no name, or same name more than once (thanks Knoll_Frank!)


Drug Regimen Start and End Dates Not Ordered (thanks Knoll_Frank!)


Form schema designer should show which fields are select-multi (thanks ewolodzko!)


Voided Obs Report - need to add date range (thanks cnaut!)


Duplicating form sets wrong creator/changed_by info (thanks Knoll_Frank!)


Move Merge Patients link to Administration Page (thanks clare!)


Rearrange concept numeric limits input fields (normal, critical, absolute) to better represent their meaning. (thanks Keelhaul!)


ObsValidator should reject obsDatetime == null (thanks Keelhaul!)


Upgrade scheduler to handle long-running tasks (thanks Knoll_Frank!)


Duplicate user search results if the user has more than one name (thanks nathanael!)


Core modules shipped with openmrs are not started at startup


Scheduler throws exception ('Timer already canceled') when trying to restart a failed task.


Added openmrs version to query string to js and css html include so that javascript and css files aren't cached across versions


Added ability to have special characters and spaces in passwords (Thanks nribeka!)


Made the login lockout per IP configurable through a global property

Changes to the underlying API


ObsService.getObservations fails to include obs on passed dates


FormatTag doesn't reset user and userId


Allow openmrs-require to check more than one privilege (thanks cnaut!)


upgrade dwr to 2.x (thanks nribeka!)


Alternate logging descriptor file for junit tests


Move all validators into the API (thanks zakaria!)


Add Provider option to getEncounters method (thanks Knoll_Frank!)


Change tinyint and bit columns to tinyint(1)


Move extension point to the left of the Administration link


Update JFreeChart in trunk to latest version (thanks Keelhaul!)


Remove database version from versioning technique


Tag to enforce configuration prior to using a page (thanks froystig!)


Fix Errors/warnings in Javadoc in the API (thanks mkopinsky!)


Hierarchy of Locations (thanks Keelhaul!)


Move DataEntryStatistic out of core and into a module


JUnit Test Failed on Windows


Create base Openmrs interfaces and base objects


Switch Security to use SHA-2 (thanks nribeka!)


Serialization Framework


Auto registration of Handler Components


Module Advice is Loaded Twice at Startup


Add UserService method to update secret question and answer


HibernateAdministrationDAO.executeSQL() logging unwanted stack trace


Module configuration should allow you to require a specific minimum version of another module


hexString in src/api/org/openmrs/util/ does not properly hexify string (thanks hexmode!)


Allow modules to define servlet filters


Support migration of hashed passwords and salt


Migrate all reporting web components into a module


Start on startup for Schedulable Tasks not always works and 30 secs delay before startup (thanks Knoll_Frank!)


ReportService - Initial Refactor


Fix default view resolver to work with Spring 2.5's convention-over-configuration


Added "create" and "update" as triggers for the SaveHandlers so that calls to deprecated methods still work.


Moved web/scripts/* to web/WEB-INF/view/scripts/* to get rid of stack overflow exeptions due to recursive file openings


Upgraded xstream to v1.3.1 (Thanks luzhuangwei!)



Upgraded Spring Framework jar to 2.5.6



Upgraded commons-collections jar to 3.2



Upgraded asm jar to 1.5.3



Removed commons collections and switched logging to using slf4j to tunnel to log4j



Upgraded jfreechart to 1.0.12



Upgraded mysql connector jar to 5.1.7



Upgraded dwr jar to 2.0.5 (Thanks nribeka!)

What's Changed Since the Other 1.5.0 Prereleases?

If you have downloaded and used one of the prereleases, we urge you to upgrade to the 1.5 final release. See Release Notes-1.5.0 Beta, Release Notes-1.5.0 Beta 2, Release Notes-1.5.0 RC, and Release Notes-1.5.0 RC2 for all bug fixes over each prerelease.

More detailed information can be found by looking at the tickets closed for the 1.5 line.

Volunteer Participation

We're really excited to report that we had a record number of community participants in this release! A huge thanks to the many volunteers that contributed new features, bug fixes, bug reports, and testing time to this release!

  • Owais Ahmed
  • James Arbaugh
  • Andrew Austin
  • Jeffrey Chern
  • Anuraag Chigurupati
  • William Choi
  • Sam Defabbia-Kane
  • Daniel Futerman
  • Roy Frostig
  • Upul Godage
  • Mark Hershberger
  • Clare Kasemset
  • Andy Kanter
  • Daniel Kayiwa
  • Frank Knoll
  • Pavel Konnikov
  • Michael Kopinsky
  • Andrey Kozhushkov
  • Frank Li
  • Eduardo Méndez
  • Adam Monsen
  • Cory McCarthy
  • Charles Naut
  • Nathanael Obermayer
  • Robby O'Conner
  • Nyoman Ribeka
  • Bill Rowan
  • Ilya Sherman
  • Erich Wolodzko
  • Lu Zhuang Wei
  • Tom Wiltzius
  • Zakaria