Ejemplo n.º 1
0
        public DicomDictionaryEntry GetEntry(ushort gtag, ushort etag)                                  //搜索方法
        {
            DicomDictionaryEntry dicom = new DicomDictionaryEntry();
            string Tag = "(" + gtag.ToString("X4") + "," + etag.ToString("X4") + ")";

            foreach (DicomDictionaryEntry item in data)
            {
                if (item.Tag == Tag)
                {
                    dicom = item;
                    break;
                }
            }
            return(dicom);
        }
Ejemplo n.º 2
0
        public DicomDictionary(string Path) //将dicom.dic文件读取到结构数组中并保存
        {
            Path = "dicom.dic";
            StreamReader sr   = File.OpenText(Path); //打开文件
            string       line = "";

            while ((line = sr.ReadLine()) != null) //获取每一行
            {
                DicomDictionaryEntry DicomDictionaryEntry = new DicomDictionaryEntry();
                string[]             str = new string[5], tag = new string[2];
                char[] sp = { '\t' }, sp1 = { ',' };
                str = line.Split(sp);                                    //将每一行中的各个属性提出来
                DicomDictionaryEntry.Tag     = str[0].Replace("\"", ""); //保存Tag到DicomDictionaryEntry
                DicomDictionaryEntry.Name    = str[1].Replace("?", "");  //保存Name到DicomDictionaryEntry
                DicomDictionaryEntry.Keyword = str[2].Replace("?", "");  //保存Keyword到DicomDictionaryEntry
                DicomDictionaryEntry.VR      = str[3];                   //保存VR到DicomDictionaryEntry
                DicomDictionaryEntry.VM      = str[4];                   //保存VM到DicomDictionaryEntry
                data.Add(DicomDictionaryEntry);
            }
            sr.Close();                                                 //关闭文件
        }
Ejemplo n.º 3
0
        protected void LookupDictionary(DCMDataElement element)
        {
            //查数据字典得到VR,Name,VM
            DicomDictionaryEntry entry = dictionary.GetEntry(element.gtag, element.etag);

            if (entry != null)
            {
                if (element.vr == "" || element.vr == null)
                {
                    element.vr = entry.VR;
                }
                element.name = entry.Name;
                element.vm   = entry.VM;
            }
            else if (element.vr == "" && element.etag == 0)
            {
                element.vr = "UL";
            }
            //得到VR对象实例
            element.vrparser = vrfactory.GetVR(element.vr);
        }