Skip to content

Commit a11ef79

Browse files
authored
Merge pull request #53 from openMetadataInitiative/dev
Merge dev to v1
2 parents c58facd + c9fe7d3 commit a11ef79

12 files changed

Lines changed: 464 additions & 3 deletions
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Schema Validator
2+
3+
on:
4+
- pull_request
5+
- workflow_dispatch
6+
7+
jobs:
8+
validate-schema:
9+
uses: openMetadataInitiative/openMINDS_actions/.github/workflows/schema_validator.yml@main
10+
with:
11+
branch: ${{ inputs.branch }}
12+
repository: ${{ inputs.repository }}

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# How to contribute
2+
3+
The openMINDS metadata framework is an open-source project and community contributions are highly appreciated.
4+
If you want to contribute please follow our :arrow_right: [**contribution guidelines**][contribution-url].
5+
6+
<!-- MARKDOWN LINKS & IMAGES -->
7+
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
8+
[contribution-url]: https://openminds-documentation.readthedocs.io/en/latest/shared/how_to_contribute.html

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021 Human Brain Project
3+
Copyright (c) 2021, 2022 CNRS, Forschungszentrum Jülich GmbH, Universitetet i Oslo, EBRAINS AISBL
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,33 @@
1-
# openMINDS_MRI
2-
A metadata model for MRI experiments; an openMINDS extension
1+
<a href="/img/openMINDS_MRI_logo_light.png">
2+
<picture>
3+
<source media="(prefers-color-scheme: dark)" srcset="/img/openMINDS_neuroimaging_logo_dark.png">
4+
<source media="(prefers-color-scheme: light)" srcset="/img/openMINDS_neuroimaging_logo_light.png">
5+
<img alt="openMINDS_MRI metadata model" src="/img/openMINDS_MRI_logo_light.png" title="Logo created by U. Schlegel, L. Zehl, C. Hagen Blixhavn" align="right" height="70">
6+
</picture>
7+
</a>
8+
9+
# openMINDS_neuroimaging
10+
11+
12+
[![GitHub][license-shield]][license-url]
13+
[![GitHub contributors][contributors-shield]][contributors-url]
14+
15+
The **openMINDS_neuroimaging** repository hosts one of the metadata models of the **openMINDS metadata framework**. It defines modular metadata schemas for describing neuroimaging experiments.
16+
17+
To generally learn more about the openMINDS metadata framework please go to :arrow_right: [**ReadTheDocs**][docu-url].
18+
Or explore directly the metadata schemas of the openMINDS_neuroimaging metadata model under :arrow_right: [**schema specifications**][docu-neuroimaging-url].
19+
20+
## How to contribute
21+
22+
The openMINDS metadata framework is an open-source project and community contributions are highly appreciated.
23+
If you want to contribute please follow our :arrow_right: [**contribution guidelines**][contribution-url].
24+
25+
<!-- MARKDOWN LINKS & IMAGES -->
26+
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
27+
[contribution-url]: https://openminds-documentation.readthedocs.io/en/latest/shared/contribution_guidelines.html
28+
[contributors-url]: https://github.com/openMetadataInitiative/openMINDS_MRI/graphs/contributors
29+
[contributors-shield]: https://img.shields.io/github/contributors/openMetadataInitiative/openMINDS_MRI
30+
[docu-url]: https://openminds-documentation.readthedocs.io
31+
[docu-neuroimaging-url]: https://openminds-documentation.readthedocs.io/en/v3.0/schema_specifications/mri.html
32+
[license-url]: https://raw.githubusercontent.com/openMetadataInitiative/openMINDS_MRI/v1/LICENSE
33+
[license-shield]: https://img.shields.io/github/license/openMetadataInitiative/openMINDS_MRI
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
{
2+
"_extends": "/core/schemas/research/experimentalActivity.schema.tpl.json",
3+
"required": [
4+
"device",
5+
"input",
6+
"output",
7+
"specimenOrientation"
8+
],
9+
"properties": {
10+
"contrastAgent": {
11+
"_instruction": "Add the contrast agent(s) administered for this acquisition, including for each the agent identity and administered amount; if no contrast agent was used, leave this field null. Include all agents given prior to or during the scan.",
12+
"_linkedTypes": [
13+
"chemicals:AmountOfChemical"
14+
],
15+
"minItems": 1,
16+
"type": "array",
17+
"uniqueItems": true
18+
},
19+
"device": {
20+
"_instruction": "Add the magnetic resonance imaging (MRI) scanner used for this acquisition. This reference should identify the specific device configuration under which the scan was performed.",
21+
"_linkedTypes": [
22+
"neuroimaging:MRIScannerUsage"
23+
]
24+
},
25+
"distortionCorrection": {
26+
"_instruction": "Add the distortion correction data used for this acquisition, linking to the calibration files applied during image reconstruction or post-processing. If no distortion correction was performed, leave this field null.",
27+
"_linkedTypes": [
28+
"core:File"
29+
],
30+
"minItems": 1,
31+
"type": "array",
32+
"uniqueItems": true
33+
},
34+
"input": {
35+
"_instruction": "Add the specimen (subject or tissue sample) in the physical and biological state in which it was scanned, referencing the corresponding specimen record at the time of imaging.",
36+
"_linkedTypes": [
37+
"core:SubjectState",
38+
"core:TissueSampleState"
39+
]
40+
},
41+
"motionCorrection": {
42+
"_instruction": "Add the motion correction data used for this acquisition, linking to the calibration files or reference images applied during image reconstruction or post-processing. If no motion correction was performed, leave this field null.",
43+
"_linkedTypes": [
44+
"core:File"
45+
],
46+
"minItems": 1,
47+
"type": "array",
48+
"uniqueItems": true
49+
},
50+
"output":{
51+
"_instruction": "Add the output data generated by this acquisition by linking to one or more files containing the primary imaging outputs and/or, if applicable, any secondary reconstructed or corrected outputs produced during post-processing.",
52+
"_linkedTypes": [
53+
"core:File"
54+
],
55+
"minItems": 1,
56+
"type": "array",
57+
"uniqueItems": true
58+
},
59+
"registrationData": {
60+
"_instruction": "Add the registration data used for this acquisition, linking to the transformation and/or reference files applied during image alignment in post-processing. If no registration was performed, leave this field null.",
61+
"_linkedTypes": [
62+
"core:File"
63+
],
64+
"minItems": 1,
65+
"type": "array",
66+
"uniqueItems": true
67+
68+
},
69+
"specimenOrientation": {
70+
"_instruction": "Add the specimen orientation as the anatomical directions corresponding to the scanner X, Y, and Z axes, describing the alignment of the specimen's anatomy with the scanner coordinate system. Note that this orientation may differ from the prescribed slice orientation, especially in nonstandard specimen positioning.",
71+
"_linkedTypes": [
72+
"controlledTerms:AnatomicalAxesOrientation"
73+
]
74+
},
75+
"targetAnatomy": {
76+
"_instruction": "Add the target anatomy, indicating the primary anatomical structure or region intended to be imaged in this acquisition. This field describes the imaging objective (for example, organ, tissue, or structure) and may be derived from the acquisition protocol description.",
77+
"_linkedCategories": [
78+
"anatomicalLocation"
79+
]
80+
}
81+
}
82+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"_extends": "activity/MRIAcquisition.schema.tpl.json",
3+
"_type": "neuroimaging:DynamicMRIAcquisition",
4+
"required": [
5+
"behavioralProtocol",
6+
"volumeAcquisitionTime"
7+
],
8+
"properties": {
9+
"behavioralProtocol": {
10+
"_instruction": "Add the behavioral protocol or protocols applied during this acquisition, including all tasks or observed behavioral conditions (for example, resting state).",
11+
"_linkedTypes": [
12+
"core:BehavioralProtocol"
13+
],
14+
"minItems": 1,
15+
"type": "array",
16+
"uniqueItems": true
17+
},
18+
"delayTime": {
19+
"_instruction": "Enter the delay time, defined as the time interval between a protocol-defined reference event (for example, stimulus onset, contrast administration, or physiological trigger) and the start of dynamic image acquisition, expressed in seconds. This value should reflect the actual timing applied during the scan.",
20+
"_embeddedTypes": [
21+
"core:QuantitativeValue"
22+
]
23+
},
24+
"numberOfDiscardedVolumes": {
25+
"_instruction": "Enter the number of image volumes discarded by the operator or analyst prior to post-processing, including initial equilibration volumes and any later volumes removed due to artifacts or instability. This value should reflect the total user-defined exclusion applied after acquisition.",
26+
"type": "integer"
27+
},
28+
"volumeAcquisitionTime": {
29+
"_instruction": "Enter the volume acquisition time, defined as the time required to acquire a single image volume, expressed in seconds. This value is typically equivalent to the repetition time for volume-based acquisitions and can be retrieved from the sequence timing information in the DICOM header.",
30+
"_embeddedTypes": [
31+
"core:QuantitativeValue"
32+
]
33+
},
34+
"volumeTiming": {
35+
"_instruction": "Enter the volume timing as an array specifying the acquisition time of each volume relative to the start of the dynamic scan, expressed in seconds, with one entry per acquired volume. These values may be derived from the repetition time or extracted from the acquisition metadata.",
36+
"_embeddedTypes": [
37+
"core:QuantitativeValueArray"
38+
]
39+
}
40+
}
41+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"_extends": "activity/MRIAcquisition.schema.tpl.json",
3+
"_type": "neuroimaging:StaticMRIAcquisition"
4+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"_extends": "/core/schemas/products/device.schema.tpl.json",
3+
"_type": "neuroimaging:MRICoil",
4+
"required": [
5+
"elementCount",
6+
"mountingType"
7+
],
8+
"properties": {
9+
"elementCount": {
10+
"_instruction": "Enter the total number of coil elements.",
11+
"minimum": 1,
12+
"type": "integer"
13+
},
14+
"intendedMountingLocation": {
15+
"_instruction": "Add the mounting location intended by the manufacturer (e.g., head, neck, knee).",
16+
"_linkedTypes": [
17+
"controlledTerms:ExternalBodyRegion"
18+
]
19+
},
20+
"mountingType": {
21+
"_instruction": "Add the coil mounting type (e.g., built-in, external, interventional, wearable).",
22+
"_linkedTypes": [
23+
"controlledTerms:DeviceMountingType"
24+
]
25+
}
26+
}
27+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"_extends": "/core/schemas/research/deviceUsage.schema.tpl.json",
3+
"_type": "neuroimaging:MRICoilUsage",
4+
"required": [
5+
"signalDirectionality"
6+
],
7+
"properties": {
8+
"activeElement": {
9+
"_instruction": "Only applicable to radiofrequency (RF) coils! Enter the active coil element identifier(s) corresponding to the transmitting and/or receiving elements that were electrically active during this acquisition; the number of identifiers typically matches the number of physical elements in the selected RF coil and may be fewer if some elements were disabled.",
10+
"items": {
11+
"type": "string"
12+
},
13+
"minItems": 1,
14+
"type": "array",
15+
"uniqueItems": true
16+
},
17+
"device": {
18+
"_instruction": "Add the MRI Coil used.",
19+
"_linkedTypes": [
20+
"neuroimaging:MRICoil"
21+
]
22+
},
23+
"mountingLocation": {
24+
"_instruction": "Add the anatomical mounting location of the coil, indicating where the coil was positioned on or around the subject (for example, head, neck, knee, or torso). This information is typically applicable to radiofrequency (RF) coils and may be omitted for gradient or shim systems.",
25+
"_linkedTypes": [
26+
"controlledTerms:ExternalBodyRegion"
27+
]
28+
},
29+
"signalDirectionality": {
30+
"_instruction": "Add the signal directionality of the coil, indicating whether it was used for signal transmission, reception, or both. This information is typically defined in the system configuration and can be retrieved from the DICOM header or scanner hardware metadata.",
31+
"_linkedTypes": [
32+
"controlledTerms:SignalDirectionality"
33+
]
34+
}
35+
}
36+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"_extends": "/core/schemas/products/device.schema.tpl.json",
3+
"_type": "neuroimaging:MRIScanner",
4+
"required": [
5+
"magneticFieldStrength"
6+
],
7+
"properties": {
8+
"magneticFieldStrength": {
9+
"_embeddedTypes": [
10+
"core:QuantitativeValue"
11+
],
12+
"_instruction": "Enter the nominal field strength of MR magnet in Tesla."
13+
}
14+
}
15+
}

0 commit comments

Comments
 (0)