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

Differentiating between Raw/unprocessed scans and processed/derived scans #49

Closed
raamana opened this issue Jul 12, 2023 · 5 comments
Closed

Comments

@raamana
Copy link
Contributor

raamana commented Jul 12, 2023

we need a way to differentiate between raw (EPI) scans and processed data (Motion Corrected by Siemens)... another instance of raw vs. derived data is from ASL / perfusion weighted images also

@sinhaharsh
Copy link
Collaborator

Seems like ImageType Attribute can be used to differentiate between raw and derived data. Raw scans have the value ORIGINAL, and the Derived sequences have the value DERIVED.

For example,

Modality Image Type Attribute
AAHead_Scout_64ch-head-coil_MPR_cor ['DERIVED', 'PRIMARY', 'MPR', 'ND', 'NORM']
T2w_FLAIR ['ORIGINAL', 'PRIMARY', 'M', 'NORM', 'DIS2D']
asl_3d_MedAir ['ORIGINAL', 'PRIMARY', 'ASL', 'NONE', 'ND', 'NORM', 'MOSAIC']
Perfusion_Weighted ['DERIVED', 'PRIMARY', 'ASL', 'ND', 'NORM', 'SUB', 'TTEST', 'MOSAIC']
MoCoSeries ['ORIGINAL', 'PRIMARY', 'M', 'ND', 'NORM', 'MOCO', 'MOSAIC']

It is interesting how MocoSeries is not annotated as DERIVED. But we can use the string 'MOCO' to detect it.

Relevant Discussion: nipy/heudiconv#266

@raamana
Copy link
Contributor Author

raamana commented Jul 12, 2023

fantastic - great find. we can inject a filter for this.

We need to have a modular and easy way to maintain various list of filters, based on various attributes (dicom tags, file names etc) some to be ignored (directly at the MRdataset) and some to be not reported at the report level. Let's gather requirements (soft terminology) and make a plan for how to implement it first before delving into it.

also, we need to document it well, which reminds me, we need a new page in mrQA docs explaining how users should read our report. For the most part our HTML report is very self explanatory, but some users need a bit more with navigation into the different sections, and their interpretation etc, and a list of what is being ignored while generating the report for the sake of completeness

@neurolabusc
Copy link

Be warned Siemens enhanced DICOMs only use specification defined values in the ImageType field (0008,0008). Therefore, I would expect terms like MOCO would appear in the ImageTypeText field (0021,1175). For this reason, data from a Siemens XA scanner will vary the verbosity of 0008,0008 when exporting to classic versus enhanced DICOM.

For examples, see XA30 classic and enhanced images.

I think derived is in the eye of the beholder for reconstructed MR data.

@raamana
Copy link
Contributor Author

raamana commented Jul 13, 2023

thanks for the warnings and details Chris, appreciate it, although we didn't need even more complexity to worry about :).

is the Enhanced DICOM the only format available from the XA30 versions going forward? what libraries do you recommend for reading Enhanced DICOMs? I hope the pydicom or dcmstack or one of your libraries does the job for us, so we can focus on mrQA :)

@sinhaharsh
Copy link
Collaborator

We are using ImageType Attribute to detect Moco series and derived sequences in dicom_utils

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants