问题标签 [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# - 如何确定单帧 DICOM 是否实际上是 MRI 切片?
我正在编写一个计算医疗记录的应用程序。该应用程序将计算页数并将其除以 20,以确定为客户打印记录所需的胶片数量。我有一个壁橱案例,当扫描 MRI 时(特别是如果它们显示为 SC),它只会是一帧,但电影已经是 20 帧 MRI。
如何确定单个 DICOM 是否实际上是多帧 MRI?
如果我尝试对文件进行帧计数,我会得到1
. 这是其中一个文件的 DICOM 转储:
以下是帧数、高度和宽度的代码:
给我:
帧数:1
宽度:2040
身高:2500
c# - 是否有内置方法可以拒绝 fo-DICOM 服务器上的某些 SOP 类?
我想运行一个返回DicomStatus
SOPClassNotSupported
if 的 fo-DICOM 服务器,例如我尝试CStoreRequest
使用封装 PDF 文档的 SOP 类对其进行操作。我可以将 SOP 类定义为预先拒绝,而不必在OnCStoreRequest()
方法中明确拒绝它吗?
到目前为止我所拥有的:
上面的代码有效,但如果有一些官方/内置的方式来定义要拒绝的 SOP 类,我会采取不同的做法。
c# - 将灰度软拷贝呈现状态与 fo-dicom 结合使用
我想使用灰度软拷贝演示状态 IOD 为 DICOM 图像(例如,绘图或文本注释)添加标记。
我创建了一个这样的 DICOM 图像对象:
然后我创建了一个灰度软拷贝表示状态对象,如下所示:
我真的不明白这两个对象是如何相互连接的?
dicom - 连接 PACS 服务器时出错 Dicom.Network.DicomAssociationRejectedException:“[原因:CallingAENotRecognized]”
我是处理 DICOM 的新手,我试图从公共远程服务器获取一些与患者相关的 dicom 文件:
https ://www.dicomserver.co.uk 。使用fo-dicom并且工作正常,但是当我切换到私人服务器时,它在执行呼叫时向我显示以下错误:
Dicom.Network.DicomAssociationRejectedException: 'Association denied [result: Permanent; 来源:服务用户;原因:CallingAENotRecognized]'
,这是一个很酷的片段:
c# - 如何在我正在创建的服务器上设置 AE 标题?
我正在制作一个非常简单的 STORE 服务器,它不打算做任何类似 DICOM 的事情,而不是回显和接收数据。我从父类继承DicomCEchoProvider
并让父类为我完成大部分工作:到目前为止,唯一有计划使用的方法是DicomCStoreResponse()
和OnCStoreRequestException()
,来自IDicomCStoreProvider
接口。
我的测试机器似乎根本不关心 AET,但我不能假设其他所有机器都会如此适应。如何将 AE 标题设置为我选择的内容?
fo-dicom - 如何在 fo dicom 中向 DicomDirectory 添加结构化报告?
对于 C# 中的 Fo-Dicom,我正在尝试使用 AddFile API 将结构化报告添加到 DicomDirectory 对象。但是报告被添加为图像,有什么办法可以纠正这个问题吗?如果根本不可能通过手动将 DicomTags 信息添加到 DicomDirectory 类对象来做到这一点?你能举一些例子吗?
c# - 如何使用 fo-DICOM 删除或更新私有标签?
我有很多 DICOM 数据集,其中有一个私有标签,其中包含我不想保留在标题中的信息。这个标签的值会随着每个数据集的变化而变化,所以我不知道这个值。这是我想要更新或删除的私人创建者和私人标签的示例。
我希望能够完全删除0033,1016
或使用新值更新它。我尝试过的一切要么什么都不做,要么会添加另一个0033,1016
标签,创建两个0033,1016
标签。一个是原件,一个是我尝试更新原件时添加的。
如果我再次运行代码,我可以更新0033,1016
具有 value的标签FOO
,但我永远无法更改0033,1016
带有 value 的标签Dummy^Data^G^
。
以下是我的代码:
c# - 获取 Multiframe (PaletteColor) Dicom 文件的 PixelData。fo-dicom
目前,当我从这个 dicom 文件中获取像素数据时,它似乎与提供的图像分辨率不匹配。
例如,图像的宽度和高度可能是:W: 600, H:430 这会让我认为预期的总大小是 258,000 个元素,但是当我得到像素数据时它只有 50104 个元素。
令我困惑的是,数组中的元素比文件分辨率少。我期待如果存在不匹配,这可能是因为所有帧都被分组到同一个缓冲区中,我可能需要按帧数细分像素数据,但没有足够的元素来覆盖图像解析度?我有点不知所措。
此类提供的 dicom 文件像素数据:
https://fo-dicom.github.io/html/cfa9fe02-c413-ea1f-52df-dd1a6f5b71cf.htm
其中每个像素都是一个字节,用于查找颜色查找表的索引。
代码示例
期望的行为
使用 fo-dicom 库打开和渲染具有光度解释 PaletteColor 的多帧 dicom 图像。
fo-dicom - fo-dicom C-Move Query 不调用 CStoreRequestCallback
var client = new DicomClient();
在上面的代码片段中,如果 AEClient 和 QRServer 相同/相同 AETitle ,CMoveResponse 成功但没有得到任何 CStoreRequest
如果 AEClient 和 QRServer 不同,则会出现 Move destination Unknown 之类的错误