O3 RefApp (QA Release): 3.0.0-beta.15/16 ready for testing

Dear Community,

OpenMRS RefApp Release 3.0.0-beta16 is out for QA! :tada: Congratulations to these first-time “official” code contributors in the O3 RefApp: Michael Bontyes, Mike Seaton, ComradeSwarog, Aaron McCarthy, and Imeth Pathirana :trophy:

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
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.

Links

Contributors to 3.0.0-beta.15 and beta.16

Alphabetically by Organization affiliation:

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:

  1. 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.
  2. 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 :slight_smile:
  3. 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
13 Likes

Hi @grace Why must the related person have to be existing in the system and how possible is it on ground for every related person related to patient be in the system, just some clarification on that.

Also the error screen for the camera not found, needs some UX design :arrow_down:

Another observation what is the purpose of the View dropdown on the Queues Screen it has no content when clicked on

With Appointments When I add a patient for an appointment ideally this appointment is meant to show up on the appointments calendar, this does not happen though.

Also when I check in patient from the appointments side and push them to Queues the pushed patient doesnot show up in the Queues module. It shows there is a one patient lined up in Queues but no patient shows up in the patients Queues list.

Those are my observations @grace and the team hope they do help.

1 Like

Thanks @suubi7 for the feedback.

  1. The View drop down on the Queues Homepage only shows locations that have the service queues tag, perhaps that’s why you can’t see anything on the drop down.

2.The appointment calendar endpoints are not yet merged in, that’s work in progress.

  1. Also when I check in patient from the appointments side and push them to Queues the pushed patient doesnot show up in the Queues module (you will be able to view the patients in the queue after adding your preferred queue locations)
2 Likes