Skip to content

Releases: aces/Loris

LORIS Release v24.1.6

16 Jan 18:25
7d8f81d

Choose a tag to compare

What's Changed

Full Changelog: v24.1.5...v24.1.6

LORIS Release v25.0.1

03 Oct 17:22
56a636b

Choose a tag to compare

This includes all bug fixes from the v24.1.5 release, pushed forward into a v25.0.1 release.

In particular, it includes the security fix from #8908

What's Changed

Full Changelog: v25.0.0...v25.0.1

LORIS Release v24.1.5

03 Oct 16:52
9b08f46

Choose a tag to compare

This fixes a variety of bugs found since v24.1.4. Most importantly, it includes a fix for a potential SQL injection attack in the media module. (PR #8908)

What's Changed

Full Changelog: v24.1.4...v24.1.5

LORIS Release v25.0.0

17 Jul 14:59
25a1c7d

Choose a tag to compare

What's Changed

  • [EEG] Database Architecture for HED Tags by @jesscall in #8036
  • [dashboard][Study Progression] Add tooltip visualising of Total in line chart by @satvik-tha-god in #8123
  • [candidate_list] Remove meaningless Latest_Visit_Status column by @driusan in #7759
  • [publication] Add columns to publications by @pierre-p-s in #7361
  • [Core] Remove duplicated getActiveModules function by @driusan in #7446
  • [Form.js] No required min/max for numeric elements by @driusan in #8197
  • [new_profile] Use API for candidate creation and swal for success by @driusan in #7755
  • [EEG Browser] Add ability to view annotations in event panel and overlaid on signal viewer by @laemtl in #8235
  • [login] Add code sanitizer before dangerouslySetInnerHTML by @CamilleBeau in #7491
  • [EEG Browser] Annotations: Add new and HED tags by @laemtl in #8236
  • [dashboard] Use user site permissions for dashboard charts by @CamilleBeau in #8132
  • QueryEngine interface by @driusan in #8215
  • [DB schema] UNIQUE Project name by @xlecours in #8243
  • [instrument_builder] ADDED: field warnings for maximum length in Instrument Builder module by @satvik-tha-god in #8112
  • Add PHP 8.2 support, drop 8.0 support by @driusan in #8264
  • [bvl_feedback][dashboard] Add project/site specs to widget by @CamilleBeau in #7848
  • [Core] Allow parallel handling of requests from same session by @driusan in #7445
  • [LorisInstance] add getModule function by @driusan in #8221
  • [dataquery] Define new swagger schema for data query API by @driusan in #8219
  • [new_timepoint] only show null language option when multiple exist by @CamilleBeau in #8253
  • Add CITATION.cff file by @driusan in #7513
  • [candidate_parameters] Add date restriction for consent withdrawal by @zaliqarosli in #8298
  • [Modules] Replace Module->getDataDictionary with Module QueryEngine dictionary. by @driusan in #8260
  • [survey_accounts] Clean up after Email col removed by @zaliqarosli in #8313
  • [mri_violations] Convert module to React and update UI by @driusan in #7473
  • [Instrument] Remove exception from NDB_BVL_Instrument::factory by @driusan in #8290
  • [core] Remove \Module::factory, update remaining instances to $loris->getModule() by @driusan in #8287
  • [Core] Remove Database::singleton function by @driusan in #8427
  • Make the number of days since last login before making a user inactive a config by @cmadjar in #8416
  • [instruments] Display Candidate Age at Death if postMortem is true by @zaliqarosli in #8362
  • [session] Add date of status change to session table by @CamilleBeau in #8350
  • [candidate_parameters] Allow clearing of consent status by @CamilleBeau in #7772
  • [instruments/instrument_manager] Migrate instrument permissions from config.xml to database by @driusan in #8302
  • [Form.js] Add support for step to NumericElement by @driusan in #8413
  • [Form.js] Add placeholder option for TextareaElement by @driusan in #8412
  • [Form.js] Add DateTimeElement wrapper by @driusan in #8410
  • [Form.js] Add support for vertical Radio button groups by @driusan in #8414
  • [DQT] add delete feature by @kongtiaowang in #8078
  • [jsx/Panel.js] Improved Panel component with optional multiple views by @maltheism in #8299
  • [Issue tracker] change userID to full name by @regisoc in #8451
  • [dashboard/statistics] Reactification by @laemtl in #8476
  • [issue_tracker] Display attachments by @CamilleBeau in #8346
  • [API] Sites endpoint by @xlecours in #7771
  • [EEG] EEG Acquisition form by @regisoc in #8443
  • [Document Repository] Upload multiple files at once by @jeffersoncasimir in #8289
  • [EEG] EEG uploader module by @laemtl in #8409
  • [conflict_resolver/candidate_profile] Fix loading of conflict widget by @driusan in #8569
  • [media] changed permision check to media_read to enable media downloads by @KLaFleur in #8671
  • [EEG Browser] Addition of new changes to signal plot of electrophysiology_browser module from EEGNet by @jeffersoncasimir in #8415
  • [Imaging Browser] Fix caveat bug not showing when there are pipeline protocol violations by @cmadjar in #8661
  • [MRI violations] Fix multiple rows for file protocol violations not resolvable by @cmadjar in #8662
  • [candidate] Allow dob format Y-m by @CamilleBeau in #8648
  • [EEG Uploader] Handle Checksum value by @laemtl in #8729
  • [module_manager] Visibility of 'My Preferences' in menu reflects state by @jeffersoncasimir in #8726
  • [new_profile] Fix date requirements and formats with EDC by @charlottesce in #8767
  • [new_profile] DateElement in 'Y-m' Fix by @skarya22 in #8775
  • [Timepoint List] Hide visits that are from user unaffiliated projects by @skarya22 in #8723
  • [data_release] Permission not added to unversioned files if version specified by @charlottesce in #8768
  • [battery_manager] use visit controller to fetch visit list by @ridz1208 in #8485
  • [Core] PSCID uniqueness by @xlecours in #8411

New Contributors

Full Changelog: v24.1.4...v25.0.0

Notes For Existing Projects

  • API: Modified in v0.0.4-dev the candidate instrument data format returned by a GET request or provided as the body of a PUT/PATCH request. The values of all fields are now defined by the Data key instead of $InstrumentName (PR #7857)

Notes For Developers

  • Require jsodc comments to have correct @return and @param values in javascript (PR #8266)
  • Disable ESLint on build (prod instances) (PR #8229)

Upgrade Process

Please note that when upgrading between non-consecutive LORIS versions, the project must follow the upgrade steps between each major version. For example, if your project is upgrading from LORIS 23 to LORIS 26, it is imperative to read the release notes for all LORIS versions in between 23 and 26, and follow the upgrade instructions first from 23 to 24, then 24 to 25, and ultimately 25 to 26.

24.1.x to 25

  1. Get the 25.0.0 source code

  2. Source the SQL/Release_patches/24.1_To_25.0_upgrade.sql SQL file into your database.

  3. Run the following scripts:

    1. php tools/configuration_check.php
      This script is used to validate the configuration of LORIS. It checks configuration settings and server paths to make sure that the application and underlying architecture are set up to allow LORIS to run properly.
    2. php tools/single_use/migrate_instrument_permissions.php
      This script migrates instrument permissions from the config.xml to the new database tables that now store them.
    3. php tools/single_use/update_violations_resolved_hashes.sql.php
      This script is intended for a one-time use only to update the hasing of the violations_resolved table. Not doing so will result in duplication of data in the violations_resolved tale when users update a resolution status for a violation.
  4. Run make all from the LORIS root directory.

  5. OPTIONAL: Run any cleanup patches in SQL/Archive/25.0/Cleanup/

  6. OPTIONAL: Remove the <instrumentPermissions> tag from your config.xml which is no longer used after running the migration script.

LORIS Release v24.1.4

20 Jun 19:02
9a19807

Choose a tag to compare

This fixes a variety of bugs found since the v24.1.3 release. In particular,

What's Changed

  • [Issue tracker] - fix can't Delete attachment #8006 by @kongtiaowang in #8337
  • [configuration] Fix error messages & saving with null Alias by @CamilleBeau in #8349
  • [webpack] remove util shortcut as it is unused and causes conflicts by @ridz1208 in #8634
  • [Tools] double_escape_report tool breaking on non-string values by @ridz1208 in #8484
  • [issue tracker] Populate reporter dropdown (24.1) by @regisoc in #8469
  • [examiner] Column for 'Instrument' in certification menu appears narrow by @miladheshmati in #8453
  • [tools] support JSON instruments in fix_candidate_age.php by @CamilleBeau in #8286
  • [bvl_feedback] Fix Permissions for Feedback Summary & Thread List by @suzanne-lee in #7826
  • [new_profile/sex] Remove strtolower() and force uppercase by @ridz1208 in #8633
  • [NDB_BVL_Feedback] Fixing 500 error on instrument list page by @AlexandraLivadas in #8694
  • [instruments] Fix properly disabling/enabling 'Delete instrument data' button display by @zaliqarosli in #8686
  • [API] Fix accessing instruments that use JSON data in API by @xlecours in #8796, #8801

New Contributors

Full Changelog: v24.1.3...v24.1.4

LORIS Release v24.1.3

24 Mar 12:48
488bec8

Choose a tag to compare

This releases fixes bugs that were discovered since the v24.1.2 release. Most notably:

  • [issue_tracker] Make Comments and History easier to read #8370
  • [document_repository] Fix download path to correct user #8378
  • [media] add feedback to dropdown field when is empty #8402
  • [imaging_browser] Fix control panel positioning #8424
  • [examiner] Remove link to edit examiner if certification is not enabled #8425
  • [SQL] Fix 23 Cleanup patches #8430
  • [Build] apt deps issue #8431
  • [dqt] Fix loading saved query #8436
  • [SQL] 24.0.0 release patch fix truncation error #8438
  • [Genomic Browser] UserSiteMatch fix #8468
  • [SQL] Fix hardcoded parent ID for IssueTrackerDataPath in patches #8475

LORIS Release v24.1.2

08 Mar 14:31
fc90747

Choose a tag to compare

This releases fixes bugs that were discovered since the v24.1.1 release. Most notably:

  • [SQL] Reorder release patches for 24.0 release #8390
  • [Performance] Do not load module logger from constructor #8200
  • Download NIfTI file from imaging browser when a NIfTI file is available in addition to a MINC file #8206
  • [behavioural_qc] Fix critical error #8245
  • [issue tracker] Email watchers when issue is updated or created #8248
  • [core] return error message on invalid dob (rebase 24.1) #8279
  • [core] Fix incorrect message/error for instrument access #8284
  • [tools] Fix path in recreate_conflict #8292
  • [issue tracker] Fix emailing bug found in HBCD #8300
  • [issue_tracker] make assignee drop down not required #8301
  • [issue tracker] Fix issue description #8351
  • [imaging browser] Fix download of JSON, Bval and Bvec files when they are on s3 #8354
  • [imaging browser] Fix Human dangling out of nowhere #8363
  • [NDB_BVL_Instrument] Add get function to access protected selectMultipleElements #8381
  • [CSS/instruments] Fix control panel position when scrolling #8383
  • [MRI Violations] Fixes links to BrainBrowser from the MRI violations module #8392
  • Update CONTRIBUTING.md #8421

Full Changelog: v24.1.1...v24.1.2

Upgrade Process from version 23.X.Y to 24.1.2 (amendments)

Note: The instructions below REPLACE the instructions in the release notes of released versions 24.0.0 AND 24.1.0. The instructions in those releases should be disregarded.

23.x.y to 24.0.0

  1. Get the 24.1.2 source code
  2. Source the SQL/Release_patches/23.0_To_24.0_upgrade_A.sql SQL file into your database.
  3. Run the following scripts:
    1. php tools/configuration_check.php
      This script is used to validate the configuration of LORIS. It checks configuration settings and server paths to make sure that the application and underlying architecture are set up to allow LORIS to run properly.
    2. php tools/single_use/SaveUserIDToInstrumentData.php confirm
      This script is intended for a one-time use only to restore the value of the UserID column of instrument tables and the UserID key of the instrument JSON Data in the flag table.
    3. php tools/single_use/remove_publication_users_edit_perm_rel_duplicates.php
      This script deletes duplicate rows in publication_users_edit_perm_rel to make sure the patch '2020-01-07-publication_users_edit_perm_rel_pk.sql' will execute successfully
    4. php tools/single_use/Cleanup_Special_Chars_Document_Repository.php
      This script is written to clean up the files with special characters from the document repository data table as well as clean up the quotes appearing as %22 in the file names in the file system
    5. php tools/single_use/Cleanup_Special_Chars_Media.php
      This script is written to clean up the files with special characters from the media data table as well as clean up the quotes appearing as %22 in the file names in the file system
    6. php tools/single_use/Remove_duplicate_examiners.php
      This script is written to clean up duplicate userIDs in the examiners table
  4. Make sure the RegistrationProjectID column in the candidate table of the dataabse does not contain any NULL values. If it does, either assign an existing project to the candidate/scanner or create a new project for these entries before running the release patch (see "Notes for existing projects" for more details).
  5. Source the SQL/Release_patches/23.0_To_24.0_upgrade_B.sql SQL file into your database.
  6. Run the following scripts:
    1. php tools/single_use/populate_visits.php
      This script populates the visits table based on the config.xml, session table and Visit_Windows table.
    2. php tools/single_use/Set_Required_elements_completed_flag.php confirm
      This script is written to migrate the Data_entry_completion_status field from the instrument table (or Data column of the flag table) to it's own column in the flag table called Required_elements_completed. Note that this script can take a long time to complete on large projects.
  7. Run make all on the LORIS root directory
  8. OPTIONAL: Source SQL patches from the SQL/Archive/24.0/Cleanup directory at your discretion to remove superfluous or deprecated entries in the database.
  9. OPTIONAL: Run the tools/single_use/Remove_Data_entry_completion_status_instr_column.php PHP script to generate an SQL patch containing all DROP COLUMN statements for the now unused Data_entry_completion_status field in instruments. This script will generate the SQL patch and store it in the SQL/Archive/autogenerated/single_use/ directory under the name Remove_Data_entry_completion_status.sql.
  10. OPTIONAL: Remove the <visitLabel subprojectID="X"> tags in the Config.xml file

NOTE: The tools/single_use/SaveUserIDToInstrumentData.php can take several hours up to a day to run depending on the size and age of the databse and number of instruments used

24.0.0 to 24.1.2

  1. Source the SQL/Release_patches/24.0_To_24.1_upgrade.sql SQL file into your database.
  2. If you have LORIS-MRI installed, make sure to upgrade LORIS-MRI to 24.1.0 since the SQL changes will affect the MRI insertion scripts.

LORIS Release v24.1.1

10 Nov 18:44
4211ddb

Choose a tag to compare

This releases fixes bugs that were discovered since the v24.1.0 release. In particular,

  • [instrument_manager] Fix page load by @driusan in #8183
  • [EEG Browser] Make fix [v24.1] by @laemtl in #8186
  • fix generic_includes for 24.1 by @cmadjar in #8192
  • [RB] fix instrument scoring and alot of whitespaces by @ridz1208 in #8189
  • [Imaging Uploader] Replace 'MINC' string by 'Files' in the imaging uploader column since imaging files created and inserted are not necessarily MINC files anymore by @cmadjar in #8205
  • [SQL] Make release patch compatible with mariadb 10.3 by @ridz1208 in #8225

Full Changelog: v24.1.0...v24.1.1

LORIS Release v24.1.0

05 Oct 19:42
af2c9b1

Choose a tag to compare

Important Note: The release instructions below may result in an exception caused by a circular dependency. In order to resolve the error we suggest upgrading directly to LORIS version 24.1.2 and running the instructions recommended in that release. All other information in the release note below are still accurate

LORIS 24.1 (Release Date: 2022-10-05)

Core

Updates and Improvements

  • Addition of PhaseEncodingDirection and EchoNumber columns to the mri_protocol
    and mri_protocol_violated_scans tables to allow for better discrimination between some
    MRI sequences.
  • Addition of PhaseEncodingDirection and EchoNumber columns to the files, files_qcstatus
    and feedback_mri_comments tables to ensure uniqueness keys for specific GE sequences for
    which the SeriesUID/EchoTime combination is not enough (PR #8152).
  • Addition of image_type, PhaseEncodingDirection and EchoNumber fields to the tables
    present in the "Could not identify scan" page of the MRI violation module (PR #8156)
  • Modification of the list of headers displayed in the image panel headers table (PR #8157)

Bug Fixes

  • Bug fix to the imaging uploader so that when clicking on an upload row, the row is
    highlighted and the proper log is being displayed in the log viewer (PR #8154)
  • Remove SNR label from the image panel of the imaging browser when no SNR values can
    be found for the image (PR #8155)
  • Add the missing download buttons for BVAL, BVEC and JSON files that comes with BIDS/NIfTI
    dataset/images. In addition, the "Download MINC" button has been renamed to a more generic
    label "Download Image" (PR #8159)
  • Fix ConfigurationException bug (PR #8107)
  • Fix PHP fatal error when running the LORIS installation script (PR #8108)
  • Add psr/log to composer (PR #8109)
  • Fixed broken DB calls in assign_missing_instruments and instruments (PR #8162)
  • Add support for PHP 8.1 (PR #7989)

Modules

API

  • Ability to use PSCID instead of the CandID in the candidates API (PR #8138)

Upgrade Process

(See https://github.com/aces/Loris/releases/tag/v24.1.2)

  1. Get the 24.1.0 source code
  2. Source the SQL/Release_patches/24.0_To_24.1_upgrade.sql SQL file into your database.
  3. If you have LORIS-MRI installed, make sure to upgrade LORIS-MRI to 24.1.0 since the SQL changes will affect the MRI insertion scripts.

LORIS Release v24.0.3

14 Jul 21:45
926fac1

Choose a tag to compare

This release fixes some installation dependencies issues found after 24.0.2 and ass the "file" type to the data dictionary list of types.

  • [instruments] fixes getDataDictionary() not support the 'file' type (#8119)
  • [Composer] fix composer and error (#8115)

It also incorporates the changes from v23.0.12:

  • [DQT] Fix dictionary builder and dictionary display issues (#8116)
  • [user_accounts] Revert #2018 - Sanitization before validation of email falsifies validity (#8137)
  • [user_accounts] Prevent crash when one user has no site/project affiliations (#8139)