Release Notes - Platform 2.0.0 Beta

This version of OpenMRS Platform 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 (Platform 2.0.0) and help discover any possible obscure new bugs.

What's New

OpenMRS Platform 2.0.0 Beta is the second pre-release for testing, leading up to an eventual release of Platform 2.0 in 2016.

Platform 2.0: The New Era

The Platform 2.0 release will mark a new era for OpenMRS.

Fundamentally, Platform 2.0 will be the first version of OpenMRS that truly embraces its role as a Platform: the base installation does not include a user interface, and you can only interact with it through web services. This will enable OpenMRS Platform to serve as a true back-end service, and a foundation upon which people can innovate with modern web application frameworks.

Simultaneously, we are also cleaning up our Java APIs by removing all the deprecated methods that have built up over the last decade of OpenMRS releases, and modernizing by running on Java 8, and upgrading libraries like Spring and Hibernate.

These are fundamental changes, not all of which are backwards-compatible, and we are marking the occasion by increasing the major version of the Platform for the first time in OpenMRS's history.

 You can download Platform 2.0.0 Beta to try/test it

New Features

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

  • Support Open Web Apps as a bundled module 
  • Support for Order Sets and other features from Platform 1.12-beta
  • Migrated LegacyUI to the LegacyUI module. 
  • Added support for Java 8,  Spring  4.1.4,  Hibernate 4.3.9
  • Moved Allergy API into OpenMRS core.
  • Removed deprecated methods from core API

What this means?

  • To use LegacyUI with Platform 2.0.0 Beta, you have to install the LegacyUI module. Neither of Platform 2.0.0 Beta Standalone, Sourceforge distro or openmrs-core github projects come bundled with it 
  • If your module uses any deprecated API methods from OpenMRS 1.x, appropriate changes may be required to run it on Platform 2.x
  • If your module builds with Java 6 or Java 7 or uses Hibernate 3.x, it might be a good idea to check it's compatibility with Platform 2.x. A number of modules have already been ported to work with Platform 2.x. We had a Developer Forum call on 17 March 2016 to discuss migration of modules to Platform 2.x. It was led by raff.

A huge thanks to the 93 people that contributed code to this release: Aashna Garg, Achinta Roy, Akshika Wijesundara, Alexei Grigoriev ,Alexis Duque, Arkadiusz Kołodziejski, Bhavana Ramasayam, Břetislav Hájek, Burke Mamlin, Cathy Chen, Chethan A, Clifton McIntosh, Daniel Kayiwa, Darius Jazayeri, Dave Lahn, David Churcher, Fernando Barbosa, Filip Biedrzycki, Gaurav Narula, Geoffrey Wasilwa, Haolan Chen, Harsha Kumara, Imran Tatriev, Ivange Larry, Jakub Buczyński, Jakub Kondrat, James deGraft-Johnson, Jason Vena, Judy Gichoya, Julius Duic, Kishore Yekkanti, Kristopher Schmidt, Lluis Martinez, MA Corrales, Manika Maheshwari, Mark Goodrich, Mayank Sharma, Michael Downey, Michael Hofer, Michael Souza, Mihir Khatwani, Mikko Suniala, Myrle Krantz, NAGASOWMYA MAJETY, Nicholas Folk, nilmadab mondal, Owolabi Legunsen, Pascal Brandt, Paweł Muchowski, pralay ramteke, Priya Samuel, Radosław Puzdrowski, Rafal Korytkowski, Rasanjana Perera, Robert Day, Roman Zayats, Ryan Crichton, Sam Dale, Sandeep Raparthi, Saptarshi Purkayastha, Sashrika Waidyarathna, Satwik Reddy, Sebastian Theis, Sergey Morozov, Seth Noyes, Sharon Varghese, Shekharreddy Mittapelly, Shreyans Sheth, Shubham Rai, sravanthi naraharisetti, Stanislav Pereverziev, Stephen Senkomago Musoke, Tanay Abhra, Tharunya Pati, Thilo Beckmann, Thisura Thejith, Thomas Van Doren, tobias vogel, Tomasz Mueller, Ujjwal Arora, Václav Krpec, Venkata Jaswanth U, Vicente Bermúdez, Vikash Gupta, Vinay Venu, Vishnu Mechineni, Wesley Brown, Willa Mhawila, Wyclif Luyima, Yousef Hamza, Yuri Sintyaev, Zakaria Amine

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, burke, jthomas, the infra team

Community Input

We welcome any user to download OpenMRS Platform 2.0.0 Beta or try it out on one of the servers where it is deployed (see table below), 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.

Deployed ArtifactsServerDeployment Status
Platform 2.0.0-betadevtest05.openmrs.orgWaiting for server acquisition
Platform 2.0.0-beta + Legacy-UIuat01.openmrs.orgWaiting for server acquisition

p.s : Platform 2.0.0-beta includes REST-WS module 2.14, FHIR module 1.4 and OWA module 1.4 (see below)

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 2.x 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 request module owners to verify their module works with Platform 2.0.0 Beta. A number of modules have already been ported. Please follow the instructions mentioned in RA-954

We request the implementers to try out Platform 2.0.0- Beta with the latest RefApp release in a staging environment. It would to great to know about features that are missing or need to be introduced in the upcoming releases.

We do not recommend using this in a production environment!


Bundled Modules

These modules are bundled with the 2.0.0-Beta openmrs.war download. They will be started automatically.


For Platform 2.0.0 Beta, we have focused largely completing REST-WS support for exposing the OpenMRS API and adding support for Open Web Apps

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

Please look at Platform 2.0.0 Alpha Release Notes to take a look at the milestones covered prior to this Beta release



  • Updating layout.address.format global property

  • Removing dashboard.regimen.standardRegimens global property

  • Encrypting the users.secret_answer column

  • Temporarily removing foreign key constraint from person_attribute_type.edit_privilege column\

  • Temporarily removing foreign key constraint from role_privilege.privilege column

  • Increasing the size of the privilege column in the privilege table

  • Adding foreign key constraint to person_attribute_type.edit_privilege column

  • Increasing the size of the privilege column in the role_privilege table

  • Adding foreign key constraint to role_privilege.privilege column

  • Adding foreign key on patient_identifier.patient_id column

  • Add changed_by column to encounter_type table

  • Add date_changed column to encounter_type table

  • Create allergy table

  • Create allergy_reaction table

  • Add allergy_status field to the patient table

  • Custom changeset to migrate allergies from old to new tables

  • Removing the active_list_problem table (active_list feature removed)

  • Removing the active_list_allergy table (active_list feature removed)

  • Removing the active_list table (active_list feature removed)

  • Removing the active_list_type table (active_list feature removed)

  • Add drug_non_coded column to drug_order table

  • Adding address columns (7-15) to person_address and location

  • Removing a column value_boolean from obs table

  • Set uuid for columns in all tables which has uuid as null. This is required for successful run of next changeSet.

  • Set uuid columns to "NOT NULL", if not set already for 1.9.x tables

  • Create order_set table

  • Create order_set_member table

  • Create order_group table

  • Adding 'order_group_id' column to orders table

  • Adding 'sort_weight' column to orders table

  • Converting values in drug_order.dosing_type column(TRUNK-4845)

New Features (after OpenMRS Platform 1.11.5)

TRUNK-4750PersonAddress and Location should include additional custom fields
TRUNK-4780Add a static home page to indicate that OpenMRS is running
TRUNK-4786Add a Platform 2.0 is running page
TRUNK-4445Support custom DosingTypes
TRUNK-4355Create complex handler for storing and displaying video and audio files
TRUNK-2843ORUR01Handler should support multiple providers per encounter
TRUNK-3372Rename some of the API-level privileges
TRUNK-4747Move Allergies API into the core platform
TRUNK-4808LegacyUI files copied into core WEB-INF show up as new git files
TRUNK-4807Improve the implementation of SerializingCustomDatatype.validate
TRUNK-4818AdministrationService.getPresentationLocales() should return results with a correct and consistent order
TRUNK-3871Create UserService.saveUser(User user) method
TRUNK-4474Have a core global property for a concept representing Unknown
TRUNK-4452Getting concepts by mapping should be case-insensitive
TRUNK-4447Add ci config for sonar
TRUNK-4440Allow implementations to control whether drug orders require formulation
TRUNK-4438Ability to start all modules in their correct order
TRUNK-4020AddressTemplate should let a user specify required fields
TRUNK-4015Application data directory should include web app name
TRUNK-3963Visit validator should prevent or allow overlapping of visits depending on global property
TRUNK-4638Upgrade Jetty to 9.x
TRUNK-4584Upgrade to spring 4.x
TRUNK-4583Upgrade to java 8
TRUNK-4702OrderService should allow you to save overlapping DrugOrders if the caller acknowledges that they are aware of the overlap
TRUNK-4701You should not be allowed to create a discontinue order by concept that ambiguously indicates stopping more than one active order
TRUNK-4240Create a drop-down list handler for Location Attribute types
TRUNK-4411Provider identifiers should not be required to be unique
TRUNK-4364Upgrade to Hibernate 4
TRUNK-4537Add a way to Delete a specific Provider forever
TRUNK-4572Provide UI to "Delete Forever" unused Concept Drugs
TRUNK-4571Get encounters by creation/modification date [Feature request]
TRUNK-4769Add another method in HibernateContextDAO to use start() method of MassIndexer class
TRUNK-4761Free Text Drug Orders
TRUNK-4717Rebuild search index when server is running
TRUNK-3325Add UI for managing drug ingredients
TRUNK-3323Move drug.route to order entry process
TRUNK-3629Rewrite the Manage Program, Workflow, and State admin pages
TRUNK-3499Support more CustomDatatypes and their associated CustomDatatypeHandlers
TRUNK-3386Increase the privilege column size
TRUNK-3359Create hibernate mapping files for organisational roles
TRUNK-257Add Feature to enable moving Encounter Data to a different patient
TRUNK-2119Improve Crash Reporting
TRUNK-4833Add getDrugIngredientByUuid() to the service layer
TRUNK-3920Module message properties should not be forced to have their keys start with moduleId
TRUNK-4486Display OpenMRS api version during the installation processes
TRUNK-4578Ignore tests based on OpenMRS core version and modules
TRUNK-2999Investigate replacing concept word with full text search
TRUNK-14Remove RegimenSuggestion class
TRUNK-3064Create unit test for duplicate messages
TRUNK-367Create a German translation file
TRUNK-2039Modify the Regimens tab to work with new order templating system
TRUNK-2280Refactor maximum length checking in the view layer
TRUNK-4485Use Global Property to Specify how Provider Search behaves
TRUNK-4453AuthenticatedUserTestHelper, for writing mock-based unit tests that require an authenticated user, but no other context
TRUNK-4636NameTemplate should provide a format method
TRUNK-4626There should be a way to disable validation logic for bulk data import or SHR use cases
TRUNK-4699OrderService.saveOrder should only apply duplicate/overlap checking to DrugOrders
TRUNK-4665Add Russian translation of openmrs-core
TRUNK-4385Annotated BaseOpenmrs... classes
TRUNK-4415Add sonar properties
TRUNK-4728Enable batching of inserts and updates in the JDBC driver.
TRUNK-4727Adding new birthtime column in person table.
TRUNK-2037Determine the feasibility of transitioning from current Orders to new orders

Bugs (after OpenMRS Platform 1.11.5)

TRUNK-3951NotTransactional not working correctly
TRUNK-4573Improve migration of concept name tags to types
TRUNK-2894Change all void references to delete in interface
TRUNK-4745UpdateFilter should not depend on InitializationFilter being initialized before it
TRUNK-4811Daemon user must be cached
TRUNK-3840Retired concepts aren't showed as retired when listed as set members
TRUNK-4497Hide or disable (option of selecting) a child role instead of throwing an error
TRUNK-4495Settings page returns 500
TRUNK-4630System default locale not in allowed_locales, causes AdminService error
TRUNK-4618Fix class loading performance issues
TRUNK-4582Adding a coded answer to the concept causes ConstraintViolationException
TRUNK-4576Concept Dictionary CSV download - looping issue causes incorrect output
TRUNK-4529Prevent voiding a Person linked to Provider(s) and/or User(s) metadata
TRUNK-4520Cannot add synonym to a concept and error message is not helpful
TRUNK-4703jetty-maven-plugin invalid configuration
TRUNK-4669Blank Concept Information Page
TRUNK-4345Non ASCII characters do not display correctly in spanish
TRUNK-4251Patient dashboard issue when using french locale
TRUNK-4380Location parent not displayed when location widget is "tree" view
TRUNK-4545Fix failing tests in EncounterServiceTest
TRUNK-4542Add new role doesn't work on branch master
TRUNK-4417"equals(Object obj)" and "hashCode()" should be overridden in pairs
TRUNK-4416Throwable and Error classes should not be caught
TRUNK-4731Task throws and Exception error when stopping a related module
TRUNK-4752User password should be validated before changing it
TRUNK-3625Cannot view saved complex obs
TRUNK-4726auto_update_database=true would not apply liquibase changesets
TRUNK-4845Update drug_order.dosing_type to use fully-qualified Java class names
TRUNK-4803Email pattern is wrong
TRUNK-4800Installer uses deprecated MySQL system variable
TRUNK-4835Ensure that we log the location of the runtime properties file
TRUNK-4824Concept Name Tag Validator throws a duplicate error for the same concept name tag
TRUNK-3876HibernateSerializedObjectDAO.saveObject should set auditable fields before serializing
TRUNK-4492Remove the tribe field from the 'patient' table
TRUNK-4481Mapping concept proposal to synonym can create duplicate concept names
TRUNK-4482Voided encounters shows in the current visit in patient header
TRUNK-4480Patient search yields "No matching records found" when there are matching records
TRUNK-4473Form Resource (Long-Text) causes error with binary file upload
TRUNK-4469Don't allow a concept to reference itself as a coded answer
TRUNK-4468Error when viewing patient form for deleted patients
TRUNK-4466Schema design "Find Form Elements" box should be always be visible
TRUNK-4463dashboard.overview.showConcepts GP should either receiver spaces after/before each concept id or change the description to inform the user not to enter them
TRUNK-4458Default locale message is in English when you select the français locale
TRUNK-4457Make User.hasRole() case insensitive.
TRUNK-4456Add error checking to relationship future start/end dates on patient dashboard
TRUNK-4454Hide 'Show N entries' on the patient dashboard under encounters
TRUNK-3912Task does not turn off automatically when uninstalling the module associated with it
TRUNK-3888Arden patch for ArdenServiceImpl in core api to support concept names regardless of a specific language
TRUNK-4148Providers are no longer listed by default
TRUNK-4140Substitute deprecated method call in HibernateContextDAO
TRUNK-4131Coded concept broken with Most Recent Observation on dashboard
TRUNK-4109Add method to retrieve Observations based on their accession Numbers
TRUNK-4054Add missing version to maven-javadoc-plugin
TRUNK-4053Problems with ClassCast Exception
TRUNK-3968Need to have option to void Person when the person is also a patient
TRUNK-4635Cancel button doesn't allow to exit Creating New Concept Page
TRUNK-4617patient_identifier.patient_id is missing foreign key to patient
TRUNK-4603Exception when running SchedulerFormControllerTest under Java 8 (onSubmit_shouldNotRescheduleATaskThatIsNotCurrentlyScheduled)
TRUNK-4597Exception when running WebModuleUtilTest under Java 8
TRUNK-4595Exception When Running ExtensionUtilTest under Java 8
TRUNK-4594DownloadDictionaryServletTest Fails under Java 8
TRUNK-4596Exception when running PortletTagTest under java 8
TRUNK-4592PatientDashboardGraphControllerTest Fails under Java 8
TRUNK-4590Exception when Executing Test with Java 8
TRUNK-4593DownloadDictionaryServletTest Fails under Java 8
TRUNK-4587Warning During Compilation - HttpClient
TRUNK-4586Warning During Compilation - KeepAliveCache
TRUNK-4534The scripts on the long patient form get broken if a patient has more than 10 identifiers
TRUNK-4523Person attributes are not being displayed when viewing a voided person
TRUNK-4522If JVM is 1.8, some tests do not pass.
TRUNK-4514OpenMRS does not start if JVM is 1.8
TRUNK-4509Cannot edit concept description to empty
TRUNK-4506Heading of the admin page should use the localized message
TRUNK-4507Translate more messages for the hindi locale
TRUNK-4500Use of APIException not localized (mostly)
TRUNK-4692Performance improvement in LocationService getLocationsHavingAllTags
TRUNK-4690Orders.orderer column cannot be set to NOT NULL until after user to provider migration occurs
TRUNK-4683TRUNK-4630 fix still have issue
TRUNK-4670The French version of the "Create a New Patient" page is only partially translated into French
TRUNK-4350OpenmrsClassLoader may chose wrong ModuleClassLoader when one module name is a substring of another module name and there is a period in the name
TRUNK-4338Don't show the "Add Provider" link for users that don't have the "Manage Providers" privilege
TRUNK-4337Remove deprecated org.openmrs.reporting
TRUNK-4328Datepicker requires two clicks for the year menu to remain visible
TRUNK-4313[RelationshipType] Error due to the Empty Description
TRUNK-4307Incomplete error message in implementation id form
TRUNK-4285Incorrect behavior of Person.getPersonName() and getPersonAddress() for a voided Person
TRUNK-4267AlertServiceImpl.notifySuperUsers throws exception for exceptions with short stack traces
TRUNK-4260Error while submitting empty form in the page: "openmrs/admin/concepts/conceptSource.form"
TRUNK-4252Date fields are stored precise to the second in the DB, and MySQL 5.6 rounds milliseconds instead of truncating them
TRUNK-4208Gender and Birth date should not be required for persons linked to providers or users
TRUNK-4406Remove duplicate keys from message resource files
TRUNK-4418Fix random failure of ModuleActivatorTest
TRUNK-4569Calculated autoexpire date should be one second earlier
TRUNK-4729EncounterType is missing changedBy and dateChanged fields
TRUNK-4779Cache reflection info for calls in RequiredDataAdvice
TRUNK-4771Authorization checks are slow when running as Daemon
TRUNK-4758Enable Hibernate second level cache
TRUNK-4746Default error handlers should display the appropriate error message
TRUNK-4737Remove liquibase changeset that doesn't belong
TRUNK-4725ContextWithModuleTest inconsistent failure
TRUNK-4724BeanCreationException during spring application context refresh should stop loading of the application
TRUNK-4711Clean up javadocs
TRUNK-3709Secret answer should be encrypted
TRUNK-3705getName(Locale locale, boolean exact) simply calls getName() if exact = false
TRUNK-3654ModuleUtil should not treat SNAPSHOT as 999.
TRUNK-3780Searching for patient with patient name/new feature
TRUNK-3569When a patient identifier fails regex validation, it should display the pretty formatDescription if available
TRUNK-3413Unable to delete scheduled tasks that refer to classes that are not available
TRUNK-3383HandlerUtil.getPreferredHandler(Class<H> handlerType, Class<T> type) throws an exception if top-ranked handlers have the same order ranking
TRUNK-3479Concept Validator should ignore short names
TRUNK-3465AddPersonController needs to be refactored to not use instance fields
TRUNK-3448Locale with country does not work
TRUNK-2205Jackson JSON cannot handle BaseOpenmrsObject
TRUNK-1505Remove obs.value_boolean
TRUNK-3915liquibase change-set 20090402-1518 (Adding not-null constraint to uuid columns) not run when creating a new 1.9.3 database from scratch
TRUNK-4825Module upload should not refresh context more than once
TRUNK-50Obs not voided when updated via saving an Encounter
TRUNK-3422Upgrading to 1.9 requires new privileges for visits which are not added by default
TRUNK-3849Move Address and Name layout support classes from web layer to api layer
TRUNK-3850Program validator is inefficient when checking for duplicates
TRUNK-4462Change failed module's name from x-version to xxx x-version
TRUNK-3982SchedulerUtil locks out openmrs user with false log in attempts.
TRUNK-3937Stored XSS in Location Pages
TRUNK-3935Stored XSS via Custom Form Fields
TRUNK-4627Use StringUtils.isEmpty(stringObject) instead of (stringObject == null || stringObject.equals(""))
TRUNK-4499AddressTemplate should not display default when the changes are invalid
TRUNK-4672Correctness - int value cast to float and then passed to Math.round
TRUNK-4652Correctness - Method call passes null for nonnull parameter
TRUNK-4650Multithreaded correctness - Static DateFormat
TRUNK-4646Support compressed requests
TRUNK-4315[Create Provider] Invalid validation for both empty Field and Both Filled Field
TRUNK-4301Including voided patients in openmrs 1.11.x
TRUNK-4297[Add User] Invalid Error Message for Blank Password
TRUNK-4386Fix loading messages in tests for modules
TRUNK-4561Minor comments error in web.xml
TRUNK-4429Add check that default locale is amongst allowed locales list
TRUNK-2717Display a meaningful message when a scheduled task with no repeat interval fails to start
TRUNK-2660Validate field lengths of domain objects in management pages
TRUNK-2809At least one non-empty description should be required for a concept
TRUNK-2967Fix Performance tests
TRUNK-3771"Select Multi" should only be enabled for coded datatype in Edit FormField
TRUNK-227Constraint error when recreating the Concept word index with concept_names containing accented characters.
TRUNK-2296PersonNameValidator gives the wrong field names
TRUNK-2003InvalidPropertyException on long patient form when user adds new name or address or identifier
TRUNK-208Fix Transactions Across Service Methods
TRUNK-3844Correct BaseOpenmrsObject equals
TRUNK-3938JSESSIONID should be assigned after a user has been successfully authenticated
TRUNK-4634Dodgy - Write to static field from instance method
TRUNK-4633Correctness - Invocation of toString on an array
TRUNK-4632Dodgy - Redundant nullcheck of value known to be non-null
TRUNK-4622Correct surefire exclude test
TRUNK-4614Multithreaded correctness - Call to static DateFormat
TRUNK-4613Eliminate critical issues reported by Sonar
TRUNK-4615Bad practice - Method may fail to close database resource
TRUNK-4612Correctness - Call to equals() comparing different types
TRUNK-4611Multithreaded correctness - Incorrect lazy initialization of static field
TRUNK-4644Correctness - Possible null pointer dereference and should not be called directly
TRUNK-4643Performance - Method concatenates strings using + in a loop
TRUNK-4640Throwable.printStackTrace(...) should never be called
TRUNK-4639"equals(Object obj)" should be overridden along with the "compareTo(T obj)" method
TRUNK-2960Non-blocking error message is logged after updating concept words task completes
TRUNK-3346When create a form it places Patient_name table rather than Person_name in the Field table
TRUNK-2107Program management does not show workflows
TRUNK-4796Drug search with special characters in name throws exception
TRUNK-4782Retrospective edit of Orders.
TRUNK-4826Springloaded does not work on Windows
TRUNK-4459HTML tags are shown on merge patient page
TRUNK-4637Temporary jarfiles not deleted
TRUNK-4605OrderEntryIntegrationTest fails due to timing of discontinued order
TRUNK-4580When revising an order, the previous order should be stopped an instant before the new one starts
TRUNK-4574Fix Integration test failure
TRUNK-4531Encounter Provider Names not shown for providers not linked to a person on patient dashboard visits tab
TRUNK-4691Concept and ConceptService.saveConcept should automatically set the value of "is_set"
TRUNK-4687NonUniqueObjectException when modifying a concept
TRUNK-4675Italian Create Patient Label displayed in English
TRUNK-4660Administration page does not display
TRUNK-4657Method may fail to clean up stream or resource on checked exception
TRUNK-4658Correctness - Possible null pointer dereference in method on exception path
TRUNK-4654Performance - Method invokes inefficient Number constructor; use static valueOf instead
TRUNK-4653Dodgy - Dead store to local variable
TRUNK-4331GitHub openmrs-core repo missing file
TRUNK-4261Error while submitting empty form in the page: "openmrs/admin/concepts/conceptReferenceTerm.form"
TRUNK-4354Retired Location Attributes are shown when editing a Location or adding a new Location
TRUNK-4419Change Database1_9_7UpgradeTest to integration test
TRUNK-4767Application Data directory structure in Windows 10 causes install problem
TRUNK-4741Corrected message_es properties file for spanish
TRUNK-4721Performance issue with version of H2 that we are using
TRUNK-3722Add partial previous stacktrace to error handler.
TRUNK-3077Regimen Date Formats Change
TRUNK-2224Show appropriate notification message when void reason is empty when voiding a patient
TRUNK-4841Using @JoinColumn instead of @Column with @ManyToOne in BaseOpenmrsData
RESTWS-543Get /visit is not displayed in swagger documentation

Upcoming End of Release Notice

OpenMRS 1.9 will reach end of life when Platform 2.0.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 OpenMRS 2.0.0, support 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 Platform 1.10.x, concurrent with the release of Platform 2.1.0