@@ -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
183223PhaseEncodingDirectionRec :
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,32 +234,13 @@ 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
200241 (see [Case 4: Multiple phase encoded
201242 directions](#case-4-multiple-phase-encoded-directions-pepolar))
202243
203- PhaseEncodingDirectionReq :
204- selectors :
205- - datatype == "fmap"
206- - suffix == "epi"
207- - match(extension, "^\.nii(\.gz)?$")
208- fields :
209- PhaseEncodingDirection :
210- level : required
211- issue :
212- code : PHASE_ENCODING_DIRECTION_MUST_DEFINE
213- message : |
214- 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.
222-
223244MRITimingParameters :
224245 selectors :
225246 - modality == "mri"
@@ -237,7 +258,9 @@ MRITimingParameters:
237258 [ASL](SPEC_ROOT/modality-specific-files/magnetic-resonance-imaging-data.md#\
238259 arterial-spin-labeling-perfusion-data)
239260 or variable echo time fMRI sequences.
240- InversionTime : recommended
261+ InversionTime :
262+ level : optional
263+ level_addendum : required if `inv` entity is present
241264 DwellTime : recommended
242265
243266EchoTimeRequiredASL :
@@ -259,7 +282,7 @@ SliceTimingMRI:
259282 level_addendum : |
260283 required for sparse sequences that do not have the `DelayTime` field set,
261284 and Arterial Spin Labeling with `MRAcquisitionType` set on `2D`.
262- SliceEncodingDirection : recommended
285+ SliceEncodingDirection : optional
263286
264287SliceTimingASL :
265288 selectors :
@@ -346,7 +369,7 @@ MRISliceAcceleration:
346369 - modality == "mri"
347370 - match(extension, "^\.nii(\.gz)?$")
348371 fields :
349- MultibandAccelerationFactor : recommended
372+ MultibandAccelerationFactor : optional
350373
351374MRIAnatomicalLandmarks :
352375 selectors :
@@ -356,20 +379,23 @@ MRIAnatomicalLandmarks:
356379 fields :
357380 AnatomicalLandmarkCoordinates__mri : recommended
358381
359- MRIB0FieldIdentifier :
360- selectors :
361- - datatype == 'fmap'
362- - match(extension, '\.nii(\.gz)?$')
363- fields :
364- B0FieldIdentifier : recommended
365-
366382MRIEchoPlanarImagingAndB0FieldSource :
367383 selectors :
368384 - intersects(datatype, ['dwi', 'func', 'perf'])
369385 - intersects(dataset.datatypes, ['fmap'])
370386 - match(extension, "^\.nii(\.gz)?$")
371387 fields :
372- B0FieldSource : recommended
388+ B0FieldSource :
389+ level : recommended
390+ issue :
391+ code : B0_FIELD_SOURCE_RECOMMENDED
392+ message : |
393+ File is missing B0FieldSource metadata, so it may not be possible to
394+ perform susceptibility distortion correction on it.
395+ B0FieldIdentifier metadata permits the flexible selection of images
396+ for estimating B0 inhomogeneity fields, and B0FieldSource permits EPI
397+ images to indicate the identifier of the estimated field to use.
398+ If associations are fully specified with `IntendedFor`, there is no need to change this.
373399
374400MRIInstitutionInformation :
375401 selectors :
0 commit comments