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); }
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(); //关闭文件 }
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); }