Skip to content

Flywheel Core 22.5

22.5.0

FEATURES

Data Transfer

Bulk Import

Bulk Import now accepts an optional manifest file that specifies where each source file belongs in Flywheel. The manifest is a comma-separated values (CSV) or tab-separated values (TSV) file that maps each source file to its destination subject, session, and acquisition labels. Additional columns can set other metadata, such as custom subject.info fields, file.modality, and file.classification. Values in the manifest take precedence over metadata that Bulk Import extracts from file paths, file contents, or .metadata.json sidecar files.

This allows organizations to import data whose file paths or contents do not carry enough information to determine where it belongs, such as vendor-supplied or non-DICOM data, without first restructuring it.

Users can supply a manifest when starting an import from the web application, the New CLI (flyw), or the application programming interface (API). Bulk Import checks the manifest for required columns before the import begins, and logs and skips any columns it does not recognize.

DICOM Router

The DICOM Router connector can now be configured with multiple Application Entity Titles (AETs) instead of a single AET, so sending devices can address the connector using any of its configured AETs. Administrators can add and remove AETs in the connector configuration interface.

Bulk Export

Flywheel refined the conditions under which it blocks concurrent Bulk Export operations, so exports are blocked only when they could genuinely conflict, such as when they target the same storage location with overlapping settings. The error message shown when a conflict is detected now provides clearer guidance on how to resolve the conflict.

Data Management

Session Templates

Session templates now include an option to use exact string matching instead of regular expression (regex) matching when validating session names, acquisition labels, and file classifications. Data managers can use this option to configure simple exact-match rules without needing to write regex patterns. Flywheel automatically migrates existing session templates to continue using regex matching, preserving previous behavior. As part of this change, regex matching for the session name now behaves consistently with the other template fields: it is case-insensitive and matches anywhere in the string, rather than being case-sensitive and anchored to the start of the string.

Session templates no longer support several undocumented configuration options that users could set only through the Software Development Kit (SDK) or application programming interface (API), and that the web interface never displayed. These options were present in the data model, but were never intended for production use. Removing them prevents confusing behavior where editing a session template in the web interface silently cleared settings the interface never showed to begin with.

Tasks Manager

Forms

Protocol administrators can now organize forms into sections to improve readability and comprehension for users completing tasks. Each section can have its own title and questions and can be expanded or collapsed while working on a form. Sections can also be configured to appear or remain hidden based on a user's answer to another question in the form.

Viewers

V3 Viewer
ETDRS grid

The standard Early Treatment Diabetic Retinopathy Study (ETDRS) grid is now available for images with the external-camera photography (XC) modality.

Performance improvements

This release brings some optimization to the service that streams images to the viewer, significantly reducing load times for image volumes with large numbers of slices. Flywheel plans further improvements to image loading performance in upcoming releases.

Usage Reporting

The Usage Report now displays the group ID for deleted groups, using the format group_id (deleted), in the dashboard month hover tooltip, the doughnut chart legend, and the group column of the report table. This change helps users identify which group a data point belongs to after the group has been deleted from the system.

Site Administration

Storage Permissions

Administrators can now configure Flywheel Core so it does not require delete permission on its primary storage bucket, provided hard deletion is disabled. This allows administrators managing self-hosted storage to apply stricter cloud storage access controls as a safeguard against accidental or unauthorized data deletion. Buckets used for temporary transfer during Bulk Import and Bulk Export continue to require delete permission, independent of this setting.

Gears and Compute

Flywheel strengthened security for job processing by removing the temporary file containing job secrets from disk immediately after it is used, reducing the risk of unauthorized access to sensitive credentials on shared systems.

FIXES

Data Transfer

  • When users uploaded an empty de-identification profile, the message No fields were specified. De-identification will be bypassed on this project. displayed regardless of the level at which the profile was uploaded. The sub-header now correctly reflects the level — project, group, or site — where the profile was uploaded.

Data Management

Sessions, Subjects, and Files
  • The Move Session to Project dialog closed unexpectedly when users changed the selected project. The dialog now remains open as expected during project selection.
  • The sessions list no longer loses its column sort order after a user deletes a subject or session. Previously, the sort order reset with each deletion, requiring users to manually re-sort the list.
  • When a project was locked, users could still open the create session or create subject dialog and encountered a confusing error message. The create session and create subject options are now disabled in the menu when a project is locked, and a tooltip explains why the actions are unavailable.
  • Fixed an issue where the date of birth selected for a subject could display incorrectly due to a time zone conversion problem in the date picker. The selected date now displays as entered.
Files and File Types
  • Flywheel did not recognize TypeScript files as source code when users uploaded or created them. Flywheel now correctly identifies TypeScript files as source code.
  • Tabular data files in .csv format with an empty first field, a valid structure used for correlation maps and similar gear outputs, failed to open in the Tabular Data viewer, although they displayed correctly when downloaded and opened locally. This issue has been fixed, and affected files now open correctly in the viewer.
  • Fixed an issue where the "Extracted Image Quality Metrics (IQMs)" section did not expand when viewing MRIQC quality assurance HTML reports in the in-browser viewer. Report viewing now loads correctly, so users no longer need to open the report information panel as a workaround.
Performance
  • Users with access to many projects experienced significant delays when loading lists of jobs, analyses, sessions, files, and other items. Flywheel resolved the underlying permission check that caused these delays, improving response times for affected list views.
  • Flywheel removed the Site data is being indexed. Search results may be unavailable or incomplete. message from search results. This message previously appeared during normal indexing activity, causing confusion about whether search results were complete. A separate message that appears when a site reindex is in progress remains unchanged.
Users and Permissions
  • The Admin Groups page displayed group management controls to users who did not have the necessary permissions to use them. The interface now hides these controls from users without appropriate access.
  • When an administrator reactivated a deactivated user account, Flywheel displayed an incorrect notification message. The notification message now correctly reflects the reactivation action.
Audit Trail
  • Downloading an audit trail report larger than 130 MB in the web application previously triggered an error instead of completing the download. This issue has been fixed.

Viewers

V3 Viewer
  • The viewer now prevents users from saving measurements or segmentations on images whose SOPInstanceUID or SeriesInstanceUID are longer than 64 characters, which is the DICOM standard. Previously, users were able to save measurements and segmentations but would not be able to load them back into the viewer.
  • Fixed an issue where undoing the deletion of an annotation sometimes restored it with a different color than the original.
  • Fixed an issue where undoing the deletion of an annotation previously restored it with the wrong label when the Map to Active Label setting was enabled.
  • Fixed an issue where the name and version of the measurement set were not correctly retrieved in the confirmation dialog, when deleting this measurement set from the Flywheel acquisition.
  • Fixed an issue where closing the error dialog shown when the ETDRS grid tool was used on an OP image without pixel spacing previously left the grid tool active and prevented the previously selected tool from being restored in the tool list.
  • Fixed an issue where the "Show output values" setting in a task did not carry over when switching between the form panel and the measurement panel, requiring users to reselect it each time they would switch back between panels.

Tasks Manager

  • Fixed an issue where task list icons did not correctly reflect the task type for tasks whose protocol had no workflow configured, in some cases showing an incorrect icon or no icon at all. Task list icons now consistently indicate the task type, such as read or adjudication, regardless of workflow configuration.
  • Fixed inconsistent text color in table columns, including the Due Date column, where values displayed in a different style than the rest of the table. Table text now uses the correct muted color consistently across all columns.
Task Forms
  • When completing an electronic-signature-enabled reader task whose validation rules used the JSON Logic substr operation, the task failed at the signing step with the error Unrecognized operation substr, even though the same validation passed in the browser. The server-side validation engine now supports the substr operation, so these tasks complete successfully.

Legacy tasks

  • Reader task forms containing a field configured to display formatted Hypertext Markup Language (HTML) content showed the literal text [object Object] instead of the intended text. The formatted content now displays as intended.

Gears and Compute

  • Jobs that require specialized compute instances could fail when the preferred instance type was unavailable in Amazon Web Services (AWS), even though other suitable instance types existed. Flywheel now automatically attempts additional instance types before reporting a failure, reducing unnecessary job failures caused by instance availability.
  • Sites with a very large backlog of pending jobs experienced delays in job processing, because the query used to check for available jobs could time out under high job volumes. Improved query performance now prevents job processing delays caused by large pending job backlogs.

New CLI (flyw)

  • Fixed an issue where the --yes flag on flyw gear install and flyw gear update was silently ignored, causing confirmation prompts to appear even in non-interactive environments such as continuous integration pipelines. Previously, the command exited successfully with 0 updated after every prompt failed with EOF when reading a line, making unattended gear updates impossible. The --yes flag now skips confirmation prompts as expected.

Jupyter Notebooks

  • Users could see the error ModuleNotFoundError: No module named 'tqdm' when running certain commands in a JupyterLab notebook. The notebook image now includes the tqdm package by default, resolving the error.

Data Views

  • When exporting session data through a data view, the session.timestamp field used a different timestamp format than session.created and session.modified, showing a space instead of a T separator and only second-level precision instead of milliseconds. Data Views now return session.timestamp in the same format as other timestamp fields.
  • Fixed an issue where the field name dropdown list did not display correctly when editing filters in Data Views.

Python SDK

  • Fixed an issue where the in_progress_timestamp field was not populated for V3 reader tasks retrieved through the SDK. The field now correctly records the time when a reader submits their first response to a task.