Skip to content

Commit

Permalink
enh: Link all DICOM tags following standard pattern
Browse files Browse the repository at this point in the history
  • Loading branch information
effigies committed Dec 10, 2024
1 parent a985fa6 commit 9ec4579
Show file tree
Hide file tree
Showing 6 changed files with 138 additions and 86 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ A guide for using macros can be found at

<sup>2</sup>Conveniently, for Siemens data, this value is easily obtained as
`1 / (BWPPPE * ReconMatrixPE)`, where BWPPPE is the
"BandwidthPerPixelPhaseEncode" in DICOM Tag 0019, 1028 and ReconMatrixPE is
"BandwidthPerPixelPhaseEncode" in [DICOM Tag 0019, 1028](https://dicomlookup.com/dicomtags/(0019,1028)) and ReconMatrixPE is
the size of the actual reconstructed data in the phase direction (which is NOT
reflected in a single DICOM Tag for all possible aforementioned scan
manipulations). See
Expand Down Expand Up @@ -944,7 +944,7 @@ accompanied by two ancillary files: `*_asl.json` and `*_aslcontext.tsv`.

The `*_aslcontext.tsv` table consists of a single column of labels identifying the
`volume_type` of each volume in the corresponding `*_asl.nii[.gz]` file.
Volume types are defined in the following table, based on DICOM Tag 0018, 9257 `ASL Context`.
Volume types are defined in the following table, based on [DICOM Tag 0018, 9257](https://dicomlookup.com/dicomtags/(0018,9257)) `ASL Context`.
Note that the volume_types `control` and `label` within BIDS only serve
to specify the magnetization state of the blood and thus the ASL subtraction order.
See the [ASL Appendix](../appendices/arterial-spin-labeling.md#which-image-is-control-and-which-is-label)
Expand Down
95 changes: 51 additions & 44 deletions src/schema/objects/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ AcquisitionDuration:
display_name: Acquisition Duration
description: |
Duration (in seconds) of volume acquisition.
Corresponds to DICOM Tag 0018, 9073 `Acquisition Duration`.
Corresponds to [DICOM Tag 0018, 9073](https://dicomlookup.com/dicomtags/(0018,9073)) `Acquisition Duration`.
This field is mutually exclusive with `"RepetitionTime"`.
type: number
exclusiveMinimum: 0
Expand Down Expand Up @@ -349,7 +349,7 @@ BolusCutOffDelayTime:
cut-off saturation pulses.
For Q2TIPS, only the values for the first and last bolus cut-off saturation
pulses are provided.
Based on DICOM Tag 0018, 925F `ASL Bolus Cut-off Delay Time`.
Based on [DICOM Tag 0018, 925F](https://dicomlookup.com/dicomtags/(0018,925F)) `ASL Bolus Cut-off Delay Time`.
anyOf:
- type: number
minimum: 0
Expand All @@ -364,14 +364,14 @@ BolusCutOffFlag:
display_name: Bolus Cut Off Flag
description: |
Boolean indicating if a bolus cut-off technique is used.
Corresponds to DICOM Tag 0018, 925C `ASL Bolus Cut-off Flag`.
Corresponds to [DICOM Tag 0018, 925C](https://dicomlookup.com/dicomtags/(0018,925C)) `ASL Bolus Cut-off Flag`.
type: boolean
BolusCutOffTechnique:
name: BolusCutOffTechnique
display_name: Bolus Cut Off Technique
description: |
Name of the technique used, for example `"Q2TIPS"`, `"QUIPSS"`, `"QUIPSSII"`.
Corresponds to DICOM Tag 0018, 925E `ASL Bolus Cut-off Technique`.
Corresponds to [DICOM Tag 0018, 925E](https://dicomlookup.com/dicomtags/(0018,925E)) `ASL Bolus Cut-off Technique`.
type: string
BrainLocation:
name: BrainLocation
Expand Down Expand Up @@ -429,7 +429,7 @@ ChemicalShiftReference:
display_name: Chemical Shift Reference
description: |
The chemical shift at the transmitter frequency, specified in ppm (for example, `2.68`).
Corresponds to DICOM Tag 0018, 9053 `Chemical Shift Reference`.
Corresponds to [DICOM Tag 0018, 9053](https://dicomlookup.com/dicomtags/(0018,9053)) `Chemical Shift Reference`.
type: number
unit: ppm
ChunkTransformationMatrix:
Expand Down Expand Up @@ -531,7 +531,7 @@ ContrastBolusIngredient:
display_name: Contrast Bolus Ingredient
description: |
Active ingredient of agent.
Corresponds to DICOM Tag 0018, 1048 `Contrast/Bolus Ingredient`.
Corresponds to [DICOM Tag 0018, 1048](https://dicomlookup.com/dicomtags/(0018,1048)) `Contrast/Bolus Ingredient`.
type: string
enum:
- $ref: objects.enums.IODINE.value
Expand Down Expand Up @@ -596,7 +596,7 @@ DeidentificationMethod:
display_name: Deidentification Method
description: |
A description of the mechanism or method used to remove the Patient's identity.
Corresponds to DICOM Tag 0012, 0063 `De-identification Method`.
Corresponds to [DICOM Tag 0012, 0063](https://dicomlookup.com/dicomtags/(0012,0063)) `De-identification Method`.
type: array
items:
type: string
Expand All @@ -605,7 +605,8 @@ DeidentificationMethodCodeSequence:
display_name: Deidentification Method Code Sequence
description: |
A sequence of code objects describing the mechanism or method use to remove the Patient's identity.
Corresponds to DICOM Tag 0012, 0064 `De-identification Method Code Sequence`.
Corresponds to [DICOM Tag 0012, 0064](https://dicomlookup.com/dicomtags/(0012,0064))
`De-identification Method Code Sequence`.
type: array
items:
type: object
Expand All @@ -621,25 +622,26 @@ DeidentificationMethodCodeSequence:
description: |
An identifier that is unambiguous within the Coding Scheme
denoted by Coding Scheme Designator and Coding Scheme Version.
Corresponds to DICOM Tag 0008, 0100 `Code Value`.
Corresponds to [DICOM Tag 0008, 0100](https://dicomlookup.com/dicomtags/(0008,0100)) `Code Value`.
CodeMeaning:
name: CodeMeaning
type: string
description: |
Text that has meaning to a human and conveys the meaning of the term
Corresponds to DICOM Tag 0008, 0104 `Code Meaning`.
Corresponds to [DICOM Tag 0008, 0104](https://dicomlookup.com/dicomtags/(0008,0104)) `Code Meaning`.
CodingSchemeDesignator:
name: CodingSchemeDesignator
type: string
description: |
The identifier of the coding scheme in which the coded entry is defined.
Corresponds to DICOM Tag 0008, 0102 `Coding Scheme Designator`.
Corresponds to [DICOM Tag 0008, 0102](https://dicomlookup.com/dicomtags/(0008,0102))
`Coding Scheme Designator`.
CodingSchemeVersion:
name: CodingSchemeVersion
type: string
description: |
An identifier of the version of the coding scheme if necessary to resolve ambiguity.
Corresponds to DICOM Tag 0008, 0103 `Coding Scheme Version`.
Corresponds to [DICOM Tag 0008, 0103](https://dicomlookup.com/dicomtags/(0008,0103)) `Coding Scheme Version`.
DelayAfterTrigger:
name: DelayAfterTrigger
display_name: Delay After Trigger
Expand Down Expand Up @@ -808,7 +810,7 @@ DoseCalibrationFactor:
display_name: Dose Calibration Factor
description: |
Multiplication factor used to transform raw data (in counts/sec) to meaningful unit (Bq/ml).
Corresponds to DICOM Tag 0054, 1322 `Dose Calibration Factor`.
Corresponds to [DICOM Tag 0054, 1322](https://dicomlookup.com/dicomtags/(0054,1322)) `Dose Calibration Factor`.
type: number
DwellTime:
name: DwellTime
Expand Down Expand Up @@ -935,7 +937,7 @@ EchoTime:
display_name: Echo Time
description: |
The echo time (TE) for the acquisition, specified in seconds.
Corresponds to DICOM Tag 0018, 0081 `Echo Time`
Corresponds to [DICOM Tag 0018, 0081](https://dicomlookup.com/dicomtags/(0018,0081)) `Echo Time`
(please note that the DICOM term is in milliseconds not seconds).
The data type number may apply to files from any MRI modality concerned with
a single value for this field, or to the files in a
Expand Down Expand Up @@ -1181,7 +1183,7 @@ FlipAngle:
display_name: Flip Angle
description: |
Flip angle (FA) for the acquisition, specified in degrees.
Corresponds to: DICOM Tag 0018, 1314 `Flip Angle`.
Corresponds to: [DICOM Tag 0018, 1314](https://dicomlookup.com/dicomtags/(0018,1314)) `Flip Angle`.
The data type number may apply to files from any MRI modality concerned with
a single value for this field, or to the files in a
[file collection](SPEC_ROOT/appendices/file-collections.md)
Expand All @@ -1203,8 +1205,8 @@ FrameDuration:
display_name: Frame Duration
description: |
Time duration of each frame in default unit seconds.
This corresponds to DICOM Tag 0018, 1242 `Actual Frame Duration` converted
to seconds.
This corresponds to [DICOM Tag 0018, 1242](https://dicomlookup.com/dicomtags/(0018,1242))
`Actual Frame Duration` converted to seconds.
type: array
items:
type: number
Expand Down Expand Up @@ -1383,7 +1385,8 @@ HardcopyDeviceSoftwareVersion:
description: |
Manufacturer's designation of the software of the device that created this
Hardcopy Image (the printer).
Corresponds to DICOM Tag 0018, 101A `Hardcopy Device Software Version`.
Corresponds to [DICOM Tag 0018, 101A](https://dicomlookup.com/dicomtags/(0018,101A))
`Hardcopy Device Software Version`.
type: string
HardwareFilters:
name: HardwareFilters
Expand Down Expand Up @@ -1605,7 +1608,7 @@ InjectedRadioactivity:
Total amount of radioactivity injected into the patient (for example, `400`).
For bolus-infusion experiments, this value should be the sum of all injected
radioactivity originating from both bolus and infusion.
Corresponds to DICOM Tag 0018, 1074 `Radionuclide Total Dose`.
Corresponds to [DICOM Tag 0018, 1074](https://dicomlookup.com/dicomtags/(0018,1074)) `Radionuclide Total Dose`.
type: number
InjectedRadioactivityUnits:
name: InjectedRadioactivityUnits
Expand Down Expand Up @@ -1635,8 +1638,8 @@ InjectionStart:
description: |
Time of start of injection with respect to `"TimeZero"` in the default unit
seconds.
This corresponds to DICOM Tag 0018, 1072 `Contrast/Bolus Start Time`
converted to seconds relative to `"TimeZero"`.
This corresponds to [DICOM Tag 0018, 1072](https://dicomlookup.com/dicomtags/(0018,1072))
`Contrast/Bolus Start Time` converted to seconds relative to `"TimeZero"`.
type: number
unit: s
InstitutionAddress:
Expand Down Expand Up @@ -1713,7 +1716,7 @@ InversionTime:
The inversion time (TI) for the acquisition, specified in seconds.
Inversion time is the time after the middle of inverting RF pulse to middle
of excitation pulse to detect the amount of longitudinal magnetization.
Corresponds to DICOM Tag 0018, 0082 `Inversion Time`
Corresponds to [DICOM Tag 0018, 0082](https://dicomlookup.com/dicomtags/(0018,0082)) `Inversion Time`
(please note that the DICOM term is in milliseconds not seconds).
type: number
unit: s
Expand Down Expand Up @@ -1752,7 +1755,7 @@ LabelingDuration:
In case an array of numbers is provided,
its length should be equal to the number of volumes specified in
`*_aslcontext.tsv`.
Corresponds to DICOM Tag 0018, 9258 `ASL Pulse Train Duration`.
Corresponds to [DICOM Tag 0018, 9258](https://dicomlookup.com/dicomtags/(0018,9258)) `ASL Pulse Train Duration`.
anyOf:
- type: number
minimum: 0
Expand Down Expand Up @@ -1789,7 +1792,7 @@ LabelingOrientation:
Orientation of the labeling plane (`(P)CASL`) or slab (`PASL`).
The direction cosines of a normal vector perpendicular to the ASL labeling
slab or plane with respect to the patient.
Corresponds to DICOM Tag 0018, 9255 `ASL Slab Orientation`.
Corresponds to [DICOM Tag 0018, 9255](https://dicomlookup.com/dicomtags/(0018,9255)) `ASL Slab Orientation`.
type: array
items:
type: number
Expand Down Expand Up @@ -1851,7 +1854,7 @@ LabelingSlabThickness:
description: |
Thickness of the labeling slab in millimeters.
For non-selective FAIR a zero is entered.
Corresponds to DICOM Tag 0018, 9254 `ASL Slab Thickness`.
Corresponds to [DICOM Tag 0018, 9254](https://dicomlookup.com/dicomtags/(0018,9254)) `ASL Slab Thickness`.
type: number
exclusiveMinimum: 0
unit: mm
Expand Down Expand Up @@ -2003,7 +2006,7 @@ MRAcquisitionType:
display_name: MR Acquisition Type
description: |
Type of sequence readout.
Corresponds to DICOM Tag 0018, 0023 `MR Acquisition Type`.
Corresponds to [DICOM Tag 0018, 0023](https://dicomlookup.com/dicomtags/(0018,0023)) `MR Acquisition Type`.
type: string
enum:
- $ref: objects.enums.OneD.value
Expand All @@ -2014,7 +2017,7 @@ MRTransmitCoilSequence:
display_name: MR Transmit Coil Sequence
description: |
This is a relevant field if a non-standard transmit coil is used.
Corresponds to DICOM Tag 0018, 9049 `MR Transmit Coil Sequence`.
Corresponds to [DICOM Tag 0018, 9049](https://dicomlookup.com/dicomtags/(0018,9049)) `MR Transmit Coil Sequence`.
type: string
MTNumberOfPulses:
name: MTNumberOfPulses
Expand Down Expand Up @@ -2066,14 +2069,14 @@ MTState:
display_name: MT State
description: |
Boolean stating whether the magnetization transfer pulse is applied.
Corresponds to DICOM Tag 0018, 9020 `Magnetization Transfer`.
Corresponds to [DICOM Tag 0018, 9020](https://dicomlookup.com/dicomtags/(0018,9020)) `Magnetization Transfer`.
type: boolean
MagneticFieldStrength:
name: MagneticFieldStrength
display_name: Magnetic Field Strength
description: |
Nominal field strength of MR magnet in Tesla.
Corresponds to DICOM Tag 0018, 0087 `Magnetic Field Strength`.
Corresponds to [DICOM Tag 0018, 0087](https://dicomlookup.com/dicomtags/(0018,0087)) `Magnetic Field Strength`.
type: number
Magnification:
name: Magnification
Expand Down Expand Up @@ -2209,7 +2212,8 @@ MolarActivity:
display_name: Molar Activity
description: |
Molar activity of compound injected.
Corresponds to DICOM Tag 0018, 1077 `Radiopharmaceutical Specific Activity`.
Corresponds to [DICOM Tag 0018, 1077](https://dicomlookup.com/dicomtags/(0018,1077))
`Radiopharmaceutical Specific Activity`.
type: number
MolarActivityMeasTime:
name: MolarActivityMeasTime
Expand Down Expand Up @@ -2473,7 +2477,8 @@ ParallelAcquisitionTechnique:
display_name: Parallel Acquisition Technique
description: |
The type of parallel imaging used (for example `"GRAPPA"`, `"SENSE"`).
Corresponds to DICOM Tag 0018, 9078 `Parallel Acquisition Technique`.
Corresponds to [DICOM Tag 0018, 9078](https://dicomlookup.com/dicomtags/(0018,9078))
`Parallel Acquisition Technique`.
type: string
ParallelReductionFactorInPlane:
name: ParallelReductionFactorInPlane
Expand All @@ -2482,7 +2487,8 @@ ParallelReductionFactorInPlane:
The parallel imaging (for instance, GRAPPA) factor in plane.
Use the denominator of the fraction of k-space encoded for each slice.
For example, 2 means half of k-space is encoded.
Corresponds to DICOM Tag 0018, 9069 `Parallel Reduction Factor In-plane`.
Corresponds to [DICOM Tag 0018, 9069](https://dicomlookup.com/dicomtags/(0018,9069))
`Parallel Reduction Factor In-plane`.
type: number
ParallelReductionFactorOutOfPlane:
name: ParallelReductionFactorOutOfPlane
Expand All @@ -2494,21 +2500,22 @@ ParallelReductionFactorOutOfPlane:
Will typically be 1 for 2D sequences, as each slice in a 2D acquisition is usually fully encoded.
`ParallelReductionFactorOutOfPlane` should not be confused with `MultibandAccelerationFactor`,
as they imply different methods of accelerating the acquisition.
Corresponds to DICOM Tag 0018, 9155 `Parallel Reduction Factor out-of-plane`.
Corresponds to [DICOM Tag 0018, 9155](https://dicomlookup.com/dicomtags/(0018,9155))
`Parallel Reduction Factor out-of-plane`.
type: number
PartialFourier:
name: PartialFourier
display_name: Partial Fourier
description: |
The fraction of partial Fourier information collected.
Corresponds to DICOM Tag 0018, 9081 `Partial Fourier`.
Corresponds to [DICOM Tag 0018, 9081](https://dicomlookup.com/dicomtags/(0018,9081)) `Partial Fourier`.
type: number
PartialFourierDirection:
name: PartialFourierDirection
display_name: Partial Fourier Direction
description: |
The direction where only partial Fourier information was collected.
Corresponds to DICOM Tag 0018, 9036 `Partial Fourier Direction`.
Corresponds to [DICOM Tag 0018, 9036](https://dicomlookup.com/dicomtags/(0018,9036)) `Partial Fourier Direction`.
type: string
PharmaceuticalDoseAmount:
name: PharmaceuticalDoseAmount
Expand Down Expand Up @@ -2772,7 +2779,7 @@ ReceiveCoilName:
display_name: Receive Coil Name
description: |
Information describing the receiver coil.
Corresponds to DICOM Tag 0018, 1250 `Receive Coil Name`,
Corresponds to [DICOM Tag 0018, 1250](https://dicomlookup.com/dicomtags/(0018,1250)) `Receive Coil Name`,
although not all vendors populate that DICOM Tag,
in which case this field can be derived from an appropriate
private DICOM field.
Expand Down Expand Up @@ -2976,7 +2983,7 @@ ResonantNucleus:
The isotope of interest of an MR experiment (for example, `"1H"`, `"13C"`, `"31P"`).
For multi-nuclei experiments such as <sup>1</sup>H-[<sup>13</sup>C] MR,
an array can be used: `["1H", "13C"]`.
Corresponds to DICOM Tag 0018, 9100 `Resonant Nucleus`.
Corresponds to [DICOM Tag 0018, 9100](https://dicomlookup.com/dicomtags/(0018,9100)) `Resonant Nucleus`.
type: array
items:
type: string
Expand Down Expand Up @@ -3165,7 +3172,7 @@ ScanOptions:
display_name: Scan Options
description: |
Parameters of ScanningSequence.
Corresponds to DICOM Tag 0018, 0022 `Scan Options`.
Corresponds to [DICOM Tag 0018, 0022](https://dicomlookup.com/dicomtags/(0018,0022)) `Scan Options`.
anyOf:
- type: string
- type: array
Expand All @@ -3183,7 +3190,7 @@ ScanningSequence:
display_name: Scanning Sequence
description: |
Description of the type of data acquired.
Corresponds to DICOM Tag 0018, 0020 `Scanning Sequence`.
Corresponds to [DICOM Tag 0018, 0020](https://dicomlookup.com/dicomtags/(0018,0020)) `Scanning Sequence`.
anyOf:
- type: string
- type: array
Expand Down Expand Up @@ -3265,14 +3272,14 @@ SequenceName:
display_name: Sequence Name
description: |
Manufacturer's designation of the sequence name.
Corresponds to DICOM Tag 0018, 0024 `Sequence Name`.
Corresponds to [DICOM Tag 0018, 0024](https://dicomlookup.com/dicomtags/(0018,0024)) `Sequence Name`.
type: string
SequenceVariant:
name: SequenceVariant
display_name: Sequence Variant
description: |
Variant of the ScanningSequence.
Corresponds to DICOM Tag 0018, 0021 `Sequence Variant`.
Corresponds to [DICOM Tag 0018, 0021](https://dicomlookup.com/dicomtags/(0018,0021)) `Sequence Variant`.
anyOf:
- type: string
- type: array
Expand Down Expand Up @@ -3525,7 +3532,7 @@ SpectralWidth:
display_name: Spectral Width
description: |
The spectral bandwidth of the MR signal that is sampled, specified in Hz.
Corresponds to DICOM Tag 0018, 9052 `Spectral Width`.
Corresponds to [DICOM Tag 0018, 9052](https://dicomlookup.com/dicomtags/(0018,9052)) `Spectral Width`.
type: number
unit: Hz
SpectrometerFrequency:
Expand Down Expand Up @@ -3842,7 +3849,7 @@ VascularCrushing:
display_name: Vascular Crushing
description: |
Boolean indicating if Vascular Crushing is used.
Corresponds to DICOM Tag 0018, 9259 `ASL Crusher Flag`.
Corresponds to [DICOM Tag 0018, 9259](https://dicomlookup.com/dicomtags/(0018,9259)) `ASL Crusher Flag`.
type: boolean
VascularCrushingVENC:
name: VascularCrushingVENC
Expand All @@ -3852,7 +3859,7 @@ VascularCrushingVENC:
Specify either one number for the total time-series, or provide an array of
numbers, for example when using QUASAR, using the value zero to identify
volumes for which `VascularCrushing` was turned off.
Corresponds to DICOM Tag 0018, 925A `ASL Crusher Flow Limit`.
Corresponds to [DICOM Tag 0018, 925A](https://dicomlookup.com/dicomtags/(0018,925A)) `ASL Crusher Flow Limit`.
anyOf:
- type: number
unit: cm/s
Expand Down
Loading

0 comments on commit 9ec4579

Please sign in to comment.