Skip to content
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
Binary file modified .DS_Store
Binary file not shown.
30 changes: 30 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
type: software
title: JaMMaTo
abstract: The software JaMMaTo (JSON Metadata Mapping Tool) is a metadata mapping
tool based on Python, and is used for mapping metadata from a proprietary file format
schema to a JSON format schema.
version: v4.0.0rc
keywords:
- MRI
- DICOM
- metadata
- extraction
- schema
authors:
- given-names: Nicolas
orcid: https://orcid.org/0009-0007-0235-4995
family-names: Blumenröhr
- given-names: Rossella
orcid: https://orcid.org/0000-0003-2534-0063
family-names: Aversa
contact:
- given-names: Gabin Thibaut
orcid: https://orcid.org/0000-0002-6745-3464
family-names: Oumbe Tekam
- given-names: Germaine
orcid: https://orcid.org/0000-0003-3974-3728
family-names: Götzelmann
license: Apache-2.0
repository-code: https://github.com/kit-data-manager/JaMMaTo
360 changes: 360 additions & 0 deletions MRI_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,360 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"title": "Magnetic Resonance Imaging (MRI) schema",
"description": "This schema provides the description of an MRI study with at least one series.",
"definitions": {},
"required": [
"study"
],
"type": "object",
"properties": {
"study": {
"required": [
"studyID",
"studyDateTime"
],
"type": "object",
"description": "A collection of one or more Series that are scientifically related (depending on the research context) for the purpose of the Experiment",
"properties": {
"studyID": {
"type": "string",
"description": "ID of the Study"
},
"studyTitle": {
"type": "string",
"description": "Title of the Study"
},
"studyDateTime": {
"type": "string",
"format": "date-time"
},
"program": {
"type": "string",
"description": "Details concerning the program (or software) used for aquisition"
},
"user": {
"type": "object",
"description": "Contact information of the user responsible for the measurement",
"properties": {
"name": {
"type": "string"
},
"role": {
"type": "string",
"description": "Role of the user to be selected from: *data curator, *instrument scientist, *team leader, *team member"
},
"affiliation": {
"type": "object",
"properties": {
"institutionName": {
"type": "string"
},
"institutionAcronym": {
"type": "string"
},
"institutionDepartment": {
"type": "string"
},
"institutionID": {
"type": "string"
}
}
},
"email": {
"type": "string"
}
}
},
"sample": {
"type": "object",
"description": "A physical object (or a collection of objects) which is considered as a single discrete, uniquely identified unit which is exposed to the Instrument during one or more Measurements. MRI Samples are usually managed or being placed in a container. The term is equivalent to Specimen",
"properties": {
"sampleName": {
"type": "string"
},
"sampleID": {
"type": "string"
},
"sampleSize": {
"type": "object",
"description": "Length or size of the sample, in meters.",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"default": "m",
"enum": [
"nm",
"um",
"mm",
"cm",
"m"
]
}
}
},
"sampleWeight": {
"type": "object",
"description": "Weight of the sample, in kilograms.",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"default": "kg",
"enum": [
"kg",
"g"
]
}
}
},
"measurementConditions": {
"type": "object",
"description": "Nominal field strength of the MR Magnet, in Tesla.",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"default": "T",
"enum": [
"T"
]
}
}
}
}
},
"instrument": {
"type": "object",
"description": "Identifiable piece of equipment used by one or more Users to perform one or more Measurements and to generate Raw Data. The Instrument is located in a laboratory hosted by an institution",
"properties": {
"instrumentName": {
"type": "string"
},
"instrumentID": {
"type": "string"
},
"instrumentManufacturer": {
"type": "object",
"properties": {
"manufacturerName": {
"type": "string"
},
"modelName": {
"type": "string"
},
"manufacturerID": {
"type": "string"
}
}
}
}
},
"series": {
"type": "array",
"description": "A set of one or more Images or Spectra (i.e. Processed Data) generated after the processing of Raw Data collected during Measurements along the z-axis of a Sample as part of the same Study and stored in one or multiple DICOM Files",
"items": {
"type": "object",
"properties": {
"seriesID": {
"type": "string"
},
"seriesTitle": {
"type": "string"
},
"sequenceProtocol": {
"type": "object",
"description": "The parameters of the Instrument which define the conditions under which one or more Measurements are performed and a Series is generated. Usually, there is a set of Protocols that are applied on a routine basis. The choice of a Protocol mainly depends on the Sample, the Instrument and the research question addressed by an Experiment",
"properties": {
"sequenceProtocolName": {
"type": "string"
},
"effectiveEchoTime": {
"type": "object",
"description": "Time in ms between the middle of the excitation pulse and the peak of the echo signal produced",
"properties": {
"value": {
"type": [
"number",
"array"
]
},
"unit": {
"type": "string",
"default": "ms",
"enum": [
"ms"
]
}
}
},
"repetitionTime": {
"type": "object",
"description": "Time in ms between the beginning of a pulse sequence and the beginning of the subsequent (essentially identical) pulse sequence",
"properties": {
"value": {
"type": [
"number",
"array"
]
},
"unit": {
"type": "string",
"default": "ms",
"enum": [
"ms"
]
}
}
},
"flipAngle": {
"type": "object",
"description": "The amount of rotation in degree the net magnetization experiences during application of a pulse",
"properties": {
"value": {
"type": [
"number",
"array"
]
},
"unit": {
"type": "string",
"default": "degree",
"enum": [
"degree",
"°"
]
}
}
}
}
},
"images": {
"type": "object",
"description": "The Fourier transformation of spatially encoded signals collected in k-space (Raw Data) as an array of pixel values representing the intensity of mainly the H-atom signals from the Sample.",
"properties": {
"allImages": {
"type": "object",
"properties": {
"numberOfImages": {
"type": "string"
},
"imageOrientation": {
"type": "array",
"items": {
"type": [
"number",
"array"
]
}
},
"pixelSpacing": {
"type": "object",
"properties": {
"value": {
"type": "array",
"items": {
"type": "number"
}
},
"unit": {
"type": "string",
"default": "mm",
"enum": [
"mm"
]
}
}
},
"sliceThickness": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"default": "mm",
"enum": [
"mm"
]
}
}
},
"imageSize": {
"type": "object",
"properties": {
"rows": {
"type": "integer"
},
"columns": {
"type": "integer"
}
}
},
"pixelRange": {
"type": "object",
"properties": {
"pixelBandwidth": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"unit": {
"type": "string",
"default": "Hz",
"enum": [
"Hz"
]
}
}
},
"smallestImagePixelValue": {
"type": "integer"
},
"largestImagePixelValue": {
"type": "integer"
},
"pixelRepresentation": {
"type": "integer"
}
}
}
}
},
"perImage": {
"type": "array",
"items": {
"type": "object",
"properties": {
"imageNumber": {
"type": "integer"
},
"sampleImagePosition": {
"type": "array",
"items": {
"type": [
"number",
"array"
]
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Loading
Loading