【发布时间】:2019-05-30 11:03:21
【问题描述】:
我正在使用 dcm4che3 库构建一个 DICOM 客户端,这让我有点困惑我应该如何创建 dicom 查询。我在 Association 类上调用 CFIND 方法。
我已经弄清楚如何创建一个基本查询(例如按 PatientID 搜索),如下所示:
Attributes query = new Attributes();
query.setString(Tag.PatientID, VR.LO, "12345");
到目前为止一切顺利。
但是当我想使用ScheduledProcedureStepStartDate 之类的东西进行查询时,我必须使用类似这样的子查询来创建一个序列:
Attributes query = new Attributes();
Sequence sequence = query.newSequence(Tag.ScheduledProcedureStepSequence, 1);
Attributes subQuery = new Attributes();
subQuery.setDate(Tag.ScheduledProcedureStepStartDate, VR.DA, date);
sequence.add(subQuery);
我不详细了解 DICOM 格式。所以我通过反复试验和使用另一个 DICOM 客户端模拟器并拦截它的查询来尝试弄清楚它是如何工作的。
因此,我有 3 个问题:
- 如何在两个日期之间查询
ScheduledProcedureStepStartDate(即使用从日期和到日期)。 - 创建查询时,是否可以让 dcm4che3 库弄清楚如何制作序列,这样我就可以在查询中指定我想要的标签、VR 和值?
- 当我使用序列元素(例如
ScheduledProcedureStepSequence->Modality)进行查询时,它似乎不起作用。有什么诀窍可以让这项工作发挥作用吗?
【问题讨论】: