OpenMRS Platform Roadmap

From our Platform team call today, we landed on this list for the next release of the Platform:

  1. Community Priority: Implement Encounter Context and Visit Context.
    • Much of encounter context work may apply to frontend; there may be some requirements for business on the backend (e.g., deciding when to use existing vs. create new encounter)
  2. Community Priority: Extract Immunization (especially Immunization Schedule) like we did for Allergies, Conditions, Diagnosis.
    • Need to be able to attribute these (including Allergies, Conditions, Diagnoses) to an encounter
  3. A REST endpoint to check status of platform (especially when platform is starting up) TRUNK-6198
    • Would be great to have sense of progress for long-running states
  4. Upgrade other small libraries to their latest versions.
  5. Upgrade to Liquibase 4.19.0 - for patches included. Need to check if this upgrade would cause any complexity for us. TRUNK-6155, TRUNK-6208
  6. Support for Java 17 - many newcomers come with Java 17 installed, run into errors, we discover the issue is Java 17. RefApp currently runs well on Java 11, but not 17. (LTS after 11 is 17.) People should be able to develop in the latest LTS of Java, but we want to be able to run on a previous LTS, e.g. still support running on Java 8 (thinking of Implementers). (As we try out 17, will depend on what we figure out; if can’t support Java 8, might decide to either cancel 17 update, or drop 8, etc. - we try not to just drop support for a previous version due to the difficulty this causes for implementers.) TRUNK-6197
  7. Remove all uses of the Hibernate Criteria API because it’s deprecated (replaced with JPA criteria) TRUNK-6202
  8. Global properties access should be privileged, so we need an endpoint to expose those items needed (anonymously) during O3 startup. TRUNK-6203, TRUNK-6206
  9. Add support for init parameters for module servlets (TRUNK-4673) and this Talk post
  10. Docker as a first-class approach to deployment. RA-1990, TRUNK-6186, TRUNK-6083

These items were elected to defer for future Platform releases due to backwards-incompatibility issues:

  1. Support for Tomcat 10 - many newcomers come with v10 installed, run into errors, ask for help, and then we discover the issue is their Tomcat version. Still support running with Tomcat 8.
  2. Upgrade to Hibernate 6.1.7.Final - for patches included. Need to check if this upgrade would cause any complexity for us.
  3. Upgrade to Spring 6.0.5 - for patches included. Need to check if this upgrade would cause any complexity for us.
  4. Replace the Standalone with something else. Very old, can’t even build in our latest releases - we disable it as the technology no longer works and is no longer supported. We now just ship the .war file and README. Suggestion to leverage Docker - something that works by double clicking and then just runs.

/cc @dkayiwa