/// <summary>
        /// Initialize dictionary with standard tags.
        /// </summary>
        private static void InitStandardTags()
        {
            using (var stream = typeof(DicomTagDictionary).Assembly.GetManifestResourceStream("Macro.Dicom.DicomTagDictionary.data"))
            {
                if (stream == null)
                {
                    throw new InvalidOperationException("DICOM data dictionary embedded resource not found.");
                }

                using (var reader = new StreamReader(stream))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (line.StartsWith("#"))
                        {
                            continue;
                        }

                        var items = line.Split(';');
                        var tag   = new DicomTag(
                            uint.Parse(items[0]),
                            items[1],
                            items[2],
                            DicomVr.GetVR(items[3]),
                            bool.Parse(items[4]),
                            uint.Parse(items[5]),
                            uint.Parse(items[6]),
                            bool.Parse(items[7])
                            );
                        _tags.Add(tag.TagValue, tag);
                        _tagNames.Add(tag.VariableName, tag);
                    }
                }
            }
        }