问题标签 [fo-dicom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Fo-Dicom CMove SCP 良好实施
我已经用 fo-dicom 实现了一个超快的 PACS 服务器,此时我唯一真正的问题是处理 CMove 请求。
IDicomCMoveProvider 有一种方法IEnumerable<DicomCMoveResponse> OnCMoveRequest(DicomCMoveRequest request);
,但是我实现它的方式看起来不对而且速度很慢。
特别是在 CMove 方法中,我创建了一个新的 CStore 请求,我将其发送到必须接收研究的模态,对于每个实例,我创建一个新的 CStore 请求,一个新的 DicomClient,然后我发送它并等待响应。然后发生的是缓慢的部分,每个实例执行整个 DICOM 通信 shebang、连接、关联、发送实例、分离、断开连接,发送整个研究需要很长时间。
我的问题是你应该如何正确地实现它,以便它只打开一个连接,发送所有图像并关闭。一个如何使用 fo-dicom 完成的示例将是理想的。
c# - fo-dicom,获取 DicomTag RegionLocationMinX0 和 PhysicalDeltaX
我使用以下内容来检索一些使用 fo-dicom 的 dicom 标签的值:
ulong imageMin_x = file.Dataset.Get<ulong>(DicomTag.RegionLocationMinX0);
双 delta_x = file.Dataset.Get< 双 >(DicomTag.PhysicalDeltaX);
这些值都是 0。当我使用 Matlab dicominfo() 显示标签时,它们具有非零值。如何使用 fo-dicom 在 C# 中进行检索?
谢谢。
c# - 如何在 DICOM 数据集中添加多行?
如何在 DICOM 数据集中添加多行?不使用另一个 DICOM 数据集,例如List<DicomDataset>
?
c# - fo-dicom 的存储承诺
我正在尝试使用FO-DICOM框架实施存储承诺,但没有结果。我能够创建 N-ACTION 请求。我能够收到 N-ACTION 响应。但我不知道如何接收EVENTREPORT。任何人都可以帮助我并以正确的方式解决我的问题吗?
c# - 如何使用 fo-dicom 从序列中读取嵌套/子 DICOM 标签?
对于我的项目,我正在尝试在 VS2015(.Net 4.5.2)中使用 fo-dicom 3.0.2 和 C# 从 DICOM 文件中读取放射治疗计划(RT 计划)。
感谢 DICOM 编辑器,我知道存储在 different 中的值DicomTags
,但我无法访问Tag
我试图读取的所有 segDicomTag.BeamDose
并且我知道该值不为空。
运行代码会引发异常并显示消息:
(300a,0084) 在数据集中找不到。
如前所述,我知道它在那里,但嵌套在序列中的序列项中。接下来我尝试分析序列,BeamDose
存储在哪里。
但是下一次处理这个变量的机会并没有把我带到序列的下一个层次。
我应该如何使用 fo-dicom 从序列中读取嵌套/子 DICOM 标签?
c# - 如何使用 fo-dicom 获取 dicom 项目的完整字符串元素?
我正在尝试使用 fo-dicom 在 dicom 文件中获取一系列放射治疗计划。对你来说似乎并不难,但我卡住了,因为我找不到正确的命令。
我正在过滤计划,例如Leaf/Jaw Positions
. VS 调试模式下显示的字符串值为“-35//35”,我也在我的 DICOM 编辑器中找到它。但是输出只给了我值-35。我的代码就像
所以有了这个,我只能得到提到的第一个值。通过在调试监视中将最后一个更改Get<string>()
为Get<Dicom.DicomElement>()
或其他内容,我可以再次看到整个字符串,但无法打印它。
当我在这里查找C# 用另一个字符串拆分字符串或在 .NET 中在换行符上拆分字符串的最简单方法?我尝试编辑我的代码
但是string
不能接受Dicom.DicomElement
作为字符串,并且Get<string>()
在最后一行中我只能再次获得剪切字符串。
希望您能帮助找到我做错了什么以及如何获得该项目的完整字符串。
c# - (fo-dicom) 如何修改 DICOM 文件并将其保存到新目录?
我想修改 DICOM 的标题并设置两个标签。这可行,但是当我想将它保存在一个新文件中时,我得到了这个异常:
我的 DICOMConverter.addMaxMin() 代码是:
当我尝试使用 Save() 方法时,它总是抛出异常。我为此使用了https://github.com/fo-dicom/fo-dicom
中的文件操作示例,但它不能正常工作。
有人有更好的保存解决方案的想法,或者我能解释一下我所缺少的吗?
c# - 使用 fo-dicom 创建 Dicom 序列
从存储为 DICOM 文件的放射治疗计划中提取信息后,我的问题现在是另一个问题。
我知道,我可以在现有计划中添加或更新项目(例如)
即使按顺序处理 DicomTags 也不是问题(例如)
但是现在我想知道是否可以创建一个完整的新序列并在其中存储信息?我知道想要这个迫使我不仅要创建一个项目,而且还要围绕这个项目创建更多信息,因为在我查看的计划中没有顺序有这个。
在fo-dicom API 文档中,我找到了Dicom.IO.Writer
命名空间。我浏览了一遍,但没有找到我期望找到的东西。按照我的第一直觉,我会写这个
另一个命令行DicomFileWriter file = new DicomFileWriter(...);
也不起作用,因为构造函数只想接收选项。另一个DicomWriter()
构造函数与此类似。
我还检查了file.Dataset
编写新标签的可能性,但没有成功。所以我希望你们中的一个人能给我一个提示,我在哪里做错了。