Skip to content

Commit 672c781

Browse files
committed
[ENH] Add FrameAcquisitionDuration
1 parent 3ac6484 commit 672c781

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

src/modality-specific-files/magnetic-resonance-imaging-data.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -600,13 +600,13 @@ to be populated for functional sequences. Note that all these options can be
600600
used for non sparse sequences but that only options B, D and E are valid for
601601
sparse sequences.
602602

603-
| | **`RepetitionTime`** | **`SliceTiming`** | **`AcquisitionDuration`** | **`DelayTime`** | **`VolumeTiming`** |
604-
| -------- | -------------------- | ----------------- | ------------------------- | --------------- | ------------------ |
605-
| option A | \[ X ] | | \[ ] | | \[ ] |
606-
| option B | \[ ] | \[ X ] | | \[ ] | \[ X ] |
607-
| option C | \[ ] | | \[ X ] | \[ ] | \[ X ] |
608-
| option D | \[ X ] | \[ X ] | \[ ] | | \[ ] |
609-
| option E | \[ X ] | | \[ ] | \[ X ] | \[ ] |
603+
| | **`RepetitionTime`** | **`SliceTiming`** | **`FrameAcquisitionDuration`** | **`DelayTime`** | **`VolumeTiming`** |
604+
| -------- | -------------------- | ----------------- | ------------------------------ | --------------- | ------------------ |
605+
| option A | \[ X ] | | \[ ] | | \[ ] |
606+
| option B | \[ ] | \[ X ] | | \[ ] | \[ X ] |
607+
| option C | \[ ] | | \[ X ] | \[ ] | \[ X ] |
608+
| option D | \[ X ] | \[ X ] | \[ ] | | \[ ] |
609+
| option E | \[ X ] | | \[ ] | \[ X ] | \[ ] |
610610

611611
**Legend**
612612

src/schema/objects/metadata.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,6 +1199,15 @@ FlipAngle:
11991199
unit: degree
12001200
exclusiveMinimum: 0
12011201
maximum: 360
1202+
FrameAcquisitionDuration:
1203+
name: FrameAcquisitionDuration
1204+
display_name: Frame Acquisition Duration
1205+
description: |
1206+
Duration (in seconds) of volume acquisition.
1207+
Corresponds to DICOM Tag 0018, 9220 `Frame Acquisition Duration`.
1208+
type: number
1209+
exclusiveMinimum: 0
1210+
unit: s
12021211
FrameDuration:
12031212
name: FrameDuration
12041213
display_name: Frame Duration

src/schema/rules/checks/func.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,18 @@ VolumeTimingRepetitionTimeMutex:
9494
checks:
9595
- type(sidecar.RepetitionTime) == "null"
9696

97-
RepetitionTimeAcquisitionDurationMutex:
97+
RepetitionTimeFrameAcquisitionDurationMutex:
9898
issue:
9999
code: REPETITION_TIME_AND_ACQUISITION_DURATION_MUTUALLY_EXCLUSIVE
100100
message: |
101-
The fields 'RepetitionTime' and 'AcquisitionDuration' for this file are mutually exclusive.
101+
The fields 'RepetitionTime' and 'FrameAcquisitionDuration' for this file are mutually exclusive.
102102
To specify acquisition duration, use 'SliceTiming' or 'DelayTime'
103-
(RepetitionTime - AcquisitionDuration).
103+
(RepetitionTime - FrameAcquisitionDuration).
104104
level: error
105105
selectors:
106106
- type(nifti_header) != "null"
107107
- intersects([suffix], ["asl", "bold"])
108-
- type(sidecar.AcquisitionDuration) != "null"
108+
- type(sidecar.FrameAcquisitionDuration) != "null"
109109
checks:
110110
- type(sidecar.RepetitionTime) == "null"
111111

@@ -114,7 +114,7 @@ VolumeTimingDelayTimeMutex:
114114
code: VOLUME_TIMING_AND_DELAY_TIME_MUTUALLY_EXCLUSIVE
115115
message: |
116116
The fields 'VolumeTiming' and 'DelayTime' for this file are mutually exclusive.
117-
To specify acquisition duration, use 'AcquisitionDuration' or 'SliceTiming'.
117+
To specify acquisition duration, use 'FrameAcquisitionDuration' or 'SliceTiming'.
118118
level: error
119119
selectors:
120120
- type(nifti_header) != "null"
@@ -123,15 +123,15 @@ VolumeTimingDelayTimeMutex:
123123
checks:
124124
- type(sidecar.DelayTime) == "null"
125125

126-
VolumeTimingMissingAcquisitionDuration:
126+
VolumeTimingMissingFrameAcquisitionDuration:
127127
issue:
128128
code: VOLUME_TIMING_MISSING_ACQUISITION_DURATION
129129
message: |
130-
The field 'VolumeTiming' requires 'AcquisitionDuration' or 'SliceTiming' to be defined.
130+
The field 'VolumeTiming' requires 'FrameAcquisitionDuration' or 'SliceTiming' to be defined.
131131
level: error
132132
selectors:
133133
- type(nifti_header) != "null"
134134
- intersects([suffix], ["asl", "bold"])
135135
- type(sidecar.VolumeTiming) != "null"
136136
checks:
137-
- '"SliceTiming" in sidecar || "AcquisitionDuration" in sidecar'
137+
- '"SliceTiming" in sidecar || "FrameAcquisitionDuration" in sidecar'

src/schema/rules/sidecars/func.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ MRIFuncVolumeTiming:
4444
description_addendum: |
4545
This field is mutually exclusive with `"DelayTime"`.
4646
If defined, this requires acquisition time (TA) be defined via either
47-
`"SliceTiming"` or `"AcquisitionDuration"`.
47+
`"SliceTiming"` or `"FrameAcquisitionDuration"`.
4848
4949
# Timing Parameters
5050
MRIFuncTimingParameters:
@@ -56,8 +56,8 @@ MRIFuncTimingParameters:
5656
NumberOfVolumesDiscardedByScanner: recommended
5757
NumberOfVolumesDiscardedByUser: recommended
5858
DelayTime: recommended
59-
AcquisitionDuration:
60-
level: recommended
59+
FrameAcquisitionDuration:
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

0 commit comments

Comments
 (0)