I have a multi-session dataset and used the same B0FieldIdentifier / B0FieldSource tags for both sessions. When I run fmriprep this goes all wrong because frmiprep (sdcflows) pools the fieldmaps of both sessions instead of using the fieldmap of session-1 only for session-1 and the fieldmap of session-2 only for session-2. This behaviour is indeed expected according to the BIDS standard, as the specs say:
At least one existing “B0FieldIdentifier” defined by images in the participant’s tree
I think, however, that fieldmaps are always intended for data acquired in the same session, so it makes no sense to search for B0Field-labels within the entire participant tree. What do you think, should the specs (+ SDCflows) be patched here, to search only within session trees?
There is flexibility in how one defines a “session” and while I cannot think of any particular case, I imagine there could be someway that someone could have a fieldmap reaching across sessions, however one is defined.
Since the workaround would be to simply add something along the lines of ses-x to the existing B0FieldIdentifier / B0FieldSource tags, I do not personally think this requires any patching.
Theoretically, you should only use fieldmaps collected with the same shim settings and as-close-to-unchanged head position as possible. Practically, some fieldmap acquisitions are bad, and users may prefer to use a high quality fieldmap from a different session to no fieldmap or an approximation based on a nonlinear registration to the anatomy.