Dicom 私有tag定义

Dicom 私有tag定义

DICOM里的Tag分为两类:一个是保存在偶数组中(如0x0028)的保留tag,是DICOM的自有字段;另一种是保存在奇数号中如(0x0069), 是自定义字段。

定义私有数据元素,

私有数据元素,一般在使用时可能需要不包含在标准数据元素中的信息,数据元素标签字段,可选VR字段,长度字段和值字段,使用在私有数据元素的元素标签中的组号码应该是一个奇数号码,数据元素标签的递增

定义元素标签,

私有元素将根据下面的规则来分配私有数据元素标签,
(1) 编号为(0xFFFF1000)其中FFFF为奇数的私有数据元素,可以存储组号为FFFF的一组元素。
(2) 数据元素(0xFFFF1000)是等同于tag head, (0xFFFF0011)等同于 1类数据元素,依次递增

//私有tag 的定义
第一步先定义一个tag head,下面是DicomTag构造需要的参数
        public DicomTag(uint tagvalue, String namevalue, String varNamevalue, DicomVr vrvalue, bool isMultiVrTagvalue, uint vmLowvalue, uint vmHighvalue, bool isRetiredvalue)
        {
            TagValue = tagvalue;
            _name = namevalue;
            _varName = varNamevalue;
            _vr = vrvalue;
            _multiVrTag = isMultiVrTagvalue;
            _vmLow = vmLowvalue;
            _vmHigh = vmHighvalue;
            _isRetired = isRetiredvalue;
        }
        //head
        var headTag = new DicomTag(0x00691000, "pTagDcm_PrivateHead", "PrivateHead", DicomVr.LOvr, false, 1, 1, false);
        //sequence
        var privateSeqTag = new DicomTag(0x00690011, "pTagDcm_PrivateSequence", "Sequence", DicomVr.SQvr, false, 1, 1, false);    
        //tag 
        var privateStartTag = new DicomTag(0x00690012, "pTagDcm_PrivateStartValue", "PrivateStartValue", DicomVr.DSvr, false, 1, 1, false);  
          

导出

// 私有tag 导出
		DataSet[headTag].SetNullValue();
		var privateSeqTag = new DicomElementSq(privateSeqTag);
        DataSet[0x00690011] = privateSeqTag ;
        var privateSeqItem = new DicomSequenceItem();
        privateSeqTag.AddSequenceItem(privateSeqItem);
        privateSeqItem[privateStartTag].SetString(0, "demo");

导入

// 私有tag 导入
//判断dicom 文件是否含有自定义的tag
		if (Dataset.Contains(0x00690011))
		{
		   string gatingType;
		   var privateSeq = Dataset[0x00690011] as DicomElementSq;
           string startValue;
           if (privateSeq[0][0x00690012].TryGetString(0, out startValue) && !string.IsNullOrEmpty(startValue))
           {
               //do some thing
           }
		}

还可以参考维基百科上的资料:
https://support.dcmtk.org/redmine/projects/dcmtk/wiki/howto_addprivatedata

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值