Dear Community,
OpenMRS RefApp Release 3.0.0-beta16 is out for QA! Congratulations to these first-time “official” code contributors in the O3 RefApp: Michael Bontyes, Mike Seaton, ComradeSwarog, Aaron McCarthy, and Imeth Pathirana
It’s hard to believe our last release was < 2 months ago - look at all the work that has happened in that time! I’m thankful and humbled by all the superstars we get to work with.
How you can help: We invite the community to help us test in test3.openmrs.org. For manual testing ideas, see om.rs/o3qasheet, or just see what funky behavior you can find!
What happened to 3.0.0-beta15? Our QA release of beta15 found enough bugs that we wanted to fix them and re-kick-off the release; hence, we are now on beta16. Once we move to normative versioning with the “3.x.x” convention we’ll be able to be more clear about “pre-releases” for our testing process.
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 | |
---|---|
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. |
|
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. |
|
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. | |
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. | |
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! |
|
Clinical forms and visit header layout improvements on tablet. Thanks to @CynthiaKamau and @donaldkibet from @Palladium-Kenya for the great work on this! |
Other Changes
For other improvements to the O3 Form Builder and more, please see the O3 Changelog here.
Links
- Detailed Release Notes: See the O3 Changelog where the exhaustive list of included features and fixes is updated with each release.
- Demo Instance: OpenMRS O3 RefApp Demo (admin/Admin123)
Contributors to 3.0.0-beta.15 and beta.16
Alphabetically by Organization affiliation:
- Brown University: @ibacher
- ICRC: Jose Francisco, @icrc.psousa, @icrc.thonorio
- Mekom: @vasharma05, @bistenes, @kazlaw, @achachiez
- Madiro: @michaelbontyes
- OpenMRS Support: @dkigen, @jayasanka
- PalladiumKenya: @dkibet, @minimalist, @makombe, @jecihjoy
- PIH: @mseaton, @mogoodrich
- UCSF: @larslemos
- Independent Contributors: @hadijah315, @thembo42, ComradeSwarog, elimm, Aaron McCarthy, @jwnasambu, @imeth.pathirana, @ayushmishra, and @njiddasalifu
What Is Going Well, vs What We Can Improve?
There was a lot of pressure on Ian, Dennis, Vineet and myself to get this particular release out the door quickly, but when it came time to do the final manual testing and act on urgent fixes, I felt we were a bit alone. In future if folks want to push an urgent release, we need 3 things from you:
- Labeled Jira Issues: Everything you expect/need in the release must be ticketed in the OpenMRS Jira and have the relevant “Fix Version” Label (see these examples). Please be clear about any issues that are blockers. Or, blockers that are actually NOT blockers! E.g. I loved that @mksd so clearly said here that a discovered issue was not, in fact, a blocker for their implementation, as this helps inform our decision whether the release should be held back.
- Participate Actively in the QA Testing Checklist: You can see most manual checks and issues found with beta.15 were by me and 2-3 others; for scalability, in the future this must be more of a group effort. Which is part of the reason we’ll try to do these “QA RELEASE” talk posts too. If folks have questions, don’t be afraid to ask me
- Team Effort: Identify a dev point-of-contact who can be tasked with urgent fixes. If your org needs the release urgently, and wants certain things fixed first, please share who on your team can be a point of contact to help fix those issues faster. Otherwise the release will likely be held back or move forward without your needed fix.
Version Numbers for Frontend and Backend Dependencies
3.0.0-beta.14 | 3.0.0-beta.15 | ||||
---|---|---|---|---|---|
Module Name | Installed Version | Required Version | Installed Version | Required Version | |
fhir2 | 1.10.0 | ^1.2.0 | No change | 1.10.0 | ^1.2.0 |
o3forms | 2.1.0 | * | Version increased | 2.2.0 | * |
openconceptlab | 2.1.0 | >=1.2.0 | No change | 2.1.0 | >=1.2.0 |
reporting | 1.25.0 | ^1.0.0 | No change | 1.25.0 | ^1.0.0 |
reportingrest | 1.14.0 | ^1.0.0 | No change | 1.14.0 | ^1.0.0 |
webservices.rest | 2.41.0.756cb3 | ^2.24.0 | No change | 2.41.0.756cb3 | ^2.24.0 |
3.0.0-beta.14 | 3.0.0-beta.16 | Change? | |
---|---|---|---|
@openmrs/esm-active-visits-app | 5.1.0 | 5.2.1 | Version increase |
@openmrs/esm-appointments-app | 5.1.0 | 5.2.1 | Version increase |
@openmrs/esm-cohort-builder-app | 3.0.1-pre.174 | 3.0.1-pre.183 | Version increase |
@openmrs/esm-devtools-app | 5.2.0 | 5.3.2 | Version increase |
@openmrs/esm-dispensing-app | 1.0.1-pre.240 | 1.2.1 | Version increase |
@openmrs/esm-fast-data-entry-app | 1.0.1-pre.110 | 1.0.1-pre.117 | Version increase |
@openmrs/esm-form-builder-app | 2.1.0 | 2.2.1 | Version increase |
@openmrs/esm-form-entry-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-generic-patient-widgets-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-home-app | 5.0.0 | 5.2.0 | Version increase |
@openmrs/esm-implementer-tools-app | 5.2.0 | 5.3.2 | Version increase |
@openmrs/esm-login-app | 5.2.0 | 5.3.2 | Version increase |
@openmrs/esm-openconceptlab-app | 4.0.0 | 4.0.1 | Version increase |
@openmrs/esm-patient-allergies-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-appointments-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-attachments-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-banner-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-biometrics-app | 5.1.0 | – | Merged into esm-patient-vitals-app |
@openmrs/esm-patient-chart-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-conditions-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-flags-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-forms-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-labs-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-list-app → @openmrs/esm-patient-list-management-app | 5.1.0 | 5.2.1 | Version increase AND Renamed patient list app to patient list management |
@openmrs/esm-patient-lists-app | – | 6.1.0 | * NEW * |
@openmrs/esm-patient-medications-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-notes-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-orders-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-programs-app | 5.1.0 | 6.1.0 | Version increase |
@openmrs/esm-patient-registration-app | 5.1.0 | 5.2.1 | Version increase |
@openmrs/esm-patient-search-app | 5.1.0 | 5.2.1 | Version increase |
@openmrs/esm-patient-vitals-app | 5.1.0 | 6.1.0 | Version increase AND now includes what used to be the biometrics app |
@openmrs/esm-primary-navigation-app | 5.2.0 | 5.3.2 | Version increase |
@openmrs/esm-service-queues-app | 5.1.0 | 5.2.1 | Version increase |
@openmrs/esm-system-admin-app | 4.0.0 | 4.0.1 | Version increase |