- 选择 文件->新建->项目.
- 在 新建项目 对话框中, 在项目类型列表中选择 Visual C# 或 VB , 并在模板列表中选择 类库.
- 在项目名称字段中键入项目名称为SampleOptions,然后单击 确定。 如果需要,键入项目的新位置或使用浏览按钮选择目录,然后单击确定。
-
在“解决方案资源管理器”窗口中,右键单击“引用”,然后从菜单中选择“添加引用”。 在“添加引用”对话框中,选择“浏览”选项卡,然后转至 LEADTOOLS 19 \ Bin \ DotNet \ Win32文件夹,选择以下DLLS:
- Leadtools.dll
- Leadtools.Dicom.dll
- Leadtools.Dicom.AddIn.dll
- Microsoft.Practices.Unity
-
单击确定按钮将上述DLL添加到应用程序。
- 在"解决方案管理器" 窗口右击 "SampleAddIn" 选择 添加->类 . 在"新建项" 对话框中, 在"名称" 字段中键入 Module.cs . 点击 "添加" 按钮.
-
打开 Module.cs文件添加以下使用语句:
C#
using Leadtools.Dicom.AddIn;
using Leadtools.Dicom.AddIn.Attributes;
using System.IO;
-
定义 module 类如下所列:
C#
public class Module : ModuleInit
{
private static string _ImageDirectory = string.Empty;
public static string ImageDirectory
{
get
{
return _ImageDirectory;
}
}
public override void Load(string ServiceDirectory, string DisplayName)
{
string dir = ServiceDirectory + @"\Images\";
if(!Directory.Exists(dir))
Directory.CreateDirectory(dir);
_ImageDirectory = dir;
}
}
当此加载项加载时,Load功能由LEADTOOLS PACS Framework调用。 此类检查Images目录。 如果该目录不存在,它将由该插件创建。
-
In the "Solution Explorer" window right-click Class1.cs and select Rename from the context menu. Type CStoreAddIn.cs and press Enter.在“解决方案资源管理器”窗口中,右键单击Class1.cs,然后从上下文菜单中选择“重命名”。 键入CStoreAddIn.cs,然后确定。
-
打开 CStoreAddIn.cs 文件添加以下使用语句:
C#
using Leadtools.Dicom;
using Leadtools.Dicom.AddIn;
using Leadtools.Dicom.AddIn.Interfaces;
using Microsoft.Practices.Unity;
-
将IProcessCStore添加到CStoreAddIn类派生列表中。 你的类应该如下所示:
C#
public class CStoreAddIn : IProcessCStore
{
}
-
右击IProcessCStore 然后选择"实现接口-> 实现接口" 你的类应该如下所示:
C#
[DicomAddInAttribute("CStore","1.0.0.0",Description="DICOM Storage",Author="")]
public class CStoreAddIn : IProcessCStore
{
#region IProcessCStore Members
public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
{
throw new NotImplementedException();
}
#endregion
#region IProcessBreak Members
public void Break(BreakType type)
{
throw new NotImplementedException();
}
#endregion
}
-
要告诉服务器我们感兴趣的,我们需要为OnStore方法指定PresentationContextAttributes。 这会允许服务器建立一个association,以便在客户端连接时使用。 在这个例子中,我们将只存储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)]
public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
这样可以存储具有上述传输语法的CT图像。
-
添加可以将映像保存到磁盘的代码段。 您的OnStore方法应如下所示:
C#
public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
{
DicomCommandStatusType status = DicomCommandStatusType.Success;
try
{
if(Request!=null)
{
string sop = Request.GetValue(DicomTag.SOPInstanceUID, string.Empty);
if(string.IsNullOrEmpty(sop))
status = DicomCommandStatusType.ProcessingFailure;
else
{
string file = string.Format("{0}{1}.dic", Module.ImageDirectory,sop);
Request.Save(file, DicomDataSetSaveFlags.None);
}
}
}
catch(Exception e)
{
status = DicomCommandStatusType.ProcessingFailure;
}
return status;
}
-
构建类库并获取输出,然后将其放在先前创建的服务器的AddIn目录中。
- 如果服务器正在运行,停止。然后重新启动服务器。
- 连接并存储CT图像。
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。
葡萄城热门产品
活字格
打通现有软件,快速定制面向未来的个性化应用

SpreadJS
可嵌入您系统的在线Excel的纯前端表格控件

Wyn商业智能
可与企业自有系统深度集成,增强数据分析的 BI 工具
