Skip to content

Extendig metadata JSON with Brain Imaging Data Structure fields #39

@chrisgorgo

Description

@chrisgorgo

Brain Imaging Data Structure (BIDS) is a new specification describing how a neuroimaging dataset should be organized and described. Part of the standard are JSON sidecar files with acquisition parameters essential for performing data analysis that are not present (or reliably reported) in the NIFTI header (see here for details). Such fields include but are not limited to:

  • EffectiveEchoSpacing
  • RepetitionTime
  • PhaseEncodingDirection
  • SliceTiming
  • SliceEncodingDirection
  • EchoTime

Some of those fields are part of DICOM Ontology and are directly accessible from standard DICOM headers (such as RepetitionTime and EchoTime) and some are not part of standard DICOM nomenclature and require extraction using vendor and sequence specific heuristics (for example PhaseEncodingDirection or EffectiveEchoSpacing). We aded them to the BIDS standard because they are necessary for data processing.

I would like to send a PR that would include code to extract those fields from DICOM metadata and putting them in the root of the embedded JSON file. For example:

{
    "RepetitionTime": 4.0,
    "SliceEncodingDirection": "z",
    "PhaseEncodingDirection": "x-",
    "EffectiveEchoSpacing": 0.00074,
    "global": {
        "const": {
            "SpecificCharacterSet": "ISO_IR 100",
            "ImageType": [
                "ORIGINAL",
                "PRIMARY",
                "M",
                "ND"
            ],
            "StudyTime": 69244.484,
            "SeriesTime": 71405.562,
            "Modality": "MR",
            "Manufacturer": "SIEMENS",
            "SeriesDescription": "2D 16Echo qT2",
            "ManufacturerModelName": "TrioTim",
            "ScanningSequence": "SE",
            "SequenceVariant": "SP",
            "ScanOptions": "SAT1",
            "MRAcquisitionType": "2D",
            "SequenceName": "se2d16",
            "AngioFlag": "N",
            "SliceThickness": 7.0,
            ...

Before I commit time to doing this I would love to hear your opinion. For some of the fields (such as PhaseEncodingDirection) I only have code to infer them for siemens scans, but this field can be just omitted when a different type of scan will be used. We can also make all of the BIDS fields optional controlled by a command line flag.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions