Skip to content

SET counter limits are not set in 2D mode - relevant for DTI sequences and alike #232

@m-a-x-i-m-z

Description

@m-a-x-i-m-z

Funny, I happened to stumble over a very similar issue with a (completely) different sequence today. I'm trying to use openrecon with a custom sequence. ICE is very picky about labels being correct and not violating any limits communicated to it earlier.

@m-a-x-i-m-z , can you have a look at the Siemens interpreter (v1.5.2) please?
I think in line 2683 of Arbitrary.cpp there's an error:

        if (m_b2D_Mode)
        {
            if (u_bSwapSlcAndSet)
                return MRI_SEQ_SEQU_ERROR; // no swap of counters in the 2D mode            
        }
        else
        {
        //...
		if (u_selDataExportMode == recon2D || u_selDataExportMode == recon3D || u_selDataExportMode == reconSTD || u_selDataExportMode == gadgetron2D)
            pSeqExpo->setNSet(arbitrarySBB.getLabelStorage().maxVal(SLC) + 1);
        //...
       }

the way I read this code, if the 2D mode is activated, the number of sets is not communicated to the reconstruction.
A simple fix would be to add two lines and modify it to:

        if (m_b2D_Mode)
        {
            if (u_bSwapSlcAndSet)
                return MRI_SEQ_SEQU_ERROR; // no swap of counters in the 2D mode
            if (u_selDataExportMode == recon2D || u_selDataExportMode == recon3D || u_selDataExportMode == reconSTD || u_selDataExportMode == gadgetron2D)
                pSeqExpo->setNSet(arbitrarySBB.getLabelStorage().maxVal(SET) + 1);
        }
        else
        {
/...

Before I wasn't able to run 2D sequences with multiple sets. With this change the sequences run and ICE reconstructs them.

Best
Dario

Originally posted by @dabosch in #230 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions