fo-dicom如何实现print scu 虚拟打印软件发送图像
fo-dicomprintscu虚拟打印
DICOM
562
fo-dicom如何实现print scu 虚拟打印软件发送图像 - Yuan天空
fo-dicom打印PrintScu向模拟打印软件推送打印收不到图像问题
最近碰到了了个比较蛋疼问题 自己使用fo-dicom 开发了printscp、printscu各一个 开发过程中调试互相通信都没啥问题,最后在试着向模拟打印软件(网上很多)推送的时候出现了问题,推送过去对面无法接收到图像 显示有任务 但就是没有图像,被这个卡进度卡了很久。
最后找到一个帖子《用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<DicomSequence>(DicomTag.ReferencedFilmSessionSequence);
seq.Items.Add(item);
重新运行程序 虚拟打印机接收到图像了
你可能感兴趣
- 医疗DICOM开发中常用Tag属性信息表对照表
- [终身授权]医学RadiAnt DICOM Viewer影像浏览器查看三维重建MRP软件苹果mac系统
- fo-dicom .net core 如何获取图像bitmap
- fo-dicom如何实现print scu 虚拟打印软件发送图像
- 解决DicomTag中文乱码的编码解析对照表
- 关于锐科PACS的傲娇DICOM Print协议
- FO-DICOM 实现C-Find + C-Move 客户端SCU 文件传输例子
- FO-DICOM网络传输之C-ECHO和C-STORE简单实现例子
- DICOM浏览/DICOM虚拟打印/DICOM传输/处理/转换DICOM修改/医学数字成像
- FO-DICOM胶片C-PrintSCP 虚拟打印服务端实现源码