+-

我正在尝试从文本文件中读取(####,####)的dicom标签,并从透明画布库中创建相应的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
最佳答案
我认为文本文件具有十六进制的组和元素,而ushort将其解析为十进制.
0008、1070(十进制)是十六进制的0x0008、0x042E,这不是有效的dicom标签(至少根据dicomlookup.com而言)
0008、1070(十进制)是十六进制的0x0008、0x042E,这不是有效的dicom标签(至少根据dicomlookup.com而言)
如果使用十六进制数字样式指定ushort.Parse,则应正确解析文本文件中的值.
msdn.microsoft.com/zh-CN/library/kbaxyssf(v=vs.110).aspx
点击查看更多相关文章
转载注明原文:c#-从dicom组和元素编号获取ClearCanvas DicomTag - 乐贴网