实现一个C存储外接程序

  1. 选择文件- >- >项目从菜单中。
  2. 新项目对话框中,选择“Visual c#”或“VB“项目类型列表中,选择“类库“在模板列表中。
  3. 输入项目名称为“SampleAddIn“在项目名称域,然后选择好吧。如果需要,输入一个新的位置为您的项目使用或选择一个目录浏览按钮,然后选择好吧
  4. “解决方案资源管理器”窗口中右键单击“引用”文件夹,并选择“添加引用……”从上下文菜单中。在“添加引用”对话框中,选择“浏览”选项卡并浏览到Leadtools为。net“C: \ LEADTOOLS21 \ Bin \ DotNet \ Win32”文件夹并选择以下dll:

    • Leadtools.dll
    • Leadtools.Dicom.dll
    • Leadtools.Dicom.AddIn.dll
    • Microsoft.Practices.Unity
  5. 单击好吧按钮向应用程序添加上面的dll。

  6. “解决方案资源管理器”窗口中右键单击“SampleAddIn”,选择添加- >类从上下文菜单中。在“添加新项”对话框中,键入Module.cs在“的名字”字段。点击“添加“添加类项目。
  7. 打开Module.cs文件,并添加以下使用语句:

    c#
    使用Leadtools.Dicom.AddIn;使用Leadtools.Dicom.AddIn.Attributes;使用先;

  8. 定义模块类如下所列:

    c#
    公共模块:ModuleInit{私人静态字符串_ImageDirectory =字符串空虚;公共静态字符串ImageDirectory{得到{返回_ImageDirectory;}}公共覆盖无效负载(字符串ServiceDirectory,字符串DisplayName){字符串dir = ServiceDirectory +@“\ \图片”;如果(! Directory.Exists (dir))Directory.CreateDirectory (dir);_ImageDirectory = dir;}}

    当这个插件加载,加载函数被调用的LEADTOOLS pac框架。这类检查图像目录。如果目录不存在,创建的插件。

  9. 在“解决方案资源管理器“窗口单击右键Class1.cs并选择重命名从上下文菜单中。类型CStoreAddIn.cs并按Enter键。

  10. 打开CStoreAddIn.cs文件,并添加以下使用语句:

    c#
    使用Leadtools.Dicom;使用Leadtools.Dicom.AddIn;使用Leadtools.Dicom.AddIn.Interfaces;使用Microsoft.Practices.Unity;

  11. 添加IProcessCStoreCStoreAddIn类派生列表中。你的类应该类似于下面的:

    c#
    公共CStoreAddIn: IProcessCStore{}

  12. 右键单击IProcessCStore并选择“实现接口- >实现接口”从上下文菜单中。你们班现在看起来应该如下:

    c#
    [DicomAddInAttribute (“CStore”,“1.0.0.0”、描述=“DICOM存储”作者=”“)]公共CStoreAddIn: IProcessCStore{#地区IProcessCStore成员公共DicomCommandStatusType OnStore (DicomClient客户,字节PresentationId,int消息id,字符串AffectedClass,字符串DicomCommandPriorityType优先,字符串MoveAE,intMoveMessageId DicomDataSet请求){NotImplementedException ();}# endregion#地区IProcessBreak成员公共无效打破(BreakType类型){NotImplementedException ();}# endregion}

  13. 告诉服务器我们感兴趣的是什么,我们需要指定PresentationContextAttributesOnStore方法。这将允许服务器建立一个协会时使用一个客户端连接。在这个例子中,我们将只存储CT图像。因此,我们需要输入以下属性OnStore方法:

    c#
    [PresentationContext DicomUidType.CTImageStorage,DicomUidType.ImplicitVRLittleEndian,DicomUidType.JPEG2000,DicomUidType.JPEG2000LosslessOnly,DicomUidType.JPEGBaseline1,DicomUidType.JPEGExtended2_4,DicomUidType.ExplicitVRBigEndian,DicomUidType.ExplicitVRLittleEndian,DicomUidType.JPEGLosslessNonhier14,DicomUidType.JPEGLosslessNonhier14B)]公共DicomCommandStatusType OnStore (DicomClient客户,字节PresentationId,int消息id,字符串AffectedClass,字符串DicomCommandPriorityType优先,字符串MoveAE,intMoveMessageId DicomDataSet请求)

    这使得它可以存储与上面的CT图像传输语法。

  14. 添加的代码OnStore方法将图像保存到磁盘。你的OnStore应该类似于下面的方法:

    c#
    公共DicomCommandStatusType OnStore (DicomClient客户,字节PresentationId,int消息id,字符串AffectedClass,字符串DicomCommandPriorityType优先,字符串MoveAE,intMoveMessageId DicomDataSet请求){DicomCommandStatusType状态= DicomCommandStatusType.Success;试一试{如果(请求! =){字符串sop = Request.GetValue (DicomTag.SOPInstanceUID,字符串空虚);如果(字符串.IsNullOrEmpty (sop))状态= DicomCommandStatusType.ProcessingFailure;其他的{字符串文件=字符串.Format (“{0}{1}.dic”、Module.ImageDirectory sop);请求。保存(文件、DicomDataSetSaveFlags.None);}}}(异常e){状态= DicomCommandStatusType.ProcessingFailure;}返回状态;}

  15. 构建类库,输出的外接程序的目录并把它放到你的以前创建的服务器。

  16. 如果服务器正在运行,阻止它。启动服务器。
  17. 连接和存储CT图像。
LEADTOOLS成像、医学和文档
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。