Пример #1
0
        public void AddOrUpdate_DicomItemOnExistingPrivateTag_PrivateGroupShouldCorrespondToPrivateCreator()
        {
            var dataset = new DicomDataset();

            var tag1 = new DicomTag(0x3001, 0x08, "PRIVATE");
            var tag2 = new DicomTag(0x3001, 0x12, "PRIVATE");
            var tag3 = new DicomTag(0x3001, 0x08, "ALSOPRIVATE");

            // By using the .Add(DicomTag, ...) method, private tags get automatically updated so that a private
            // creator group number is generated (if private creator is new) and inserted into the tag element.
            dataset.Add(tag1, 1);
            dataset.Add(tag2, 3.14);
            dataset.Add(tag3, "COOL");

            var tag1Private = dataset.GetPrivateTag(tag1);
            var contained   = dataset.SingleOrDefault(item => item.Tag.Group == tag1Private.Group &&
                                                      item.Tag.Element == tag1Private.Element);

            Assert.NotNull(contained);

            // Should confirm that element of the tag is not updated to include the private creator group number.
            dataset.AddOrUpdate(new DicomIntegerString(tag1, 50));

            contained = dataset.SingleOrDefault(item => item.Tag.Group == tag1Private.Group &&
                                                item.Tag.Element == tag1Private.Element);
            Assert.NotNull(contained);

            var thirdItem = dataset.ElementAt(2);

            Assert.Equal(thirdItem, contained);
        }