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.
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.
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!
For other improvements to the O3 Form Builder and more, please see the O3 Changelog here.
- 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)
Alphabetically by Organization affiliation:
- Brown University: @ibacher
- ICRC: Jose Francisco, @icrc.psousa, @icrc.thonorio
- Mekom: @vasharma05, @bistenes, @kazlaw, @achachiez
- Madiro: @michaelbontyes
- OpenMRS Support: @dennis, @grace
- PalladiumKenya: @dkibet, @minimalist, @makombe, @jecihjoy
- PIH: @mseaton, @mogoodrich
- UCSF: @larslemos
- Independent Contributors: @hadijah315, @thembo42, ComradeSwarog, elimm, Aaron McCarthy, @jwnasambu, @imeth.pathirana, @ayushmishra, and @njiddasalifu
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: