如何使PACS服务器管理器支持H264

发布时间:2017/10/18 00:10 发布者:Richard.Ma

返回博客中心

 

上一篇文字,我发布了一些项目,说明如何使用H.264压缩数据创建DICOM文件(参见:如何使用H.264压缩视频创建DICOM文件)。创建文件是一个比较困难的点,但是如何利用,知道如何使这些文件存储在PACS服务器中也是很重要的。默认情况下,H.264压缩不能由LEADTOOLS PACS服务器管理器支持,但它很容易可以通过添加几行代码来实现。 本篇文章将讲解如何将H.264支持添加到PACS服务器管理器

为支持IODs 我们需要更新开发包demo中国的存储插件。这个项目可以在这里的SDK安装中找到:
\Examples\DotNet\PACSFramework\CS\Sample AddIns\Leadtools.AddIn.Store

我们需要更新StoreAddin.cs中的StoreAddin 类。在前面的示例中,我使用的SOP类是视频摄影图像存储。所以我寻找这样的代码,并添加DICOM UID类型MPEG-4 AVC/H.264 Blu Ray兼容和MPEG-4 AVC/H.264 High Profile Level 4.1. 。最终变成这样:

[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
                                                         DicomUidType.JPEG2000,
                                                         DicomUidType.JPEG2000LosslessOnly,
                                                         DicomUidType.JPEGBaseline1,
                                                         DicomUidType.JPEGExtended2_4,
                                                         DicomUidType.ExplicitVRBigEndian,
                                                         DicomUidType.ExplicitVRLittleEndian,
                                                         DicomUidType.JPEGLosslessNonhier14,
                                                         DicomUidType.JPEGLosslessNonhier14B,
                                                         DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
                                                         DicomUidType.Mpeg4AvcH264HighProfileLevel4_1)]

 

如果你还想支持MPEG-2压缩,这也可以这样做:

[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
                                                         DicomUidType.JPEG2000,
                                                         DicomUidType.JPEG2000LosslessOnly,
                                                         DicomUidType.JPEGBaseline1,
                                                         DicomUidType.JPEGExtended2_4,
                                                         DicomUidType.ExplicitVRBigEndian,
                                                         DicomUidType.ExplicitVRLittleEndian,
                                                         DicomUidType.JPEGLosslessNonhier14,
                                                         DicomUidType.JPEGLosslessNonhier14B,
                                                         DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
                                                         DicomUidType.Mpeg4AvcH264HighProfileLevel4_1,
                                                         DicomUidType.MPEG2MainProfileHighLevel,
                                                         DicomUidType.MPEG2MainProfileMainLevel)]

 

代码修改完成后,进行编译。DLL将输出到PACSAddins 目录,这对我来说是在这里:
\Bin\DotNet4\x64\PACSAddIns\

dll文件需要复制到插件目录的PACS服务器管理器。我的配置和运行的是64位服务器,所以在这里我的文件夹:
C:\LEADTOOLS 19\Bin\Dotnet4\x64\L19_SERVER64\AddIns

您需要确保停止并重新启动服务器,使此更改生效。

注:我一定要停止所有我已经运行的x64 PACS服务,然后重新启动他们。这是为了确保leadtools.dicom.server.exe完全被从内存中删除,然后重新加载,所以没有DLL可以存储在内存中。你可能也需要做同样的事情。


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网