fo-dicom如何实现print scu 虚拟打印软件发送图像

DICOM
604
fo-dicom
print
scu
虚拟打印

fo-dicom打印PrintScu向模拟打印软件推送打印收不到图像问题

最近碰到了了个比较蛋疼问题 自己使用fo-dicom 开发了printscp、printscu各一个 开发过程中调试互相通信都没啥问题,最后在试着向模拟打印软件(网上很多)推送的时候出现了问题,推送过去对面无法接收到图像 显示有任务 但就是没有图像,被这个卡进度卡了很久。

fo-dicom如何实现print scu 虚拟打印软件发送图像

网上找到一个类似帖子

最后找到一个帖子《用fo-dicom实现print scu的注意事項》有碰到类似问题的可以自行百度看看。 通过这个贴的举例来看 fo-dicom内的例子互相之间通信时没问题的,但是对接第三方的虚拟打印软件就会出现这种情况,至于是什么原因就不深究了,只要能解决问题就成。 大致的解决办法如下:

PrintJob.cs的Print函数里面增加如下代码:

DicomPresentationContext pc = new DicomPresentationContext((byte)0, DicomUID.BasicGrayscalePrintManagementMetaSOPClass);
pc.AddTransferSyntax(DicomTransferSyntax.ImplicitVRLittleEndian);
dicomClient.AdditionalPresentationContexts.Add(pc);

打印彩色片需要修改

要打印彩色片子,BasicGrayscalePrintManagementMetaSOPClass要相应修改。

在DicomClient.cs中修改public IAsyncResult BeginSend(Stream stream, string callingAe, string calledAe, AsyncCallback callback, object state)函数:

//foreach (var request in _requests)
// assoc.PresentationContexts.AddFromRequest(request);

foreach (var context in _contexts)
	assoc.PresentationContexts.Add(context.AbstractSyntax, context.GetTransferSyntaxes().ToArray());

foreach (var pc in assoc.PresentationContexts)
{
       foreach (var request in _requests)
       {
             request.PresentationContext = new DicomPresentationContext(pc.ID,
             request.PresentationContext.AbstractSyntax,
             pc.AcceptedTransferSyntax,
             DicomPresentationContextResult.Proposed);
        }
}

在FilmBox.cs的Initialize()函数加入代码:

Add(new DicomSequence(DicomTag.ReferencedFilmSessionSequence));
var item = new DicomDataset();
item.Add(DicomTag.ReferencedSOPClassUID,_filmSession.SOPClassUID);
item.Add(DicomTag.ReferencedSOPInstanceUID,_filmSession.SOPInstanceUID);
var seq = Get(DicomTag.ReferencedFilmSessionSequence);
seq.Items.Add(item);

重新运行程序 虚拟打印机接收到图像了

fo-dicom 怎么将图片png合成打包为dcm打印文件
FO-DICOM 实现C-Find + C-Move 客户端SCU 文件传输例子
fo-dicom开发C-StoreSCP报错'GB18030' is not a supported encoding name
C# 使用fo-dicom 怎么实现StroreScu发送电子影像原图文件例子
FO-DICOM网络传输之C-ECHO和C-STORE简单实现例子
fo-dicom .net core 如何获取图像bitmap
关于fo-dicom对接岛津DR设备DICOM胶片打印PresentationLUT不支持
FO-DICOM胶片C-PrintSCP 虚拟打印服务端实现源码
暂无相关内容...
基于fo-dicom实现的DicomPrintScp胶片打印服务器收图源码
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删