From a2357a42ae81dd3ffdf2d1c4116c3613b32a4732 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Thu, 19 Dec 2024 12:13:30 -0500 Subject: [PATCH 1/2] feat(schema): Encode qMRI metadata requirements --- src/schema/rules/sidecars/qmri.yaml | 104 ++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 src/schema/rules/sidecars/qmri.yaml diff --git a/src/schema/rules/sidecars/qmri.yaml b/src/schema/rules/sidecars/qmri.yaml new file mode 100644 index 0000000000..a3c18918a5 --- /dev/null +++ b/src/schema/rules/sidecars/qmri.yaml @@ -0,0 +1,104 @@ +--- +# Anatomical qMRI sequences +VariableFlipAngleMetadata: + selectors: + - suffix == "VFA" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + PulseSequenceType: required + RepetitionTimeExcitation: required + +InversionRecoveryT1Metadata: + selectors: + - suffix == "IRT1" + - match(extension, "^\.nii(\.gz)?$") + fields: + InversionTime: required + +MP2RAGEMetadata: + selectors: + - suffix == "MP2RAGE" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + InversionTime: required + RepetitionTimeExcitation: required + RepetitionTimePreparation: required + NumberShots: required + MagneticFieldStrength: required + +MESpinEchoMetadata: + selectors: + - suffix == "MESE" + - match(extension, "^\.nii(\.gz)?$") + fields: + EchoTime: required + +MEGradientEchoMetadata: + selectors: + - suffix == "MEGRE" + - match(extension, "^\.nii(\.gz)?$") + fields: + EchoTime: required + +MTRatioMetadata: + selectors: + - suffix == "MTR" + - match(extension, "^\.nii(\.gz)?$") + fields: + MTState: required + +MTSaturationMetadata: + selectors: + - suffix == "MTS" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + MTState: required + RepetitionTimeExcitation: required + +MultiParametricMappingMetadata: + selectors: + - suffix == "MPM" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + MTState: required + RepetitionTimeExcitation: required + +# Field mapping qMRI sequences +TB1DAMMetadata: + selectors: + - suffix == "TB1DAM" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + +TB1EPIMetadata: + selectors: + - suffix == "TB1EPI" + - match(extension, "^\.nii(\.gz)?$") + fields: + EchoTime: required + FlipAngle: required + TotalReadoutTime: required + MixingTime: required + +TB1AFIMetadata: + selectors: + - suffix == "TB1AFI" + - match(extension, "^\.nii(\.gz)?$") + fields: + RepetitionTimeExcitation: required + +TB1SRGEMetadata: + selectors: + - suffix == "TB1SRGE" + - match(extension, "^\.nii(\.gz)?$") + fields: + FlipAngle: required + InversionTime: required + RepetitionTimeExcitation: required + RepetitionTimePreparation: required + NumberShots: required From 96e57482d1b101212586767a2afbef9826cae00b Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Thu, 19 Dec 2024 12:14:36 -0500 Subject: [PATCH 2/2] fix: Indicate RepetitionTimeExcitation for TB1AFI --- src/appendices/qmri.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/appendices/qmri.md b/src/appendices/qmri.md index d5367cfcdd..83247c119b 100644 --- a/src/appendices/qmri.md +++ b/src/appendices/qmri.md @@ -303,7 +303,7 @@ and a guide for using macros can be found at | -------------------- | ---------------------------------------------------------------------------------------------------- | | TB1DAM | `FlipAngle` | | TB1EPI | `EchoTime`, `FlipAngle`, `TotalReadoutTime`, `MixingTime` | -| TB1AFI | `RepetitionTime` | +| TB1AFI | `RepetitionTimeExcitation` | | TB1TFL | | | TB1RFM | | | TB1SRGE\* | `FlipAngle`, `InversionTime`, `RepetitionTimeExcitation`, `RepetitionTimePreperation`, `NumberShots` |