sub clump_data { # do nothing here @_; }
Specific handling of Simenes MRI data
MRI:
Key 0029,1010 is the Siemens specific field that contains the ICE mini-headers with dimension information - and position in matrix 0029,1120 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.
FUNCTIONS
create_data
Plugin-specific code to create the data structure, in patricular dimensions.
fill_data
fill the data structure from individual DICOM images (slices, echoes, phases ...).
getx, gety, getz
returns name of x .. z dimensions in scanner (or patient?) orientation.
handle_duplicates
What to do if two images with the same position in the stack arrive. Throws an error, atm. Should handle duplicate exports
init_dims
provides support for PDL::Dims. Useful in combination with PDL::IO::Sereal to have a fully qualified data set.
map_slicegroup
returns the number, size and first slice of the current slice group.
parser
plugin specific stuff to parse all the headers
populate_header
Here happens the vendor/modallity specific stuff like parsing private fields. It is required to return a position vector in the series' piddle.
read_dcm
plugin specific stuff to read a DICOM file
setup_dcm
sets useful options for this modality.
sort_protid
alternative to split based on lProtID (matches raw data key). To activate, after running setup_dcm, point option id to \&sort_protid.
Specific options
- Nifti
-
Do we want Nifti output? May be used by your plugin to apply additional steps, eg. more clumps, reorders, setting header fields ...
- c_phase_t
-
Serialize phase and t dimensions