Releases: aces/Loris
v27.0.0
Summary
The LORIS 27 release adds many new features and optimizations detailed below such as:
- Optimizations for the new dataquery tool which also optimize various components throughout LORIS
- Improvements to permission handling through different modules
- A new "Batch Mode" for the issue tracker
- The CandID in LORIS is now 10 digits instead of 6 to support larger projects
- Foreign Key references to the
candidate
table are now standardized:CandidateID
which refers tocandidate
.ID
- Instrument's
flag
.data
moved toinstrument_data
table - LORIS now has the ability to display summary statistics of the LORIS instance (either from an SQL query or a query built with the new data query tool) on the login page.
- A new redcap module allows to importing of data from redcap into LORIS
- Various other bug fixes and features detailed below
Notes For Existing Projects
Upgrading LORIS requires following the upgrade process each major and minor release (bug fix releases can be script) to ensure the schema is up to date.
For upgrading to 27 from 26:
- Source the
SQL/Release_patches/26.0_To_27.0_upgrade.sql
- Run the
tools/update_issues_with_description.php
to back-populate the new issue tracker description column. (The description was previously based on the first comment.)
What's Changed
Features
- [IssueTracker] Add description field to issues table by @sanjay-thiyagarajan in #8864
- [document_repository] New features by @pierre-p-s in #7103
- [SQL] Move flag.data column to own table by @driusan in #9215
- [instrument_manager] Use JSON data for uploaded linst instruments by @driusan in #9324
- [Core] Add Compression middleware by @driusan in #9207
- [document_repository] Remove File Type Restriction by @skarya22 in #9388
- [candidate_profile] Add error boundary to cards with errors by @driusan in #9333
- [JSX] Relax Strictness of Filter for Multiselect in Filter Component by @HenriRabalais in #9402
- [issue_tracker] Convert batch/normal mode toggle to tabs and implement permission control by @ay-bh in #9434
- [JSX] Add ProgressBar to FilterableDataTable for Progressive Loading UI by @HenriRabalais in #9401
- [SQL][Instrument List][Battery Manager] Move DDE Enabled to Test_Battery by @skarya22 in #9264
- [conflict_resolver] Add Cohort filter and field by @victori444 in #9407
- [issue_tracker] Add Instrument dropdown to Issue form by @ay-bh in #9311
- [data_release] Introduce Project Separation by @skarya22 in #9385
- [Survey Module] Update survey status upon data_entry by @victori444 in #9441
- [Core] Add database query class to represent the results of a DB query by @driusan in #9334
- [Core] Add support / fix PHP 8.4 support by @driusan in #9513
- [issue_tracker] Add Batch Mode by @ay-bh in #9339
- [Media] Upload Digest Notifications (Override from CCNA) by @skarya22 in #8849
- [dataquery] Add ability to retrieve results of previous run from API by @driusan in #9301
- [NDB_BVL_Instrument] Hide inactive examiners for site from selection, unless if already selected by @skarya22 in #9416
- [timepoint] Add Default Site to Dropdown by @victori444 in #9408
- [issue_tracker] Receive notifications for all issues by @skarya22 in #9396
- [dataquery] Add instrument flags to instruments query engine by @driusan in #9529
- [data_release] FileUpload version permission by @victori444 in #9489
- [SQL] Refactor FK CandID int(6) to CandidateID int(10) (candidate.ID PK) by @jeffersoncasimir in #9556
- [Login] Summary Statistics by @skarya22 in #9518
- [Core] New Filters and Logic by @ridz1208 in #9548
- [issue_tracker] Add more granular permissions for Issue Tracker by @shonibare in #9554
- [imaging_uploader] Sort by UploadDate for most recent uploads by @ridz1208 in #9563
- [dictionary] Cohort Filter by @skarya22 in #9390
- [dicom archive] add project permission check based on tarchiveID by @regisoc in #9359
- HTMLSpecialChars() Double escaping default to false by @KLaFleur in #9557
- [Core] Add performance profiler logger by @driusan in #9383
- [imaging_qc] Make module only display data affliated to user's site and project by @shonibare in #9399
- [user_accounts] Made Site & Project multiselect expandable by @ridz1208 in #9562
- Add Project Affiliations Menu to Main Interface by @NadaElmasry in #9417
- [imaging_uploader] Site&Project check with config setting and permission by @ridz1208 in #9533
- [dataquery] (demographics) Include missing fields from deprecated CouchDB_Import_Demographics. by @racostas in #9566
- [dashboard] Improve visual styling for a more modern look by @GeorgeMurad in #9734
- [battery_manager] Add required DDE selection by @skarya22 in #9741
- [JSX] Refactor Modal Component to Support Conditional Form Wrapping by @HenriRabalais in #9516
- Add the MRI variables in the imaging_browser's query engine by @nicolasbrossard in #9824
- [candidate_parameters] Add hasAccess to module class #9834 by @kongtiaowang in #9843
- [dataquery] Add 'PSCID' as a default field by @jeffersoncasimir in #9845
Optimizations
- [dataquery] Optimize filtering of valid candidates for large datasets by @driusan in #9344
- [Optmization] Replace bulkLoadInstanceData with generator by @driusan in #9347
- [Utility] Cache getVisitList result by @driusan in #9346
- [Utility] Remove unnecessary joins in queries by @driusan in #9369
- [bugfix] Cleanup TestName->TestID transition by @skarya22 in #9387
- [server_processes_manager] Monitor incomplete processes only by @jeffersoncasimir in #9725
- [redcap] new module by @regisoc in #9474
- [dashboard] Optimize statistics queries by @skarya22 in #9793
- [instruments] Add view permission by @adamdaudrich in #9762
Bug Fixes
- [issue_tracker] Fix inactive user query by @CamilleBeau in #8904
- [instrument_list] Fix deprecation warning (24.1) by @regisoc in #9053
- StaticDataTable mixed column types sorting by @regisoc in #9120
- [tools] Fix SQL error for duplicate rows by @GeorgeMurad in #9007
- Defining default decimal point for non JSON table LINST instruments by @regisoc in #9277
- [acknowledgements] Remove "Present" column from database and dynamically calculate by @driusan in #8339
- [User Account] Checkbox alignments by @laemtl in #9352
- Update Typescript by @maximemulder in #9394
- [User_Accounts] Fix examiner always pending & bugfix by @skarya22 in #9409
- Replace DoB/EDC with 'Derived Age'/'EDC Age' by @GeorgeMurad in #8990
- [Conflict_resolver] Show examiner name by @skarya22 in #9404
- [NDB_BVL_Instrument] Fix for clearing instrument by @skarya22 in #9411
- [document_repository] Error for filenames with comma by @victori444 in #9461
- [Tools] assign_missing_instruments.php - fix wrong type by @kongtiaowang in #9484
- [NDB_Page] Add default maxYear for date elements by @skarya22 in #9498
- [issue_tracker] 'My Issues' filter for users with no issues by @CamilleBeau in #9483
- [conflict_resolver] Replace 'Value 1 & 2' with 'Incorrect Answer' by @victori444 in #9506
- [NDB_BVL_Instrument] Fix addHourMinElement being never required by @victori444 in #9482
- [media] Fix download of filenames with commas by @victori444 in #9510
- Fixing the display of the Entity Type options in the Imaging Browser by @GeorgeMurad in #9542
- [issue_tracker] Fixes in permission when own user editing. by @racostas in #9546
- [Core] fix timeout redirect location by @ridz1208...
LORIS Release v24.1.8
What's Changed
- StaticDataTable mixed column types sorting by @regisoc in #9120
- [tools] Fix SQL error for duplicate rows by @GeorgeMurad in #9007
- [DataTable] Fix multiselect containing commas by @victori444 in #9743
Full Changelog: v24.1.7...v24.1.8
LORIS Release v26.0.4
What's Changed
Full Changelog: v26.0.3...v26.0.4
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
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.
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] R...
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