我使用DCMTK storescp.exe从CR模式接收图像,然后处理/保存在我的DB中。
在患者前往CR模式之前,是否可以使用其他DCMTK二进制文件手动将PatientName
和PatientId
发送到CR模式?
我在某个地方读到,模态进行查询以获得模态工作列表。我想扭转这种趋势。我想随时直接将模态工作列表发送到模态,而无需接收来自模态的查询。
这可能吗?如果是;如何使用DCMTK?
请注意,这不是场外工具请求。我只想知道实现所需DICOM服务/命令的DCMTK二进制文件。
您正在寻找实现C-FIND
命令的Modality Worklist或MWL服务
SOP类别:1.2.840.10008.5.1.4.31
[模态工作列表信息模型–FIND]。
但它并没有按照你所期望的方式工作;它不应该-为好。
MWLSCU(在您的案例中是-CR(使用它适合的(可选(过滤器启动查询。像往常一样,关联发生并且MWL SCP接收MWL请求。然后,它从数据库中提取与过滤器匹配的数据(如果有的话(。然后,它为从数据库中提取的每一行发送一个MWL响应,每个响应的状态为PENDING
。当传输完所有行后,将发送最终的SUCCESS
响应。如果没有找到与筛选器匹配的行,则只发送最终响应。如果出现问题,将发送正确的故障响应。SCU然后发送释放请求,并在接收到释放响应时关闭关联。
现在,为什么您期望的工作流不可能实现?
通常MWL SCP由RIS系统实现。这些系统具有在患者入院时/入院前登记患者人口统计数据的工具/功能。它们还具有调度由Modalities执行的订单的功能。在给定的DICOM网络(医院(中可能存在多种模式。尽管RIS有办法决定哪个订单应该转到哪个模式(如果配置和使用得当,则基于AE标题(,但他们无法推送,因为他们充当SCP,即服务器。与任何网络协议中的任何其他服务器一样,它们必须等待来自客户端(即SCU(的请求。
此外,尽管SCP可能知道哪个订单应该发送到哪个模态,但模态可能由于多种原因而不期望该订单。因此,MWL中的一般流程就是我上面解释的方式。您不能使用任何DICOM服务/命令来实现反向工作流程。
只是为了清楚起见:
所有这些都与您使用storescp.exe接收并存储在DB中的数据无关。我的意思是,您通常不会将该数据作为modality Worklist发送到modality。
MWL首先发生。当模态获得MWL Worklist项目时,它进行研究并获取具有在MWL Worklist项目中接收的人口统计数据的图像。通过这种方式,避免了错误,避免了冗余输入,并且流程有点自动化。完成后,模态将实例(在您的案例中为CR图像(推送(C-STORE
(到C-STORE
SCP,在您的实例中为storescp.exe。