ismrmrd / ge_to_ismrmrd

GE to ISMRMRD converter
Other
7 stars 10 forks source link

Assigning FOV from header part returned by Orchestra SDK #7

Closed roshtha closed 5 years ago

roshtha commented 5 years ago

Hi,

I convert GE .7 files to ISMRMRD format. For that, I use OrchestraSDK (Matlab) for reading GE files. Then I used header information and data matrix in matlab from Orchestra for creating corresponding ISMRMRD files. I have a question on the FOV field. I could see one header field named fov under RawHeader which I use to fill the ISMRMRD fields

encoding.encodedSpace.fieldOfView_mm.x
encoding.encodedSpace.fieldOfView_mm.y 
encoding.reconSpace.fieldOfView_mm.x
encoding.reconSpace.fieldOfView_mm.y 

Is this correct? or are there separate values from GE header that I can use for ISMRMRM?

Thanks all!

roopchansinghv commented 5 years ago

If you take a look at the "translator" stylesheet (which takes the values read from Orchestra) and converts those to values used for ISMRMRD, and that style sheet can be found here:

https://github.com/ismrmrd/ge_to_ismrmrd/blob/master/src/config/default.xsl

lines 118-121 show how we compute the encodedSpace FOV, and lines 138-141 show how we compute the reconSpace FOV.

You did not specify which raw header parameter you are using to do your own filling, so I am not sure.

For reconstruction, the FOV is not so critical to immediately get right. It becomes much more critical when you get close to generating your final images, so you know where you are in space. However, for most reconstruction algorithms you don't actually need to know FOV, with geometric distortion correction being the notable exception to the rule here, I think.

Please let us know what your eventual solution ends up being.

roshtha commented 5 years ago

Hi,

I was not aware of the "translator" stylesheet. Thanks for that.

I use GE data of RDBM version 27. The header has a structure like this
Untitled

I could not find a field with label TransformXRes (which the lines from 118-121 uses for computing FOV) in any of these structures. Also I could not find many fields of the stylesheet in the header of my GE file.

Currently, I use RawHeader.fov for filling both "encodedSpace" and "reconSpace" FOVs.

Which RDBM version is supported by the "translator" stylesheet?

AllHeaderFields.txt

Thanks.

roopchansinghv commented 5 years ago

The converter currently supports up to Orchestra 1.7.1, so should support up to header version 27.

The approach taken with this converter is not to use the raw data headers directly. We are currently trying to use Orchestra's API calls and the associated objects to extract the necessary values. This is why there is no TransformXRes variable - this is a value extracted from one of Orchestra's API calls, not a header member variable.

Please take a look at the ge_header_to_xml function at the end of the src file:

https://github.com/ismrmrd/ge_to_ismrmrd/blob/master/src/GERawConverter.cpp

to get an idea of what values are currently extracted and available from this converter.