Example #1
0
        /// <summary>
        /// Adds a new series instance to the collection
        /// of series instances in this channel instance.
        /// </summary>
        /// <returns>New series instance.</returns>
        public SeriesInstance AddNewSeriesInstance()
        {
            if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count)
            {
                throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition.");
            }

            CollectionElement seriesInstanceElement = new CollectionElement {
                TagOfElement = OneSeriesInstanceTag
            };
            SeriesDefinition seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count];
            SeriesInstance   seriesInstance   = new SeriesInstance(seriesInstanceElement, this, seriesDefinition);

            seriesInstanceElement.AddOrUpdateVector(SeriesInstance.SeriesValuesTag, PhysicalType.UnsignedInteger1, new byte[0]);

            CollectionElement?seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag);

            if (seriesInstancesElement == null)
            {
                seriesInstancesElement = new CollectionElement {
                    TagOfElement = SeriesInstancesTag
                };
                m_physicalStructure.AddElement(seriesInstancesElement);
            }

            seriesInstancesElement.AddElement(seriesInstanceElement);

            return(seriesInstance);
        }