Esempio n. 1
0
        public static string GetValueByTag(string strDcm, DicomTag tagname)
        {
            DicomImage image = new DicomImage(strDcm);

            string item_value = DicomUtility.GetStringFromDicomTag(image.Dataset, tagname);

            return(item_value);
        }
Esempio n. 2
0
        /// <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);
        }