[ismrmrd] 83/281: Updated documentation and moved matlab examples (temporarily) back to the original folder while new examples are being made
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:00:59 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to annotated tag ismrmrd0.5
in repository ismrmrd.
commit 97ce95411e12c82630735956cc881e56e2da5a80
Author: Michael S. Hansen <michael.hansen at nih.gov>
Date: Wed Jan 23 10:23:31 2013 -0500
Updated documentation and moved matlab examples (temporarily) back to the original folder while new examples are being made
---
README.html | 140 ++++++++++++++++++---
doc/README.rst | 19 +--
.../{deprecated => }/ismrmrd_header2struct.m | 0
.../{deprecated => }/simple_cartesian_recon.m | 0
examples/matlab/{deprecated => }/simple_gridder.m | 0
.../matlab/{deprecated => }/simple_spiral_recon.m | 0
schema/ismrmrd_example.xml | 17 ++-
7 files changed, 146 insertions(+), 30 deletions(-)
diff --git a/README.html b/README.html
index 60c5d78..3551600 100644
--- a/README.html
+++ b/README.html
@@ -378,6 +378,7 @@ ul.auto-toc {
<li>Michael S. Hansen, National Institutes of Health, USA</li>
<li>Nick Zwart, Barrow Neurological Institute, Phoenix, Arizona</li>
<li>Souheil Inati, National Institutes of Health, USA</li>
+<li>Joe Naegele, National Institutes of Health, USA</li>
<li>Kaveh Vahedipour, Juelich Research Centre, Juelich, Germany</li>
</ul>
</div>
@@ -434,7 +435,7 @@ sudo make install
<h2><a class="toc-backref" href="#id6">Mac OSX Installation</a></h2>
<p>There are numerous different package management systems for Mac. In this example, we have used MacPorts (<a class="reference external" href="http://www.macports.org/">http://www.macports.org/</a>). First install the dependencies available in MacPorts:</p>
<pre class="literal-block">
-sudo port install wget hdf5-18 h5utils boost xercesc3 git cmake doxygen
+sudo port install wget hdf5-18 h5utils boost xercesc3 git-core git-extras cmake doxygen
</pre>
<p>Next install CodeSynthesis XSD (<a class="reference external" href="http://www.codesynthesis.com/products/xsd/">http://www.codesynthesis.com/products/xsd/</a>):</p>
<pre class="literal-block">
@@ -532,6 +533,7 @@ msbuild .\ISMRMRD.sln /p:Configuration=Release
<systemModel>Avanto</systemModel>
<systemFieldStrength_T>1.494</systemFieldStrength_T>
<receiverChannels>32</receiverChannels>
+ <relativeReceiverNoiseBandwidth>0.79</relativeReceiverNoiseBandwidth>
</acquisitionSystemInformation>
<experimentalConditions>
<H1resonanceFrequency_Hz>63642459</H1resonanceFrequency_Hz>
@@ -578,13 +580,25 @@ msbuild .\ISMRMRD.sln /p:Configuration=Release
<maximum>0</maximum>
<center>0</center>
</slice>
+ <set>
+ <minimum>0</minimum>
+ <maximum>0</maximum>
+ <center>0</center>
+ </set>
</encodingLimits>
</encoding>
- <sequenceTiming>
+ <parallelImaging>
+ <accelerationFactor>
+ <kspace_encoding_step_1>1</kspace_encoding_step_1>
+ <kspace_encoding_step_2>1</kspace_encoding_step_2>
+ </accelerationFactor>
+ <calibrationMode>other</calibrationMode>
+ </parallelImaging>
+ <sequenceParameters>
<TR>4.6</TR>
<TE>2.35</TE>
<TI>300</TI>
- </sequenceTiming>
+ </sequenceParameters>
</ismrmrdHeader>
@@ -1181,9 +1195,11 @@ std::streambuf::setg (b, b, e);
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="subjectInformation" type="subjectInformationType"/>
- <xs:element maxOccurs="1" minOccurs="0" name="acquisitionSystemInformation" type="acquisitionSystemInformationType"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="studyInformation" type="studyInformationType"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="measurementInformation" type="measurementInformationType"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="acquisitionSystemInformation" type="acquisitionSystemInformationType"/>
<xs:element maxOccurs="1" minOccurs="1" name="experimentalConditions" type="experimentalConditionsType"/>
- <xs:element maxOccurs="65535" minOccurs="1" name="encoding">
+ <xs:element maxOccurs="unbounded" minOccurs="1" name="encoding">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="1" name="encodedSpace" type="encodingSpaceType"/>
@@ -1195,7 +1211,8 @@ std::streambuf::setg (b, b, e);
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="parallelImaging" type="parallelImagingType"/>
- <xs:element maxOccurs="1" minOccurs="0" name="sequenceTiming" type="sequenceTimingType"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="sequenceParameters" type="sequenceParametersType"/>
+ <xs:element maxOccurs="1" minOccurs="0" name="dicomParameters" type="dicomParametersType"/>
<xs:element maxOccurs="1" minOccurs="0" name="userParameters">
<xs:complexType>
<xs:sequence>
@@ -1212,9 +1229,29 @@ std::streambuf::setg (b, b, e);
<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="patientID" type="xs:string"/>
+ <xs:element minOccurs="0" name="patientBirthdate" type="xs:date"/>
+ <xs:element minOccurs="0" name="patientGender">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[MFO]"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
</xs:all>
</xs:complexType>
-
+
+ <xs:complexType name="studyInformationType">
+ <xs:all>
+ <xs:element minOccurs="1" name="studyDate" type="xs:date"/>
+ <xs:element minOccurs="1" name="studyTime" type="xs:time"/>
+ <xs:element minOccurs="0" name="studyID" type="xs:string"/>
+ <xs:element minOccurs="0" name="accessionNumber" type="xs:long"/>
+ <xs:element minOccurs="0" name="referringPhysicianName" type="xs:string"/>
+ <xs:element minOccurs="0" name="studyDescription" type="xs:string"/>
+ </xs:all>
+ </xs:complexType>
+
<xs:complexType name="experimentalConditionsType">
<xs:all>
<xs:element name="H1resonanceFrequency_Hz" type="xs:long"/>
@@ -1228,6 +1265,8 @@ std::streambuf::setg (b, b, e);
<xs:element minOccurs="0" name="systemFieldStrength_T" type="xs:float"/>
<xs:element minOccurs="0" name="relativeReceiverNoiseBandwidth" type="xs:float"/>
<xs:element minOccurs="0" name="receiverChannels" type="xs:unsignedShort"/>
+ <xs:element minOccurs="0" name="institutionName" type="xs:string"/>
+ <xs:element minOccurs="0" name="stationName" type="xs:string"/>
</xs:all>
</xs:complexType>
@@ -1255,7 +1294,7 @@ std::streambuf::setg (b, b, e);
</xs:complexType>
<xs:complexType name="limitType">
- <xs:all>
+ <xs:all>
<xs:element default="0" name="minimum" type="xs:unsignedShort"/>
<xs:element default="0" name="maximum" type="xs:unsignedShort"/>
<xs:element default="0" name="center" type="xs:unsignedShort"/>
@@ -1297,7 +1336,7 @@ std::streambuf::setg (b, b, e);
</xs:sequence>
</xs:complexType>
- <xs:complexType name="sequenceTimingType">
+ <xs:complexType name="sequenceParametersType">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" type="xs:float" name="TR"/>
<xs:element minOccurs="1" maxOccurs="unbounded" type="xs:float" name="TE"/>
@@ -1308,24 +1347,87 @@ std::streambuf::setg (b, b, e);
<xs:complexType name="userParameterLongType">
<xs:all>
<xs:element name="name" type="xs:string"/>
- <xs:element name="value" type="xs:long"/>
+ <xs:element name="value" type="xs:long"/>
</xs:all>
</xs:complexType>
<xs:complexType name="userParameterDoubleType">
<xs:all>
<xs:element name="name" type="xs:string"/>
- <xs:element name="value" type="xs:double"/>
+ <xs:element name="value" type="xs:double"/>
</xs:all>
</xs:complexType>
-
- <xs:complexType name="accelerationFactorType">
- <xs:all>
- <xs:element name="kspace_encoding_step_1" type="xs:unsignedShort"/>
- <xs:element name="kspace_encoding_step_2" type="xs:unsignedShort"/>
- </xs:all>
+
+ <xs:complexType name="measurementInformationType">
+ <xs:all>
+ <xs:element minOccurs="1" name="seriesDate" type="xs:date"/>
+ <xs:element minOccurs="1" name="seriesTime" type="xs:time"/>
+ <xs:element minOccurs="1" name="patientPosition">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="HFP"/>
+ <xs:enumeration value="HFS"/>
+ <xs:enumeration value="HFDR"/>
+ <xs:enumeration value="HFDL"/>
+ <xs:enumeration value="FFP"/>
+ <xs:enumeration value="FFS"/>
+ <xs:enumeration value="FFDR"/>
+ <xs:enumeration value="FFDL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element minOccurs="0" name="protocolName" type="xs:string"/>
+ <xs:element minOccurs="0" name="seriesDescription" type="xs:string"/>
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="dicomParametersType">
+ <xs:all>
+ <xs:element minOccurs="1" name="studyInstanceUID" type="xs:string"/>
+ <xs:element minOccurs="0" name="seriesInstanceUIDRoot" type="xs:string"/>
+ <xs:element minOccurs="0" name="frameOfReferenceUID" type="xs:string"/>
+
+ <xs:element minOccurs="0" name="referencedImageSequence">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="referencedSOPInstanceUID" type="xs:string"/>
+ </xs:sequence>
</xs:complexType>
-
+ </xs:element>
+
+ <xs:element minOccurs="0" name="MRImageModule">
+ <xs:complexType>
+ <xs:all>
+ <xs:element minOccurs="0" name="imageType" type="xs:string"/>
+ <xs:element minOccurs="0" name="scanningSequence" type="xs:string"/>
+ <xs:element minOccurs="0" name="sequenceVariant" type="xs:string"/>
+ <xs:element minOccurs="0" name="scanOptions" type="xs:string"/>
+ <xs:element minOccurs="0" name="mrAcquisitionType" type="xs:string"/>
+ <xs:element minOccurs="0" name="echoTrainLength" type="xs:long"/>
+ <xs:element minOccurs="0" name="triggerTime" type="xs:float"/>
+ <xs:element minOccurs="0" name="flipAngle_deg" type="xs:long"/>
+ <xs:element minOccurs="0" name="freqEncodingDirection">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ROW"/>
+ <xs:enumeration value="COL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="accelerationFactorType">
+ <xs:all>
+ <xs:element name="kspace_encoding_step_1" type="xs:unsignedShort"/>
+ <xs:element name="kspace_encoding_step_2" type="xs:unsignedShort"/>
+ </xs:all>
+ </xs:complexType>
+
<xs:simpleType name="calibrationModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="embedded"/>
@@ -1344,7 +1446,7 @@ std::streambuf::setg (b, b, e);
<xs:enumeration value="average"/>
<xs:enumeration value="other"/>
</xs:restriction>
- </xs:simpleType>
+ </xs:simpleType>
<xs:complexType name="parallelImagingType">
<xs:sequence>
diff --git a/doc/README.rst b/doc/README.rst
index 3340ed9..eb4922f 100644
--- a/doc/README.rst
+++ b/doc/README.rst
@@ -27,6 +27,7 @@ Developers/Contributors
* Nick Zwart, Barrow Neurological Institute, Phoenix, Arizona
* Souheil Inati, National Institutes of Health, USA
* Joe Naegele, National Institutes of Health, USA
+* Kaveh Vahedipour, Juelich Research Centre, Juelich, Germany
Obtaining and Installing
-------------------------
@@ -89,7 +90,7 @@ Mac OSX Installation
There are numerous different package management systems for Mac. In this example, we have used MacPorts (http://www.macports.org/). First install the dependencies available in MacPorts::
- sudo port install wget hdf5-18 h5utils boost xercesc3 git cmake doxygen
+ sudo port install wget hdf5-18 h5utils boost xercesc3 git-core git-extras cmake doxygen
Next install CodeSynthesis XSD (http://www.codesynthesis.com/products/xsd/)::
@@ -229,15 +230,15 @@ Each raw data acquisition is preceded by the following fixed layout structure:
.. include:: ../ismrmrd.h
:literal:
- :start-line: 123
- :end-line: 148
+ :start-line: 125
+ :end-line: 150
Where EncodingCounters are defined as:
.. include:: ../ismrmrd.h
:literal:
- :start-line: 107
- :end-line: 119
+ :start-line: 109
+ :end-line: 121
The interpretation of some of these fields may vary from sequence to sequence, i.e. for a Cartesian sequence, ``kspace_encode_step_1`` would be the phase encoding step, for a spiral sequence where phase encoding direction does not make sense, it would be the spiral interleave number. The ``encoding_space_ref`` enables the user to tie an acquisition to a specific encoding space (see above) in case there are multiple, e.g. in situations where a calibration scan may be integrated in the acq [...]
@@ -270,8 +271,8 @@ As mentioned above, the ISMRMRD format also suggests a way to store reconstructe
.. include:: ../ismrmrd.h
:literal:
- :start-line: 279
- :end-line: 305
+ :start-line: 293
+ :end-line: 319
In a similar fashion to the raw data acquisition data, the intention is to store a header followed by the image data. Since image data can be in several different format (e.g. float, complex, etc.), the memory layout is less well defined but can be described as::
@@ -430,13 +431,13 @@ C++ Example Applications
The distribution includes two example applications, one that creates a simple 2D single-channel dataset from scratch and one that reconstructs this dataset (you need FFTW installed to compile these test applications). The data generation application looks like this (``test_create_dataset.cpp``):
-.. include:: ../test_create_dataset.cpp
+.. include:: ../examples/c++/test_create_dataset.cpp
:literal:
:start-after: /* MAIN APPLICATION */
To reconstruct this synthetic dataset, you can use the test reconstruction application (``test_recon_dataset.cpp``):
-.. include:: ../test_recon_dataset.cpp
+.. include:: ../examples/c++/test_recon_dataset.cpp
:literal:
:start-after: /* MAIN APPLICATION */
diff --git a/examples/matlab/deprecated/ismrmrd_header2struct.m b/examples/matlab/ismrmrd_header2struct.m
similarity index 100%
rename from examples/matlab/deprecated/ismrmrd_header2struct.m
rename to examples/matlab/ismrmrd_header2struct.m
diff --git a/examples/matlab/deprecated/simple_cartesian_recon.m b/examples/matlab/simple_cartesian_recon.m
similarity index 100%
rename from examples/matlab/deprecated/simple_cartesian_recon.m
rename to examples/matlab/simple_cartesian_recon.m
diff --git a/examples/matlab/deprecated/simple_gridder.m b/examples/matlab/simple_gridder.m
similarity index 100%
rename from examples/matlab/deprecated/simple_gridder.m
rename to examples/matlab/simple_gridder.m
diff --git a/examples/matlab/deprecated/simple_spiral_recon.m b/examples/matlab/simple_spiral_recon.m
similarity index 100%
rename from examples/matlab/deprecated/simple_spiral_recon.m
rename to examples/matlab/simple_spiral_recon.m
diff --git a/schema/ismrmrd_example.xml b/schema/ismrmrd_example.xml
index c59ff27..3e5c157 100644
--- a/schema/ismrmrd_example.xml
+++ b/schema/ismrmrd_example.xml
@@ -9,6 +9,7 @@
<systemModel>Avanto</systemModel>
<systemFieldStrength_T>1.494</systemFieldStrength_T>
<receiverChannels>32</receiverChannels>
+ <relativeReceiverNoiseBandwidth>0.79</relativeReceiverNoiseBandwidth>
</acquisitionSystemInformation>
<experimentalConditions>
<H1resonanceFrequency_Hz>63642459</H1resonanceFrequency_Hz>
@@ -55,12 +56,24 @@
<maximum>0</maximum>
<center>0</center>
</slice>
+ <set>
+ <minimum>0</minimum>
+ <maximum>0</maximum>
+ <center>0</center>
+ </set>
</encodingLimits>
</encoding>
- <sequenceTiming>
+ <parallelImaging>
+ <accelerationFactor>
+ <kspace_encoding_step_1>1</kspace_encoding_step_1>
+ <kspace_encoding_step_2>1</kspace_encoding_step_2>
+ </accelerationFactor>
+ <calibrationMode>other</calibrationMode>
+ </parallelImaging>
+ <sequenceParameters>
<TR>4.6</TR>
<TE>2.35</TE>
<TI>300</TI>
- </sequenceTiming>
+ </sequenceParameters>
</ismrmrdHeader>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git
More information about the debian-science-commits
mailing list