Releases: aces/Loris
LORIS Release v26.0.3
What's Changed
- [SQL] remove DownloadPath from sql files - 26.0-release by @kongtiaowang in #9467
- [electrophysiology_uploader] Fix minor unexpected behaviours by @ZhichGaming in #9470
- [composer] manage project dependencies by @regisoc in #9496
- [Deprecated DQT] Fix type error in demographic import script by @driusan in #9508
- [Raisinbread] Add physiological_event_archive entries by @jeffersoncasimir in #9515
- [Candidate] RE-add support to create candidates from the backend (unix user) by @ridz1208 in #9485
- [issue_tracker] Add [priority,status] in the body and 'study' to subj… by @shonibare in #9471
- [EEG Browser] Fix webpack and ts config by @laemtl in #9517
New Contributors
- @ZhichGaming made their first contribution in #9470
Full Changelog: v26.0.2...v26.0.3
LORIS Release v26.0.2
What's Changed
- [dictionary] optimize unique scan types by @regisoc in #9454
- [Examiner] fix missing edit examiner url-link by @kongtiaowang in #9449
- [candidate_list] Fix 'Access Profile' link on timepoint list page by @shonibare in #9455
- [Feedback] Fix typo in getSummaryOfThreads by @CamilleBeau in #8889
Full Changelog: v26.0.1...v26.0.2
LORIS Release v26.0.1
What's Changed
- fix data release sort issue by @kongtiaowang in #8636
- [MRI Violations] Fix violated_scans_view_allsites permission by @laemtl in #9057
- [statistics] Fix bracket for null coalesce by @driusan in #9310
- fix generic_includes.php returning error "Undefined variable in /var/www/loris/tools/generic_includes.php on line 28" - 26 branch by @cmadjar in #9317
- [candidate parameters] diagnosis fix by @kongtiaowang in #9365
- fix generic_includes.php returning error "Undefined variable in /var/www/loris/tools/generic_includes.php on line 28" - 25 branch by @cmadjar in #9318
- [API] Fix PUT request not updating image's QC values by @cmadjar in #9376
- [dataquery/instruments] Handle cardinality::many instruments in DQT by @driusan in #9305
Full Changelog: v26.0.0...v26.0.1
LORIS Release v26.0.0
This is the LORIS v26.0.0 release. It includes many major new features such as a rewritten Data Query Tool that doesn't require CouchDB and enforces permissions, preliminary OpenID Connect support, HED tag support in the EEG browser, a new scheduling module, a candidate diagnosis evolution tracker, the ability to customize the "Sex" options for candidates in LORIS, PHP 8.3 support, and multiple bug fixes and optimizations.
For the full changelog see: v25.0.2...v26.0.0
Upgrade Instructions
To upgrade LORIS from v25.0.x (previous versions should first upgrade to v25):
- Update to the v26.0.0 version of the code.
- Run the SQL update patch
SQL/Release_patches/25.0_To_26.0_upgrade.sql
. - Run the command
make
from your LORIS root directory.
What's Changed
- [Tools] Generate tables include path fix by @laemtl in #8674
- [LINST] Add .meta option to skip XIN rules by @driusan in #8714
- [candidate_list] Multiselect for visit label, site, and cohort by @charlottesce in #8730
- [candidate_parameters] Participant status - mandatory comments if not active or complete by @charlottesce in #8731
- [api] Add cohorts to project info by @driusan in #8774
- [conflict_resolver] Add description field by @charlottesce in #8845
- [DataQuery] New DQT backend implementation by @driusan in #8268
- [IssueTracker] Fix for "othersWatching" history tracking by @sanjay-thiyagarajan in #8875
- [JS] Add username/id to Loris helper object by @driusan in #8876
- [OpenID] Add OpenID Connect support to LORIS by @driusan in #8255
- [script] Add script to create a new module by @driusan in #8918
- [Core] Allow module entrypoint to be written in typescript by @driusan in #8873
- [SQL] Require test_names.Sub_group to not be null by @driusan in #8933
- [instruments] Bulk load SessionID and VisitLabel by @driusan in #8855
- [CouchDB_MRI_Importer] Remove extra argument in _getQueryForSelectedFiles by @CamilleBeau in #8947
- [NDB_BVL_Instrument] Cleanup duplicate method definition for _addMetadataFields() by @zaliqarosli in #8956
- Remove 'Scan done' field from 'Start visit' menu by @GeorgeMurad in #8955
- feat: add robots.txt file by @divyakelaskar in #8946
- [Tools] fix timepoint data problems by @xlecours in #8949
- [bvl_feedback] Update summary in real time by @CamilleBeau in #8966
- [examiner] Only show active examiner sites by @CamilleBeau in #8967
- [dataquery] New Data Query Module by @driusan in #8907
- [api/instruments] Add endpoint that allows you to add instruments to a battery by @driusan in #8868
- [New Feature] Tracking and Configuration of Candidate's Diagnosis Evolution by @jesscall in #7560
- [Brainbrowser] file_url query param by @laemtl in #8335
- [jsx] Remove DynamicDataTable by @driusan in #8993
- [Candidate_parameters] Consent status - Add NA option by @charlottesce in #8732
- [candidate_parameters] use DoB and DoD format by @CamilleBeau in #9001
- [my_preference] Add support for my_preference widgets by @driusan in #8938
- Add PHP 8.3 support by @driusan in #9019
- [Instrument List] Show Timepoint Project by @skarya22 in #9039
- [candidate] Create Sex table and remove Sex enum by @CamilleBeau in #9025
- [Instrument List] Refresh on Stage Update by @skarya22 in #9040
- [User Accounts] Site as multi select by @sruthymathew123 in #9022
- [electrophysiology_browser] Replace Physiological Annotations with Events by @jeffersoncasimir in #9032
- [htaccess] Modifies rule to allow spaces in filename when downloading files. by @racostas in #9029
- [electrophysiology_browser] Revised EEG filters + Store reference fix by @jeffersoncasimir in #9038
- [Instrument_list] Refresh on Send to DCC by @skarya22 in #9072
- [install] fix db installer host name by @maximemulder in #9107
- [electrophysiology_uploader] Add PSCID and Visit Label filters to data table by @jeffersoncasimir in #9113
- [help] fix the help widget extending over the height of a page by @shonibare in #9105
- Increase LINST instrument read buffer by @regisoc in #9117
- [dicom archive] Fix dicom archive details links by @maximemulder in #9081
- [data_release] refactoring to use data framework. by @racostas in #9051
- [candidate_profile] Fixing the display of cohorts in candidate Info card by @GeorgeMurad in #9125
- [tools/script] fix projectID issue by @kongtiaowang in #9069
- [user] Add getSites functions in User class by @CamilleBeau in #9102
- [configuration] Fix option deletion issue. by @racostas in #9121
- [electrophysiology_browser] HED Tag Support by @jeffersoncasimir in #9033
- [api_docs] add ModuleID to permission by @ridz1208 in #9145
- [NDB_Client] Allow loading images from images.loris.ca by @jeffersoncasimir in #9161
- [media] bug fix - string to int by @kongtiaowang in #9156
- [instrument_manager] Fixing error in generate_tables_sql_and_testNames tool by @AlexandraLivadas in #9157
- [electrophysiology_browser] Minor HED display modifications by @jeffersoncasimir in #9166
- [issue_tracker] null option assignee by @regisoc in #9169
- EEGVisEnabled check issue and webpack cache by @laemtl in #9159
- [imaging browser] Remove unused button by @maximemulder in #9075
- [statistics] bug fix - projectID issue by @kongtiaowang in #9170
- [Login] password reset page- missing element import by @kongtiaowang in #9171
- [Publication] Fix deletion of file when editing project by @CamilleBeau in #9181
- [Statistics] Fix checkbox places in Imaging Statistics by @miladheshmati in #9184
- [document_repository] Uploading file too large not reporting correctly #9158 - fix by @kongtiaowang in #9174
- [examiner] fix error message display format by @shonibare in #9176
- [new_profile] Site not selected when recruiting another candidate by @nicolasbrossard in #9197
- [Behavioural_QC] Display profile level feedbacks by @CamilleBeau in #9192
- [Schedule Module] add new schedule module into Loris by @kongtiaowang in #6150
- [notification] Fix sender name in email by @maximemulder in #9203
- [publication] Fix number of files in Upload tab by @CamilleBeau in #9179
- [statistics] Recruitment graph optimization by @driusan in #9196
- [Publication] Fix for auto-selecting Project in edit by @skarya22 in #9187
- [media] 413 error improperly handled #9163 - fix by @kongtiaowang in #9175
- [publication] Fix download prevention by overriding download notification function by @jeffersoncasimir in #9208
- [Publication] Fix baseurl missing from emails by @skarya22 in #9186
- Help UI fix by @laemtl in #9210
- [candidate_list] Make candidate_list use LORIS streamable binary format by @driusan in #9195
- Add to configuration server_processes_manager module by @GeorgeMurad in #9189
- [RB_files] Removed erroneous insertions in RB_physiological_file by @jeffersoncasimir in #9211
- [Acknowledgements] Fix for selecting all roles by @skarya22 in #9209
- [dicom archive] Remove superfluous newline in dicom archive view details by @maximemulder in #9214
- data_dictionary_builder.php unique constraint fix by @laemtl in #9201
- [behavioural_qc ] Auto-open behavioural panel with query parameter by @jeffersoncasimir in #9183
- [examiner] Adds permission check when add...
LORIS Release v24.1.7
Backport fixes from v25 to v24.1
What's Changed
- [issue_tracker] Fix inactive user query by @CamilleBeau in #8904
- [instrument_list] Fix deprecation warning (24.1) by @regisoc in #9053
Full Changelog: v24.1.6...v24.1.7
LORIS Release v25.0.2
What's Changed
- [media] React Warning on Upload Tab by @skarya22 in #8721
- [issue_tracker] Do not display inactive users in issue form by @charlottesce in #8841
- [LINST] skip metadatafields for surveys by @zaliqarosli in #8961
- [dictionary] Fixes for correct displaying "Data Type" column for the enumeration type in the "Data Dictionary (Beta)" table by @yagurdmitriy in #8976
- [tools] Fix efficiency of fix_candidate_age script by @CamilleBeau in #8992
- [media] fixes issue when media module try to instantiate a non existing instrument. by @racostas in #8903
- [instrument_list] Fix deprecation warning by @driusan in #8867
- [LINST] fix survey and date issues by @ridz1208 in #8858
- [JSX] Modal Width Prop by @skarya22 in #8893
- [libraries] Get examiner sites by UserID by @CamilleBeau in #8994
- [genomic_browser] Download button not showing up in the Files tab by @ridz1208 in #8480
- [issue_tracker - raisinbread/tools] Fix issue tracker history wrong module ID by @zaliqarosli in #8677
- [Issue Tracker] Issue Change Notifications by @skarya22 in #8885
- [behavioural_qc] fixes visitLevel feedback not showing up. by @racostas in #8900
- [battery_manager] Update Test Plan by @skarya22 in #8782
New Contributors
- @yagurdmitriy made their first contribution in #8976
Full Changelog: v25.0.1...v25.0.2
LORIS Release v24.1.6
What's Changed
- [issue_tracker] Do not display inactive users in issue form by @charlottesce in #8841
- [LINST] skip metadatafields for surveys by @zaliqarosli in #8961
- [tools] Fix efficiency of fix_candidate_age script by @CamilleBeau in #8992
- [media] fixes issue when media module try to instantiate a non existing instrument. by @racostas in #8903
- [LINST] fix survey and date issues by @ridz1208 in #8858
- [JSX] Modal Width Prop by @skarya22 in #8893
- [libraries] Get examiner sites by UserID by @CamilleBeau in #8994
- [genomic_browser] Download button not showing up in the Files tab by @ridz1208 in #8480
- [issue_tracker - raisinbread/tools] Fix issue tracker history wrong module ID by @zaliqarosli in #8677
- [Issue Tracker] Issue Change Notifications by @skarya22 in #8885
- [behavioural_qc] fixes visitLevel feedback not showing up. by @racostas in #8900
Full Changelog: v24.1.5...v24.1.6
LORIS Release v25.0.1
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
- [API] Using isAccessibleBy on candidate endpoint by @xlecours in #8824
- [25.0 release] Update raisinbread dataset by @ridz1208 in #8843
- [25.0 Release] Hotfixes for demo by @ridz1208 in #8840
- [imaging_qc] Improve Error Message by @skarya22 in #8779
- [survey_accounts] notices, warnings and filter options by @ridz1208 in #8859
- [LorisForm] add required to checkboxes by @ridz1208 in #8860
- [Libraries] Feedback panel - fix fieldnames setting by @charlottesce in #8848
- [tools][CouchDB_MRI_Importer] Fix date in MRI data by @charlottesce in #8851
- [issue_tracker] Resolves special characters in titles by @charlottesce in #8842
- [LINST/Dictionary] Add Numeric elements to dictionary by @driusan in #8869
- [bvl_feedback] Edit comment section by @skarya22 in #8790
- [Core] Enable use of project modules for ajax requests by @jeffersoncasimir in #8870
- [imaging_uploader] Fix auto-populating VisitLabel by @zaliqarosli in #8881
- [Dict] hotfix add hidden fields to dictionary implementation by @ridz1208 in #8882
- [Configuration] Fix values of email fields by @laemtl in #8891
- [configuration] Escape values in config module by @driusan in #8901
- [media] Fix SQL injection by @driusan in #8908
Full Changelog: v25.0.0...v25.0.1
LORIS Release v24.1.5
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
- [battery_manager] use visit controller to fetch visit list by @ridz1208 in #8485
- [Core] PSCID uniqueness by @xlecours in #8411
- [API] Using isAccessibleBy on candidate endpoint by @xlecours in #8824
- [survey_accounts] notices, warnings and filter options by @ridz1208 in #8859
- [LorisForm] add required to checkboxes by @ridz1208 in #8860
- [Libraries] Feedback panel - fix fieldnames setting by @charlottesce in #8848
- [tools][CouchDB_MRI_Importer] Fix date in MRI data by @charlottesce in #8851
- [issue_tracker] Resolves special characters in titles by @charlottesce in #8842
- [LINST/Dictionary] Add Numeric elements to dictionary by @driusan in #8869
- [imaging_uploader] Fix auto-populating VisitLabel by @zaliqarosli in #8881
- [Dict] hotfix add hidden fields to dictionary implementation by @ridz1208 in #8882
- [Configuration] Fix values of email fields by @laemtl in #8891
- [media] Fix SQL injection by @driusan in #8908
Full Changelog: v24.1.4...v24.1.5
LORIS Release v25.0.0
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
- @satvik-tha-god made their first contribution in #8146
- @jeffersoncasimir made their first contribution in #8223
- @violetwei made their first contribution in #8321
- @GeorgeMurad made their first contribution in #8278
- @KLaFleur made their first contribution in #8671
- @charlottesce made their first contribution in #8720
- @skarya22 made their first contribution in #8724
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
24.1.x to 25
-
Get the 25.0.0 source code
-
Source the
SQL/Release_patches/24.1_To_25.0_upgrade.sql
SQL file into your database. -
Run the following scripts:
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.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.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 theviolations_resolved
tale when users update a resolution status for a violation.
-
Run
make all
from the LORIS root directory. -
OPTIONAL: Run any cleanup patches in
SQL/Archive/25.0/Cleanup/
-
OPTIONAL: Remove the
<instrumentPermissions>
tag from your config.xml which is no longer used after running the migration script.