Skip to content

Releases: uwrit/leaf

3.7.1 (6-3-2020)

03 Jun 22:52
488b856
Compare
Choose a tag to compare

This is a patch release to fix several bugs introduced in v3.7.0, as well as a SQL script contribution from @pj00 to the i2b2 ontology import script.

Bug fixes

  • #343 - The API was inadvertently set to expect a dependent .dll file be present on the local computer which should instead have been automatically pulled by NuGet during compilation.
  • #340 - Dataset export by specific Leaf encounters would fail if any concepts had specializations configured.
  • #339 - The NIH demographic matrix visualization aggregated ethnic background strings in a case-sensitive fashion.

Other changes

Upgrading to 3.7.1

  1. Client app and server API - Download and deploy the latest client and server compiled files under Assets, included in this release (or compile on your own as described in the Leaf installation instructions), making sure to first remove any previously deployed instances.
  2. Database - execute the 3.7.0__3.7.1 database update script on your Leaf application database. Note that in this patch release there are no structural database changes; this simply updates the Leaf version.

3.7.0 (5-20-2020)

01 Jun 18:32
Compare
Choose a tag to compare

Leaf 3.7 is out! We're excited to share a number of new features and fixes and look forward to the Leaf community's continued feedback and enthusiasm.

New Features

  • #138 - A long-standing request of various Leaf sites, Leaf can now obfuscate cohort sizes. This includes the abilities to:
  1. Configure Noise LowerBound and UpperBound random obfuscations to counts of patients:
    image
  2. Configure a LowCellMasking Threshold beneath which counts will not be revealed:
    image
  3. Work with federated partners, even with heterogeneous cohort obfuscation settings:
    image

All cohort obfuscation settings are optional and can be enabled using the appsettings.json file's new Deidentification category. Note: enabling Noise or LowCellMasking will cause the API to throw an error if users attempt to click Visualize or Patient List, so it's recommended to disable those tabs if you do so.
image

  • #338, #332 - Speaking of de-identification, have you ever wanted to disable or set custom ranges and increments for Leaf de-identified date-shifting? Now you can:
    image

Note: setting Enabled: false will disable Leaf's ability to de-identify PHI. Use with caution!

  • #314 - Language by Ethnicity and Religion visualizations are now included in the Visualize tab.
    image
    image

  • #329 - The standard NIH Race, Ethnicity, and Gender matrix has also been added to the Visualize tab.
    image

  • #312 - In the Patient List, datasets can now be extracted specific to certain encounters (rather than simple ranges of dates).
    image
    image

  • #7, #317 - When updating the logic to an existing saved query, users now have the option to save it as a new query instead of overwriting the previous query.
    image

  • #331 - The attestation screen can now be optionally disabled entirely for a Leaf instance, sending users straight into the app without needing to enter IRB information and so on. This is useful for databases that have already been de-identified.
    image

  • #333 - The Visualize and Patient List can now be globally disabled.
    image

Minor features

  • #330 - For convenience, every clinical query Leaf executes is now always prepended with the boolean parameters @IsIdentified, @IsQI, and @IsResearch, allowing Leaf concepts and datasets to handle different use contexts dynamically.
    image

  • #311 - In the Patient List, users can now scroll left or right if columns overflow available screen width.
    image

Bug Fixes

  • #318, #325 - For the last few versions (it's not clear when the bug was introduced), if no root concepts were configured the UI would throw an error upon login.

  • #315 - When editing in the Admin panel, any concepts - besides root concepts - would not immediately update in the UI to provide a preview.

  • #322 - Occasionally after saving a query, the query information would immediately be cleared in the UI (though the save was still successful).

  • #323 - When creating a REDCap Project, Leaf would not grant the user ownership and modification permissions.

  • #321 - Characters valid in Leaf dataset names, such as commas and slashes, would break the REDCap export process because they are illegal in REDCap. These are now converted to underscores during export.

Upgrading to 3.7

  1. Client app and server API - Download and deploy the latest client and server compiled files under Assets, included in this release (or compile on your own as described in the Leaf installation instructions), making sure to first remove any previously deployed instances.
  2. Database - execute the 3.6.0__3.7.0 database update script on your Leaf application database.
  3. appsettings.json - Version 3.7 includes new configuration entries which must be added accordingly. See the default appsettings.json for reference.

3.6.0 (2019-12-30)

31 Dec 01:21
Compare
Choose a tag to compare

This release adds a new administrative feature for searching for user's saved queries, as well as an optional new feature to automatically email administrators when users ask questions, along with a host of bug fixes.
image
image

New Features

  • #295 - Leaf administrators can now search for and open user queries by navigating to the MyLeaf window and "User Saved Queries" tab.
    image

  • #310 - Leaf can optionally use an SMTP server to automatically send an email to administrators when users have questions. This allows institutions to more easily track inquiries and create tickets from templated emails. Note that this features is 100% opt-in; if disabled, Leaf simply informs users of the configured administrator email.

Minor Features

  • #297 - Pressing Enter on the keyboard now closes the date and numeric filter modals. This was added for convenience, and these can still be set by simply clicking outside of the modal.

Numeric filter
image

Date filter
image

Bug Fixes

  • #299 - If a user logged out twice and attempted to log in again, the login would fail. This was due to a bug in how Leaf attempted to circumvent browser caching/SAML2 authentication failures (see issue for details).
  • #293 - REDCap imported projects now have metadata loaded on demand, rather than at login. This was not necessarily a bug, but this fix is designed to reduce heavy, unnecessary calls to the server as users login.
  • #292 - Very minor, but in the admin pane the 'Unsaved' and 'Delete' divs would sometimes overlap with content.
  • #291 - In the admin pane, concept updates would fail if the concept had any specializations defined.
  • #288 - In the admin pane, updating a concept's display text (the name, subname, or patient count) would fail to be properly updated.
  • #290 - The login modal now displays more helpful, detailed information if the initial user login fails for any reason.

Upgrading to 3.6.0

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.
  • appsettings.json - Version 3.6 adds a few new entries to the appsettings file which must be added accordingly.
    • Notification
      • Enabled (boolean, if true, the below properties must be set)
      • Email
        • Server (string) - the SMTP server name.
        • UseSSL (boolean) - Determines whether Secure Socket Layer protocol should be used for transporting emails (we recommend setting this to true)
        • Sender
          • Address (string) - email address from which to send emails from.
        • Receiver
          • Address (string) - email address (e.g., list-serv) to receive send emails.
        • Credentials (optional, only if you'd like to use a username and password to authenticate with the SMTP server)
          • Username (string) - Username to provide the SMTP server. This should be LEAF_SMTP_USR, and you if this is defined, you must also set a corresponding environment variable to store the actual username.
          • Password (string) - Username to provide the SMTP server. This should be LEAF_SMTP_PW, and you if this is defined, you must also set a corresponding environment variable to store the actual password.

See the default appsettings.json for reference.

  • Database - execute the 3.5.0__3.6.0 database update script on your Leaf application database.

3.5.0 (2019-11-04)

04 Nov 20:40
20965db
Compare
Choose a tag to compare

This release adds REDCap Project Import, a popular feature in the original UW-only version of Leaf which we've redesigned and reimplemented from the ground up.

image

image

image

New Features

  • #284 - REDCap projects can now be imported directly from a REDCap instance using API tokens. Note that a REDCap project to be imported must have a unique field representing patient MRNs with which to link to patients in your clinical database. (If you are using Leaf with de-identified data, then, REDCap projects cannot be imported so it is probably best to disable this feature)

Upgrading to 3.5.0

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.
  • appsettings.json - Version 3.5 adds a few new entries to the appsettings file which must be added accordingly.
    • Import
      • REDCap
        • Enabled (boolean)
        • ApiURI (string) - a REDCap endpoint ending with /api/ to be called for importing projects.
        • BatchSize (int) - number of REDCap rows at a time to import into the LeafDB.

image

See the default appsettings.json for reference.

  • Database - execute the 3.4.0__3.5.0 database update script on your Leaf application database.

3.4.0 (2019-9-12)

12 Sep 16:51
fd87b05
Compare
Choose a tag to compare

This is a feature release which adds administrative functionality around panel filters, as well as new feature called global panel filters, which allow you to append additional logic to to users' queries to filter cohorts outside of users' control.

image

New Features

  • #277 - panel filters can now be edited in the Admin panel.
    image
  • #278 - A new feature, global panel filters, can also be edited in the Admin panel.
    image
  • #279 - As touched on above,global panel filters allow administrators to append additional logic to users' queries, depending on their type of session (i.e., QI, Research, or both). global panel filters are designed to allow simple global filters to remove patients who users should not be allowed to see (e.g., VIPs, etc.) without needing to apply this logic at the concept level (for all concepts).
  • #274 - User id tokens now include the url pathname as part of their key, which prevents id token key collisions for deployments of multiple Leaf instances by pathname rather than subdomain. Previously, deployments needed to be identified only by subdomain, e.g.:
  • https://instance1.leaf.edu
  • https://instance2.leaf.edu

Including the pathname in the token allows for a pathname-based url convention:

Upgrading to 3.4.0

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.3.3__3.4.0 database update script on your Leaf application database.

3.3.3 (2019-8-30)

30 Aug 22:03
d8eb1f4
Compare
Choose a tag to compare

This is a patch release to correct a bug caused by cases of users having no role but User (e.g., they are not Admin, Identified, etc.)

Bug Fixes

  • #272 - If a user has only a User role, the Leaf API does not include a roles property in the JWT token. The client application previously assumed this property was always present and would throw an error if not found (see Issue for details). This is now fixed.

Upgrading to 3.3.3

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.3.2__3.3.3 database update script on your Leaf application database.

3.3.2 (2019-8-29)

29 Aug 19:35
a98327a
Compare
Choose a tag to compare

This is a patch release to correct a bug in the Admin Datasets Basic Demographics screen.

Bug Fixes

  • #270 - In the Admin Panel under Datasets - Basic Demographics, the columns 'mrn' and 'name' erroneously showed the required type as a DateTime. The behavior was only visual and did not effect query or patient list functionality, but was nonetheless confusing and has been corrected.

Upgrading to 3.3.2

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.3.1__3.3.2 database update script on your Leaf application database.

3.3.1 (2019-8-26)

26 Aug 20:26
f06fe40
Compare
Choose a tag to compare

This release focuses on upgrading client application dependencies and bug fixes, as well as small visual tweaks.

Enhancements

  • #269 - In the patient list, 'null' and 'undefined' values are displayed as a blank string to be more intuitive to users.
  • #268 - In the Admin Concept Editor, the SQL preview box has been expanded so that longer SQL concept queries can be more fully displayed. To avoid confusion, example numeric and date filters are also commented to indicate so.
  • #267 - A simple slide animation in the 'show detail' query box on the top is now shown to more clear allow the user to compare patient counts as Leaf instances return data. 'show detail' now defaults to true if an instance is federated.
  • Various upstream JavaScript dependencies (React, Axios, etc.) have been updated.

Bug Fixes

  • #265 - The Patient List dataset selection screen has been cleaned up and expanded to enhance search and readability, as well as various alignment and sizing peculiarities.
  • #264 - Previously dataset search tags would be missed if they were uppercase. This is fixed and tags can be upper or lowercase.
  • #263 - REDCap export would break if multiple sequential underscores appeared in a dataset or field name (e.g., "my___dataset"), as REDCap silently renames these to single underscores ("my_dataset"). Leaf now performs a check and cleans these names before sending data.
  • #262 - On the Visualize screen, the female/male age by gender comparison chart did not have the 2 chart components sharing a Y axis maximum, so cohorts that were largely male or female did not visually appear so. This has been fixed.
  • #261 - A numeric filter query for "2.0" (or any other value ending in ".0") would confusingly be changed to "2.". This has now been fixed to allow any floating point decimal value.

Upgrading to 3.3.1

  • Client app - As upstream JavaScript dependency libraries were cleaned and updated in this released, before building and re-deploying the client you'll need to use npm to update the dependency packages:
# From /leaf
$ cd src/ui-client
$ npm install

# Next build production client app as normal
$ npm run build
  • Server API - Recompile and deploy the latest server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.3.0__3.3.1 database update script on your Leaf application database.

3.3.0 (2019-8-9)

09 Aug 17:36
7973dfd
Compare
Choose a tag to compare

This release adds Dynamic Datasets, which allow administrators to define flexible SQL queries to return and de-identify nearly any kind of dataset in the Patient List. It also includes a brand-new SQL compiler behind the scenes using the Composure library developed by the Leaf development team. (The SQL Leaf outputs is virtually identical to prior versions, but is now far more testable and adaptable to future use cases)

Features

  • #95 - Dynamic Datasets are now allowed! You can use these to return nearly any kind of data in your clinical database to the Patient List screen as a dataset (i.e., no need to have your queries conform to FHIR templates). Note that Dynamic Datasets cannot be used for federated queries.

dynamic

  • #153 - The Leaf SQL Compiler (source) has been completely rewritten from the ground up, and is now more testable, flexible, and a fraction of the previous amount of code.
  • #260 - The auth.Login table has been repurposed to track users for admin convenience. You can now use this table to track users and their "claims" (i.e., authentication context and user groups).
  • #248 - The Leaf client version is now displayed on login. Note that the server and database versions should be checked in the log files and ref.Version table, respectively.

version

Upgrading to 3.3.0

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.2.4__3.3.0 database update script on your Leaf application database.

3.2.4 (2019-7-19)

19 Jul 19:29
d25c012
Compare
Choose a tag to compare

This release fixes several bugs, and contains client, server API, and database changes.

Bug Fixes

  • #244 - In the Admin Panel Datasets screen, after saving a new Dataset, the UI appeared to update but would confusingly revert to the previous state if you click to another screen, then return (the DB was updated correctly, however). The UI now updates and maintains state correctly.
  • #243 - If for some reason the initial demographics query did not return expected patient ids (eg because they have no demographics data) but a subsequent dataset did return the expected id, an error was thrown. This is now corrected and the unknown patient data is ignored.
  • #244 - In the Patient List, if one additional dataset remained to be added, the "+ Add Data" button was incorrectly hidden.
  • #246 - If a dataset errored out on the API request, the "Loading" modal was not dismissed. The user is now alerted to the error and the modal disappears.
  • #247 - If a field name contained characters not allowed in REDCap or was too long, the export process to REDCap could break. Field and dataset names are now checked and cleaned prior to export.
  • #253 - If numeric units were not defined for a concept but it was dragged over, the UI would show 'undefined' as units. It now doesn't display any text.

Upgrading to 3.2.4

  • Client app and server API - Recompile and deploy the latest client and server API files as described in the Leaf installation instructions, making sure to first remove any previously deployed instances.

  • Database - execute the 3.2.3__3.2.4 database update script on your Leaf application database.