public static string GetValueByTag(string strDcm, DicomTag tagname) { DicomImage image = new DicomImage(strDcm); string item_value = DicomUtility.GetStringFromDicomTag(image.Dataset, tagname); return(item_value); }
/// <summary> /// 获取DICOM文件的字典数据 /// </summary> /// <param name="srcDcm"></param> /// <returns></returns> public static Dictionary <string, string> GetDcmMeta(string srcDcm) { Dictionary <string, string> dic = new Dictionary <string, string>(); DicomImage image = new DicomImage(srcDcm); IEnumerator <Dicom.DicomItem> iterator = image.Dataset.GetEnumerator(); while (iterator.MoveNext()) { if (iterator.Current is Dicom.DicomStringElement) { var item = iterator.Current as Dicom.DicomStringElement; if (!dic.ContainsKey(item.Tag.DictionaryEntry.Keyword)) { if (item.Tag.DictionaryEntry.Keyword == "WindowWidth") { dic.Add(item.Tag.DictionaryEntry.Keyword, image.WindowWidth.ToString()); } else if (item.Tag.DictionaryEntry.Keyword == "WindowCenter") { dic.Add(item.Tag.DictionaryEntry.Keyword, image.WindowCenter.ToString()); } else { var item_value = DicomUtility.GetStringFromDicomTag(image.Dataset, item.Tag); if (item_value == null) { if (item.Count > 0) { item_value = item.Get <string>(); } } dic.Add(item.Tag.DictionaryEntry.Keyword, item_value); } } } if (iterator.Current is Dicom.DicomSignedShort) { var item_short = iterator.Current as Dicom.DicomSignedShort; if (!dic.ContainsKey(item_short.Tag.DictionaryEntry.Keyword)) { if (item_short.Count > 0) { dic.Add(item_short.Tag.DictionaryEntry.Keyword, item_short.Get <string>()); } } } if (iterator.Current is Dicom.DicomUnsignedShort) { var item_short = iterator.Current as Dicom.DicomUnsignedShort; if (!dic.ContainsKey(item_short.Tag.DictionaryEntry.Keyword)) { if (item_short.Count > 0) { dic.Add(item_short.Tag.DictionaryEntry.Keyword, item_short.Get <string>()); } } } if (iterator.Current is Dicom.DicomUnsignedLong) { var item_short = iterator.Current as Dicom.DicomUnsignedLong; if (!dic.ContainsKey(item_short.Tag.DictionaryEntry.Keyword)) { if (item_short.Count > 0) { dic.Add(item_short.Tag.DictionaryEntry.Keyword, item_short.Get <string>()); } } } } return(dic); }