Releases: openmrs/openmrs-esm-patient-chart
v7.1.0
What's Changed
⭐️ New features
- (feat) O3-2814: Add field validation to the lab order form by @usamaidrsk in #1649
- (feat) O3-2779: Error messages in drug order form should be translated by @vasharma05 in #1652
- (feat) The lab order form should have a reason for ordering field by @makombe in #1458
- (feat) Add mode prop to React Form Engine component to handle different views by @CynthiaKamau in #1678
- (feat) O3-2859: Change Patient Appointments to use shared appointments form by @mogoodrich in #1674
- (feat) O3-2760: Present workspaces should leverage the promptBeforeClosing function by @vasharma05 in #1613
- (feat) O3-2760: Add a closeWorkspaceWithSavedChanges function to the workspace API by @vasharma05 in #1689
- (feat) Add ability to cancel orders by @pirupius in #1640
- (feat) Makes orders widget expandable and adds detailed order view by @pirupius in #1696
- (feat) Add config to handle bill submission in start visit form by @CynthiaKamau in #1700
- (feat) O3-2304: Hide side menu panel on item click by @usamaidrsk in #1693
- (feat) Enhance user experience with clearer error messages on form submission by @donaldkibet in #1697
- (feat) O3-2885: Fix allowed image types in visit notes form image uploader by @jnsereko in #1685
- (feat) Conditionally make the order reason field of the lab order form required when configured by @makombe in #1698
- (feat) Add functionality to allow deleting and editing an allergy by @jnsereko in #1703
- (feat) Update enrollment and discontinuation date to pick correct time zone by @donaldkibet in #1719
🐛 Bug fixes
- (fix) Fix medications not loading when quantity unit property is null by @makombe in #1656
- fix: Allowing image upload from computer by @Pradipram in #1654
- (fix) O3-2807: Quantity Units should be required when a quantity to dispense is specified by @mccarthyaaron in #1636
- (fix) O3-2832 : Implemented validation check for Primary Diagnosis and Secondary Diagnosis in visit-note by @senthil-k8s in #1647
- (fix) O3-2877: Make the drug search debounce delay value configurable by @jwnasambu in #1680
- (fix) O3-2907: Always show order type filters in the order details table by @mccarthyaaron in #1706
- (fix) O3-2867: Add required validation to the conditions form's condition field by @Twiineenock in #1665
- (fix) Revalidate visits after submitting the visit notes form by @nanfuka in #1701
- (fix) O3-2945: Results viewer shows a loading UI infinitely while in Tree View mode by @mccarthyaaron in #1726
- (fix) Fix spacing around address empty state in patient banner by @denniskigen in #1729
🧹 Housekeeping
- (chore) Bump react form engine version by @jabahum in #1655
- (chore) Remove outdated comment by @brandones in #1660
- (chore) Remove duplicated SWR config by @denniskigen in #1675
- (chore) Remove lerna.json by @denniskigen in #1723
- (chore) Upgrade peer-dependancy versions of single-spa and single-spa-react by @jayasanka-sack in #1669
- (chore) Added French translations for "Next" and "Previous" on form entry app by @icrc-psousa in #1677
- (chore) Remove timing env from lint script in all packages by @denniskigen in #1679
- (chore) Update translations from Transifex by @befantasy in #1615
- (chore) Bump ip from 1.1.8 to 1.1.9 by @dependabot in #1682
- (chore) Loosen fhir2 dependency requirement by @denniskigen in #1709
- (chore) Fix-up publish scripts by @ibacher in #1722
- (chore) Switch from lerna to yarn for publishing by @denniskigen in #1718
- (chore) Release v7.1.0 by @jayasanka-sack in #1734
- (chore) Bump @openmrs/ngx-formentry by @icrc-psousa in #1684
- (chore) Bump playwright by @kdaud in #1715
- (chore) O3-2934: Update urls in the PR template by @kdaud in #1717
New Contributors
- @jabahum made their first contribution in #1655
- @senthil-k8s made their first contribution in #1647
- @himanshu-malviya15 made their first contribution in #1673
- @ODORA0 made their first contribution in #1688
- @github-actions made their first contribution in #1683
- @Twiineenock made their first contribution in #1665
Thank you to all contributors for embodying the spirit of 'write code. save lives' in every line committed. Your commitment to OpenMRS is invaluable and truly makes a difference in healthcare worldwide. ❤️
Full Changelog: v7.0.1...7.1.0
v7.0.1
What's Changed
- (fix) Anchor allergy form action buttons to page bottom by @denniskigen in #1644
- (fix) Fix display of menu items in the side rail and bottom nav by @denniskigen in #1648
- (feat) Anchor workspace actions to the bottom of the screen in tablet mode by @donaldkibet in #1650
- (fix) O3-2826: Fix reading properties of null (reading 'deceasedDateTime') when navigating to the patient chart. by @usamaidrsk in #1646
- (fix) Saving the medication should not send the dateActivated in the payload by @vasharma05 in #1635
- (chore) Release v7.0.1 by @jayasanka-sack in #1651
Please check v7.0.0 changelog as both versions ships with 3.0.0.beta.17 release.
Full Changelog: v7.0.0...v7.0.1
v7.0.0
What's Changed
⭐️ New Features
- (feat) Order summary/history by @pirupius in #1463
- (feat) O3-2601: Hide bottom navigation on tablet when filling forms by @usamaidrsk in #1531
- (feat) O3-2614: Move Allergen tabs to a single picker in allergy form by @jayasanka-sack in #1525
- (feat) Revitalized Immunization Support by @samuelmale in #1572
- (feat) O3-2755: Use snackbar notification in allergies app by @njiddasalifu in #1603
- (feat) Added translations for patient flags workspace by @vasharma05 in #1624
- (feat) Restrict attachments to configured allowed extensions by @icrc-loliveira in #1584
- (feat) Support for pre-filled questions by @icrc-jofrancisco in #1602
- (feat) O3-2782: Show an inline notification for camera access errors in the add attachment modal by @usamaidrsk in #1631
- (feat) O3-2716: Prompt users to close workspaces when navigating from the patient chart by @usamaidrsk in #1607
- (feat) Add infinite loading to the visits summary page by @denniskigen in #1643
🔧 Refactors
- (refactor) Separate Tags logic into its own function by @jwnasambu in #1526
🐛 Bug Fixes
- (fix) Make it so visit diagnosis error doesn't crash the app by @brandones in #1521
- (fix) Allow edit O2 form in visits widget by @icrc-jofrancisco in #1489
- (fix) Workspace window should have the size of the preferred window state by @vasharma05 in #1444
- (fix) 03-2577: Results tree view should be collapsed by default by @gitcliff in #1524
- (fix) O3-2642: Add configurable link to patient chart on the relationship by @CynthiaKamau in #1528
- (fix) O3-2609: Fix rendering issue in the patient details tile extension by @hadijahkyampeire in #1533
- (fix) O3-2721: Fix empty state shown when a visit has no encounters by @psworld in #1565
- (fix) O3-2719: Inconsistent UI in visit summaries tabs when Empty State by @psworld in #1567
- (fix) O3-2651: Record Vitals: Error message for invalid values pops up only once by @psworld in #1578
- (fix) O3-2709: Wrong image placeholder used for add image in patient registration by @psworld in #1580
- (fix) O3-2667: Fix appointment form not saving after appointment date change by @chibongho in #1554
- (fix) O3-2671: Lab orders added directly to the basket should be marked incomplete by @jwnasambu in #1552
- (fix) O3-2729: Reduce white space by @jwnasambu in #1583
- (fix) O3-2666: Order getting removed after clicking on Back to order basket by @usamaidrsk in #1549
- (fix) O3-2718: Inconsistent notification style upon cancelling an active visit by @psworld in #1566
- (fix) O3-2707: Patient Search: Start visit button doesn't work by @usamaidrsk in #1570
- (fix) O3-2662: Unable to attach images when registering/editing a patient by @jwnasambu in #1585
- (fix) Fix label rendering bug in Contact details component by @denniskigen in #1641
🧹 Housekeeping
- (chore) Bump @openmrs/openmrs-form-engine-lib by @larslemos in #1537
- (chore) Update Angular form engine version by @ibacher in #1540
- (chore) Bump @openmrs/ngx-formentry by @denniskigen in #1548
- (chore) Update GitHub Actions and Node versions by @denniskigen in #1556
- (chore) Migrate to newer Transifex version by @rbuisson in #1575
- (chore) Bump @openmrs/esm-patient-common-lib peer dependency by @denniskigen in #1574
- (chore) Adjust cron scheduling for tx-pull workflow by @befantasy in #1609
- (chore) Only auto-generate English translations by @ibacher in #1629
- (chore) Add GitHub Actions flows to automate Transifex by @ibacher in #1592
- (chore) Remove biometrics from tx config by @ibacher in #1594
- (chore) Enable continue-on-error for deploy job in CI workflow by @denniskigen in #1593
- (chore) Release v7.0.0 by @jayasanka-sack in #1639
New Contributors
- @gitcliff made their first contribution in #1524
- @usamaidrsk made their first contribution in #1531
- @chibongho made their first contribution in #1554
- @suubi-joshua made their first contribution in #1551
- @psworld made their first contribution in #1565
- @cioan made their first contribution in #1568
- @befantasy made their first contribution in #1582
- @Pradipram made their first contribution in #1604
- @arodidev made their first contribution in #1611
- @Vijaykv5 made their first contribution in #1626
- @sherrif10 made their first contribution in #1621
Thank you to all contributors for embodying the spirit of 'write code. save lives' in every line committed. Your commitment to OpenMRS is invaluable and truly makes a difference in healthcare worldwide.
Full Changelog: v6.1.0...v7.0.0
v6.1.0
What's Changed
This release builds upon the foundation laid by v6.0.1, addressing various issues and incorporating valuable contributions from the community.
Fixes
- (fix) 03-2588: Tweak workspace alert badge UI by @jwnasambu in #1499
- (fix) O3-2611: Workaround for fixing form entry styles by @denniskigen in #1509
- (fix) Fix workspace header action button borders by @denniskigen in #1511
- (fix) Fix rendering error in conditions form by @denniskigen in #1512
- (fix) Missing translations in forms workspace title and vitals overview component by @vasharma05 in #1506
- (fix) Remove form-engine-app by @ibacher in #1514
- (fix) O3-2612: Attachments App Crashes O3, then blocks adding attachments for any patient by @brandones in #1515
- (fix) Fix the workspace maximize action button by @vasharma05 in #1520
Feat
- (feat)O3 2570: Use the new snackbar in patient chart(6 apps) by @jona42-ui in #1478
- (feat) Tweak aspects of the patient lists workspace by @denniskigen in #1496
- (feat) O3-2571: Use new snackbar notification in conditions, notes, orders and vitals apps by @njiddasalifu in #1502
- (feat) O3-2571: Using the new snackbar in programs app by @njiddasalifu in #1503
- (feat) O3-2580: Use the new snackbar in other patient chart apps(part 3) by @hadijahkyampeire in #1476
- (feat) Add ability to conditionally show visit attributes by @donaldkibet in #1513
Tests
- (e2e) Test drug order flow by @denniskigen in #1494
- (test) Remove async waitFor from tests by @denniskigen in #1500
- (e2e) Test clinical forms workflow by @denniskigen in #1504
- (e2e) Test start visit workflow by @denniskigen in #1516
Chore
- (chore) Add common lib devDependency to packages by @denniskigen in #1491
- (chore) ESLint: Add consistent-type-imports and no-console rules by @denniskigen in #1498
- (chore) Bump
@openmrs/openmrs-form-engine-lib
by @larslemos in #1493 - (chore) Bump semver from 5.7.1 to 5.7.2 by @dependabot in #1485
- (chore) Upgrade tree-model to 1.0.7 by @brandones in #1505
- (chore) Bump
@openmrs/openmrs-form-engine-lib
by @larslemos in #1507 - Bump word-wrap from 1.2.3 to 1.2.5 by @dependabot in #1510
- Bump @adobe/css-tools from 4.3.1 to 4.3.2 by @dependabot in #1517
- (chore) Bump @openmrs/ngx-formentry by @vasharma05 in #1519
- (chore) Release v6.1.0 by @jayasanka-sack in #1518
New Contributors
- @jona42-ui made their first contribution in #1478
Full Changelog: v6.0.0...v6.1.0
v6.0.0
Highlights
Chart 6.0.0
brings a breaking change and a number of new features and improvements to O3. Most notably, these are:
BREAKING: Merged vitals and biometrics apps
We've merged vitals and biometrics concerns into one frontend module - @openmrs/esm-patient-vitals-app
. This is a breaking change and will mean that the biometrics frontend module (@openmrs/esm-patient-biometrics-app
) will no longer be available. You'll need to update your distro to remove the biometrics app from your import map. The rationale for this change is to better leverage the shared cache for our SWR requests. Recording a new set of vitals and biometrics using the form would previously result in only the vitals and biometrics datatables being updated. Now, the vitals and biometrics datatables and their chart views, as well as the vitals header, will be updated automatically upon saving a new set of vitals and biometrics. Additionally, merging the two apps allowed us to clean up a lot of shared code and configurations. Thanks to @ibacher for the great work on this!
Improved performance
We've reduced the number of network requests made by the application by reducing the number of Webpack chunks created by the application. This means that the application loads faster than before. Read more about this in the migration guide here and @ibacher's PR here.
Improved highlighting of abnormal values in the vitals and biometrics form
Great work by @hadijahkyampeire means we now have improved highlighting of abnormal values in the vitals and biometrics form in keeping with the excellent vitals input design guidelines.
Ability to launch the Order Basket from a clinical form
Thanks to work by @brandones, 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.
New patient lists workspace
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.
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.
Privilege-based ability to edit and delete visits
Thanks to work by @vasharma05, users with the appropriate privileges can now edit and delete visits. Read more about this in the PR here.
i18n support for Arabic and Hebrew
Thanks to @michaelbontyes , @elimm, and @ComradeSwarog.
Clinical forms and visit header layout improvements on tablet
Thanks to @CynthiaKamau and @donaldkibet for the great work on this!
Breaking changes
Features
- (feat) Add Arabic translations by @michaelbontyes in #1407
- (feat) O3-2423: Lab order flow should have test type search page by @brandones in #1371
- (feat) Add translations for generic widget and patient chart pagination by @vasharma05 in #1376
- (feat) Remove implementer-specific logic from Programs widget by @donaldkibet in #1389
- (feat) Add Khmer translations by @kazlaw in #1418
- (feat) Add support for configurable form sections by @ibacher in #1406
- (feat) O3-2485: Allow view only field for visit location in the start visit form by @vasharma05 in #1403
- (feat) Supporting O3-2510: Expose patient-common-lib on window by @brandones in #1430
- (feat) Update the translation for patient chart by @vasharma05 in #1433
- (feat) O3-2528: Hebrew translations for openmrs-ngx-formentry by @elimm in #1436
- (feat) O3-2531: Enhance form control sizing for improved UX in tablet mode by @donaldkibet in #1440
- (feat) O3-2534: Improve visit header layout on tablet by @CynthiaKamau in #1441
- (feat) KH-372: Add missing Khmer translations by @kazlaw in #1448
- (feat) Highlight abnormal values in vitals and biometrics form by @hadijahkyampeire in #1427
- (feat) Update i18next interpolation syntax by @vasharma05 in #1439
- (feat) add config to display encounter type in generic widgets by @icrc-jofrancisco in #1450
- (feat) Support offline in forms dashboard by @icrc-jofrancisco in #1437
- (feat) Preload most extensions and pages by @ibacher in #1461
- (feat) Tweak visit action modal content by @denniskigen in #1465
- (feat) Allow privileged users to edit visit details and delete empty visits by @vasharma05 in #1451
- (feat) Add a patient lists workspace to the side rail by @denniskigen in #1471
- (feat) Update encounter date to pick visitStartDatetime by @donaldkibet in #1405
- (feat) Order basket UI tweaks by @denniskigen in #1484
- (feat) O3-2581: Add hebrew translations by @ComradeSwarog in #1479
- (feat) Improved program enrollment on form entry and updated form-entry props by @donaldkibet in #1438
- (feat) O3-2551 Make hard-coded maximum duration of dispense in medications a… by @CynthiaKamau in #1455
Refactors
- (refactor) Use classNames to apply classes conditionally by @denniskigen in #1454
Bug fixes
- (fix) Increase timeout for conditions-overview test to fix builds by @vasharma05 in #1417
- (fix) O3-2485: Updated the config key for the visit location field in the start visit form by @vasharma05 in #1421
- (fix) Tweak the appearance of flagged vital signs by @denniskigen in #1423
- (fix) O3-2508: Remove sorting functionality in biometrics table by @mccarthyaaron in #1425
- (fix) Fix the appearance of tabs in the vitals and biometrics chart views by @denniskigen in #1424
- (fix) Minimal UI tweaks to the Conditions form by @denniskigen in #1426
- (fix) Mutate visit banner after starting new visit by @CynthiaKamau in #1434
- (fix) Lazy-load Angular locales by @ibacher in #1453
- (fix) Fix translation for height by @denniskigen in #1459
- (fix) Fix error when clearing the test type field of the lab order form by @makombe in #1460
- (fix) Register forms endpoint as dynamic route by @icrc-jofrancisco in #1470
- (fix) O3 Modal confirmation from user to modify visit date to accomodate new encounter date and time by @vasharma05 in #1435
- (fix) Correct o3 forms route for offline caching by @icrc-jofrancisco in #1472
- (fix) Remove unnecessary default HTTP parameter by @icrc-jofrancisco in #1473
- (fix) Restore ability to optionally launch clinical form from vitals and biometrics widget by @donaldkibet in #1474
- (fix) Set the correct time format for both visit start and end datetime by @donaldkibet in #1477
- (fix) Khmer translations added and few textual changes by @vasharma05 in https://github.com/openmrs/openmrs-esm-pati...
v5.1.0
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 widt...
v5.0.0
Patient Chart v5.0.0
is a major
release that introduces a BREAKING change. It migrates all the frontend modules in this monorepo to leverage the new module loading mechanism introduced in Core v5. Additionally, this release includes performance improvements plus a host of new features and bug fixes.
Highlights
Performance improvements
We have migrated all the frontend modules in Patient Chart to leverage the new module loading mechanism introduced in Core v5. Frontend modules now declare their static and dynamic metadata upfront, and the framework uses this information to load only the static bits when the application gets loaded for the first time while loading the dynamic bits is deferred to later when they are needed. This change delivers significant improvements to initial load time. Check out the migration guide to get a closer look at the internals of the new module loading mechanism.
Translation support for the left nav menu
v5.0.0
adds support for internationalising dashboard titles in the left nav. Each dashboard can specify a title
string property that represents the dashboard's name. This title
then gets passed to the DashboardExtension
component which invokes the t
function from the useTranslation
hook, passing in the title
. To round things off, the frontend module's moduleName
gets passed as the namespace
argument of useTranslation
, letting it know where to look for the corresponding translations. This mechanism makes it easy to translate your dashboard names.
Migrating React forms to use RHF and Zod for schema validation
v5.0.0
ushers in React Hook Forms (RHF) for handling forms. RHF is a performant forms solution that reduces the boilerplate code you need to write when constructing forms. RHF is also performant and supports a host of schema validation solutions. Zod is a schema validation library that integrates well with RHF and TypeScript. RHF's simple API and Zod’s declarative schema approach make your code easier to read and maintain. RHF and Zod present a robust approach to handling forms in React. v5.0.0
ports the Conditions
and Visit notes
forms to use RHF and Zod, with more custom React forms in the pipeline. Ultimately, we plan to migrate away from Formik and Yup to RHF and Zod.
Initial support for patient flags and improved RDE capabilities
This release establishes the groundwork for patient flags and improved RDE capabilities. Patient flags are visual components that enable healthcare providers to see relevant patient information with a glance in the Patient chart. v5.0.0
also adds improved retrospective data entry capabilities to the Patient Chart. Both patient flags and RDE improvements are a work in progress, and we will be adding more features to them in subsequent releases.
Breaking changes
- (BREAKING) Migrate
esm-patient-chart-app
to use routes.json by @denniskigen in #1231
Features
- (feat) Add translations for the left menu in patient chart by @jwnasambu in #1183
- (feat) Include location provider by @icrc-agomes in #1187
- (feat) Add ability to pass formEntrySub and patient workspace to exte… by @CynthiaKamau in #1219
- (feat) Add ability to enroll and discontinue patient from a program for simple use case by @donaldkibet in #1199
- (feat) Show add buttons on widgets by default by @denniskigen in #1236
- (feat) Update start visit and visit notes forms to the new tablet design by @Jexsie in #1245
- (feat) O3-2177: Tweak the patient banner details section to match designs by @Jexsie in #1197
- (feat) Automatically update translation files for all locales when keys and strings change by @vasharma05 in #1228
- (feat) KHP3-3708 Add ability to populate form with already existing patient identifiers. by @donaldkibet in #1252
- (feat) Migrating conditions form to use RHF and Zod by @lumuchris256 in #1248
- (feat) Migrating Visit notes form to use RHF and Zod by @lumuchris256 in #1253
- (feat) Add support for patient flags on the patient chart and flags side panel by @jnsereko in #1178
- (feat) KHP3-3791: Add ability to create an identifier once a form is submitted by @donaldkibet in #1259
- (feat) O3-2239: Add an extension slot to the visit component by @AlexanderMizgirev in #1260
- (feat) KHP3-3811 Add validation logic to check if an identifier has already been assigned by @donaldkibet in #1262
- (feat) Dashboard Extension uses the
moduleName
as the namespace for translation by @vasharma05 in #1227 - (feat) KH-241: Add Khmer translations for patient chart by @kdaud in #1263
- (feat) O3-2258: Put RDE behind a feature flag by @brandones in #1282
Refactors
- (refactor) Extract patient flags into a frontend module by @denniskigen in #1275
- (refactor): Remove startVisitLabel and endVisitLabel translation configurations by @donaldkibet in #1266
Bug fixes
- (fix) O3-2152: Rtl support, fix styles by @AlexanderMizgirev in #1200
- (fix) O3-2152: Cleaning RTL styles by @AlexanderMizgirev in #1201
- (fix) O3-2150: Translate attachments empty state by @AlexanderMizgirev in #1202
- (fix) O3-2152: Fix patient-banner actions dropdown by @AlexanderMizgirev in #1204
- (fix) Dashboard path should be derived from path not title by @ibacher in #1203
- (fix) O3-2150: Adds missing translation strings to modules by @AlexanderMizgirev in #1206
- (fix) O3-2150: Adds missing translation 'record' strings to modules by @AlexanderMizgirev in #1207
- (fix) Allow modifying the visit date to accommodate the new encounter date on all encounters tab by @icrc-psousa in #1184
- (fix) O3-2181: Vitals & Biometrics forms fails if value is set to "" by @Jexsie in #1209
- (fix) Encounter editing and deleting should be handled through permissions by @Jexsie in #1190
- (fix) O3-2160: Delete this encounter button on visits does not update the table by @vasharma05 in #1211
- (fix) O3-2152: Fix p...
v4.6.0
What's Changed
Features
- (feat) Enable addition of recurring appointments by @icrc-loliveira in #1097
- (feat) Modify the visit date to accommodate the new encounter date by @icrc-psousa in #1154
- (feat) O3-2091: Support translations for breadcrumbs by @jwnasambu in #1155
- (feat) Make the start visit button configurable by @pirupius in #1159
- (feat) O3-2122 - Updated observations view in the visits widget by @icrc-loliveira in #1163
- (feat) Add notification error on height input for vitals by @nanfuka in #1172
- (feat) Ability to configure address labels on the patient banner by @makombe in #1175
- (feat) O3-2150: Add Hebrew to openmrs-esm-patient-chart by @openmrs-sh in #1180
- (feat) Disable the start visit button on a deceased patient by @jwnasambu in #1188
Bug fixes
- (fix) 03-1952: Do not show the Edit Encounter button for undeveloped forms by @nanfuka in #1118
- (fix) 03-1955: Other accounts can't create an order template. by @nanfuka in #1126
- (fix) Patient deceased widget should not break when a patient is undefined by @Jexsie in #1160
- (fix) Setup
esm-form-entry
to use webpack module federation by @denniskigen in #1168 - (fix) Add translation keys and strings for all the available dashboards in en.json, fr.json and other locales by @jwnasambu in #1171
- (fix) Migrate to Zustand and fix the order basket by @ibacher in #1167
- (fix) O3-1637: Fix the test results tree view search by @hadijahkyampeire in #1047
- (fix) disable start visit on a deceased patient by @jwnasambu in #1147
- (fix) Add checks for undefined in upcoming appointments card by @makombe in #1162
- (fix) Fix formatting in patient-chart-app index.ts by @jwnasambu in #1174
- (fix) Restore the "Edit Form" functionality by @ibacher in #1176
- (fix) O3-2151: Unable to create a drug order in the order basket by @vasharma05 in #1181
- (fix) O3-2122: Updated observations view in the visits widget by @icrc-loliveira in #1182
- (fix) Restore styling for form-entry-app by @ibacher in #1185
- (fix) Fix error container height by @denniskigen in #1177
- (fix) Remove patient header z-index override in tablet mode by @Jexsie in #1192
Refactors
- (refactor) Use the
.tsx
extension only for React components by @denniskigen in #1193
Housekeeping
- (chore) Improve build efficiency of form-engine-app by @ibacher in #1157
- (chore) Bump
@openmrs/openmrs-form-engine-lib
by @larslemos in #1150 - (chore) Ohri-UgandaEmr MUAC vital inputs status colour codes. by @hadijahkyampeire in #1170
Tests
New Contributors
- @openmrs-sh made their first contribution in #1180
- @RandilaP made their first contribution in #1164
Thank you to all our amazing contributors! 🎉
Full Changelog: v4.5.0...v4.6.0
v4.5.0
What's Changed
Features
- (feat) able to delete encounters by @icrc-jofrancisco in #914
- (feat) Temporarily allow overriding logo on the patient chart's visit header by @vasharma05 in #1152
Refactors
Bug fixes
- (fix) Correct duplicated translation keys and add translations to biometrics by @ibacher in #1144
- (fix) O3-1980: Fix patient name header not displaying in offline mode by @samuelmale in #1080
- (fix) Remove useOmrsRestPatient hook by @Jexsie in #1148
- (fix) O3-2075 Fix to display Dashboard from the JSON application configura… by @YaroslavTir in #1133
Housekeeping
- (chore) Bump
@openmrs/openmrs-form-engine-lib
by @larslemos in #1143
New Contributors
- @YaroslavTir made their first contribution in #1133
Full Changelog: v4.4.0...v4.5.0
v4.4.0
What's Changed
Features
appointments
- (feat) Upcoming appointment card should show list of appointments and ability to select appointment to be fulfilled by @makombe in #1125
angular form engine
- (feat) Extend the patient object to support
other
andunknown
genders by @VivekAlladi in #1042 - (feat) Added diagnoses support to formentry by @icrc-loliveira in #991
react form engine
- (feat) Add correct form-error UI as shown on the designs by @donaldkibet in #1106
- (feat) Tweak form engine loading UI by @denniskigen in #1112
- (feat) Add ability to launch form in edit mode and handle error if form does not have associated JSON schema by @donaldkibet in #1107
- O3-2061 Pass active visit attributes to form engine if visit exists by @CynthiaKamau in #1120
forms
- (feat) Offline tools dashboard UI enhancements by @denniskigen in #1094
patient banner
- (feat) O3-1976: Implement the deceased variant of the patient header by @jwnasambu in #1078
patient chart
- (feat) Add custom default facility url when location is missin… by @CynthiaKamau in #1113
- (feat) O3-2047: Added combo box to search and filter through multiple locations in the start visit form by @vasharma05 in #1131
- (feat) Remove patient from active queue on checkout by @jecihjoy in #1109
- (fix) Fix the background color of the
start a visit
button on the visit header on hover by @jwnasambu in #1130
test results
- O3-1679: Test results header in the "Test Results" dashboard appearing twice by @njiddasalifu in #1102
Performance Improvements
Bug fixes
angular form engine
- (fix) KH-175 Fix regression Introduced by #1042 by @enyachoke in #1136
forms
- (fix) Fix bug on launching vitals form to use form-engine by @donaldkibet in #1110
medications
- (fix) Fix the visit.enabled property to visits.enabled property in the medications app by @vasharma05 in #1123
notes
- (fix) O3-1947: Auto-expand the visit note textarea as the user types by @Jexsie in #1039
- (fix) O3-2031: Remove unused configuration properties from useVisitNotes by @Jexsie in #1105
patient banner
- (fix) KH-141: Filling 5 address fields shows only 4 fields in the patient banner. by @hadijahkyampeire in #1101
patient chart
- (fix) Restore success toast shown after starting a visit by @denniskigen in #1111
- (fix) O3-2025: Visit enabled system setting should be referenced using "visit.enabled" by @Jexsie in #1099
- (fix) Dashboard View should not use wrap property by @ibacher in #1091
- (fix) Fix bug on starting a visit where there is only one visit-type by @donaldkibet in #1108
- (fix) O3-2029: Required visit attribute's default value shouldn't be the first choice by @vasharma05 in #1100
- (fix) Update bug on fetching config value in custom default facility by @CynthiaKamau in #1114
test results
- (fix) O3-1959: Test results datetime to only display the date. by @hadijahkyampeire in #1103
- (fix) 03-2028: Test Results page switches patients by @hadijahkyampeire in #1135
- (fix) KH-142: Remove the time for today's dates. by @hadijahkyampeire in #1117
Housekeeping
- (chore) Switch to community-maintained
@openmrs/esm-form-engine-lib
by @donaldkibet in #1096 - (chore) Bump
@openmrs/openmrs-form-engine-lib
by @donaldkibet in #1124 - (chore) Add script that bumps the form engine library version by @larslemos in #1127
- (chore) Bump the
@openmrs/ngx-formentry
library by @hadijahkyampeire in #1128 - (chore) bump
@openmrs/esm-form-engine-lib
by @donaldkibet in #1129 - (chore) Bump form engine by @larslemos in #1132
- (chore) Bump form engine by @larslemos in #1134
- (chore) Bump form engine by @larslemos in #1137
- (chore) Bump form engine by @larslemos in #1138
- (chore) Bump form engine by @larslemos in #1140
- (chore) Bump
@openmrs/openmrs-form-engine-lib
by @larslemos in #1141 - (chore) Release v4.4.0 by @rbuisson in #1142
- Bump webpack from 5.74.0 to 5.76.0 by @dependabot in #1046
New Contributors 🎉
- @njiddasalifu made their first contribution in #1102
- @VivekAlladi made their first contribution in #1042
- @jecihjoy made their first contribution in #1109
Thank you so much!
Full Changelog: v4.3.0...v4.4.0