簡體   English   中英

如何在Evil DICOM中使用VR = FL,VM = 2獲取值

[英]How to get the value with VR=FL, VM=2 in Evil DICOM

我嘗試使用以下命令獲取Tag值: var vSAD = sel.VirtualSourceAxisDistance.Data; 我也試過var vSAD = dcm.FindAll("300A030A"); 它只返回一個數字(假設有2個)。

然后我嘗試讀取元素並保存到另一個dicom文件,找到VR=FLVM=2情況下只有一個數字顯示在新文件中。 如何解決此問題以獲得2個數字? 這是否意味着當我使用var dcm = DICOMFileReader.Read(openFileDialog1.FileName); 它只返回一個號碼?

我在FloatingPiontSingle.cs文件中看到:

public class FloatingPointSingle : AbstractElement<float?>
{
    public FloatingPointSingle() { }

    public FloatingPointSingle(Tag tag, float? data)
    {
        Tag = tag;
        Data = data;
        VR = Enums.VR.FloatingPointSingle;
    }
}

我沒有意識到FL VM可能不止一個。 我只是看了DICOM規范,並意識到它是可能的。 這實際上很容易解決。 您是否可以發布包含此類值的示例(匿名)DICOM文件的鏈接,我將修補核心框架。

僅供參考:要修補自己,您需要將FloatingPointSingle更改為:

public class FloatingPointSingle : AbstractElement<float[]>
{
    public FloatingPointSingle() { }

    public FloatingPointSingle(Tag tag, float[] data)
    {    
        Tag = tag;
        Data = data;
        VR = Enums.VR.FloatingPointSingle;
    }
}

然后在LittleEndianReader.ReadSinglePrecision()BigEndianReader.ReadSinglePrecision()方法中,您需要更改邏輯以允許連接的浮點數(無分隔符)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM