Skip to content

Commit 94e9ac2

Browse files
authored
Merge pull request #25 from Alixbonard/dev-MRIScannerUsage
Updated version of MRIScannerUsage for v5
2 parents dc346d4 + 383597b commit 94e9ac2

1 file changed

Lines changed: 127 additions & 62 deletions

File tree

Lines changed: 127 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,133 +1,198 @@
11
{
22
"_extends": "/core/schemas/research/deviceUsage.schema.tpl.json",
33
"_type": "neuroimaging:MRIScannerUsage",
4+
"required": [
5+
"echoTime",
6+
"repetitionTime",
7+
"sliceTiming"
8+
],
49
"properties": {
5-
"bValues": {
6-
"_instruction": "Add the b values coresponding to this acquisition.",
7-
"_linkedTypes": [
8-
"core:File"
9-
]
10+
"accelerationFactor": {
11+
"_instruction": "Enter the acceleration factor (R), defined as the ratio of fully sampled to reduced k-space acquisition, with R ≥ 1 and R = 1 indicating no acceleration. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
12+
"minimum": 1,
13+
"type": "integer"
1014
},
11-
"bVectors": {
12-
"_instruction": "Add the b vectors coresponding to this acquisition.",
15+
"diffusionEncodingParameters": {
16+
"_instruction": "Add two diffusion encoding files: a b-value file specifying the diffusion weighting for each acquired volume and a b-vector file specifying the corresponding three-dimensional diffusion gradient directions. Ensure that both files are correctly ordered, that b-vectors are normalized, and that they are aligned with the image volumes.",
1317
"_linkedTypes": [
1418
"core:File"
15-
]
16-
},
17-
"device": {
18-
"_instruction": "Add the MRI Scanner used.",
19-
"_linkedTypes": [
20-
"neuroimaging:MRIScanner"
21-
]
19+
],
20+
"minItems": 2,
21+
"maxItems": 2,
22+
"type" : "array"
2223
},
2324
"dwellTime": {
25+
"_instruction": "Enter the dwell time, defined as the time interval between successive data samples during signal readout, which determines the receiver bandwidth and frequency resolution. This value is typically set automatically by the sequence and can be retrieved from the sequence protocol or DICOM header.",
2426
"_embeddedTypes": [
2527
"core:QuantitativeValue"
26-
],
27-
"_instruction": "Enter the dwell time of this aquistion."
28+
]
2829
},
2930
"echoTime": {
31+
"_instruction": "Enter the echo time (TE), defined as the interval between the center of the excitation pulse and the center of the measured echo, expressed in milliseconds. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
3032
"_embeddedTypes": [
3133
"core:QuantitativeValue"
3234
],
33-
"_instruction": "Enter the echo times of this acquisition (TE).",
3435
"minItems": 1,
3536
"type": "array",
3637
"uniqueItems": true
3738
},
39+
"fatSuppressionTechnique": {
40+
"_instruction": "Add the fat suppression technique used for this acquisition (for example, fat saturation, SPAIR, STIR, or Dixon); if no fat suppression was applied, leave this field null. This information is typically specified in the sequence protocol and can be retrieved from the DICOM header.",
41+
"_linkedCategories": [
42+
"controlledTerms:MRIFatSuppressionTechnique"
43+
]
44+
},
3845
"fieldOfView": {
3946
"_instruction": "Add the field of view of this image.",
4047
"_linkedCategories": [
4148
"mathematicalShapes"
4249
]
4350
},
4451
"flipAngle": {
52+
"_instruction": "Enter the flip angle, defined as the angle by which the net magnetization is rotated by the radiofrequency excitation pulse, expressed in degrees. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
4553
"_embeddedTypes": [
4654
"core:QuantitativeValue"
47-
],
48-
"_instruction": "Enter the flip angle of this scan (preferred units: degrees)."
55+
]
4956
},
50-
"interSliceGap": {
51-
"_embeddedTypes": [
52-
"core:QuantitativeValue",
53-
"core:QuantitativeValueRange"
54-
],
55-
"_instruction": "Enter the inter slice distance of this scan."
57+
"gradientCorrection": {
58+
"_instruction": "Add the gradient correction method applied during image reconstruction. This information is typically defined by the scanner system and can be retrieved from the reconstruction settings or DICOM header.",
59+
"type": "controlledTerms:AnalysisTechnique"
5660
},
5761
"inversionTime": {
62+
"_instruction": "Enter the inversion time (TI), defined as the interval between the inversion pulse and the excitation pulse, expressed in milliseconds. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
5863
"_embeddedTypes": [
5964
"core:QuantitativeValue"
60-
],
61-
"_instruction": "Enter the inversion time of this aquistion."
65+
]
6266
},
63-
"MRSpatialEncoding": {
64-
"_instruction": "Add how spatial information was encoded. Examples include 'frequencyPhaseEncoding' (2D) and 'frequencyPhasePhaseEncoding' (3D).",
67+
"matrixSize": {
68+
"_instruction": "Enter the matrix size as the number of samples in the frequency and phase encoding directions for two-dimensional acquisitions (frequency × phase), or in the frequency, phase, and partition encoding directions for three-dimensional acquisitions (frequency × phase × partitions). This information is defined by the acquisition protocol and can be retrieved from the DICOM header.",
69+
"items": {
70+
"type": "integer"
71+
},
72+
"maxItems": 3,
73+
"minItems": 2,
74+
"type": "array"
75+
},
76+
"MRIWeighting": {
77+
"_instruction": "Enter the magnetic resonance imaging weighting type describing the dominant source of image contrast. This designation reflects the contrast determined by repetition time, echo time, and inversion time and can be identified from the sequence protocol.",
6578
"_linkedTypes": [
66-
"controlledTerms:MRSpatialEncoding"
79+
"controlledTerms:MRIWeighting"
6780
]
6881
},
69-
"MTState": {
70-
"_instruction": "Boolean stating whether the magnetization transfer pulse is applied.",
71-
"type": "boolean"
82+
"MTPulseShape": {
83+
"_instruction": "Enter the shape of the magnetization transfer (MT) radiofrequency (RF) pulse waveform used in this acquisition. This information is specified in the sequence protocol and can be retrieved from the DICOM header.",
84+
"type": "controlledTerms:PulseShape"
85+
},
86+
"numberOfDiscardedVolumes": {
87+
"_instruction": "Enter the number of initial volumes automatically discarded by the scanner before saving data, typically to allow signal stabilization at the beginning of the acquisition. This value is defined by the acquisition protocol and can be retrieved from the DICOM header.",
88+
"type": "integer"
7289
},
73-
"nonlinearGradientCorrection": {
74-
"_instruction": "Has this scan, been corrected for gradient nonlinearities by the scanner sequence?",
75-
"type": "boolean"
90+
"numberOfExcitations": {
91+
"_instruction": "Enter the number of excitations (NEX), defined as the number of times each k-space line is acquired and averaged to improve signal-to-noise ratio; if no averaging was performed, set this value to 1. This value is specified in the acquisition protocol and can be retrieved from the DICOM header.",
92+
"type": "integer"
7693
},
77-
"numberOfVolumesDiscardedByScanner": {
78-
"_instruction": "Enter number of volumes discarded by scanner before the first volume.",
79-
"type": "number"
94+
"numberOfSlices": {
95+
"_instruction": "Enter the number of slices corresponding to the total number of two-dimensional image slices acquired in this scan. This value is defined by the acquisition protocol and can be retrieved from the DICOM header.",
96+
"type": "integer"
8097
},
8198
"parallelAcquisitionTechnique": {
82-
"_ instruction": "Enter the parallel acquisition technique sequence name for this scan. 'GRAPPA' for most Siemens machines and 'SENSE' for most Philips machines.",
83-
"type": "string"
99+
"_ instruction": "Add the parallel acquisition technique used for this scan (for example, SENSE or GRAPPA). This information is specified in the sequence protocol and can be retrieved from the DICOM header.",
100+
"type": "controlledTerms:MRIparallelAcquisitionTechnique"
84101
},
85102
"phaseEncodingDirection": {
103+
"_instruction": "Enter the phase encoding direction as a signed unit vector in the scanner or image coordinate system (for example, [±1, 0, 0], [0, ±1, 0], or [0, 0, ±1]), where the nonzero component indicates the encoding axis and the sign specifies the polarity of k-space traversal.",
104+
"items": {
105+
"type": "integer"
106+
},
107+
"maxItems": 3,
108+
"minItems": 3,
109+
"type": "array"
110+
},
111+
"receiverBandwidth": {
112+
"_instruction": "Enter the receiver bandwidth, defined as the range of frequencies sampled per pixel during signal acquisition, expressed in hertz per pixel. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
86113
"_embeddedTypes": [
87-
"core:QuantitativeValueArray"
88-
],
89-
"_instruction": "Enter the direction vector along which phase encoding is applied. This vector indicates the axis of potential distortions in image space (e.g., [1,0,0] for i, [0,1,0] for j, [0,0,1] for k). A negative value indicates reversed polarity."
90-
},
91-
"pulseSequenceType": {
92-
"_instruction": "Add the type pulse sequence used for this scan.",
93-
"_linkedTypes": [
94-
"controlledTerms:MRIPulseSequence"
114+
"core:QuantitativeValue"
95115
]
96116
},
97117
"repetitionTime": {
118+
"_instruction": "Enter the repetition time (TR), defined as the interval between successive excitation pulses, expressed in milliseconds. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
98119
"_embeddedTypes": [
99120
"core:QuantitativeValue"
100-
],
101-
"_instruction": "Enter the echo time of this acquisition (TR)."
121+
]
102122
},
103-
"sliceOrder": {
104-
"_instruction": "Enter the time in which each slice have been acquired within each volume.",
123+
"sliceAngulation": {
124+
"_instruction": "Enter the slice plane orientation as a three-element unit normal vector [nx, ny, nz] in scanner coordinates, where each component is a dimensionless floating-point value between -1 and +1 and the vector has unit length (nx² + ny² + nz² = 1). For non-oblique acquisitions, the vector aligns with a principal axis (for example, [0, 0, 1]), and for oblique acquisitions, the components are fractional.",
125+
"items": {
126+
"type": "number"
127+
},
128+
"maxItems": 3,
129+
"minItems": 3,
130+
"type": "array"
131+
},
132+
"sliceGap": {
133+
"_instruction": "Enter the slice gap, defined as the distance between adjacent slices, expressed in millimeters and excluding the slice thickness; if slice spacing is uniform, provide a single value, and if it varies across the volume, provide the corresponding range. This information is specified in the acquisition protocol and can be retrieved from the DICOM header.",
134+
"_embeddedTypes": [
135+
"core:QuantitativeValue",
136+
"core:QuantitativeValueRange"
137+
]
138+
},
139+
"sliceOrientation": {
140+
"_instruction": "Add the primary slice plane, defined relative to the scanner coordinate system, where axial corresponds to planes perpendicular to the scanner z-axis, sagittal to planes perpendicular to the x-axis, and coronal to planes perpendicular to the y-axis. This classification is independent of subject orientation and may therefore differ from anatomical planes when the subject is positioned non-standardly in the scanner.",
105141
"_linkedTypes": [
106-
"core:QuantitativeValueArray"
142+
"controlledTerms:AnatomicalPlane"
143+
]
144+
},
145+
"sliceThickness": {
146+
"_instruction": "Enter the slice thickness, defined as the physical thickness of each acquired slice, expressed in millimeters; if uniform, provide a single value, and if variable, provide the corresponding range. This value is specified in the acquisition protocol and can be retrieved from the DICOM header.",
147+
"_embeddedTypes": [
148+
"core:QuantitativeValue",
149+
"core:QuantitativeValueRange"
107150
]
108151
},
109152
"sliceTiming": {
110-
"_instruction": "Enter the time in which each slice have been acquired within each volume.",
153+
"_instruction": "Enter the slice timing, defined as the acquisition time of each slice within a volume relative to the start of the volume acquisition. This information is determined by the sequence timing and can be retrieved from the DICOM header.",
111154
"_linkedTypes": [
112155
"core:QuantitativeValueArray"
113156
]
114157
},
115-
"spoilingState": {
116-
"_instruction": "Boolean stating whether the pulse sequence uses any type of spoiling strategy to suppress residual transverse magnetization.",
117-
"type": "boolean"
158+
"spatialEncoding": {
159+
"_instruction": "Add the spatial encoding scheme used to acquire the data, specifying how frequency, phase, and partition encoding were applied (for example, frequency–phase encoding for two-dimensional acquisitions or frequency–phase–phase encoding for three-dimensional acquisitions). This information is defined in the sequence protocol and can be retrieved from the DICOM header.",
160+
"_linkedTypes": [
161+
"controlledTerms:SpatialEncoding"
162+
]
163+
},
164+
"spoilingType": {
165+
"_instruction": "Add the spoiling type used in this acquisition, specifying the method applied to eliminate residual transverse magnetization (for example, radiofrequency spoiling or gradient spoiling). This information is defined in the sequence protocol and can be retrieved from the DICOM header.",
166+
"_linkedTypes": [
167+
"controlledTerms:MRISpoilingType"
168+
]
169+
},
170+
"transmitterBandwidth": {
171+
"_instruction": "Enter the transmitter bandwidth, defined as the frequency range excited by the radiofrequency pulse per pixel, expressed in hertz per pixel. This value is specified in the sequence protocol and can be retrieved from the DICOM header.",
172+
"_embeddedTypes": [
173+
"core:QuantitativeValue"
174+
]
175+
},
176+
"totalReadOutTime": {
177+
"_instruction": "Enter the total readout time (TRT), defined as the time interval between acquisition of the first and last k-space lines in the phase-encoding direction during a single readout, expressed in milliseconds. This value is typically computed automatically and can be retrieved from the DICOM header.",
178+
"_embeddedTypes": [
179+
"core:QuantitativeValue"
180+
]
118181
},
119182
"usedCoils": {
120-
"_instruction": "Add the radiofrequency coils used for this experiment. Corresponds to DICOM tags (0018,9042) [MR Receive Coil Sequence Attribute] and (0018,9049) [MR Transmit Coil Sequence Attribute]. Preferably, create an object describing the coil (e.g., an instance of neuroimaging:MRIRadiofrequencyCoil); if less information is available, provide at least the device type.",
183+
"_instruction": "Add all coils used for this acquisition, including built-in and external transmit, receive, and gradient-related coils, corresponding to the relevant DICOM coil attributes. Preferably provide structured coil descriptions; if unavailable, specify at least the device type.",
121184
"_linkedTypes": [
122185
"controlledTerms:DeviceType",
123186
"neuroimaging:MRICoilUsage"
124-
]
187+
],
188+
"minItems": 2,
189+
"type" : "array"
125190
},
126191
"voxelSize": {
192+
"_instruction": "Enter the voxel size as the physical dimensions of a single image voxel in the x, y, and z directions, expressed in millimeters. This value is typically derived from the field of view, matrix size, and slice thickness and can be retrieved from the DICOM header.",
127193
"_embeddedTypes": [
128194
"core:QuantitativeValueArray"
129-
],
130-
"_instruction": "Enter voxel size this image: in this order x,y,z."
195+
]
131196
}
132197
}
133198
}

0 commit comments

Comments
 (0)