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
[dicom_archive] Dicom archive siteproject main (#9549)
This adds advanced site and project permissions to the dicom archive.
It is designed to be fully backwards compatible based on the
`useImagingSiteProjectPermissions` configuration setting. Here is how
the permissions are designed to work
- If useImagingSiteProjectPermissions is disabled (status-quo)
- A user with dicom_archive_allsites can see all the data (DEFAULT)
- A user with own sites can only see data at their own sites (can not
see data with no session ID)
- A user with own sites and nosessionid permission can see their site
data + dicoms not associated to a session
- A user can always see DICOMS of scans they uploaded
- If useImagingSiteProjectPermissions is enabled
- A user with all sites permissions can see all the data from all sites
as long as the projectID is defined and they are affiliated with that
project (null sessions WILL NOT SHOW)
- A user with own sites, same logic, only projects they are affiliated
with (NO NULL sessions)
- A user with either site permissions + nosessionID permission can see
respectively the same as above + DICOMS not affiliated to a sessions
- A user can always see DICOMS they have uploaded
TO BE NOTED: The core of this is the work done in the
`dicom_archive::getDataProvisionerWithFilters()` function. The code
there could have been made slightly more concise but I wrote it in that
way because I would like it to eventually become the DEFAULT
dataframework filtering logic since it accounts for most if not all
usecases (replacing the current UserSiteMatchOrHasAnyPermissions). It
defines flags that I would like to make standard going forward like
`dataSessionCanBeNull` where multiple module seem to lack a session
related to the resource.
INSERT INTO ConfigSettings (Name, Description, Visible, AllowMultiple, DataType, Parent, Label, OrderNumber) SELECT'tblScanTypes', 'Scan types from the mri_scan_type table that the project wants to see displayed in Imaging Browser table', 1, 1, 'scan_type', ID, 'Imaging Browser Tabulated Scan Types', 7FROM ConfigSettings WHERE Name="imaging_modules";
102
102
INSERT INTO ConfigSettings (Name, Description, Visible, AllowMultiple, DataType, Parent, Label, OrderNumber) SELECT'ImagingBrowserLinkedInstruments', 'Instruments that the users want to see linked from Imaging Browser', 1, 1, 'instrument', ID, 'Imaging Browser Links to Instruments', 8FROM ConfigSettings WHERE Name="imaging_modules";
0 commit comments