Flywheel Core 22.4
22.4.0
FEATURES
Tasks Manager
Duplicate a Published Form
Form authors can now duplicate an existing published form to create a new, independent form. Duplicating a form copies its schema into a new form with its own identity and starting version, so users can quickly create a similar form without building one from scratch. The new form can be customized before publishing, and edits to it do not affect the original form.
Viewers
V3 Viewer
Viewport Orientation
Users can now select the orientation (Axial, Coronal, Sagittal, or Acquisition) for each viewport in both standard and advanced layouts when viewing reconstructible image datasets. For oblique orientations (e.g. MR images) users can also choose between the World and Image coordinate systems; the Acquisition orientation is fixed to the Image coordinate system. This flexibility helps users view three-dimensional images from the perspective most useful for their analysis.
Data Transfer
Bulk Export
Bulk Export now supports exporting analysis outputs and classification metadata, such as quality ratings and tags, in addition to the original acquisition and session data. Users can opt in to this behavior when configuring an export rule, and can filter which analyses to include in an export. When enabled, analysis output files are exported into an ANALYSES folder organized by analysis label, with separate INPUTS and OUTPUTS subfolders. Exported analyses retain their associated metadata, including gear name, version, inputs, and parameters. This allows customers to include processed or derived data when exporting a project for collaboration, publication, or archival. Exporting analysis results previously required the fw sync command in the Legacy CLI (fw), so this closes the last remaining feature gap between Bulk Export and the Legacy CLI (fw).
Data Management
Analyses Conflict Dialog on File Delete
Flywheel now displays a confirmation dialog when a user deletes a file that is used by one or more analyses, listing the analyses that will also be removed. Previously, this confirmation appeared only when deleting an entire acquisition. This change gives users clear visibility into the impact of a file deletion before they confirm it.
Site Administration
Restricted Support Link
Flywheel now supports restricting the in-product support link to site administrators only, hiding it from all other users on a site-by-site basis. Organizations that provide their own first-line support can request this configuration to prevent non-admin users from seeing the built-in Flywheel support link in the top navigation help menu and on the user profile page. Site administrators continue to see the support link as before. By default, the support link remains visible to all users; Flywheel staff enable the restriction for a specific site upon request. Sites that adopt this configuration are encouraged to publish their own front-line support resources as Site Bookmarks, which users reach from the bookmarks menu in the top navigation bar, so that users retain a clear path to support.
AI Chat Assistant
The AI Chat Assistant is now enabled by default, so users can access it without a site administrator having to turn it on.
FIXES
Data Transfer
Bulk Export
- When a user ran an export test to a local computer destination, the test incorrectly displayed a
Files Unavailableerror statingThe test was unable to return any files, even though running the actual export with the same filters transferred files successfully. This issue has been fixed so the export test no longer attempts to download files during a local destination test run. - Exports could fail with a Transport Layer Security (TLS) certificate verification error, shown as
SSL: CERTIFICATE_VERIFY_FAILED, when the snapshot service returned an external Uniform Resource Locator (URL) redirect in environments using a private certificate authority. The connector no longer follows this external redirect and now uses the internal snapshot URL, resolving the certificate verification failure.
Bulk Import
- When a Bulk Import rule set defined a custom
conflict_strategyvalue, such asupdateorskip, saving the import failed with a422error because the interface always sentreviewinstead of the configured value. Bulk Import now uses theconflict_strategyvalue defined in the rule set, so imports configured with a custom strategy save successfully. - Fixed an issue where the Import Conflicts page displayed an incorrect count of pages or conflicting items, making it difficult for users to gauge how much of the import remained to review.
- When a project had no prior imports, the first running Bulk Import did not appear in the import list until users reloaded the page. Flywheel now displays the import immediately, so users can monitor its progress without reloading the page.
Case Uploader
- Fixed an issue where the Case Uploader failed to upload large DICOM datasets, including files 3 GB and larger.
- Canceling an upload during the upload phase of the Case Uploader previously triggered unfriendly error pop-ups. The Case Uploader no longer displays these error messages when a user cancels an upload.
- Fixed an issue where the Case Uploader progress bar did not display the percentage complete during uploads, leaving users unable to track upload progress until completion.
- Fixed a display issue in Case Uploader where the file size column in the Prepared Files list could overlap or become unreadable when file names were long. The file size column now displays correctly for files with long names.
Legacy CLI (fw)
- Fixed an issue where the Legacy CLI (
fw) and the ingest service failed to validate TLS certificates when connecting to a site configured with a customer-supplied private certificate authority (CA), resulting in login and upload failures with errors such ascertificate verify failed: self-signed certificate in certificate chain. - Copying a Flywheel project between environments that use self-signed TLS certificates failed with an
SSLCertVerificationErrorerror, because the ingest service could not validate a customer-supplied certificate authority (CA). The ingest service now accepts custom CA certificates, allowing data transfers to complete in environments that use self-signed certificates.
Data Management
Search
- Filtering analyses by label on Basic Search previously failed for labels containing special characters such as
+. Label filtering now works correctly regardless of the characters included in the label value. - In Search Results, the file actions panel disappeared when a user hovered over a file, preventing access to file actions. This release fixes the issue so file actions remain accessible in Search Results.
- Fixed an issue where viewing a user's assigned projects from the Admin Users page could take several minutes to load or cause the browser to freeze. The issue could also trigger the
Data explorer is in an error state. Search results may be unavailable or incomplete.message on the main search page and cause site administrators to see inconsistent subject and session counts for the same data.
Projects and Groups
- Fixed an issue on sites configured with multiple storage providers where the dropdown menus on the Groups tab did not load, preventing users from creating new groups. Dropdown menus on other tabs were not affected.
- Fixed an issue on sites configured with a single storage provider where the Create New Project button was missing from the Projects tab on the group page.
- Previously, after creating a new group, users had to refresh the page before the group appeared in the list when creating a project from that group. Groups now appear immediately in the list, without requiring a refresh.
- On the project list page, user avatars for projects with multiple assigned users flickered continuously when the browser zoom level was set to anything other than the default. This visual distraction has been resolved.
- Fixed an issue where the Recently Accessed list did not update after a user's project permissions changed. Users previously continued to see projects in the list after losing access to them, or did not see newly accessible projects until the list was reloaded.
Smart Copy
- Fixed an issue causing Smart Copy operations to fail on sites using customer privately signed certificates.
- When a Smart Copy request fails because of an invalid or unsupported field, the form now displays the specific reason for the failure in the
Project Copy Failedmessage, instead of only a generic error notification. Users can see exactly what caused the failure and adjust their copy configuration accordingly. - Smart Copy filters previously allowed the
subject.mlsetandsubject.sexfields to use numeric comparison operators (<,<=,>,>=) in both include and exclude filters, even though these are text fields. The interface now correctly limits these fields to equality-based operators, consistent with other text fields such asacquisition.label. - After using Smart Copy to copy sessions into a destination project, users could not immediately delete or move those sessions. The destination project required a manual page refresh before delete or move actions became available.
Sessions, Subjects, and Files
- Some sessions containing notes with no associated user failed to load, displaying a
Session not founderror. This has been fixed so the sessions load correctly. - Loading session information could take significantly longer than expected, and the browser could become unresponsive, in sessions containing many acquisitions with annotated files. Flywheel now retrieves file annotations at the acquisition level instead of individually for each file, reducing load times when viewing session information.
- File names in the session data view previously flickered continuously, and clicking a file name only temporarily stopped the flickering until the user navigated away and back. This issue is now fixed.
- When moving a session to a different project, the subject name shown in the conflict pop-up window was truncated. The pop-up window now displays the full subject name.
- Subject labels created through import with a single character previously caused the interface to display the error
Entry must be at least 2 characters in length.when a user tried to edit that subject, preventing the edit from being saved. Label validation is now consistent between import and the interface, so subjects created through import are no longer blocked from being edited due to this mismatch.
Delete Workflow
- When deleting an acquisition that contains files used as inputs to existing analyses, the confirmation dialog previously mislabeled the listed dependencies as "Files" in its introductory text, column header, and button, even though the table itself correctly showed analyses. The dialog now consistently labels these dependencies as analyses.
- In an acquisition, clicking the analysis label in a dependent analysis error dialog previously did not navigate the user to the referenced analysis. This issue is now fixed, and clicking the label takes the user directly to the related analysis.
Notes and Annotations
- Previously, the notes interface displayed a delete option for other users' notes, even on containers where only site administrators were permitted to delete them. Flywheel updated the interface to hide the delete option when the user lacked permission to remove the note, aligning the interface with existing access controls.
- Fixed an issue where the annotation version history dialog could extend beyond the visible screen area, placing its action buttons out of reach. The dialog is now constrained to a maximum height so its buttons remain visible and usable.
Access Logging and Audit Trail
- When an administrator soft deletes a user, Access Logging now records the change completely. Flywheel adds a
user_deleteentry for the deletion itself and amodify_permissionentry for each project from which the user is automatically removed. Previously, these role changes were not captured, leaving a gap in audit records for deleted users. - Access logs now accurately record user creation. Creating a new user generates a
user_enabledentry, and creating a user in a disabled state generates auser_disabledentry instead. - In the audit trail report, the field previously labeled
LDAP Userhas been renamed toLDAP Sync ID. The updated label more accurately reflects that the field displays the identifier used to synchronize the account with the Lightweight Directory Access Protocol (LDAP) directory service.
Users and Permissions
- Fixed an issue on the Roles page where the
You have unsaved changesnotification appeared even though no permission changes had been made. Users no longer see this unnecessary prompt when navigating away without editing permissions. - Fixed an issue on the Profile page where the multi-factor authentication (MFA) activated badge appeared clickable like a button but performed no action when selected. The badge no longer behaves as an interactive button.
- When a user entered an invalid MFA verification code, the error notification appeared without any description of the error, leaving users without an explanation of what went wrong. The notification now describes the error.
General Interface
- Fixed an issue where clicking the profile menu could freeze the browser tab for several minutes. The freeze occurred on a user's first visit in a new browser profile or an incognito window, where the browser had no stored site data.
Usage Reporting
- In Usage Reporting, nested dropdown menus did not close as expected, leaving outdated menu options visible on the screen after a selection was made or after the user clicked elsewhere. These menus now close correctly.
AI Chat Assistant
- Fixed an issue where the embedded AI chat assistant displayed a loading error on a user's first visit to a page. The assistant now loads correctly on first page load.
Gears and Compute
- Flywheel improved the performance of the Gear Rules list, which previously froze and consumed excessive CPU when rendering large numbers of rules because every rule and its associated fields loaded simultaneously. Gear rule templates and project gear rules now load and scroll more smoothly, even with large lists.
- In Microsoft Azure, gear and analysis jobs previously failed if the requested virtual machine (VM) type was unavailable in the default availability zone, with no option to retry in another zone. Flywheel now automatically retries VM provisioning across other availability zones when the requested VM type is unavailable in the default zone.
- Fixed an issue that prevented some gear jobs from starting because of the way environment variables were formatted. Gear jobs now start successfully across all supported container runtimes.
- Uploading a custom gear could fail with a
500error when the container registry ran on Microsoft Azure, because the registry did not always apply the default credential type for that provider. The default credential type is now applied consistently for Azure-hosted registries, resolving the upload failures. - Fixed a configuration issue that prevented the gear image registry from starting on Flywheel-hosted Microsoft Azure deployments that authenticate to storage with a shared access key rather than workload identity.
- The
gear install,gear update, andgear uploadCLI commands could fail with aCERTIFICATE_VERIFY_FAILEDerror when connecting to the gear exchange service, even when the CLI was configured to skip certificate verification. This issue is fixed, and these commands now use the CLI's configured certificate settings when communicating with the gear exchange service. - Fixed a regression in Gears Manage Access where removing a project from the access list prevented it from being re-selected in the project dropdown.
- Previously, clicking outside the boundaries of the Run Gear modal closed the modal and discarded any configuration entered. The Run Gear modal now stays open when a user clicks outside it, preventing accidental loss of in-progress gear configuration.
- Flywheel now displays Project, Subject, Session, and Acquisition details in the Job Information popup even when the associated project has been deleted. Previously, this information was missing for such jobs.
Tasks Manager
- Fixed an issue where an unassigned adjudication task remained visible in a user's task list after being returned to a staffing pool. An unassigned task now disappears from a user's task list when that user does not belong to the staffing pool the task returns to.
- Fixed an issue in which the "No Adjudication Needed" button remained disabled for administrators with project-level Admin permissions but site-level User permissions when opening an unassigned adjudication task.
- When signing an adjudication task, Flywheel now automatically selects the signature reason if the protocol defines only one reason option, removing an unnecessary manual selection step for signers.
- Fixed an issue in reader tasks with adjudication where the header row scrolled out of view when scrolling through the table. The header row now stays fixed at the top of the table, keeping row and column labels visible while scrolling.
- Fixed an issue where the project name and container name disappeared from a task's row in the task list after updating and closing the task card. The task list now automatically refreshes when a task is updated, ensuring this information remains visible without a manual page refresh.
- Locked projects previously appeared as selectable options in the project selector within the Task Creation dialog, which could lead to a confusing error when selected. Locked projects now display a lock icon and appear disabled, preventing users from selecting them.
- Fixed an issue where the Delete Staffing Pool confirmation dialog displayed an incorrect task count of zero instead of the actual number of tasks that would be deleted. The issue occurred because the backend returned an
Unexpected error during deserializationerror when retrieving tasks for Staffing Pools with a large number of assigned tasks. - Fixed an issue that prevented a protocol from being published when it contained certain forms.
- Tooltips in the protocol publishing table now show additional context instead of repeating text already visible in the row. Hovering over version, timestamp, and user cells reveals who performed an action and when, helping users understand the history of published, draft, or archived protocols without needing to open them.
- Task dialogs now display with a consistent size and padding across the platform, providing a uniform appearance as users open, close, and move between tasks.
- The Tasks table previously displayed an icon next to the Project, Subject, Session, and Acquisition columns, adding visual clutter. These icons have been removed from all four columns, giving the table a cleaner, easier-to-read layout.
- Reduced the size of user avatar icons in the Tasks table so they no longer dominate the table view. This adjustment improves visual balance and makes task information easier to scan.
- Corrected the font size of linked task labels so it matches the intended design specification, improving typography consistency in the Adjudication and Protocols interface.
Task Forms
- Fixed an issue where entering
0in an integer or float form field prevented readers from submitting the form, returning asomething went wrongmessage. Forms now accept a value of zero in these fields.
Legacy tasks
- Fixed an issue where the
required.specificsetting in a reader task protocol'sbSlicesconfiguration did not block task submission when designated fields on specified slices were left unanswered, despite the affected slices being highlighted in red. The setting now blocks submission until the designated fields are answered. - Fixed an issue where including a text field in a reader task protocol's
bSlices.required.allorbSlices.required.anyconfiguration caused task submission to fail silently, with no response or error message displayed when selecting Submit. Text fields listed in these settings are now validated correctly.
Viewers
V3 Viewer
- Fixed an issue where the Viewer previously failed to load DICOM Segmentation (SEG) files that were missing the
DerivationImageSequence (0008,9124)tag in thePerFrameFunctionalGroupsSequence (5200,9230)sequence. - Improved loading times of DICOM SEG files with a large number of regions of interest (ROI).
- Fixed an issue where the Viewer did not render Siemens mosaic DICOM images with non-square tile dimensions correctly, such as certain 4D functional MRI (fMRI) datasets.
- Fixed an issue in the Viewer where thumbnails could show a mismatched display set relative to the active viewport in multiple scenarios.
- Renaming an annotation label no longer changes the color of the annotation arrow and text.
- Fixed an issue where annotation color did not update immediately when a user added a label to an annotation. Annotation color now updates immediately when a label is added.
- Fixed an issue in the DICOM viewer where a measurement label remained collapsed after new measurements were created, hiding the newly created measurements from view.
- The measurement toolbar in the viewer became compressed when the measurement panel was resized to its minimum width, causing tool icons to overlap. The toolbar now maintains a minimum width so measurement tools stay clearly visible regardless of panel size.
- In the Viewer, tooltips for measurement action icons sometimes remained visible after the cursor moved away from the icon. Tooltips now disappear correctly when the cursor moves off the icon.
ETDRS Grid
- Fixed the hover behavior for the ETDRS (Early Treatment Diabetic Retinopathy Study) grid overlay on Color Fundus and Fluorescein Angiography images. The grid now highlights only when users hover over its center, and hovering over the rotation handles highlights only those handles instead of the entire grid.
- When using the ETDRS Grid tool in the DICOM viewer, clicking a grid measurement in the measurement panel to jump to its slice sometimes navigated to the wrong slice, occurring when the grid was previewed on one slice before being placed on a different slice. Clicking the measurement now correctly navigates to the slice where the grid was placed.
BrainBrowser
- Routine updates to viewer dependencies. See the BrainBrowser documentation for updated installation instructions.
Montage Viewer
- Routine updates to viewer dependencies. See the Montage Viewer documentation for updated installation instructions.
Form Builder and Viewer
- Routine updates to viewer dependencies. See the Form Builder and Viewer documentation for updated installation instructions.
Data Views
- Fixed an issue where Data Views returned no results when a column configuration referenced two related fields together, even though each field returned results correctly when queried on its own.
- Data Views filters did not display the Subject ML (Machine Learning) Set option due to a case-sensitivity mismatch that occurred when the filter selection was submitted from the interface. This issue is now fixed, and the Subject ML Set option appears correctly in Data Views filters.
- Clicking the "Group by this column" checkbox in Data Views previously produced no response, requiring users to click the label text instead to group columns. This issue has been resolved.
Python SDK
- Fixed an issue where using the Software Development Kit (SDK) method
find()to look up an acquisition by its ID could cause the request to loop indefinitely and never complete. - Instantiating the
Flywheelclass no longer requires settingminimum_supported_major_versionto get compatibility checking against supported Flywheel server versions. The Flywheel Python SDK now defaults this setting to 11 instead of 0, so the check applies automatically.