【问题标题】:pynetdicom qyuery/retrive using study date and timepynetdicom qyuery/retrive 使用学习日期和时间
【发布时间】:2016-12-19 01:00:58
【问题描述】:

我正在尝试来自pynetdicom 的查询/检索示例 (qrscu.py),但是 当我们搜索时,它与患者姓名配合得很好。 但是我需要根据studyDate和studyTime搜索study。

注意:这里有一些SOP's for DICOM,可用。所以我尝试使用 StudyRootFindSOPClass

我尝试使用:

print "DICOM FindSCU ... ",
d = Dataset()
d.StudyDate = args.searchstring
d.QueryRetrieveLevel = "STUDY"
d.StudyID = "*"
study = [x[1] for x in assoc.StudyRootFindSOPClass.SCU(d, 1)][:-1]
print 'done with status "%s"' % st
print "\n\n\n Cont...", study

但它给出了错误

Request association
Association response received
DICOM Echo ...  done with status "Success "
DICOM FindSCU ... 
Traceback (most recent call last):
  File "studyqrscu.py", line 104, in <module>
    study = [x[1] for x in assoc.StudyRootFindSOPClass.SCU(d, 1)][:-1]
  File "/usr/local/lib/python2.7/dist-packages/pynetdicom-0.8.1-py2.7.egg/netdicom/applicationentity.py", line 90, in __getattr__
    raise Exception("SOP Class %s not supported as SCU" % attr)
Exception: SOP Class StudyRootFindSOPClass not supported as SCU

请帮助我使用研究日期和时间获取研究。

【问题讨论】:

    标签: python python-2.7 dicom pynetdicom


    【解决方案1】:

    我对 python 和您使用的特定 DICOM 工具包都不是很熟悉。我敢回答,因为异常似乎很清楚——该工具包似乎不支持 Study Root Query Information 模型。

    DICOM 查询有四种类型,称为信息模型:

    • 模态工作清单(另当别论)
    • 患者根
    • 学习根
    • 仅限患者研究(在商业产品中不太受欢迎,已停用)

    来源:DICOM PS3.4

    顾名思义,Patient- 和 Study Root 的区别在于您在后续查询中开始向下搜索层次结构(Patient -> Study -> Series -> Image)的根元素是什么。 患者根从患者级别开始,因此您首先在患者级别搜索标准并获得患者级别结果。使用从结果中获得的患者 ID,您可以进入研究级别以查询特定患者的研究。

    Study Root 将患者级别属性视为次要研究属性,即您正在请求研究并且您收到每个研究属于每个研究的患者的属性(这意味着您可能会为不同的研究接收相同的患者两次,这对患者根有影响)。

    我同意研究根是您希望为您的用例所拥有的,但不幸的是,您使用的工具包显然只支持患者根。根据错误消息,这是客户端(SCU)方面的问题,所以 dcm4chee 不是罪魁祸首。

    如何解决?

    您可能会发现支持 StudyRoot 的不同工具包。实际上对我来说,缺乏 Study Root 支持让我对实际使用的适用性产生了疑问。

    您可能想要采取肮脏的方式并尝试在 Patient Root 中形成一个不符合 DICOM 的查询,如下所示:

     - Q/R-Level = "STUDY"
     - Patient-ID = "*" or empty
     - Study Date = <your date range>
    

    这很有可能会起作用,但是请记住,它不符合 DICOM,因此它取决于 SCP 实施,并且可能因不同产品而异。

    为了完整起见:您可以在患者级别上进行查询,并为收到的每位患者在研究级别上进行后续查询,将患者 ID 和您的研究日期范围作为匹配标准。不值得一提的是,这将因性能问题而失败,但它将是解决问题的 DICOM 一致性方式。

    【讨论】:

    • 是的,确实如此,但在官方文件中,他们没有提到任何明确的事情......所以我正在努力实现这一点,感谢:搜索层次结构(患者 - >研究 -> 系列 -> 图像)。对我很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2017-09-26
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多