Skip to content

Commit 79c51e1

Browse files
committed
FIX: Reduce the requirement levels of some metadata fields
1 parent ac11483 commit 79c51e1

File tree

2 files changed

+69
-40
lines changed

2 files changed

+69
-40
lines changed

src/schema/rules/sidecars/func.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ MRIFuncTimingParameters:
5353
- suffix == "bold"
5454
- match(extension, "^\.nii(\.gz)?$")
5555
fields:
56-
NumberOfVolumesDiscardedByScanner: recommended
57-
NumberOfVolumesDiscardedByUser: recommended
58-
DelayTime: recommended
56+
NumberOfVolumesDiscardedByScanner: optional
57+
NumberOfVolumesDiscardedByUser: optional
58+
DelayTime: optional
5959
AcquisitionDuration:
60-
level: recommended
60+
level: optional
6161
level_addendum: |
6262
required for sequences that are described with the `VolumeTiming`
6363
field and that do not have the `SliceTiming` field set to allow for
6464
accurate calculation of "acquisition time"
65-
DelayAfterTrigger: recommended
65+
DelayAfterTrigger: optional
6666

6767
# fMRI task information
6868
MRIFuncTaskInformation:

src/schema/rules/sidecars/mri.yaml

Lines changed: 64 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ MRIHardware:
3838
ReceiveCoilName: recommended
3939
ReceiveCoilActiveElements: recommended
4040
NumberReceiveCoilActiveElements: optional
41-
GradientSetType: recommended
42-
MRTransmitCoilSequence: recommended
41+
GradientSetType: optional
42+
MRTransmitCoilSequence: optional
4343
MatrixCoilMode: recommended
4444
CoilCombinationMethod: recommended
4545
NumberTransmitCoilActiveElements: optional
@@ -96,19 +96,27 @@ MRISequenceSpecifics:
9696
description_addendum: |
9797
Corresponds to [DICOM Tag 0018, 0020](https://dicomlookup.com/dicomtags/(0018,0020)) `Scanning Sequence`.
9898
SequenceVariant: recommended
99-
ScanOptions: recommended
99+
ScanOptions: optional
100100
SequenceName: recommended
101101
PulseSequenceDetails: recommended
102-
NonlinearGradientCorrection: |
103-
recommended, but required if [PET](./positron-emission-tomography.md) data are present
104-
MRAcquisitionType: recommended, but required for Arterial Spin Labeling
105-
MTState: recommended
102+
NonlinearGradientCorrection:
103+
level: recommended
104+
level_addendum: required if [PET](./positron-emission-tomography.md) data are present
105+
MRAcquisitionType:
106+
level: recommended
107+
level_addendum: required for Arterial Spin Labeling
108+
MTState:
109+
level: optional
110+
level_addendum: required if the `mt` entity is present
106111
MTOffsetFrequency: optional
107112
MTPulseBandwidth: optional
108113
MTNumberOfPulses: optional
109114
MTPulseShape: optional
110115
MTPulseDuration: optional
111-
SpoilingState: recommended
116+
NumberShots:
117+
level: optional
118+
level_addendum: required for some qMRI sequences
119+
SpoilingState: optional
112120
SpoilingType: optional
113121
SpoilingRFPhaseIncrement: optional
114122
SpoilingGradientMoment: optional
@@ -168,22 +176,54 @@ MRISpatialEncoding:
168176
- modality == "mri"
169177
- match(extension, "^\.nii(\.gz)?$")
170178
fields:
171-
NumberShots: recommended
172-
ParallelReductionFactorInPlane: recommended
173-
ParallelReductionFactorOutOfPlane: recommended
174-
ParallelAcquisitionTechnique: recommended
175-
PartialFourier: recommended
176-
PartialFourierDirection: recommended
179+
ParallelReductionFactorInPlane:
180+
level: optional
181+
level_addendum: recommended if `ParallelAcquisitionTechnique` is defined
182+
ParallelReductionFactorOutOfPlane:
183+
level: optional
184+
level_addendum: recommended if `ParallelAcquisitionTechnique` is defined
185+
ParallelAcquisitionTechnique: optional
186+
PartialFourier: optional
187+
PartialFourierDirection:
188+
level: optional
189+
level_addendum: recommended if PartialFourier is defined
177190
EffectiveEchoSpacing:
178-
level: recommended
179-
level_addendum: required if corresponding fieldmap data present
191+
level: optional
192+
level_addendum: recommended if corresponding fieldmap data present
180193
description_addendum: <sup>2</sup>
181-
MixingTime: recommended
194+
MixingTime:
195+
level: optional
196+
level_addendum: required for some qMRI sequences
197+
198+
MRIPartialFourier:
199+
selectors:
200+
- modality == "mri"
201+
- match(extension, "^\.nii(\.gz)?$")
202+
- type(sidecar.PartialFourier) != "null"
203+
fields:
204+
PartialFourierDirection: recommended
205+
206+
MRIParallelReductionFactorInPlane:
207+
selectors:
208+
- modality == "mri"
209+
- match(extension, "^\.nii(\.gz)?$")
210+
- type(sidecar.ParallelAcquisitionTechnique) == "string"
211+
fields:
212+
ParallelReductionFactorInPlane: recommended
213+
214+
MRIParallelReductionFactorOutOfPlane:
215+
selectors:
216+
- modality == "mri"
217+
- match(extension, "^\.nii(\.gz)?$")
218+
- type(sidecar.ParallelAcquisitionTechnique) == "string"
219+
- sidecar.MRAcquisitionType == "3D"
220+
fields:
221+
ParallelReductionFactorOutOfPlane: recommended
182222

183223
PhaseEncodingDirectionRec:
184224
selectors:
185225
- modality == "mri"
186-
- suffix != "epi"
226+
- intersects(suffix, ["bold", "sbref", "dwi", "asl"])
187227
- match(extension, "^\.nii(\.gz)?$")
188228
fields:
189229
PhaseEncodingDirection:
@@ -194,6 +234,7 @@ PhaseEncodingDirectionRec:
194234
(which can be later used for field inhomogeneity correction).
195235
TotalReadoutTime:
196236
level: recommended
237+
description_addendum: <sup>3</sup>
197238
level_addendum: |
198239
required if corresponding 'field/distortion' maps
199240
acquired with opposing phase encoding directions are present
@@ -212,13 +253,6 @@ PhaseEncodingDirectionReq:
212253
code: PHASE_ENCODING_DIRECTION_MUST_DEFINE
213254
message: |
214255
You have to define 'PhaseEncodingDirection' for this file.
215-
TotalReadoutTime:
216-
level: required
217-
description_addendum: <sup>3</sup>
218-
issue:
219-
code: TOTAL_READOUT_TIME_MUST_DEFINE
220-
message: |
221-
You have to define 'TotalReadoutTime' for this file.
222256
223257
MRITimingParameters:
224258
selectors:
@@ -237,7 +271,9 @@ MRITimingParameters:
237271
[ASL](SPEC_ROOT/modality-specific-files/magnetic-resonance-imaging-data.md#\
238272
arterial-spin-labeling-perfusion-data)
239273
or variable echo time fMRI sequences.
240-
InversionTime: recommended
274+
InversionTime:
275+
level: optional
276+
level_addendum: required if `inv` entity is present
241277
DwellTime: recommended
242278

243279
EchoTimeRequiredASL:
@@ -259,7 +295,7 @@ SliceTimingMRI:
259295
level_addendum: |
260296
required for sparse sequences that do not have the `DelayTime` field set,
261297
and Arterial Spin Labeling with `MRAcquisitionType` set on `2D`.
262-
SliceEncodingDirection: recommended
298+
SliceEncodingDirection: optional
263299

264300
SliceTimingASL:
265301
selectors:
@@ -346,7 +382,7 @@ MRISliceAcceleration:
346382
- modality == "mri"
347383
- match(extension, "^\.nii(\.gz)?$")
348384
fields:
349-
MultibandAccelerationFactor: recommended
385+
MultibandAccelerationFactor: optional
350386

351387
MRIAnatomicalLandmarks:
352388
selectors:
@@ -356,13 +392,6 @@ MRIAnatomicalLandmarks:
356392
fields:
357393
AnatomicalLandmarkCoordinates__mri: recommended
358394

359-
MRIB0FieldIdentifier:
360-
selectors:
361-
- datatype == 'fmap'
362-
- match(extension, '\.nii(\.gz)?$')
363-
fields:
364-
B0FieldIdentifier: recommended
365-
366395
MRIEchoPlanarImagingAndB0FieldSource:
367396
selectors:
368397
- intersects(datatype, ['dwi', 'func', 'perf'])

0 commit comments

Comments
 (0)