Platform Release Notes 1.12.0

Introducing: OpenMRS Platform 1.12

When OpenMRS reached 2.0, we decided to allow the platform – application programmer interface (API) and web services – to develop and grow separately from the web application.  As a result, we have named the API and web services "OpenMRS Platform" (while the web-based medical record system is called "OpenMRS Reference Application").

This release is the "OpenMRS Platform 1.12" – it is the release version of the under-the-hood OpenMRS API that follows the OpenMRS 1.11.x line. We do not currently intend to use this version of the platform in a Reference Application release. (Reference Application 2.4 will still be on the Platform 1.11.x line, and we intend for Reference Application 2.5 to jump to Platform 2.0.)

Release Date: Wednesday May 25th 2016

Release Manager: Bharat Akkinepalli

What's New in OpenMRS Platform 1.12.0

This release contains the following features 

  • Support for OrderSets and OrderGroups
  • Drug name search should accept special characters
  • Retrospective stop of orders
  • Retrospective discontinuation of orders.


  • [TRUNK-3383] - HandlerUtil.getPreferredHandler(Class<H> handlerType, Class<T> type) throws an exception if top-ranked handlers have the same order ranking
  • [TRUNK-3580] - MessageSourceService.getMessage methods that take a MessageSourceResolvable should return the proper default message
  • [TRUNK-3915] - liquibase change-set 20090402-1518 (Adding not-null constraint to uuid columns) not run when creating a new 1.9.3 database from scratch
  • [TRUNK-4757] - Inconsistent error messages reported about new patient's age
  • [TRUNK-4767] - Application Data directory structure in Windows 10 causes install problem
  • [TRUNK-4771] - Authorization checks are slow when running as Daemon
  • [TRUNK-4779] - Cache reflection info for calls in RequiredDataAdvice
  • [TRUNK-4782] - Retrospective edit of Orders.
  • [TRUNK-4793] - obsValueField.tag has an invalid jstl expression
  • [TRUNK-4796] - Drug search with special characters in name throws exception
  • [TRUNK-4805] - Retrospective stop of orders
  • [TRUNK-4810] - isDatabaseStringComparisonCaseSensitive must be cached
  • [TRUNK-4811] - Daemon user must be cached
  • [TRUNK-4814] - Error creating patient for large location IDs > 1000
  • [TRUNK-4817] - A user should be redirected to home page if logged in instead of the login page
  • [TRUNK-4824] - Concept Name Tag Validator throws a duplicate error for the same concept name tag
  • [TRUNK-4825] - Module upload should not refresh context more than once
  • [TRUNK-4826] - Springloaded does not work on Windows
  • [TRUNK-4831] - Unvoid Patient Record ends up NullPointerException
  • [TRUNK-4841] - Using @JoinColumn instead of @Column with @ManyToOne in BaseOpenmrsData


  • [TRUNK-4794] - The goal of this issue is to add the ability to use order sets for orders.

New Feature

  • [TRUNK-4761] - Free Text Drug Orders
  • [TRUNK-4769] - Add another method in HibernateContextDAO to use start() method of MassIndexer class
  • [TRUNK-4833] - Add getDrugIngredientByUuid() to the service layer


  • [TRUNK-4834] - Support for Order Sets and Order Groups


  • [TRUNK-4799] - Fix ERROR - EncounterSaveHandler.handle: Unable to save complex obs


We are so thankful to all our contributors towards this release, here is a list of these wonderful people

Buddha, Daniel Kayiwa, Michael Seaton, Rafal Korytkowski, SwathiVarkala, Venkata Jaswanth, Wyclif Luyima, bholagabbar, chenjr95, dkayiwa, shruthidipali, wyclif, ys-achina

Not forgetting all the people that contributed in countless other ways to support and be a great part of the shaping of this release: We are very sensitive not to hurt your emotions and in-case you are one of such please email us and we shall be able to mention you by name

Community Input

We welcome any user to download OpenMRS 1.12.0 and try it out, give us feedback, and potentially bug reports on this release. We especially ask current users to 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.12.0 data model, and report on any errors than may occur in the upgrade script.

If a new bug is found create a new JIRA ticket .

We do not recommend using this in a production environment!


OpenMRS Platform 1.12.0 represents revision: 8f283ea385d71421d810027c4a6ea70c22c7675b

Download OpenMRS Platform 1.12.0


CIEL Dictionary:

 openmrs_concepts_1.11.2_20160427.sql (the Concept database tables have not changed since Platform 1.11.x, so you can use the same CIEL dictionary)


  • Unzip the downloaded OpenMRS Platform 1.12.0 zip file. (For linux users; this needs to be in an ext file system type, most partitions created with and having windows formats will not work since the installation needs to change file permissions which ubuntu allows for only ext file systems - TODO add reference)
  • Change directory into the openmrs-standalone-1.12.0 folder and then run the standalone using the java -jar openmrs-standalone.jar command.
  • The openmrs standalone window will show up and you can proceed from there.
  • The installation provide you three options but most the times you will use either the demonstration or fresh installation (comes with the above mentioned concept dictionary).


Consider using our upgrading guide. In summary for Standalone 1.9.x or any other upgrade to 1.12.0, follow this guide:

  • Back up your database to be on the safe side in-case something goes wrong, use either the Database Backup Module or refer to the MySQL Backup guide.
  • Stop all the Modules and logout of openmrs if possible.
  • Close the openmrs standalone window
  • Download the OpenMRS Platform 1.12.0 from sourceforge and replace the war file in your previous standalone located under tomcat/webapps folder (also delete the openmrs-standalone folder) with the newly downloaded war file.
  • Now re-run the standalone again, you will go through the database upgrade process (maintenance mode) by signing in as an administrator when prompted.

Bundled Modules

This module is bundled with OpenMRS 1.12.0. It will be started automatically and can be removed if desired.

Bundled Module


Rest Web Services


Changes for Module Developers

  • TRUNK-3915: Adding a changeSet that adds uuids where it doesn't exist, before adding not null constraint.
  • TRUNK-4824 Concept name tag validator not to throw duplicate validation error for the tag being validated
  • TRUNK-4810 isDatabaseStringComparisonCaseSensitive must be cached
  • TRUNK-4811 Daemon user must be cached
  • TRUNK-4826 Springloaded does not work on Windows
  • MessageSourceService.getMessage methods that take a MessageSourceResolvable should return the proper default message

Data Model Changes

1 New Issue

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Upcoming End of Release notice

OpenMRS 1.9 will reach end of life when Platform 1.12.0 is released.

As of described in Unsupported Releases (EOL), OpenMRS can only support up to three released versions at a time (the current release and then two versions back). With the release of Platform 1.12.0, support for 1.9 will no longer be provided by the core Development Team for OpenMRS 1.9.x and earlier. This announcement also serves as advance notice that support will end for OpenMRS 1.9.x, concurrent with the release of Platform 2.0.