Skip to content

Commit

Permalink
Merge pull request #109 from kspaceKelvin/fix_nx
Browse files Browse the repository at this point in the history
Fix noise bandwidth in Numaris/X
  • Loading branch information
dchansen committed Mar 13, 2023
2 parents a485371 + 5f8ca4c commit bb49d4f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 19 deletions.
2 changes: 1 addition & 1 deletion main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -805,7 +805,7 @@ int main(int argc, char* argv[]) {
std::cout << "Protocol name: " << protocol_name << std::endl;

bool isNX = false;
if ((baseLineString.find("NXVA") != std::string::npos) || (software_version.find("XA11") != std::string::npos) )
if ((baseLineString.find("NXVA") != std::string::npos) || (software_version.find("syngo MR XA") != std::string::npos) )
{
isNX = true;
}
Expand Down
68 changes: 50 additions & 18 deletions parameter_maps/IsmrmrdParameterMap_Siemens_NX.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@

<xsl:variable name="strSeperator">_</xsl:variable>

<xsl:variable name="pixelSpacing">
<xsl:value-of select="siemens/MEAS/sSliceArray/asSlice/s0/dReadoutFOV * 0.5 * siemens/YAPS/flReadoutOSFactor div siemens/MEAS/sKSpace/lBaseResolution"/>
</xsl:variable>

<xsl:template match="/">
<ismrmrdHeader xsi:schemaLocation="http://www.ismrm.org/ISMRMRD ismrmrd.xsd"
xmlns="http://www.ismrm.org/ISMRMRD"
Expand Down Expand Up @@ -337,18 +341,26 @@

<encodedSpace>
<matrixSize>

<xsl:choose>
<xsl:when test="siemens/MEAS/sKSpace/ucTrajectory = 1">
<xsl:when test="siemens/MEAS/sKSpace/ucTrajectory = 1">
<x>
<xsl:value-of select="siemens/YAPS/iNoOfFourierColumns"/>
</x>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(siemens/IRIS/DERIVED/imageColumns) and (siemens/IRIS/DERIVED/imageColumns > 0)">
<x>
<xsl:value-of select="siemens/YAPS/iNoOfFourierColumns"/>
<xsl:value-of select="siemens/IRIS/DERIVED/imageColumns"/>
</x>
</xsl:when>
<xsl:otherwise>
<x>
<xsl:value-of select="siemens/IRIS/DERIVED/imageColumns"/>
<xsl:value-of select="siemens/MEAS/sKSpace/lBaseResolution"/>
</x>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>

<xsl:choose>
Expand Down Expand Up @@ -408,21 +420,41 @@
</encodedSpace>
<reconSpace>
<matrixSize>
<x>
<xsl:value-of select="siemens/IRIS/DERIVED/imageColumns"/>
</x>
<y>
<xsl:value-of select="siemens/IRIS/DERIVED/imageLines"/>
</y>
<xsl:choose>
<xsl:when test="siemens/YAPS/i3DFTLength = 1">
<z>1</z>
</xsl:when>
<xsl:otherwise>
<z>
<xsl:value-of select="siemens/MEAS/sKSpace/lImagesPerSlab"/>
</z>
</xsl:otherwise>
<xsl:when test="(siemens/IRIS/DERIVED/imageColumns) and (siemens/IRIS/DERIVED/imageColumns > 0)">
<x>
<xsl:value-of select="siemens/IRIS/DERIVED/imageColumns"/>
</x>
</xsl:when>
<xsl:otherwise>
<x>
<xsl:value-of select="siemens/MEAS/sKSpace/lBaseResolution"/>
</x>
</xsl:otherwise>
</xsl:choose>

<xsl:choose>
<xsl:when test="(siemens/IRIS/DERIVED/imageLines) and (siemens/IRIS/DERIVED/imageLines > 0)">
<y>
<xsl:value-of select="siemens/IRIS/DERIVED/imageLines"/>
</y>
</xsl:when>
<xsl:otherwise>
<y>
<xsl:value-of select="floor(siemens/MEAS/sSliceArray/asSlice/s0/dPhaseFOV * (1+$phaseOversampling) div $pixelSpacing + 0.5)"/>
</y>
</xsl:otherwise>
</xsl:choose>

<xsl:choose>
<xsl:when test="siemens/YAPS/i3DFTLength = 1">
<z>1</z>
</xsl:when>
<xsl:otherwise>
<z>
<xsl:value-of select="siemens/MEAS/sKSpace/lImagesPerSlab"/>
</z>
</xsl:otherwise>
</xsl:choose>
</matrixSize>
<fieldOfView_mm>
Expand Down

0 comments on commit bb49d4f

Please sign in to comment.