public static string Generate(string vnamespace, string vclass, DicomDictionary dict) { StringBuilder output = new StringBuilder(); output.AppendFormat("namespace {0} {{", vnamespace).AppendLine(); output.AppendFormat("\tpublic partial class {0} {{", vclass).AppendLine(); foreach (DicomDictionaryEntry entry in dict.OrderBy(entry => (uint)entry.Tag)) { //if (entry.MaskTag != null) // continue; string vrs = String.Join("/", entry.ValueRepresentations.Select(x => x.ToString())); string variable = "_" + Char.ToLower(entry.Keyword[0]) + entry.Keyword.Substring(1); output.AppendFormat("\t\t///<summary>{0} VR={1} VM={2} {3}{4}</summary>", entry.Tag, vrs, entry.ValueMultiplicity, entry.Name, entry.IsRetired ? " (RETIRED)" : "").AppendLine(); output.AppendFormat("\t\tpublic readonly static DicomTag {0}{1} = new DicomTag(0x{2:x4}, 0x{3:x4});", entry.Keyword, entry.IsRetired ? "RETIRED" : "", entry.Tag.Group, entry.Tag.Element).AppendLine(); output.AppendLine(); //output.AppendFormat("\t\t///<summary>{0} VR={1} VM={2} {3}{4}</summary>", // entry.Tag, vrs, entry.ValueMultiplicity, entry.Name, entry.IsRetired ? " (RETIRED)" : "").AppendLine(); //output.AppendFormat("\t\tpublic static DicomTag {0}{1} {{", entry.Keyword, entry.IsRetired ? "RETIRED" : "").AppendLine(); //output.AppendLine("\t\t\tget {"); //output.AppendFormat("\t\t\t\tif ({0} == null)", variable).AppendLine(); //output.AppendFormat("\t\t\t\t\t{0} = new DicomTag(0x{1:x4}, 0x{2:x4});", variable, entry.Tag.Group, entry.Tag.Element).AppendLine(); //output.AppendFormat("\t\t\t\treturn {0};", variable).AppendLine(); //output.AppendLine("\t\t\t}"); //output.AppendLine("\t\t}"); //output.AppendFormat("\t\tprivate static DicomTag {0};", variable).AppendLine(); //output.AppendLine(); } output.AppendLine("\t}"); output.AppendLine("}"); return(output.ToString()); }
public static string Generate(string vnamespace, string vclass, string vmethod, DicomDictionary dict) { StringBuilder output = new StringBuilder(); output.AppendFormat("namespace {0} {{", vnamespace).AppendLine(); output.AppendFormat("\tpublic partial class {0} {{", vclass).AppendLine(); output.AppendFormat("\t\tpublic static void {0}(DicomDictionary dict) {{", vmethod).AppendLine(); foreach (DicomDictionaryEntry entry in dict.OrderBy(entry => (uint)entry.Tag)) { string vm = null; switch (entry.ValueMultiplicity.ToString()) { case "1": vm = "DicomVM.VM_1"; break; case "1-2": vm = "DicomVM.VM_1_2"; break; case "1-3": vm = "DicomVM.VM_1_3"; break; case "1-8": vm = "DicomVM.VM_1_8"; break; case "1-32": vm = "DicomVM.VM_1_32"; break; case "1-99": vm = "DicomVM.VM_1_99"; break; case "1-n": vm = "DicomVM.VM_1_n"; break; case "2": vm = "DicomVM.VM_2"; break; case "2-n": vm = "DicomVM.VM_2_n"; break; case "2-2n": vm = "DicomVM.VM_2_2n"; break; case "3": vm = "DicomVM.VM_3"; break; case "3-n": vm = "DicomVM.VM_3_n"; break; case "3-3n": vm = "DicomVM.VM_3_3n"; break; case "4": vm = "DicomVM.VM_4"; break; case "6": vm = "DicomVM.VM_6"; break; case "16": vm = "DicomVM.VM_16"; break; default: vm = String.Format("DicomVM.Parse(\"{0}\")", entry.ValueMultiplicity); break; } if (entry.MaskTag == null || entry.MaskTag.Mask == 0xffffffff) { output.AppendFormat("\t\t\tdict._entries.Add(DicomTag.{3}{6}, new DicomDictionaryEntry(DicomTag.{3}{6}, \"{2}\", \"{3}\", {4}, {5}", entry.Tag.ToString("g", null), entry.Tag.ToString("e", null), entry.Name, entry.Keyword, vm, entry.IsRetired ? "true" : "false", entry.IsRetired ? "RETIRED" : ""); } else { output.AppendFormat("\t\t\tdict.Add(new DicomDictionaryEntry(DicomMaskedTag.Parse(\"{0}\",\"{1}\"), \"{2}\", \"{3}\", {4}, {5}", entry.MaskTag.ToString("g", null), entry.MaskTag.ToString("e", null), entry.Name, entry.Keyword, vm, entry.IsRetired ? "true" : "false"); } foreach (DicomVR vr in entry.ValueRepresentations) { output.AppendFormat(", DicomVR.{0}", vr.Code); } output.AppendLine("));"); } output.AppendLine("\t\t}"); output.AppendLine("\t}"); output.AppendLine("}"); return(output.ToString()); }