Skip to content

[BUG] Wrong TimeZero in certain cases #367

@ChristianHinge

Description

@ChristianHinge

Describe the bug
PET2BIDS and dcm2niix uses AcquisitionTime in cases where SeriesTime should be used. I believe this is an upstream bug in dcm2niix, or perhaps this is just unique to Siemens Scanners. In Siemens PET scanners SeriesTime describes the start time of the PET acquisition - not AcquisitionTime. AcquisitionTime describes the timepoint in the acquisition, where data was used to reconstruct the DICOM-file. Often AcquisitionTime==SeriesTime, but not in the following cases:

  1. Dynamic acquisition: the AcquisitionTime changes for each time frame.
  2. Multiple bed positions: the AcquisitionTime changes for each bed frame.
  3. Static images reconstructed from a time-subset of a longer acquisition: For instance, a static reconstruction based on a 50-70min window of a 70minute PET acquisition. Here AcquistionTime will be 50min larger than SeriesTime.

Here is the example output for case 3 (FDG tracer injection and PET acquisition start at 16:20, and a static image is reconstructed from the 50-70min window):

{
    "SeriesTime": "16:20:16.000000",
    "AcquisitionTime": "17:10:15.000000",
    "DecayCorrection": "START",
    "DecayFactor": [
        1.45951
    ],
    "FrameTimesStart": [
        0 ##Should be 3000 (50min*60)
    ],
    "FrameDuration": [
        1200
    ],
    "TimeZero": "17:10:15",
    "DecayCorrectionFactor": [
        1.45951
    ],
    "ScanStart": 0,
    "InjectionStart": 0
}

We can also see from the DecayCorrectionFactor, that everything is decayed back to the SeriesTime.
log2(1.45951)*110=60min (the frame reference 50min + 20min/2)

Expected behaviour
FrameTimesStart should be 3000. From what I can see, pypet2bids extracts FrameTimesStart and TimeZero from the dcm2niix sidecar if they exists. Otherwise it sets it equal to AcquisitionTime.

To Reproduce

  1. code/command used (copy/paste what you did)
  2. error happening? (copy/paste the error)

Desktop (please complete the following information):

  • Arch Linux
  • python

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions