You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Addition of a new account_request_date in users table that will be used when
requesting a new account and will be displayed in the User Accounts module (PR [users] Add 'request account date' to users #6191)
The name of a Standard Date field in a LINST instrument must now end with the
string _date. Otherwise, a LORIS exception is thrown. There is no restriction
on the naming format of a Basic Date or MonthYear field. (PR [LINST] Remove '_date' only for Standard Format #6923)
The EchoTime field has been added to the following tables: MRICandidateErrors,
and mri_violations_log. EchoTime is necessary to distiguish MINC files for
multi-echo aquisitions (PR Added EchoTime field in the violation tables #7515).- The Center_name field in the mri_protocol table has been replaced by CenterID
from the psc table. The default value of CenterID is NULL. Previously, the
default for Center_name was AAAA or ZZZZ. (PR Replace Center_name in mri_protocol with CenterID from psc #7525)
Candidate library now allows a null sex in the select() function to accommodate
scanner candidates. This prevents an error from being thrown in the candidate parameters module. (PR [Candidate] Allow null Sex for scanner candidates #7058)
Addition of a PATCH request for /candidates/$CandID/$VisitLabel to start next
stage when the payload contains a "Visit" stage with "In Progress" as Status,
when the current status of the Visit stage is "Not Started". (PR [API] Visit patch request to start next stage #7479)
Changes are now saved automatically, one by one. Once a conflict is resolved
the cell that contains the input field will glow green. It is possible to change
the resolved conflicts to a new value until the page is refreshed. (PR [conflict_resolver] api + dataframework (version 3) #7558)
This module's API is now described in a Open API Specification file (schema.yml)
that can be loaded in the new API Documentation module.
Change the display of multi select values from "value1{@}value2" to "value1, value2"
in the Correct Answer column of Unresolved and Resolved Conflicts. (PR [Conflict Resolver] Multiselect values #7239)
Show inactive users in the list of assignees as a disabled option. If the
inactive user had already been previously assigned the issue, the disabled option
appears but cannot be reselected. Inactive users can no longer be assigned new
issues. (PR [issue_tracker] Only show inactive user if already selected in form #7306)
The RegistrationProjectID column of the candidate table and the ProjectID column of the session table
in the database are no longer nullable. This means that a value must be set in these fields BEFORE running
the release SQL patch or it will fail.
New function Candidate::getSubjectForMostRecentVisit replaces Utility::getSubprojectIDUsingCandID,
adding the ability to determine which subproject a candidate belongs to given their most recent visit.
The script tools/single_use/remove_publication_users_edit_perm_rel_duplicates.php
should be run before upgrading LORIS.
The Data_entry_completion_status column of instrument tables has been migrated
to its own column in the flag table, and renamed to Required_elements_completed. After script Set_Required_elements_completed_flag.php is run, projects will need to delete the Data_entry_completion_status column of instrument tables. This can be accomplished
by running Remove_Data_entry_completion_status_instr_column.php, and then sourcing
the patch generated by this script. (PR [Instrument] Rename Data_entry_completion_status & move to its own column in flag #6876)
If _setDataEntryCompletionStatus, _determineDataEntryCompletionStatus, and/or updateDataEntryCompletionStatus are called in any overrides, make sure to replace
all instances with their newly named counterparts, _setRequiredElementsCompletedFlag, _determineRequiredElementsCompletedFlag, updateRequiredElementsCompletedFlag. (PR [Instrument] Rename Data_entry_completion_status & move to its own column in flag #6876)
Deletion of dateTimeFields and monthYearFields variables in instrument class.
All references to these variables should be removed from project instruments. (PR Instrument class and LINST class cleanup #7183)
There is a new abstract getDataDictionary() function in the instrument class
for the new data dictionary framework. This is already implemented for LINST instruments,
and existing instruments using LorisForm can use the \LorisFormDictionaryImpl
trait to extract it in the same way as lorisform_parser.php did for the old datadict module.
The name of a Standard Date field in a LINST instrument must now end with the
string _date. Otherwise, a LORIS exception is thrown. There is no restriction
on the naming format of a Basic Date or MonthYear field. (PR [LINST] Remove '_date' only for Standard Format #6923)
Run tools/single_use/Remove_duplicate_examiners.php to remove duplicate
examiners that may have been created before bugfix. Make sure to run this script before running the SQL/New_patches/2021-09-28-Unique_examiners.sql. (PR [user_accounts] Use userID to update examiners table #7462)
Refer to instructions for clean up scripts meant to remove unused data in the SQL/Archive/24.0/Cleanup directory
all instruments in the test_names module must have a corresponding instrument on the filesystem for the media module to load
the instrument class's static loadInstanceData function has been replaced with a non-static getInstanceData, calls from existing instruments must be updated appropriately.
Notes For Developers
PHPCS enabled for tools/ and test/ and must now pass on new PRs (Various PRs)
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/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.
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
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
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
php tools/single_use/Remove_duplicate_examiners.php This script is written to clean up duplicate userIDs in the examiners table
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).
Source the SQL/Release_patches/23.0_To_24.0_upgrade.sql SQL file into your database.
Run the following scripts:
php tools/single_use/populate_visits.php This script populates the visits table based on the config.xml, session table and Visit_Windows table.
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.
Run make all on the LORIS root directory
OPTIONAL: Source SQL patches from the SQL/Archive/24.0/Cleanup directory at your discretion to remove superfluous or deprecated entries in the database.
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.
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
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
This release contains user interface improvements, code clean up, bug fixes and new features across all modules in LORIS.
Full list of changes
Some of the major changes in this release are:
Core
Features
until all data has loaded. (PR [Data Tables] Add ability for data tables to stream data #6853)
Updates and Improvements
Quality Control, and Behavioural Quality Control. (PR Add module-specific permissions for Survey, Imaging QC, Behavioural QC #6041)
account_request_date
inusers
table that will be used whenrequesting a new account and will be displayed in the User Accounts module (PR [users] Add 'request account date' to users #6191)
autoSelect
property to ReactSelectElement
allows for auto-selection ofonly available select option (PR [new_profile] Auto-select only site option #6156)
AcquisitionDate
field has been added to thefiles
table (PR Add AcquisitionDate field in the files table and back populate it #6892)Data_entry_completion_status
given its own column in flag, and renamed toRequired_elements_completed
(PR [Instrument] Rename Data_entry_completion_status & move to its own column in flag #6876)changeProject
andresetProject
helper functions to theLorisIntegrationTest
class to help test project permissions (PR [Integration] changeUserProject helper function, candidate_profile tests #6912)NDB_BVL_Instrument
,NDB_Page
,NDB_Factory
,User
, andUserPermissions
libraries (PR [Test] unittests for NDB_BVL_Instrument library #6819, PR [Test] unittests for NDB_Page.class.inc #6804, PR [Test] unittests for NDB_Factory.class.inc #6776, PR [Test] unittests for User.class.inc, UserPermissions.class.inc #6765)string
_date
. Otherwise, a LORIS exception is thrown. There is no restrictionon the naming format of a Basic Date or
MonthYear
field. (PR [LINST] Remove '_date' only for Standard Format #6923)as a disabled option. (PR [issue_tracker] Only show inactive user if already selected in form #7306)
date_format
as a DataType in ConfigSettings (PR [configuration] Add date_format as DataType in ConfigSettings #6719)parameter_file
table'sValue
field type tolongtext
(PR change parameter_file Value to longtext #7392)phan
are now fixed (multiple PRs)LorisInstance
class was added to represent an installed LORIS instance (PR [Core] Add LorisInstance class #6118)DateElement
(JS). (PR [Core] Date field js validation #7266)Current_stage
default value changed forNot Started
(PR Session Current_stage - Not Started as default value #7102)EchoTime
field has been added to the following tables:MRICandidateErrors
,and
mri_violations_log
.EchoTime
is necessary to distiguish MINC files formulti-echo aquisitions (PR Added EchoTime field in the violation tables #7515).- The
Center_name
field in themri_protocol
table has been replaced byCenterID
from the
psc
table. The default value ofCenterID
isNULL
. Previously, thedefault for
Center_name
wasAAAA
orZZZZ
. (PR Replace Center_name in mri_protocol with CenterID from psc #7525)Bug Fixes
instrument if it includes the string
_date
. (PR [LINST] Remove '_date' only for Standard Format #6923)can be saved with no errors so that the instrument scoring script can be called. (PR [NDB_BVL_Instrument] Only update instrument table if $values not empty #7124)
displayed (PR [User Accounts] Permissions panel fix #7451)
auto-launch set to
true
and your current upload overwrites an existing file (PR Fixed imaging uploader that would not automatically start when overwriting a file #7084).CouchDB_MRI_Importer
now computes the correct names from the data dictionaryentries associated to MRI comments (PR Fixes and improvements for the CouchDB_MRI_Importer. #7082).
scanner candidates. This prevents an error from being thrown in the candidate parameters module. (PR [Candidate] Allow null Sex for scanner candidates #7058)
Modules
API
/candidates/$CandID/$VisitLabel
to start nextstage when the payload contains a "Visit" stage with "In Progress" as Status,
when the current status of the Visit stage is "Not Started". (PR [API] Visit patch request to start next stage #7479)
visit labels and projects. (PR [API] Add support for visit label name with space #7478 & [API] Add support for project names with space #7463)
API Documentation (New Module)
interface to inspect and try LORIS modules API.
Behavioural QC
BrainBrowser
Candidate Parameters
consent
for consent grouping #6042, PR [Consent] Group consents + Improve UI #6044)Candidate Profile
Configuration
Conflict Resolver
the cell that contains the input field will glow green. It is possible to change
the resolved conflicts to a new value until the page is refreshed. (PR [conflict_resolver] api + dataframework (version 3) #7558)
that can be loaded in the new API Documentation module.
in the Correct Answer column of Unresolved and Resolved Conflicts. (PR [Conflict Resolver] Multiselect values #7239)
Create timepoint
inefficient code and conditional display of select options based on previous selections (PR [create_timepoint] Code refactor to display proper select options based on previous selections #7825)
Data Dictionary
DQT
EEG Browser
on the session page to support new annotation features (PR [New Feature] SQL Patch and functionality for EEG BIDS Derivatives #7345)
Genomic Browser
Help Editor
Parent Topic
(PR [Help editor] Remove parentID #7025)Imaging Uploader
auto-launch set to true and your current upload overwrote an existing file (PR Fixed imaging uploader that would not automatically start when overwriting a file #7084)
Instrument Builder
Instruments
Issue Tracker
NULL
Site (For All Sites issues) ([issue_tracker] Update validation to allow NULL Site #6526)inactive user had already been previously assigned the issue, the disabled option
appears but cannot be reselected. Inactive users can no longer be assigned new
issues. (PR [issue_tracker] Only show inactive user if already selected in form #7306)
Login
Media
Publication
User Accounts
user name match email address" and "Generate new password". (PR [User accounts] New user email with pwd generation fix #6803)
Tools
delete_candidate.php
tool. (PR [Tools] delete_candidate CanID Fix #6805, [Tools] delete_candidate fix #7275)fix_candidate_age.php
(PR [Tools] Fix to prevent fatal in fix_candidate_age.php #7546)generate_candidate_externalids.php
to fill external IDs for allcandidates where a NULL value is found. (PR [Tools] Generate Candidate External IDs #7095)
populate_visits.php
to back-populate visits from theconfig.xml
,session
table andVisit_Windows
table into thevisit
andvisit_project_subproject_rel
([Visits Architecture (1 of 4)] - Population tool for visit table #7663)populate_visit_windows.php
tool in favour ofpopulate_visits.php
([Visits Architecture (1 of 4)] - Population tool for visit table #7663)Clean Up
getBattery()
andgetBatteryVerbose()
functions (PR [instrument_list/battery] Clean-up battery retrieval function #7167)violated_scans_edit
permission (PR [SQL Cleanup Patch] Remove violated_scans_edit permission #6747)VisitLabel
section of theconfig.xml
file. Allvisit configurations and their association to projects are now in the database.
The visits can be removed from the
config.xml
file after running thepopulate_visits.php
script only. ([Visits Architecture (1 of 4)] - Population tool for visit table #7663 & [Visits Architecture (2 of 4)] - Making config.xml unnecessary #7729)ScannerID
field of themri_protocol
table is nowNULL
instead of0
. This means that if a protocol is valid on all the study'sscanners, then
ScannerID
of the protocol should be set toNULL
(PR [SQL] Setting default value of ScannerID in mri_protocol to be NULL instead of 0 #7496)Notes For Existing Projects
RegistrationProjectID
column of the candidate table and theProjectID
column of the session tablein the database are no longer nullable. This means that a value must be set in these fields BEFORE running
the release SQL patch or it will fail.
Candidate::getSubjectForMostRecentVisit
replacesUtility::getSubprojectIDUsingCandID
,adding the ability to determine which subproject a candidate belongs to given their most recent visit.
getFullName()
andgetSubtestList()
functions thus making entries in the
test_names
andinstrument_subtests
tablesunnecessary for LINST instruments (PR [LINST] Implement getFullName() and getSubtestList() and fix numeric type #7169)
tools/single_use/remove_publication_users_edit_perm_rel_duplicates.php
should be run before upgrading LORIS.
Data_entry_completion_status
column of instrument tables has been migratedto its own column in the
flag
table, and renamed toRequired_elements_completed
. After scriptSet_Required_elements_completed_flag.php
is run, projects will need to delete theData_entry_completion_status
column of instrument tables. This can be accomplishedby running
Remove_Data_entry_completion_status_instr_column.php
, and then sourcingthe patch generated by this script. (PR [Instrument] Rename Data_entry_completion_status & move to its own column in flag #6876)
_setDataEntryCompletionStatus
,_determineDataEntryCompletionStatus
, and/orupdateDataEntryCompletionStatus
are called in any overrides, make sure to replaceall instances with their newly named counterparts,
_setRequiredElementsCompletedFlag
,_determineRequiredElementsCompletedFlag
,updateRequiredElementsCompletedFlag
. (PR [Instrument] Rename Data_entry_completion_status & move to its own column in flag #6876)begintable
andendtable
elements in LINST instruments (PR Instrument class and LINST class cleanup #7183)dateTimeFields
andmonthYearFields
variables in instrument class.All references to these variables should be removed from project instruments. (PR Instrument class and LINST class cleanup #7183)
config.xml
. An importer tool (populate_visits.php
) isavailable to import the current setup into the
visit
table of the database.Make sure the visits displayed after these changes are what you expect.
The visits can be removed from the
config.xml
file after the importer tool is run. ([Visits Architecture (1 of 4)] - Population tool for visit table #7663 & [Visits Architecture (2 of 4)] - Making config.xml unnecessary #7729)getDataDictionary()
function in the instrument classfor the new data dictionary framework. This is already implemented for LINST instruments,
and existing instruments using
LorisForm
can use the\LorisFormDictionaryImpl
trait to extract it in the same way as
lorisform_parser.php
did for the olddatadict
module.string
_date
. Otherwise, a LORIS exception is thrown. There is no restrictionon the naming format of a Basic Date or MonthYear field. (PR [LINST] Remove '_date' only for Standard Format #6923)
tools/single_use/Remove_duplicate_examiners.php
to remove duplicateexaminers that may have been created before bugfix. Make sure to run this script
before running the
SQL/New_patches/2021-09-28-Unique_examiners.sql
. (PR [user_accounts] Use userID to update examiners table #7462)SQL/Archive/24.0/Cleanup
directoryNotes For Developers
Upgrade Process
Note: the minimum version of PHP is now PHP 7.4
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/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 theUserID
key of the instrument JSONData
in the flag table.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
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
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
php tools/single_use/Remove_duplicate_examiners.php
This script is written to clean up duplicate userIDs in the examiners table
RegistrationProjectID
column in thecandidate
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).SQL/Release_patches/23.0_To_24.0_upgrade.sql
SQL file into your database.php tools/single_use/populate_visits.php
This script populates the
visits
table based on the config.xml,session
table andVisit_Windows
table.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 calledRequired_elements_completed
. Note that this script can take a long time to complete on large projects.make all
on the LORIS root directorySQL/Archive/24.0/Cleanup
directory at your discretion to remove superfluous or deprecated entries in the database.tools/single_use/Remove_Data_entry_completion_status_instr_column.php
PHP script to generate an SQL patch containing allDROP COLUMN
statements for the now unusedData_entry_completion_status
field in instruments. This script will generate the SQL patch and store it in theSQL/Archive/autogenerated/single_use/
directory under the nameRemove_Data_entry_completion_status.sql
.<visitLabel subprojectID="X">
tags in the Config.xml fileNOTE: 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 usedThis discussion was created from the release LORIS Release v24.0.0.
Beta Was this translation helpful? Give feedback.
All reactions