public DcmDictionaryEntry(string group, string element,
string name, string privcreator, DicomVR[] vrs, string vm, bool retired)
{
DisplayTag = group + "," + element;
DisplayTag = DisplayTag.ToUpper();
Group = ushort.Parse(group.Replace('x', '0'), System.Globalization.NumberStyles.HexNumber, CultureInfo.InvariantCulture);
Element = ushort.Parse(element.Replace('x', '0'), System.Globalization.NumberStyles.HexNumber, CultureInfo.InvariantCulture);
Tag = (uint)Group << 16 | (uint)Element;
StringBuilder msb = new StringBuilder();
msb.Append(group.ToLower()).Append(element.ToLower());
msb .Replace('0', 'F').Replace('1', 'F').Replace('2', 'F')
.Replace('3', 'F').Replace('4', 'F').Replace('5', 'F')
.Replace('6', 'F').Replace('7', 'F').Replace('8', 'F')
.Replace('9', 'F').Replace('a', 'F').Replace('b', 'F')
.Replace('c', 'F').Replace('d', 'F').Replace('e', 'F')
.Replace('f', 'F').Replace('x', '0');
Mask = uint.Parse(msb.ToString(), System.Globalization.NumberStyles.HexNumber, CultureInfo.InvariantCulture);
Name = name;
PrivateCreator = privcreator.Trim();
Retired = retired;
VM = vm;
AllowedVRs = vrs;
if (DefaultVR == DicomVR.NONE) {
MultipleVM = 0;
MinimumVM = 0;
MaximumVM = 0;
} else {
MultipleVM = 1;
if (vm.Contains("-")) {
string[] parts = vm.Split('-');
MinimumVM = uint.Parse(parts[0], CultureInfo.InvariantCulture);
if (parts[1].Contains("n")) {
MaximumVM = 0xffffffff;
if (parts[1] != "n") {
MultipleVM = uint.Parse(parts[1].Replace("n", ""), CultureInfo.InvariantCulture);
}
} else {
MaximumVM = uint.Parse(parts[1], CultureInfo.InvariantCulture);
}
} else {
MinimumVM = MaximumVM = uint.Parse(vm, CultureInfo.InvariantCulture);
}
}
IsPrivate = !String.IsNullOrEmpty(PrivateCreator);
}