Skip to content
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

Master volume selector is editable after loading from SR #194

Open
fedorov opened this issue Aug 30, 2017 · 7 comments
Open

Master volume selector is editable after loading from SR #194

fedorov opened this issue Aug 30, 2017 · 7 comments
Assignees
Labels

Comments

@fedorov
Copy link
Member

fedorov commented Aug 30, 2017

image

@che85
Copy link
Member

che85 commented Sep 18, 2017

referenceImageGeometryRef is not set properly when loading from DICOM. Will look into that.

@che85
Copy link
Member

che85 commented Sep 25, 2017

@fedorov When loading a segmentation into Slicer the user is required to select referenced series (if available) that will be loaded next to the segmentation into Slicer.

Assuming that both of the following series get loaded into Slicer, how would we know which one to set as the referenceImageGeometryRef?

image

One issue is, that both series PET WB_0 and the ... SUVbw have the same UID when looking at the subject hierarchy. That means that technically both could be the master volume which makes it even harder to decide which one is the most important one.

image

and

image

How do you want to handle this situation?

@fedorov
Copy link
Member Author

fedorov commented Sep 25, 2017

The attributes UID/DICOM* are initialized by SubjectHierarchy somehow.

Instead, we should use the attributes initialized by the DICOM plugins: https://github.com/QIICR/Slicer-PETDICOMExtension/blob/master/DICOMRWVMPlugin/DICOMRWVMPlugin.py#L280. This can be used to differentiate between the original PET volume, and the SUV-corrected PET volume, and prefer the SUV-corrected one as "the more important".

@cpinter
Copy link
Collaborator

cpinter commented Sep 25, 2017

Subject hierarchy itself knows nothing about DICOM tags of course, all tags are initialized by the DICOM plugins.

@fedorov
Copy link
Member Author

fedorov commented Sep 25, 2017

@cpinter does Subject hierarchy expect/rely on the presence of any DICOM tags in any specific attributes?

@cpinter
Copy link
Collaborator

cpinter commented Sep 25, 2017

To the best of my knowledge it doesn't rely on node attributes when it comes to DICOM tags, but it relies on SH item tags for certain things. These SH item attributes are populated by the DICOM import mechanism by calling this function
https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMLib/DICOMPlugin.py#L164
where basic tags are cached in the SH item attributes without any changes (see list of tags at the top of this function). SH does rely on these SH item tags (but not the ones in the data nodes) for DICOM export, and for parsing the DICOM references (if a series references another - as indicated in the loadable and then in the tag called GetDICOMReferencedInstanceUIDsAttributeName - then the referenced series are highlighted in the SH views on selection). But as the values of the tags are copied raw, and is straightforward which DICOM tag they came from I don't see any harm there.

Christian's question is completely valid though, and was something I raised myself at some point as well. I think only one of the loadables that refer to the same series should be checked when offering the references, and that should be the one with the highest confidence (which is usually the most specialized plugin that identifies a series as something it can load)

che85 added a commit to che85/Reporting that referenced this issue Oct 2, 2017
- referenced master volume is set properly only if SEG will be loaded
  after referenced volumes has been loaded. This is not always the case
  though! In some cases scalar volume is loaded, then SEG and in the end
  the PET SUV, which causes the SEG to set the wrong master volume as
  master volume
- using Subject Hierarchy for achieving querying for the referenced
  volume
- adding references from ReferencedImageSequence besides
  ReferencedSeriesSequence
@fedorov
Copy link
Member Author

fedorov commented Oct 10, 2017

Assuming that both of the following series get loaded into Slicer, how would we know which one to set as the referenceImageGeometryRef?

As discussed today with @che85, here's the proposal how to deal with this:

  • when loading an SR that references PET and SUV, load only the SUV corrected volume
  • when loading SEG referencing PET and SUV, make two loadables, one for SEG+SUV, one for SEG+PET; make SEG+SUV selected by default, and SEG+PET not selected, but that could be changed by the used in the Advanced mode

che85 added a commit to che85/Reporting that referenced this issue Oct 16, 2017
- referenced master volume is set properly only if SEG will be loaded
  after referenced volumes has been loaded. This is not always the case
  though! In some cases scalar volume is loaded, then SEG and in the end
  the PET SUV, which causes the SEG to set the wrong master volume as
  master volume
- using Subject Hierarchy for achieving querying for the referenced
  volume
- adding references from ReferencedImageSequence besides
  ReferencedSeriesSequence
@che85 che85 added this to the NAMIC-Winter2018 milestone Jan 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants