gpt4 book ai didi

c# - 如何使用 fo-dicom 获取 dicom 项目的完整字符串元素?

转载 作者:行者123 更新时间:2023-11-30 20:28:59 24 4
gpt4 key购买 nike

我正在尝试使用 fo-dicom 在 dicom 文件中获取一串放射治疗计划。对你来说似乎没有那么难,但我一直坚持,因为我找不到正确的命令。

我正在过滤计划,例如对于 Leaf/Jaw Positions . VS Debug模式中显示的字符串值为 "-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 StringEasiest way to split a string on newlines in .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.DicomElement作为字符串并带有 Get<string>()在最后一行,我只再次得到了剪切的字符串。

希望你能帮忙找出我哪里做错了,以及如何得到这个项目的完整字符串。

最佳答案

来自 https://github.com/fo-dicom/fo-dicom/issues/491他们正在使用新的 API 解决问题,但假设您使用的是旧版本,

string Leaf = String.Join(@"\",
...
Get<string[]>(Dicom.DicomTag.LeafJawPositions));

应该返回您所期望的。

PS 我为 Join 使用了一个 string 扩展方法:

public static string Join(this IEnumerable<string> strings, string sep) => String.Join(sep, strings.ToArray());
public static string Join(this IEnumerable<string> strings, char sep) => String.Join(sep.ToString(), strings.ToArray());

关于c# - 如何使用 fo-dicom 获取 dicom 项目的完整字符串元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46728914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com