Skip to main content

Extract metadata of input file to Flywheel.

Project description

File metadata importer

Flywheel gear for importing metadata header of file to Flywheel. Metadata is stored under file.info.header. Currently, supporting the following file types:

  • DICOM and DICOM Zip Archive
  • PTD (Siemens PT format)
  • NIfTI
  • ParaVision (Bruker format)
  • PAR/REC (Philips format)
  • EEG (BrainVision, EDF, BDF, EEGLAB)

Usage

Inputs

  • input-file: The input file.

Configuration

  • debug (boolean, default: False): Include debug statements in log.
  • siemens CSA (boolean, default: False): If True, extracts Siemens CSA header for Dicom.
  • derived metadata (boolean, default: True): If True, derives additional metadata from the file header and stores them under file.info.header.derived.
  • tag (string, default: file-metadata-importer): The tag to be added on input file upon run completion.

file.info.header structure

DICOM

Dicom header will be stored under file.info.header.dicom. Additionally, if:

  • input-file is an archive (e.g dicom.zip), then file.info.header.dicom_array will be populated.
  • Siemens CSA is enabled, then file.info.header.csa will be populated if found.

Bruker ParaVision

ParaVision metadata will be stored under file.info.header.paravision

Siemens PTD

The raw PTD preamble will be stored under file.info.header.ptd

Details

DICOM

By default, the following tags are not extracted:

  • All private tags
  • PixelData
  • Pixel Data
  • ContourData
  • EncryptedAttributesSequence
  • OriginalAttributesSequence
  • SpectroscopyData

By default, for zip archive or multiframe the following tags are extracted and stored in file.info.header.dicom_array:

  • AcquisitionNumber
  • AcquisitionTime
  • EchoTime
  • ImageOrientationPatient
  • ImagePositionPatient
  • ImageType
  • InstanceNumber
  • SliceLocation
  • PhaseCount
  • PhaseIndexes

Extracting additional tags

Additional tags can be extracted and indexed by ammending the list above.

To add or remove to that list, specific key/value must be set on the project custom information (project.info) like below:

context: 
   header:
      dicom:
         <DICOM-tag>: True

Key: value should take the form of Tag: bool where Tag can either be a Dicom keyword (e.g. PatientID), a Dicom hex index (e.g 00100020) or a Dicom private tag GEMS_PARM_01, 0043xx01. If bool is True, the tag will be added to the parsed tags in the file.info.header.dicom and the file.info.header.dicom_array namespaces, if False is will be removed.

Derived fields

The following values derived from dicom are stored in a file.info.header.derived dictionary

  • SpacingBetweenSlices ( Also a type 3 tag at (0018,0088))
  • MinSliceLocation : Minimum value of slice location
  • MaxSliceLocation : Maximum value of slice location
  • ScanCoverage : Span of slice location (max-min)
  • SliceAxis : 3D unit vector connecting slice origins
  • PhaseCount : Number of sequences of consecutive slices with uniform spacing & orientation
  • PhaseIndexes : If PhaseCount > 1, this array maps the slices indexes to the phase index
  • fov : "Field of view" which is 3D span in patient coords along x,y,z (empty if slice spacing is not uniform)
  • affine : 4x4 affine transform to convert grid to patient coords (empty if slice spacing is not uniform)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page