コード例 #1
0
        public void ConstraintsGenTypes()
        {
            var orderInt      = new OrderedIntConstraint(Order.Equal, int.MinValue, DicomTag.SeriesNumber);
            var orderDouble   = new OrderedDoubleConstraint(Order.Equal, double.MaxValue, DicomTag.SeriesNumber);
            var orderDateTime = new OrderedDateTimeConstraint(Order.Equal, DateTime.UtcNow, DicomTag.SeriesNumber);
            var orderString   = new OrderedStringConstraint(Order.Equal, new OrderedString("hOOf", StringComparisonType.CulureInvariantCaseSensitive), DicomTag.SeriesNumber);

            var stringOrderUID = new UIDStringOrderConstraint(Order.Equal, DicomUID.CTImageStorage.UID, DicomTag.SOPClassUID);
            var timeOrder = new TimeOrderConstraint(Order.GreaterThanOrEqual, new TimeSpan(0, 0, 0), DicomTag.SeriesTime);
            var stringContains = new StringContainsConstraint(DicomTag.PatientPosition, "HFS");
            var stringRegex = new RegexConstraint(DicomTag.SeriesDescription, "(hog)", RegexOptions.ECMAScript);
            var compareStrings = new[] { "HOOF", "LEAF", "FLOWER", "HOG" }.Select(t => new OrderedString(t));
            var stringCompountGroup = new GroupConstraint(compareStrings.Select(c => new OrderedStringConstraint(Order.Equal, c, DicomTag.BodyPartExamined)).ToArray(), LogicalOperator.Or);
            var stringCompound      = new GroupTagConstraint(stringCompountGroup, DicomTag.BodyPartExamined);

            DicomConstraint[] dc = new[]
            {
                new RequiredTagConstraint(TagRequirement.Optional, orderInt),
                new RequiredTagConstraint(TagRequirement.Optional, orderDouble),
                new RequiredTagConstraint(TagRequirement.Optional, orderDateTime),
                new RequiredTagConstraint(TagRequirement.Optional, orderString),
                new RequiredTagConstraint(TagRequirement.Optional, stringOrderUID),
                new RequiredTagConstraint(TagRequirement.PresentCanBeEmpty, timeOrder),
                new RequiredTagConstraint(TagRequirement.PresentCanBeEmpty, stringContains),
                new RequiredTagConstraint(TagRequirement.Optional, stringRegex),
                new RequiredTagConstraint(TagRequirement.PresentNotEmpty, stringOrderUID),
                new RequiredTagConstraint(TagRequirement.Optional, orderString),
                new RequiredTagConstraint(TagRequirement.Optional, stringCompound),
            };

            var dc2 = new GroupConstraint(dc, LogicalOperator.Or) as DicomConstraint;

            JsonConvert.SerializeObject(dc2);
        }
コード例 #2
0
        public void ConstraintsTime()
        {
            var o0 = new TimeOrderConstraint(Order.Never, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o1 = new TimeOrderConstraint(Order.LessThan, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o2 = new TimeOrderConstraint(Order.LessThanOrEqual, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o3 = new TimeOrderConstraint(Order.Equal, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o4 = new TimeOrderConstraint(Order.GreaterThan, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o5 = new TimeOrderConstraint(Order.GreaterThanOrEqual, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o6 = new TimeOrderConstraint(Order.NotEqual, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);
            var o7 = new TimeOrderConstraint(Order.Always, new TimeSpan(11, 11, 11), DicomTag.SeriesTime);

            DicomDataset ds = new DicomDataset
            {
                { DicomTag.SeriesTime, new DateTime(2017, 2, 14, 10, 11, 11) },
            };

            Assert.IsFalse(o0.Check(ds).Result);
            Assert.IsTrue(o1.Check(ds).Result);
            Assert.IsTrue(o2.Check(ds).Result);
            Assert.IsFalse(o3.Check(ds).Result);
            Assert.IsFalse(o4.Check(ds).Result);
            Assert.IsFalse(o5.Check(ds).Result);
            Assert.IsTrue(o6.Check(ds).Result);
            Assert.IsTrue(o7.Check(ds).Result);

            ds.AddOrUpdate(DicomTag.SeriesTime, new DateTime(2017, 2, 14, 11, 11, 11));
            Assert.IsFalse(o0.Check(ds).Result);
            Assert.IsFalse(o1.Check(ds).Result);
            Assert.IsTrue(o2.Check(ds).Result);
            Assert.IsTrue(o3.Check(ds).Result);
            Assert.IsFalse(o4.Check(ds).Result);
            Assert.IsTrue(o5.Check(ds).Result);
            Assert.IsFalse(o6.Check(ds).Result);
            Assert.IsTrue(o7.Check(ds).Result);

            ds.AddOrUpdate(DicomTag.SeriesTime, new DateTime(2017, 2, 14, 13, 11, 11));
            Assert.IsFalse(o0.Check(ds).Result);
            Assert.IsFalse(o1.Check(ds).Result);
            Assert.IsFalse(o2.Check(ds).Result);
            Assert.IsFalse(o3.Check(ds).Result);
            Assert.IsTrue(o4.Check(ds).Result);
            Assert.IsTrue(o5.Check(ds).Result);
            Assert.IsTrue(o6.Check(ds).Result);
            Assert.IsTrue(o7.Check(ds).Result);
        }