MRI:
Key 0029,1010 is the Siemens specific field that contains the ICE mini-headers with dimension information - and position in matrix 0029,1020 is deleted from the header, it is big, containing the whole protocol. They are now parsed into the csa header structure. The important part, the Siemens protocol ASCCONV part, is stored in the ascconv key, see read_text_hdr.
MRS:
In this case, 0029,1110 and 0029,1120 are the proprietary parts of the header.
Plugin-specific code to create the data structure, in patricular dimensions.
fill the data structure from individual DICOM images (slices, echoes, phases ...).
returns name of x .. z dimensions in scanner (or patient?) orientation.
What to do if two images with the same position in the stack arrive. Throws an error, atm. Should handle duplicate exports
provides support for PDL::Dims. Useful in combination with PDL::IO::Sereal to have a fully qualified data set.
This will fail for vNav navigator scans where the ascconv protocol is missing. It could be copied from the last setter.
returns the number, size and first slice of the current slice group.
plugin specific stuff to parse all the headers
Here happens the vendor/modallity specific stuff like parsing private fields. It is required to return a position vector in the series' piddle.
parses the 0029,XX10 or 20 fields containing Siemens CSA header information.
plugin specific stuff to read a DICOM file
parses the ASCCONV part of Siemens data header into the ascconv field of the piddle header. All special characters except [a-z0-9]i are converted to _ -- no quoting of hash keys required! You don't need to load this yourself.
This should handle setter/vNav, ascconv data is available from the target only, even though the series contains the navigator. Storing data from the last setter should be done somehow.
sets useful options for this modality.
alternative to split based on lProtID (matches raw data key). To activate, after running setup_dcm, point option id to \&sort_protid.
Do we want Nifti output? May be used by your plugin to apply additional steps, eg. more clumps, reorders, setting header fields ...
Serialize phase and t dimensions
To install PDL::IO::Dcm, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PDL::IO::Dcm
CPAN shell
perl -MCPAN -e shell install PDL::IO::Dcm
For more information on module installation, please visit the detailed CPAN module installation guide.