基于Fo-Dicom实现的MPPS服务


前言

  前一篇已经讲述了MPPS原理:DICOM MPPS详细介绍
这里将详细讲述代码实现。

一、MPPS的SCU端实现

  目前很多检查设备内部已经实现了MPPS的SCU功能,当检查状态更新时,会将更新状态和Dicom信息一并发送给SCP端。目前可以使用Fo-Dicom开源库快速实现该功能:

1、测试链接

实现一个CEcho:

 private string _ipStr = "localhost";
 private int _port = 8006;
 private string _calledAE = "MPPSC";
 private string _callingAE = "MPPSU";
var client = DicomClientFactory.Create(_ipStr,_port, false, _callingAE,_calledAE);
client.NegotiateAsyncOps();

DicomCEchoRequest request = new DicomCEchoRequest();
request.OnResponseReceived += (req, res) =>
{
   
   if(res.Status == DicomStatus.Success)
   {
   
        MessageBox.Show("链接成功!!!");
   }
   else
   {
   
        MessageBox.Show("链接失败!!!");
   }              
};

await client.AddRequestAsync(request);
await client.SendAsync();

2、使用NCreate,创建实例并发送一个IN PROGRESS状态

private static async Task<(string responseStatus, string responseMessage)> SendMppsInProgressAsync(string serverIP,int serverPort,string clientAET, string serverAET)
{
   
    var client = DicomClientFactory.Create(serverIP, serverPort, false, clientAET, serverAET);
    var dataset = new DicomDataset
    {
   
        {
    DicomTag.PerformedProcedureStepEndDate, DateTime.Now },
        {
    DicomTag.PerformedProcedureStepEndTime, DateTime.Now },
        {
    DicomTag.PerformedProcedureStepStatus, "IN PROGRESS" },
        {
    DicomTag.PerformedProcedureStepDescription, string.Empty },
        {
    DicomTag.PerformedProcedureTypeDescription, string.Empty }
    };
       
    var performedProtocolCodeSequence = new DicomSequence(DicomTag.PerformedProtocolCodeSequence);
    dataset.Add(performedProtocolCodeSequence);

    //空的序列信息
    var performedSeriesSq = new DicomSequence(DicomTag.PerformedSeriesSequence);
    dataset.Add
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0仰望星空007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值