Dcm2bids intendedFor run

Summary of What Happened

Dear community,

I was able to run dcm2bids with files that have the same series description, protocol name and series number after putting the dicom files into different source folders (fmap_run1, fmap_run2, rest_run1, rest_run2).
The program then automatically recognizes that there are two runs and added the run information to the aquisition.

SIDECAR PAIRING
INFO    | sub-5489_ses-V5_magnitude1  <-  029_ses-V5_gre_field_mapping_2.5mm_20250429114159_e1
INFO    | sub-5489_ses-V5_magnitude2  <-  029_ses-V5_gre_field_mapping_2.5mm_20250429114159_e2
INFO    | sub-5489_ses-V5_phasediff  <-  030_ses-V5_gre_field_mapping_2.5mm_20250429114159_e2_ph
INFO    | sub-5489_ses-V5_task-rest_bold  <-  031_ses-V5_Rest_ep2d_bold_s4_2p5mm_20250429114159
INFO    | sub-5489_ses-V5_magnitude1  <-  029_ses-V5_gre_field_mapping_2.5mm_20250429121730_e1
INFO    | sub-5489_ses-V5_magnitude2  <-  029_ses-V5_gre_field_mapping_2.5mm_20250429121730_e2
INFO    | sub-5489_ses-V5_phasediff  <-  030_ses-V5_gre_field_mapping_2.5mm_20250429121730_e2_ph
INFO    | sub-5489_ses-V5_task-rest_bold  <-  031_ses-V5_Rest_ep2d_bold_s4_2p5mm_20250429121730
INFO    | sub-5489/ses-V5/func/sub-5489_ses-V5_task-rest_bold has 2 runs
INFO    | Adding run information to the acquisition
INFO    | sub-5489/ses-V5/fmap/sub-5489_ses-V5_magnitude1 has 2 runs
INFO    | Adding run information to the acquisition
INFO    | sub-5489/ses-V5/fmap/sub-5489_ses-V5_magnitude2 has 2 runs
INFO    | Adding run information to the acquisition
INFO    | sub-5489/ses-V5/fmap/sub-5489_ses-V5_phasediff has 2 runs
INFO    | Adding run information to the acquisition
INFO    | Moving acquisitions into BIDS folder "/server/fo2-22/data/AcEx/BIDS/new_scaffold/BIDS/sub-5489/ses-V5".

Unfortunately, when I open the meta data for the sub-5490_ses-V4_run-01_phasediff.json, both runs are listed. The same for sub-5490_ses-V4_run-02_phasediff.json

"IntendedFor": [
        "bids::sub-5489/ses-V5/func/sub-5489_ses-V5_task-rest_run-01_bold.nii.gz",
        "bids::sub-5489/ses-V5/func/sub-5489_ses-V5_task-rest_run-02_bold.nii.gz"
    ]

I could certainly order the runs as separate sessions (ses-V5pre and ses-V5post). In this case the assignment is clear. But I would like to keep the run information without editing the meta data.

Best,
Ralf

Code Used

  "descriptions": [
    {
      "id": "task-rest",
      "datatype": "func",
      "suffix": "bold",
      "custom_entities":"task-rest",
      "criteria": {
        "ProtocolName": "Rest_ep2d_bold_s4_2p5mm"
	},
      "sidecar_changes": {
        "TaskName": "rest"
      }
    },
   {
      "datatype": "fmap",
      "suffix": "phasediff",
      "criteria": {
	 "EchoTime1": 0.00492,
	 "EchoTime2": 0.00738,
	 "ProtocolName": "gre_field_mapping_2.5mm"
	 },
      "B0FieldIdentifier": "phasediff",
      "sidecar_changes": {
        "IntendedFor": [
          "task-rest"
        ]
      }
    },
    {
      "datatype": "fmap",
      "suffix": "magnitude1",
      "criteria": {
         "ImageType":["ORIG*", "PRIMARY", "M","ND"],
	 "EchoTime": 0.00492 
	 },
      "sidecar_changes": {}
    },
    {
      "datatype": "fmap",
      "suffix": "magnitude2",
      "criteria": {
         "ImageType":["ORIG*", "PRIMARY", "M","ND"],
	 "EchoTime": 0.00738 
	 },
      "sidecar_changes": {}
      }
  ]
}

Version:

3.2.0

Environment (Docker, Singularity / Apptainer, custom installation):

apptainer

Data formatted according to a validatable standard? Please provide the output of the validator:

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

PASTE LOG OUTPUT HERE

Screenshots / relevant information: