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

pynetdicom not working correctly with Windows Task Scheduler

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

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

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

但是,如果Spyder关闭或者Spyder内核重启,那么当脚本通过任务调度器运行时,它会运行正确,直到到达SCP服务器的部分调用从 PACS 下载图像的 handle_store 函数。脚本没有调用 handle_store 函数,连接最终超时。

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

好的,我做了更多的挖掘,找到了问题的根源。为了让图像下载到我的电脑 Python 需要通过我们的公司防火墙。我已经允许 pythonw.exe 通过防火墙但不允许 python.exe。一旦允许这两个 Python 文件通过防火墙,当使用 Windows 任务计划程序启动时,脚本将 运行 如预期的那样。