-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mri_violations] Convert module to React and update UI #7473
Conversation
@driusan Failing tests |
Discussed at the imaging meeting of June 11th, 2021:
Thank you :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@driusan Thank you for reactifying the module! :-)
I did an initial round of testing and found the following:
- The resolution status drop down gets truncated on smaller windows:
- the data table behaviour when shrinking laterally the window behaves differently in the two different tabs.
- the filter called "Minc File" and column name should probably be renamed "Image File" (or at minimum, MINC should be spelled all upper case)
- for the time run filter, I notice you cannot filter for year/month: if you type in 2019-11, it does not restrict the list to all scans run in Nov 2019 for example. Do you know if this is feasible with the date picker? Not a huge deal but I could see this being handy :-)
- I find confusion the term Violations for 'Could not identify scan type' pop up
- I would tend to rearrange the content of the 'Could not identify scan type' pop up window as follows:
- For the Protocol Violation pop up, I would modify the title to contain the image name instead of the seriesUID. It might also be good to have a raw like for the "Could not identify scan type" pop up with the CandID, PSCID, visit, seriesUID etc... information
Let me know if something isn't clear in my fuzzy explanations ;). Thank you!
Does the non-reactified version work that way? I didn't do anything special with the column sizes, so I'm not sure what I should do about this.
The DynamicTable jQuery plugin doesn't work with multiple tables on a page, which is why I had to disable it in the popup windows and it seems that the two tabs also have this problem since it's a single page react app now. I'm not sure what to do about this.
Okay, that should be a small change.
I think the components just use a
Okay, I can change it. I think I just started by basing the popup on the other popup when I was writing it and didn't update the title.
Okay.
I can add SeriesUID but echo time is already in the protocol table?
I don't think I understand this part. |
@driusan any movement on this ? |
ace8958
to
96e090b
Compare
32f2503
to
09151b8
Compare
@cmadjar I think I addressed all your comments and its passing tests now.. can you re-review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@driusan thank you for rebasing the branch and implemented the changes requested. Having used this module a lot lately, I appreciate that this module is so much more reactive!! :-)
I noticed the following bugs when going through the testing plan:
-
in the "Resolved" tab:
- the problem column is not a clickable link that would open a pop with details about the violation. Works well in the "Not Resolved" tab.
- when filter for SeriesDescription = 'ep2d_diff 25dir av1-updated_FA' (which corresponds to one of the file listed in the table), there is no results shown (data from RB) Looks like filter works for 'ep2d_diff ' but when I add the '2' after the space, the filter do not show anything. Not sure why. Hopefully this will help figure out what the bug is.
-
in the "Could not identify scan type" pop up:
- should add the following fields:
PhaseEncodingDirection
,ImageType
andEchoNumber
(those columns were added in 24.1, see Add phase encoding direction and echo number to mri protocol and mri protocol violated scans #8150) - fields to be added to scan parameter list and list of protocols' table. - in the list of protocol table, slice thickness range is wrongly labelled
slice_thickness_max
- should add the following fields:
-
in the "Protocol Violation" pop up:
- all good :-)
-
Permissions:
- when user only belong to one site, the user can still see the full list of sites in the Site drop down menu filter (in Resolved and Not Resolved tabs)
- when user only belong to one project, the user can still see the full list of projects in the Project drop down menu filter (in Resolved and Not Resolved tabs)
-
Help text
-
MincFile
string in help text needs to be replaced byImage File
-
-
Dashboard
- in the dashboard, the number of violations listed do not match the number of rows in the MRI violation module (if user belongs to site Ottawa and project Pumpernickle, the dashboard displays 168 violations to resolve but there are 169 rows displayed in the violation module)
-
violation resolving feature: I find it not super user friendly, maybe because I am used to the save button... I am starting to wonder whether we need to tabs for this module. Couldn't it be only one page with two columns: one with the resolution status displayed and one where the user can change the resolution status. Does not need to be on that PR but just wanted to see your thoughts on that workflow. Would also allow users to change the resolution status. Let's say a resolution status is "Emailed site", eventually this would need to be changed and there is no way to do that on the frontend. I can create an issue for that but I am curious about your thoughts on this first.
I traced through this and the Series Description is actually
Isn't this usually the case in the rest of LORIS too? |
Created issue #8385 for the whitespace thing since it's related to the data table and not the MRI violations module. |
One was only filtering for user center match and the other only for user project match. They should both do both now (and therefore match.. ) |
@cmadjar Links should be clickable on resolved tab now. I think this is in your court again. |
@driusan see below for the weird display of the main table when the width of the browser gets smaller. Noticed that out of luck. Another little thing because I am a little neurotic... In the top table for the could not identify scan type, every header has the first letter of the words capitalized but in the Default MRI protocol group table, xspace, yspace, zspace, xstep, ystep, zstep, time range headers do not have the first letter of their words capitalized. Any chance it could be harmonized? Thanks! |
@driusan I just realized an important feature is missing from the MRI violation module that used to be there. Sorry for the multiple messages... The image file link used to be clickable and that opened the image in brainbrowser. Any reason why this feature does not exist anymore? |
Looks like the link disappeared because the column was renamed from Minc File to Image File and the formatter wasn't updated.. should be fixed now. I also fixed the header capitalization. I'm not sure what I can do about the overflowing table. That's usually handled by DynamicTable adding the overflow bars, but DynamicTable doesn't work if there's more than 1 table on the page. It had to be removed since there are multiple tables (one on each tab) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍 Thank you!!
…dule (#8392) The links to BrainBrowser from the MRI violations module were not working for two reasons: - queried the wrong table name for the protocol violations (mri_violations_log should have been used instead of mri_violation_log) - the FileDownloadHandler class was using the basename of the file instead of the relative path which resulted in BrainBrowser not finding the file on the file system. These bugs were found when testing #7473 but have been present since 24.0.
…dule (aces#8392) The links to BrainBrowser from the MRI violations module were not working for two reasons: - queried the wrong table name for the protocol violations (mri_violations_log should have been used instead of mri_violation_log) - the FileDownloadHandler class was using the basename of the file instead of the relative path which resulted in BrainBrowser not finding the file on the file system. These bugs were found when testing aces#7473 but have been present since 24.0.
Fixes a regression introduced by #7473. https://github.com/aces/Loris/pull/7473/files#diff-a2dad6817e8e695e9b53e19bc1bd4195daae329095623a068992de999568828fR555 Notice that the PSCID value is hidden and the columns shifted to the left.
This converts the MRI Violations module to React. While doing so, is simplifies the subpages. They are no longer menu filters, but modal popup windows that display all details of errors for a scan when the link is clicked. All violations for the SeriesUID are shown to provide context. The maintenance should also be simplified by having converted most types of queries to DataProvisioners, which makes it easier to see the query and copy/paste into SQL. This should also result in more consistency with how CenterID/ProjectID matches are handled with the rest of LORIS.
Fixes #7470
Fixes #5714 (the pages no longer exist)
Fixes #6576 (there is only one page with filters now)
Fixes #6839 (the pages no longer exist, so don't have tabs..)