O3 RefApp Release 3.0.0-beta.16 is done

Dear Community,

:tada: Exciting news! OpenMRS RefApp Release 3.0.0-beta.16 is officially in the house!

A big shoutout to our rockstar first-time “official” code contributors: Michael Bontyes, Mike Seaton, ComradeSwarog, Aaron McCarthy, and Imeth Pathirana! Your dedication is truly commendable. :trophy:

The release has landed on o3.openmrs.org. Dive in with the credentials (Username: admin, Password: Admin123).

But wait, there’s more! We uncovered some mild bugs in this version, and we’ve got them under control. Check out this link for the scoop on what’s fixed and coming your way in 3.0.0-beta.17.

3.0.0-beta.15/16 Release Highlights

This list here is just the highlights, and does not include everything. For the full list, please go to the O3 Changelog here.

O3 Core Improvements
Improved Performance: Faster Load Times across O3. We reduced the number of dynamic imports shipped by frontend modules. How: by importing components directly in a frontend module’s entry points instead of dynamically importing them via function calls. This means that Webpack’s chunking algorithm ends up creating fewer chunks, and the corollary is the application loads faster as there are fewer network requests to be made. Read more here. Kudos to @ibacher from @Brown for this work!
Improved Translation: Better support for pluralization and interpolation. How: upgraded dependencies and amended translation keys and strings. See the syntax devs need to use here. Fun Fact and an example of why this is important: Unlike English that has 1 plural (“s”), the Arabic language supports 6 different types of plural strings! Kudos to @vasharma05 from @Mekom for this work!
Improved i18n: Support for non-Gregorian calendars. Developers can now register a custom calendar for a locale and use it in their application. Currently, we’ve only added explicit support for the Ethiopian calendar, which gets rendered when the locale is set to Amharic. Kudos to @ibacher from @Brown for this, and to @AmanRyder from @ICAP-ET for driving towards this.
New snackbar notification standard. Per our Notifications UI patterns, we have a new Snackbar notification component (see green in image) for the bulk of user-focused notifications. The Toast style will instead be used for system-wide notifications, like the yellow downtime warning shown in the image. Work is now ongoing to leverage this component pattern consistently. Thanks @hadijah for this work!
Yarn 4 Package Manager Support: We’re now using Yarn v4. Implications: Means we’re also migrating monorepo management concerns from using lerna to using yarn workspaces. NOTE Dependency Change: We’ll now require a minimum of Node 18 to run O3.
* Error logging for failed builds. The Webpack build process now logs errors in a readable format, so devs can easily see what went wrong during the build process. Thanks @jayasanka for this fix!
O3 Home Page Improvements
Performance Enhancement: Shared SWR cache. We’ve introduced a shared SWR cache for all the modules in the application. This means that if you’re using SWR in your module, you can now share the cache with the rest of the application. We’ve also reduced the number of network requests made by the application. This means that the application loads faster than before. Read more about this here.
Yarn 4 Support: means we’re also migrating monorepo management concerns from using lerna to using yarn workspaces. Dependency Change: We’ll now require a minimum of Node 18 to run the home app.
O3 Patient Chart Improvements
171x167,20% Ability to launch the Order Basket from a clinical form: Thanks to work by @brandones from @Mekom, you can now launch the Order Basket from a clinical form. This is useful if you want to order a medication or a lab test from a clinical form. Read more about this in the PR here. 316x131,50%
121.99999999999999x120 Patient Lists: New patient lists workspace directly inside patient chart! v6.0.0 introduces a new patient lists workspace to the side rail. This workspace allows you to view all available patient lists in a tabular format. You can also click on a list to view the patients in that list. This means that the patient list management concerns are now accessible from the Patient Lists app in the home page. See the PR here for more details. 470x119
122x213.69130434782608 Form Organization: Support for configurable form sections Thanks to work by @ibacher, you can now configure the forms list to group forms into sections. This is useful if you have a large number of forms and want to group them into sections. Read more about this in the PR here.
87x79 Edit and Delete Visits: Privilege-based ability to edit and delete visits. Thanks to work by @vasharma05, users with the appropriate privileges can now edit and delete visits.
118x108 i18n support for Arabic and Hebrew. Thanks to @michaelbontyes, @elimm, and @ComradeSwarog, who added the content and config options needed to support these languages. And thanks to previous work spearheaded by @Mekom, these languages automatically display in Right to Left! 470x213
122x120 Clinical forms and visit header layout improvements on tablet. Thanks to @CynthiaKamau and @donaldkibet from @Palladium-Kenya for the great work on this! 470x120

Other Changes

For other improvements to the O3 Form Builder and more, please see the O3 Changelog here.


Contributors to 3.0.0-beta.15 and beta.16

Alphabetically by Organization affiliation:

What we learned:

  • Utilizing JIRA Features for Enhanced Organization:

    • Incorporating essential features in JIRA, such as timelines and release numbers, has proven instrumental in enhancing organizational efficiency.
    • When creating a ticket, it is imperative to include the fix version, a practice that significantly contributes to improved planning and organization for releases.
  • Optimizing Release Processes through Automation:

    • Acknowledging that the release process can be time-consuming, particularly when dealing with multiple repositories, there exists a valuable opportunity for automation.
    • Streamlining repetitive tasks through automation will not only save time but also enhance the overall efficiency of the release process.
  • Effective Bug Identification with Manual QA Checklist:

    • The manual QA checklist, accessible here, has proven to be a crucial tool in identifying bugs that may not be covered by automated tests.
  • Time Savings through E2E Tests:

    • End-to-end (E2E) tests have emerged as a time-saving measure during manual testing.
    • By leveraging E2E tests, we have successfully expedited the testing phase, contributing to a more efficient and streamlined overall development process. Thanks @piumal1999, @anjisvj, @randila on working this.

Thanks @grace @vasharma05 @ibacher and @dennis for helping with the release process! :heart:


A huge kudos to @jayasanka for taking on the role of Release Manager for 3.0.0-beta.16. It was awesome to see how in the last week he:

  • Tested using the om.rs/o3qasheet in both Desktop and Tablet
  • Ticketed and prioritized any bugs he found
  • Followed up on any outstanding urgent priorities tagged in the beta-15 and beta-16 Jira Releases

Also thanks to @suubi7 for the testing he did which also found some good bugs! We’ll try to get fixes included for those in beta-17 in January :slight_smile:

We hope the beta-17 release will be next month, in January 2024!


I have tried to access the demo O3, using the provided user name and password, and it keeps giving me that invalid credentials, are there any problems or other ways to access the demo ?

@ibacher does it make sense to have a CI build to reset o3.openmrs.org?

Good idea: OpenMRS environments - Reset O3: Plan summary - OpenMRS Bamboo