上一篇文字,我发布了一些项目,说明如何使用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可以存储在内存中。你可能也需要做同样的事情。