问题标签 [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.
dicom - 在 N_CREATE 响应中设置命令集的问题,pydicom
我正在研究一个 MPPS SCP,如下所述: MPPS SCP as a basic framework。
我已经能够使用 DVTk 对其进行一些测试,这里有一些可用的工具: DVTk
其中大部分似乎工作正常,但我似乎遇到的问题是响应假设在“命令集”而不是返回的数据集本身中返回了组 0000 的标签:我实际上确实将它们设置在DataSet 只是为了验证我得到了正确的值,例如:
我不确定命令组长度、命令字段和命令数据集类型应该是什么,但更重要的是,我不知道如何正确设置它们。我认为它们不应该设置在数据集中,而是 N_CREATE 响应的命令集对象的一部分:
使用 DVTk 作为测试工具,MPPS.SCU 脚本在他们的示例脚本中,除了没有在响应中发送的命令集值之外,一切似乎都正常工作。经过一番挖掘,我认为这些必须以另一种方式设置,但我不确定如何。
pynetdicom 文档可能有一些关于它的更多信息(第一个链接),但我一直找不到它。
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 中的线程一无所知。
谢谢你。
python - pynetdicom 无法与 Windows 任务计划程序一起正常工作
我正在使用此pynetdicom 脚本的修改版本(此页面上的第二个示例)将 DICOM 图像下载到办公室计算机。这是脚本的作用:
- 打开与 PACS 的连接
- 搜索与给定患者的病历编号和登记号的当前日期匹配的 DICOM 图像。
- 如果找到符合给定标准的 DICOM 图像,则启动 SCP 服务器连接以启动将图像下载到本地计算机上的文件夹。
该脚本在使用 Spyder IDE 运行时有效。我已经使用 Windows 任务计划程序创建了一个计划任务,如果脚本首先使用 Spyder IDE 运行并且仅当 Spyder 保持打开并且所有变量都没有被清除时,它才能正常工作。
但是,如果 Spyder 关闭或 Spyder 内核重新启动,那么当脚本通过任务调度程序运行时,它将正常运行,直到它到达 SCP 服务器调用从 PACS 下载图像的 handle_store 函数的部分。该脚本不调用handle_store 函数并且连接最终超时。
我认为解决方案是更改任务计划程序中的默认工作目录,但这不起作用。任何想法发生了什么以及如何解决这个问题?
dicom - 如何显示来自 DICOM C-FIND 结果的系列数据?
我是 DICOM 的新手,想知道如何返回 C-FIND 的结果,类似于 Osirix 等应用程序在查询后显示它们的方式。
我在 Python 中使用 pynetdicom 严格执行此操作,并在 GUI 中显示结果。目前,我已经使用正则表达式分别提取了每个标识符以显示,但这并不能让我合并每个单独的系列。我正在“研究”级别运行我的查询。
我可以查询/检索和显示来自其他 PACS 的标识符,但我不确定如何在研究级别显示来自其他 PACS 数据库的检查结果,然后能够下拉并查看每个系列。
我刚刚完成了这个测试项目,目前可以读取 DICOM 文件,在收到它们后添加到数据库,从各种 PACS 查询/检索。显示从本地文件夹接收到的图像并将其传输到另一个存档。我只是无法弄清楚上述情况,必须有比我当前配置的更好的方法来做到这一点。查看我当前如何返回结果的图像。
我确信 pynetdicom 可以做到这一点,我只是不确定如何去做。
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" 的条件
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 中可用
我在服务器端试过这个。
我的输出在连接期间:
我总是得到“默认”值而不是实际值。
我做错了什么?或者它是一个错误?当我调用它时, calling_ae_title 和 called_ae_title 都会产生相同的“默认”输出。非常感谢!
python - 将参数传递给函数 python 中调用的函数
我正在尝试将事件参数从一个函数传递给另一个函数。我现在拥有的示例代码是:
ds 可以传递到下一个保存函数,但事件不会。有人可以帮忙吗?谢谢
python - Pynetdicom:编译的应用程序 (exe) 无法连接到 PACS 服务器
我创建了一个应用程序,连接到 PACS 服务器和下载的研究。应用程序完美运行,当我从 python 运行它时。但是当我创建一个 exe 时,使用 pyinstaller - 创建的 exe 失去了连接到服务器的能力。日志:“无法连接到远程”。