LORIS Release v20.0.0
LORIS v20.0 is the next major release of LORIS. This release contains several bug fixes and user interface improvements as well as a some new features and a lot of code clean-up.
New Features
- DICOM download has been added to the [API], and to the [Imaging Browser] and [DICOM Archive] modules. Users can download a package (.tar) of all DICOMs from a single upload/session in one click. Increase the
memory_limit
parameter in yourphp.ini
to enable larger downloads. - [Core] Multiple CouchDB databases now supported in CouchDB.class.inc
- [Media] Search by language on uploaded files
Updates and Improvements
- [Create Timepoint] Visit labels must be selected from pre-defined list, instead of entered manually, when creating a new timepoint (#3209)
- [API] Users affiliated with multiple sites can now create candidates and timepoints at any of those sites
- [ImagingPipeline] Specific scan types can now be excluded from the insertion pipeline (including DICOM-to-MINC conversion) via the Configuration module.
- [Core] New data framework for separation of data access and permission layers
- [Core] New HTTP Server Request Handlers conform to PSR15 standards
- [Candidate Parameters] re-organization of tables for storing consent information
Documentation
- Readmes added inside more module directories -- documenting the Purpose, intended users, Scope, Permissions, configurations and interaction of the module with the rest of LORIS
Notes for Existing Projects
- Apache version >=2.3 is now required due to the usage of the END flag
- Check your project/ directory code to remove obsolete function calls due to PHP code cleanup in:
- Removal of references to Mantis bug tracker from codebase
- Users will no longer manually enter visit labels when creating a timepoint. Clean your
config.xml
in every<visitLabel>
tagset by following the example in #3209.
Several scripts should be run -- See details under Upgrade Process -- for:
- Bugfix in the [Imaging Browser] script
mri_protocol
table (script)- Consent architecture update (script)
Upgrade Process
Several steps are involved in this LORIS release upgrade, due to database schema constraints.
Your LORIS must be updated to 19.1.0 or higher before beginning this upgrade.
Procedure A : recommended for production machines.
- Get the latest release code (download and extract)
- Run
composer install --no-dev
from the Loris root directory to update PHP dependencies. - Source the
19.1_To_20.0_upgrade.sql
SQL file into the database - Run the script
Normalize_Consent_Data.php
from thetools/single_use
directory - Run the script
Normalize_protocol_split_rows.php
from thetools/single_use
directory - Run the script
Update_scan_type_of_mri_violations_log_when_manual_caveat.php
from thetools/single_use
directory
Optional: Cleanup
- First, verify that all data has been successfully transferred to the new
consent
,candidate_consent_rel
andcandidate_consent_history
tables. Any data not transferred will be erased in the next step. - Run the
SQL/Archive/autogenerated/single_use/delete_old_consent_tables.sql
to delete the previous consent columns in theparticipant_status
andconsent_info_history
tables.
Procedure B : recommended for development installations
These commands serve as an example and might vary from machine to machine. These were tested on a Ubuntu 16.04 VM
- Get the latest release code (download and extract OR
git pull
) - Run
composer install
from the Loris root directory to update PHP dependencies.- If errors occur you are probably missing
phan
dependency, follow the steps below:- Run
apt-get install php-ast
to installast
required forphan
- Run
composer install
again to confirm everything was properly set up
- Run
- If no errors occur, continue to Step 3
- If errors occur you are probably missing
- Source the
19.1_To_20.0_upgrade.sql
SQL file into the database - Run the script
Normalize_Consent_Data.php
from thetools/single_use
directory - Run the script
Normalize_protocol_split_rows.php
from thetools/single_use
directory - Run the script
Update_scan_type_of_mri_violations_log_when_manual_caveat.php
from thetools/single_use
directory
- See Optional: Cleanup step above