Skip to content
Merged
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
1 change: 0 additions & 1 deletion conda/build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/bash

set -euo pipefail

pip install .
4 changes: 3 additions & 1 deletion conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ requirements:
- numpy>=1.22.0
- h5py>=2.3
- nose>=1.0
- docformatter<=1.4
- xsdata>=22.2

run:
- python
- xsdata>=22.2
- numpy>=1.22.0
- h5py>=2.3
- xsdata>=22.2

test:
source_files:
Expand All @@ -35,4 +37,4 @@ about:
Python interface and utilities for the ISMRM Raw Data (ISMRMRD a.k.a. MRD) format.
dev_url: https://github.com/ismrmrd/ismrmrd-python
doc_url: https://github.com/ismrmrd/ismrmrd-python
doc_source_url: https://github.com/ismrmrd/ismrmrd-python/blob/main/README.md
doc_source_url: https://github.com/ismrmrd/ismrmrd-python/blob/main/README.md
82 changes: 58 additions & 24 deletions schema/ismrmrd.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<xs:all>
<xs:element minOccurs="0" name="patientName" type="xs:string" />
<xs:element minOccurs="0" name="patientWeight_kg" type="xs:float" />
<xs:element minOccurs="0" name="patientHeight_m" type="xs:float"/>
<xs:element minOccurs="0" name="patientHeight_m" type="xs:float" />
<xs:element minOccurs="0" name="patientID" type="xs:string" />
<xs:element minOccurs="0" name="patientBirthdate" type="xs:date" />
<xs:element minOccurs="0" name="patientGender">
Expand Down Expand Up @@ -67,7 +67,7 @@
<xs:element minOccurs="0" name="seriesDate" type="xs:date" />
<xs:element minOccurs="0" name="seriesTime" type="xs:time" />
<xs:element minOccurs="1" name="patientPosition" type="patientPositionType" />
<xs:element minOccurs="0" name="relativeTablePosition" type="threeDimensionalFloatType" />
<xs:element minOccurs="0" name="relativeTablePosition" type="threeDimensionalFloat" />
<xs:element minOccurs="0" name="initialSeriesNumber" type="xs:long" />
<xs:element minOccurs="0" name="protocolName" type="xs:string" />
<xs:element minOccurs="0" name="sequenceName" type="xs:string" />
Expand Down Expand Up @@ -123,7 +123,6 @@
<xs:element maxOccurs="1" minOccurs="0" name="trajectoryDescription" type="trajectoryDescriptionType" />
<xs:element maxOccurs="1" minOccurs="0" name="parallelImaging" type="parallelImagingType" />
<xs:element maxOccurs="1" minOccurs="0" name="echoTrainLength" type="xs:long" />
<xs:element maxOccurs="1" minOccurs="0" name="multiband" type="multibandType"/>
</xs:all>
</xs:complexType>

Expand All @@ -134,13 +133,6 @@
</xs:all>
</xs:complexType>

<xs:complexType name="multibandType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="spacing" type="xs:float"/>
<xs:element name="phaseShift" type="xs:float"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="matrixSizeType">
<xs:sequence>
<xs:element default="1" maxOccurs="1" minOccurs="1" name="x" type="xs:unsignedShort" />
Expand Down Expand Up @@ -174,14 +166,6 @@
</xs:all>
</xs:complexType>

<xs:complexType name="threeDimensionalFloatType">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="x" type="xs:float" />
<xs:element maxOccurs="1" minOccurs="1" name="y" type="xs:float" />
<xs:element maxOccurs="1" minOccurs="1" name="z" type="xs:float" />
</xs:sequence>
</xs:complexType>

<xs:complexType name="encodingLimitsType">
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="kspace_encoding_step_0" type="limitType" />
Expand Down Expand Up @@ -221,6 +205,7 @@
<xs:element maxOccurs="1" minOccurs="1" name="identifier" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterLong" type="userParameterLongType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterDouble" type="userParameterDoubleType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="userParameterString" type="userParameterStringType" />
<xs:element maxOccurs="1" minOccurs="0" name="comment" type="xs:string" />
</xs:sequence>
</xs:complexType>
Expand All @@ -233,22 +218,44 @@
<xs:element minOccurs="0" maxOccurs="unbounded" type="xs:float" name="flipAngle_deg" />
<xs:element minOccurs="0" maxOccurs="1" type="xs:string" name="sequence_type" />
<xs:element minOccurs="0" maxOccurs="unbounded" type="xs:float" name="echo_spacing" />
<xs:element minOccurs="0" maxOccurs="unbounded" type="diffusionType" name="diffusion"/>
<xs:element minOccurs="0" maxOccurs="1" type="diffusionDimensionType" name="diffusionDimension" />
<xs:element minOccurs="0" maxOccurs="unbounded" type="diffusionType" name="diffusion" />
<xs:element minOccurs="0" maxOccurs="1" type="xs:string" name="diffusionScheme" />
</xs:sequence>
</xs:complexType>

<xs:complexType name="diffusionType">
<xs:sequence>
<xs:element type="gradientDirectionType" name="gradientDirection" />
<xs:element type="xs:float" name="bvalue"/>
<xs:element type="xs:float" name="bvalue" />
</xs:sequence>
</xs:complexType>


<xs:simpleType name="diffusionDimensionType">
<xs:restriction base="xs:string">
<xs:enumeration value="average" />
<xs:enumeration value="contrast" />
<xs:enumeration value="phase" />
<xs:enumeration value="repetition" />
<xs:enumeration value="set" />
<xs:enumeration value="segment" />
<xs:enumeration value="user_0" />
<xs:enumeration value="user_1" />
<xs:enumeration value="user_2" />
<xs:enumeration value="user_3" />
<xs:enumeration value="user_4" />
<xs:enumeration value="user_5" />
<xs:enumeration value="user_6" />
<xs:enumeration value="user_7" />
</xs:restriction>
</xs:simpleType>

<xs:complexType name="gradientDirectionType">
<xs:all>
<xs:element type="xs:float" name="rl"/>
<xs:element type="xs:float" name="ap"/>
<xs:element type="xs:float" name="fh"/>
<xs:element type="xs:float" name="rl" />
<xs:element type="xs:float" name="ap" />
<xs:element type="xs:float" name="fh" />
</xs:all>
</xs:complexType>

Expand Down Expand Up @@ -295,6 +302,32 @@
</xs:sequence>
</xs:complexType>


<xs:complexType name="multibandType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="spacing" type="multibandSpacingType" />
<xs:element name="deltaKz" minOccurs="1" maxOccurs="1" type="xs:float" />
<xs:element name="multiband_factor" minOccurs="1" maxOccurs="1" type="xs:unsignedInt" />
<xs:element name="calibration" minOccurs="1" maxOccurs="1" type="multibandCalibrationType" />
<xs:element name="calibration_encoding" minOccurs="1" maxOccurs="1" type="xs:unsignedLong" />
</xs:sequence>
</xs:complexType>

<xs:complexType name="multibandSpacingType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="dZ" type="xs:float" />
</xs:sequence>
</xs:complexType>

<xs:simpleType name="multibandCalibrationType">
<xs:restriction base="xs:string">
<xs:enumeration value="separable2D" />
<xs:enumeration value="full3D" />
<xs:enumeration value="other" />
</xs:restriction>
</xs:simpleType>


<xs:complexType name="accelerationFactorType">
<xs:all>
<xs:element name="kspace_encoding_step_1" type="xs:unsignedShort" />
Expand Down Expand Up @@ -327,6 +360,7 @@
<xs:element type="accelerationFactorType" name="accelerationFactor" />
<xs:element maxOccurs="1" minOccurs="0" type="calibrationModeType" name="calibrationMode" />
<xs:element maxOccurs="1" minOccurs="0" type="interleavingDimensionType" name="interleavingDimension" />
<xs:element maxOccurs="1" minOccurs="0" type="multibandType" name="multiband" />
</xs:sequence>
</xs:complexType>

Expand All @@ -349,4 +383,4 @@
<xs:element name="userParameters" type="userParametersType" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</xs:schema>
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def to_uri(filename):

setup(
name='ismrmrd',
version='1.13.1',
version='1.14.0',
author='ISMRMRD Developers',
description='Python implementation of the ISMRMRD',
license='Public Domain',
Expand All @@ -74,8 +74,8 @@ def to_uri(filename):
'Operating System :: OS Independent',
'Topic :: Scientific/Engineering :: Medical Science Apps.'
],
install_requires=['xsdata>=22.2', 'numpy>=1.22.0', 'h5py>=2.3'],
setup_requires=['nose>=1.0', 'xsdata[cli]>=22.2', 'jinja2 >= 2.11'],
install_requires=['xsdata>=22.12', 'numpy>=1.22.0', 'h5py>=2.3'],
setup_requires=['nose>=1.0', 'xsdata[cli]>=22.12', 'jinja2 >= 2.11'],
test_suite='nose.collector',
cmdclass={'build_py':my_build_py}
)