DICOM 自定义tag赋值

DICOM 私有tag赋值小结
在给RTDose 文件填一个字符串时,该tag如下图所示:
在这里插入图片描述由于业务需要,需要把5个数据库的字段读出来进行拼接,当然字符串拼接在C# 中我们直接使用
string.Format()就行了,我们以doseComment为例

// string.Format
var doseComment= string.Format("{0}\\{1}\\{2}\\{3}\\{4}", 3D, 0, 281.340942382813, 0, 0);

然后我们直接把这个字符串写进dicom 文件

// SetStringValue
DataSet[DicomTags.DoseComment].SetStringValue(doseComment);

当我们用工具打开该文件时,发现doseComment这个tag 换行了,如下图所示:
在这里插入图片描述
当然我们也可以使用以下的写法:

// AppendString
DataSet[DicomTags.DoseComment].AppendString(3D);
DataSet[DicomTags.DoseComment].AppendString(string.Format(0));
DataSet[DicomTags.DoseComment].AppendString(string.Format(281.340942382813));
DataSet[DicomTags.DoseComment].AppendString(string.Format(0));
DataSet[DicomTags.DoseComment].AppendString(string.Format(0));

当我们用工具打开该文件时,发现doseComment这个tag 换了两行,如下图所示:
在这里插入图片描述

当我们直接使用如下的

// TryGetString
string doseComment;
if(DataSet[DicomTags.DoseComment].TryGetString(0, out doseComment))
{
}

我们发现,此时只拿到了一个3D,而不是整个字符串, 这个时候,我们就需要根据这个tag的count,进行遍历,拿到拼接字符串里的每个内容

// TryGetString
  var doseStrCount = DataSet[DicomTags.DoseComment].Count;
  var stringList = new List<string>();
  for (var i = 0; i < doseStrCount ; i++)
  {
      string doseStr;
      if (!DataSet[DicomTags.DoseComment].TryGetString(i, out doseStr))
      {
          LogAdapter.Logger.Error("error");
      }
      stringList.Add(doseStr);
  }
  //这时的stringList里就把所有的拼接字符串的内容就拿到了

以上就是自有tag的赋值读取的简单介绍。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值