【发布时间】:2015-08-04 22:58:05
【问题描述】:
我正在尝试从 (####,####) 的文本文件中读取 dicom 标签,并从 clear canvas 库中创建相应的 DicomTag
//parsing txt string to find the corresponding dicomtag
foreach (String elem in settings)
{
String tag = elem.Replace("(", "").Replace(")", "");
String[] arr = tag.Split(',');
DicomTag dTag = DicomTagDictionary.GetDicomTag(ushort.Parse(arr[0]), ushort.Parse(arr[1]));
if (dTag != null)
{
toRemove.Add(dTag);
}
else
{
MessageBox.Show("Tag: (" + arr[0] + "," + arr[1] + ") is not valid");
}
}
有时即使标签确实存在,DicomTagDictionary.GetDicomTag(ushort group, ushort element) 方法也找不到标签,例如 (0008,0008) 有效,但标签 (0008,1070) 无效。
标签可以在这里找到:http://medical.nema.org/Dicom/2011/11_06pu.pdf
可在此处找到等效的透明画布:https://github.com/ClearCanvas/ClearCanvas/blob/master/Dicom/DicomTags.cs
【问题讨论】:
-
我之前没有使用过 ClearCanvas,但我的第一个想法是文本具有十六进制的组和元素,而 ushort 将它们解析为十进制。也许尝试使用 HexNumber 数字样式的 ushort.Parse? msdn.microsoft.com/en-us/library/kbaxyssf(v=vs.110).aspx
标签: c# dicom clearcanvas