2

fo-dicom を使用して、放射線治療計画の文字列を dicom ファイルで取得しようとしています。あなたにとってはそれほど難しくないようですが、正しいコマンドが見つからないため、行き詰まっています。

などの計画をフィルタリングしていましたLeaf/Jaw Positions。VS デバッグ モードで表示される文字列値は"-35//35"であり、DICOM エディターにも表示されます。しかし、出力は私に値-35しか与えません。私のコードは

var Leaf = file.Dataset.Get<Dicom.DicomSequence>(Dicom.DicomTag.BeamSequence).Items[0].
            Get<Dicom.DicomSequence>(Dicom.DicomTag.ControlPointSequence).Items[0].
            Get<Dicom.DicomSequence>(Dicom.DicomTag.BeamLimitingDevicePositionSequence).Items[0].
            Get<string>(Dicom.DicomTag.LeafJawPositions);

したがって、これにより、言及された最初の値のみが取得されます。オーバーウォッチのデバッグで最後Get<string>()Get<Dicom.DicomElement>()何か他のものに変更すると、文字列全体を再び見ることができますが、印刷することはできません。

私がここで調べたようにC# Split A String By Another Stringまたは.NET の改行で文字列を分割する最も簡単な方法? コードを編集して試してみました

string Leaf = file.Dataset.Get<Dicom.DicomSequence>(Dicom.DicomTag.BeamSequence).Items[0].
            Get<Dicom.DicomSequence>(Dicom.DicomTag.ControlPointSequence).Items[0].
            Get<Dicom.DicomSequence>(Dicom.DicomTag.BeamLimitingDevicePositionSequence).Items[0].
            Get<Dicom.DicomElement>(Dicom.DicomTag.LeafJawPositions);

しかし、文字列としてstring受け入れることができず、最後の行でカットされた文字列を再度取得するだけです。Dicom.DicomElementGet<string>()

私が何か間違ったことをした場所と、このアイテムの完全な文字列を取得する方法を見つけるのを手伝ってくれることを願っています.

4

1 に答える 1