问题标签 [pynetdicom]

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.

0 投票
1 回答
62 浏览

dicom - 在 N_CREATE 响应中设置命令集的问题,pydicom

我正在研究一个 MPPS SCP,如下所述: MPPS SCP as a basic framework。

我已经能够使用 DVTk 对其进行一些测试,这里有一些可用的工具: DVTk

其中大部分似乎工作正常,但我似乎遇到的问题是响应假设在“命令集”而不是返回的数据集本身中返回了组 0000 的标签:我实际上确实将它们设置在DataSet 只是为了验证我得到了正确的值,例如:

我不确定命令组长度、命令字段和命令数据集类型应该是什么,但更重要的是,我不知道如何正确设置它们。我认为它们不应该设置在数据集中,而是 N_CREATE 响应的命令集对象的一部分:

使用 DVTk 作为测试工具,MPPS.SCU 脚本在他们的示例脚本中,除了没有在响应中发送的命令集值之外,一切似乎都正常工作。经过一番挖掘,我认为这些必须以另一种方式设置,但我不确定如何。

pynetdicom 文档可能有一些关于它的更多信息(第一个链接),但我一直找不到它。

0 投票
0 回答
55 浏览

python - 在 Docker、pynetdicom 和烧瓶中以单个 Python 脚本运行 2 个服务器

我有兴趣在 Docker 容器中运行的单个 Python 脚本中运行 2 个服务器。我的初始开发设置是使用 pynetdicom(参见 mpps -scp作为示例。主要感兴趣的是启动服务器运行的行,在我的文件中:

这里有更详细的文档:start_server

pynetdicom 实现了一个 DICOM 服务器。我不认为它有这个能力,也不是为了使用 HTTP 协议响应 api 请求而设计的。

我的容器中确实有请求模块来向其他服务器发送请求,但我还想添加一个 HTTP 侦听器,比如 Flask,以添加接收和处理 api 请求的能力,所有这些都在同一个 python 脚本中在构建和运行我的 Docker 容器时执行。

我猜 Flask 的基本存根类似于下面的内容,尽管我以前从未使用过。我能够测试这个基本设置在启动时是否有效,而无需启动 pynetdicom,只需使用 curl:http://ip:5000/companies,其中 5000 端口映射到我主机上的 5000。

我真的很想在同一个脚本中运行这两个服务器,因为它们会共享一些通用的方法来处理 DICOM 和 API 请求的请求。我可能可以为每个服务器创建单独的脚本,但我必须维护每个服务器中的方法,或者以某种方式将公共方法库加载到每个服务器脚本中。

只是想知道最好的设置和方法是什么。对于这种应用程序,我对 Python 中的线程一无所知。

谢谢你。

0 投票
1 回答
65 浏览

python - pynetdicom 无法与 Windows 任务计划程序一起正常工作

我正在使用此pynetdicom 脚本的修改版本(此页面上的第二个示例)将 DICOM 图像下载到办公室计算机。这是脚本的作用:

  1. 打开与 PACS 的连接
  2. 搜索与给定患者的病历编号和登记号的当前日期匹配的 DICOM 图像。
  3. 如果找到符合给定标准的 DICOM 图像,则启动 SCP 服务器连接以启动将图像下载到本地计算机上的文件夹。

该脚本在使用 Spyder IDE 运行时有效。我已经使用 Windows 任务计划程序创建了一个计划任务,如果脚本首先使用 Spyder IDE 运行并且仅当 Spyder 保持打开并且所有变量都没有被清除时,它才能正常工作。

但是,如果 Spyder 关闭或 Spyder 内核重新启动,那么当脚本通过任务调度程序运行时,它将正常运行,直到它到达 SCP 服务器调用从 PACS 下载图像的 handle_store 函数的部分。该脚本不调用handle_store 函数并且连接最终超时。

我认为解决方案是更改任务计划程序中的默认工作目录,但这不起作用。任何想法发生了什么以及如何解决这个问题?

0 投票
1 回答
233 浏览

dicom - 如何显示来自 DICOM C-FIND 结果的系列数据?

我是 DICOM 的新手,想知道如何返回 C-FIND 的结果,类似于 Osirix 等应用程序在查询后显示它们的方式。

我在 Python 中使用 pynetdicom 严格执行此操作,并在 GUI 中显示结果。目前,我已经使用正则表达式分别提取了每个标识符以显示,但这并不能让我合并每个单独的系列。我正在“研究”级别运行我的查询。

我可以查询/检索和显示来自其他 PACS 的标识符,但我不确定如何在研究级别显示来自其他 PACS 数据库的检查结果,然后能够下拉并查看每个系列。

我刚刚完成了这个测试项目,目前可以读取 DICOM 文件,在收到它们后添加到数据库,从各种 PACS 查询/检索。显示从本地文件夹接收到的图像并将其传输到另一个存档。我只是无法弄清楚上述情况,必须有比我当前配置的更好的方法来做到这一点。查看我当前如何返回结果的图像。

我确信 pynetdicom 可以做到这一点,我只是不确定如何去做。

截屏

0 投票
1 回答
214 浏览

python - C-FIND 研究按患者 ID 和日期

我想从 PACS 下载与指定患者 ID 和研究日期匹配的胸部 X 光文件。
如果我在 C-FIND-Request 中指定日期,我将无法获得任何匹配的结果。
你能建议我的查询有什么问题吗?
非常感谢~

  • 我使用 pynetdicom 与 GE 的 PACS 进行交互。
  • PACS 中的示例记录为:
     Study Date Modality Patient ID Online
     ------------------------------------------------- ------------------
     2021/08/21 XA 12345678 Y
     2021/08/19 US 12345678 Y
     2021/08/11 US 12345678 Y
     2021/08/09 US 12345678 Y
     2021/08/02 US 12345678 Y
     2021/07/16 CR 12345678 Y
     2021/08/02 至 2021/08/21 的记录为相关研究。
     我的目标是 2021/07/16 采取的目标。
  • 从 C-ECHO 开始,然后发送 C-FIND,低优先级
    我尝试过
    (1) C-FIND 在患者根下,患者级别
    (2) C-FIND 在研究根下,研究级别
    如果我指定日期(StudyDate = “20210716”),我无法得到任何匹配的结果。
  • 以下是患者根、患者级别下 C-FIND 的 pynetdicom 日志。

(1) 案例:仅以患者 ID 为条件

(2) 案例:Patient ID 和 StudyDate = "20210716" 的条件

0 投票
1 回答
33 浏览

python - 被叫_/calling_ae_title

我正在实施 SCP,但我不确定如何正确获取 call_/called_ae_title。我想在服务器端连接(客户端发送 DICOM 图像)期间获得 call_/calling_ae_title。我不强制调用 called_ae_title(ae.require_call_aet = False),而是在 SCP 中设置默认 AE 标题。我想使用 called_/calling_ae_title 进行审计。所以,我可以从 pytnetdicom SCP 的调试日志中看到,此信息在 A-ASSOCIATE-RQ PDU 中可用

根据本文档https://pydicom.github.io/pynetdicom/dev/reference/generated/pynetdicom.pdu.A_ASSOCIATE_RQ.html?highlight=calling_ae_title#pynetdicom.pdu.A_ASSOCIATE_RQ.calling_ae_title

我在服务器端试过这个。

我的输出在连接期间:

我总是得到“默认”值而不是实际值。

我做错了什么?或者它是一个错误?当我调用它时, calling_ae_title 和 called_ae_title 都会产生相同的“默认”输出。非常感谢!

0 投票
0 回答
27 浏览

python - 将参数传递给函数 python 中调用的函数

我正在尝试将事件参数从一个函数传递给另一个函数。我现在拥有的示例代码是:

ds 可以传递到下一个保存函数,但事件不会。有人可以帮忙吗?谢谢

0 投票
1 回答
19 浏览

python - Pynetdicom:编译的应用程序 (exe) 无法连接到 PACS 服务器

我创建了一个应用程序,连接到 PACS 服务器和下载的研究。应用程序完美运行,当我从 python 运行它时。但是当我创建一个 exe 时,使用 pyinstaller - 创建的 exe 失去了连接到服务器的能力。日志:“无法连接到远程”。