0

を使用してタグ値を取得しようとしました: var vSAD = sel.VirtualSourceAxisDistance.Data; 私も試しvar vSAD = dcm.FindAll("300A030A"); てみましたが、1 つの数字しか返されませんでした (2 つあると仮定します)。

次に、要素を読み取って別の dicom ファイルに保存しようとしましたが、新しいファイルに数字が 1 つしか表示されない場合にのみ見つかりましVR=FLた。VM=2これを修正して2つの数字を取得するにはどうすればよいですか? 私が使用すると、var dcm = DICOMFileReader.Read(openFileDialog1.FileName); それはすでに1つの数字だけで返されるということですか?

私は FloatingPiontSingle.cs ファイルで見ました:

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

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

1 に答える 1

2

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()、 andBigEndianReader.ReadSinglePrecision()メソッドで、連結された浮動小数点数 (区切り記号なし) を許可するようにロジックを変更する必要があります。

于 2013-02-13T17:50:56.577 に答える