Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(schema): Encode qMRI metadata requirements #2020

Open
wants to merge 2 commits into
base: maint/1.10.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/appendices/qmri.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@agahkarakuzu I believe this is what TB1AFI should have said, but I want to run it by you.

| TB1TFL | |
| TB1RFM | |
| TB1SRGE<sup>\*</sup> | `FlipAngle`, `InversionTime`, `RepetitionTimeExcitation`, `RepetitionTimePreperation`, `NumberShots` |
Expand Down
104 changes: 104 additions & 0 deletions src/schema/rules/sidecars/qmri.yaml
Original file line number Diff line number Diff line change
@@ -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
Loading