/// <summary> /// Adds a new series instance to the collection /// of series instances in this channel instance. /// </summary> public SeriesInstance AddNewSeriesInstance() { CollectionElement seriesInstancesElement; CollectionElement seriesInstanceElement; SeriesDefinition seriesDefinition; SeriesInstance seriesInstance; if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count) { throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition."); } seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag); seriesInstanceElement = new CollectionElement() { TagOfElement = OneSeriesInstanceTag }; seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count]; seriesInstance = new SeriesInstance(seriesInstanceElement, this, seriesDefinition); if ((object)seriesInstancesElement == null) { seriesInstancesElement = new CollectionElement() { TagOfElement = SeriesInstancesTag }; m_physicalStructure.AddElement(seriesInstancesElement); } seriesInstancesElement.AddElement(seriesInstanceElement); return(seriesInstance); }
/// <summary> /// Removes the given series instance from the collection of series instances. /// </summary> /// <param name="seriesInstance">The series instance to be removed.</param> public void Remove(SeriesInstance seriesInstance) { CollectionElement seriesInstancesElement; List <CollectionElement> seriesInstanceElements; IList <SeriesDefinition> seriesDefinitions; SeriesInstance instance; seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag); if ((object)seriesInstancesElement == null) { return; } seriesDefinitions = Definition.SeriesDefinitions; seriesInstanceElements = seriesInstancesElement.GetElementsByTag(OneSeriesInstanceTag).Cast <CollectionElement>().ToList(); for (int i = seriesInstanceElements.Count; i >= 0; i--) { instance = new SeriesInstance(seriesInstanceElements[i], this, seriesDefinitions[i]); if (Equals(seriesInstance, instance)) { seriesInstancesElement.RemoveElement(seriesInstancesElement); } } }
/// <summary> /// Adds a new series instance to the collection /// of series instances in this channel instance. /// </summary> 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 ((object)seriesInstancesElement == null) { seriesInstancesElement = new CollectionElement() { TagOfElement = SeriesInstancesTag }; m_physicalStructure.AddElement(seriesInstancesElement); } seriesInstancesElement.AddElement(seriesInstanceElement); return(seriesInstance); }