Skip to content

v5.1.0

Compare
Choose a tag to compare
@denniskigen denniskigen released this 07 Oct 10:32
· 728 commits to main since this release
bccfae8

Highlights

React Hook Form and Zod

Following excellent work by @lumuchris256, we've migrated most of the vanilla React forms in the patient chart to use React Hook Form and Zod. This has allowed us to remove a lot of boilerplate code and make the forms more robust. The hope, moving forward, is that these tools will make form validation in React more efficient, maintainable, and less error-prone.

New lab order form and improvements to the order basket

Thanks to excellent work by @brandones, we now have a new lab order form that allows for the ordering of lab tests. Additionally, the medication order form has been improved to match the functionality described in the related design documentation. These changes pave the way for the introduction of various different types of orders in the patient chart.

Forms and Notes widget replaced by the Clinical Form workspace

The forms and notes widget has been replaced by the Clinical Form workspace, which is accessible by clicking its icon in the side rail. The workspace can be collapsed and expanded, and can also be hidden by clicking the "x" icon in the top right corner of the workspace if you have an active form open with unsaved changes.

The Test Results app is now the Labs app

In keeping with the next iteration of the Lab orders functionality, the Test Results frontend module got renamed to Labs. With even more iterations on the horizon for the Lab orders feature squad, the app's scope will change significantly.

Broader i18n coverage

Courtesy of great work by @vasharma05 and @icrc-jofrancisco, this release provides various enhancements to our i18n effort. The Angular form engine now loads locale data automatically from O3, amending elements in the form layout to match the selected locale, if translations are provided for it. Translations are now available for components in the common-lib app, which means we're nearing ever closer to a future where strings in the Patient Chart are fully translated.

Improved workspace implementation

We've iterated on the latest design documentation for the workspace to deliver a new and improved workspace experience. @vasharma05 has a handy guide if you want to learn more about all the possibilities available when registering a workspace.

Support for printing test results and vitals

Great work by @nanfuka means we now have the ability to print Vitals and Test Results data. The print button is a configurable property that can be toggled on in each of the frontend module's configuration schemas. Once turned on, a Print button appears in the widget header as the rightmost element. Clicking the button should show you a print preview with a summary of the data in the widget. Future work will involve centralizing the printing logic as well as extending printing support to other areas of O3.

Features

  • (feat) Rename test-results-app to labs-app by @brandones in #1360
  • (feat) Add an extension slot for additional visit summary items by @ibacher in #1286
  • (feat) Implement the print functionality for Vitals lists by @nanfuka in #1196
  • (feat) Put the Patient Flags feature behind a feature toggle by @denniskigen in #1283
  • (feat) Form entry app to use new API endpoint by @ibacher in #1300
  • (feat) Migrate appointments form to RHF and Zod by @lumuchris256 in #1295
  • (feat) Migrate programs form to use RHF and Zod by @lumuchris256 in #1250
  • (feat) Automatically load Angular locale data by @icrc-loliveira in #1320
  • (feat) Migrate Medications order form to use RHF and Zod by @lumuchris256 in #1309
  • (feat) O3-2195: Implement the print functionality for medications by @nanfuka in #1312
  • (feat) Fix Medications order form after RHF and Zod Migration by @lumuchris256 in #1332
  • (feat) O3-2196: Implement the print functionality for Test results by @nanfuka in #1306
  • (feat) O3-2325 Implement Lab Order form by @brandones in #1328
  • (feat) Migrate Vitals and Biometrics form to RHF and Zod by @lumuchris256 in #1310
  • (feat) Improved implementation for the siderail nav buttons by @vasharma05 in #1334
  • (feat) Migrate start visit form to use RHF and Zod by @lumuchris256 in #1278
  • (feat) Remove redundant translation configuration settings by @donaldkibet in #1331
  • (feat) Use patient-chart-app namespace for patient-common-lib translations by @vasharma05 in #1344
  • (feat) Migrate allergy form to RHF and Zod by @lumuchris256 in #1308
  • (feat) O3-2391: Ability to hide observations in encounters via config… by @elimm in #1353
  • (feat) Form app: add translations for form-engine strings by @icrc-jofrancisco in #1066
  • (feat) Launching workspaces should prompt user for unsaved forms, especially for workspaces that cannot be collapsed or workspaces with same type by @vasharma05 in #1364
  • (feat) Add side-nav scrolling in the patient chart on tablet by @Jexsie in #1230
  • (feat) Add current visit summary component by @donaldkibet in #1368
  • (feat) O3-2437: Restore a left border to the workspace by @njiddasalifu in #1379
  • (feat) Resolve template literals in the src prop of the logo config by @samuelmale in #1315
  • (feat) O3-2242: 'Retrospective Entry' label on Chart Header when doing RDE by @brandones in #1298
  • (feat) Update UI shell component to fix styling issue on workspace by @donaldkibet in #1387
  • (feat) O3-1678 Order basket medication search results should have two-button layout by @brandones in #1366
  • (feat) KH-372: Add Khmer translations for esm-patient-banner-app by @kazlaw in #1393
  • (feat) KH-372: Add Khmer translations for esm-patient-forms-app by @kazlaw in #1391
  • (feat) KH-356: Correct the Khmer translation for Actions by @kazlaw in #1392
  • (feat) Remove RXJS for launching form-entry by @donaldkibet in #1319
  • (feat) KH-372: Add Khmer translations for esm-form-entry-app by @kazlaw in #1384
  • (feat) O3-1825 Order Basket should have new v2 layout to support additional order types by @brandones in #1316
  • (feat) Remove unused forms code and updated forms config by @donaldkibet in #1354

Bug fixes

  • (fix) O3-2282: Show phone number in contact details panel by @denniskigen in #1285
  • (fix) Fix improper stacking for recurring appointment inputs on tablet by @Jexsie in #1284
  • (fix) resolves valid route with grouped chart dashboards by @pirupius in #1287
  • (fix) Fix the appearance of the start date column in the medications table by @denniskigen in #1291
  • (fix) Fix test script indentation by @denniskigen in #1293
  • (fix) Fix broken styles in form view component search by @CynthiaKamau in #1296
  • (fix) Restore configurable logo to print preview by @denniskigen in #1299
  • (fix) Setting the correct Form UUID in the encounter payload when saving a form by @vasharma05 in #1303
  • (fix) O3-2305 + O3-521 Various minor medication order bugs by @brandones in #1302
  • (fix) Medications refactor by @brandones in #1307
  • (fix) O3-2161: Encounter view doesn't work with multiple pages by @jwnasambu in #1247
  • (Fix) full width patient chart widgets meta by @pirupius in #1311
  • (fix) O3-2158: Clear order basket search input and trap focus when search gets reset. by @NYESIGA in #1322
  • (fix) O3-1676 & O3-1677: Workspace implementation improved as per design by @vasharma05 in #1325
  • (fix) Fixed the workspace type for siderail nav buttons by @vasharma05 in #1335
  • (fix) Updated the search mechanism for form-list to return correct results by @donaldkibet in #1337
  • (fix) O3-1676 & O3-1677: Allowing individual workspace to either hide, maximize and have a wide/narrow width by @vasharma05 in #1333
  • (fix) O3-2362: Opening a form from forms-dashboard shows a confirmation modal by @vasharma05 in #1338
  • (fix) Fix failing to save required visit attributes in the start visit form by @vasharma05 in #1346
  • (fix) Redirect users back to previous page by @donaldkibet in #1341
  • (fix) O3-2359: Remove "Care setting" configuration property from medications and lab orders by @Jexsie in #1343
  • (fix) Disable content wrapping in the Vitals table when the workspace is open by @Jexsie in #1317
  • (fix) Visit type is not getting translated in the All Encounters table by @vasharma05 in #1352
  • (fix) Fix the dose input combobox width in the drug order form by @denniskigen in #1351
  • (fix) O3-2363: Workspace window state should be part of global workspace state by @vasharma05 in #1339
  • (Fix) Drug orders 'Immediately add to basket' button closes the workspace window completely when clicked by @nanfuka in #1363
  • (fix) Hiding the workspace re-opens the workspace window. by @vasharma05 in #1357
  • (fix) Run prettier by @brandones in #1369
  • (fix) O3-2048: Fix wheel scroll issue in vitals and biometrics form inputs by @ayush-AI in #1115
  • (fix) Add missing prop to launchPatientWorkspace for programs by @donaldkibet in #1373
  • (fix) O3-2442: Patient Actions Slot should be hidden if there are no actions by @mogoodrich in #1372
  • (fix) Fix various icon buttons by @denniskigen in #1378
  • (fix) O3-2324: Order Basket should look right on tablet by @jwnasambu in #1359
  • (fix) O3-2438: should not be visible until it is known whether there is an ongoing visit by @jwnasambu in #1375

Housekeeping

Tests

  • (test) O3-2109: Add Vitals and biometrics E2E test by @RandilaP in #1238
  • (test) O3-2107: Add patient chart allergies E2E test by @RandilaP in #1205
  • (test) O3:2110 Add conditions e2e test by @RandilaP in #1292
  • (test) O3-2344: Change table locators by @RandilaP in #1323
  • (test) O3-2401: Fix test for visit-form.component.tsx after new migration to RHF by @ayush-AI in #1355
  • (test) O3-2402: Fix test for Vitals and Biometrics form after new migration to RHF by @lumuchris256 in #1367
  • (test) O3-2111: Add patient chart add program e2e test by @RandilaP in #1251

Documentation

  • (docs) Add instructions for running specific tests using turbo by @denniskigen in #1321

New contributors

Full Changelog: v5.0.0...v5.1.0