public void CheckEmptyStringComparison()
        {
            var engine = new AnonymizeEngine(Mode.clone);

            var profileOpts = SecurityProfileOptions.BasicProfile
                              | SecurityProfileOptions.RetainLongModifDates
                              | SecurityProfileOptions.CleanDesc;

            var cp = new ConfidentialityProfile(profileOpts);

            engine.RegisterHandler(cp);
        }
        public void AnonymizeInPlace_Dataset_PatientDataEmpty()
        {
            var dataset = DicomFile.Open(@"TestData/CT1_J2KI").Dataset;

            var anonymizer = new AnonymizeEngine(Mode.inplace);
            var cp         = new ConfidentialityProfile();

            anonymizer.RegisterHandler(cp);

            anonymizer.Anonymize(dataset);

            Assert.AreEqual(0, dataset.GetValues <string>(DicomTag.PatientName).Length);
            Assert.AreEqual(0, dataset.GetValues <string>(DicomTag.PatientID).Length);
            Assert.AreEqual(0, dataset.GetValues <string>(DicomTag.PatientSex).Length);
        }
        public void Anonymize_Dataset_OriginalDatasetNotModified()
        {
            var dataset  = DicomFile.Open(@"TestData/CT-MONO2-16-ankle").Dataset;
            var expected = dataset.GetSingleValue <DicomUID>(DicomTag.StudyInstanceUID);

            var anonymizer = new AnonymizeEngine(Mode.clone);
            var cp         = new ConfidentialityProfile();

            anonymizer.RegisterHandler(cp);

            var newDataset = anonymizer.Anonymize(dataset);

            var actual    = dataset.GetSingleValue <DicomUID>(DicomTag.StudyInstanceUID);
            var actualNew = newDataset.GetSingleValue <DicomUID>(DicomTag.StudyInstanceUID);

            Assert.AreEqual(expected, actual);
            Assert.AreNotEqual(expected, actualNew);
        }
        public void AnonymizeInPlace_File_ImplementationVersionNameNotMaintained()
        {
            var file     = DicomFile.Open(@"TestData/CT1_J2KI");
            var expected = file.FileMetaInfo.ImplementationVersionName;

            Assert.IsFalse(string.IsNullOrEmpty(expected));

            var anonymizer = new AnonymizeEngine(Mode.inplace);
            var cp         = new ConfidentialityProfile();

            anonymizer.RegisterHandler(cp);

            file = anonymizer.Anonymize(file);

            var actual = file.FileMetaInfo.ImplementationVersionName;

            Assert.IsNull(actual);
        }
        public void AnonymizeInPlace_File_SopInstanceUidTransferredToMetaInfo()
        {
            var file = DicomFile.Open(@"TestData/CT1_J2KI");
            var old  = file.Dataset.GetSingleValue <DicomUID>(DicomTag.SOPInstanceUID);

            var anonymizer = new AnonymizeEngine(Mode.inplace);
            var cp         = new ConfidentialityProfile();

            anonymizer.RegisterHandler(cp);

            file = anonymizer.Anonymize(file);

            var expected = file.Dataset.GetSingleValue <DicomUID>(DicomTag.SOPInstanceUID);
            var actual   = file.FileMetaInfo.MediaStorageSOPInstanceUID;

            Assert.AreNotEqual(expected, old);
            Assert.AreEqual(expected, actual);
        }
        public void CheckThereIsNoGlobalCachedState()
        {
            var anonymizer = new AnonymizeEngine(Mode.inplace);
            var cp         = new ConfidentialityProfile(SecurityProfileOptions.BasicProfile);

            anonymizer.RegisterHandler(cp);

            var ds = new DicomDataset(new DicomUniqueIdentifier(DicomTag.RequestedSOPInstanceUID, "123"));

            anonymizer.Anonymize(ds);
            Assert.AreNotEqual("123", ds.GetSingleValue <string>(DicomTag.RequestedSOPInstanceUID));

            cp = new ConfidentialityProfile(SecurityProfileOptions.BasicProfile | SecurityProfileOptions.RetainUIDs);
            anonymizer.ForceRegisterHandler(cp);

            ds = new DicomDataset(new DicomUniqueIdentifier(DicomTag.RequestedSOPInstanceUID, "123"));

            anonymizer.Anonymize(ds);
            Assert.AreEqual("123", ds.GetSingleValue <string>(DicomTag.RequestedSOPInstanceUID));
        }
        public void TestDicomFile()
        {
            var file = DicomFile.Open(@"TestData/CT1_J2KI");

            var anonymizer = GetAnonEngine(Mode.clone);
            var cp         = new ConfidentialityProfile();

            anonymizer.RegisterHandler(cp);

            var prev = file.FileMetaInfo.MediaStorageSOPInstanceUID;

            Assert.AreNotEqual("", prev.ToString());

            var nf = anonymizer.Anonymize(file);

            Assert.AreEqual(0, nf.Dataset.GetValues <string>(DicomTag.PatientName).Length);
            Assert.AreEqual(0, nf.Dataset.GetValues <string>(DicomTag.PatientID).Length);
            Assert.AreEqual(0, nf.Dataset.GetValues <string>(DicomTag.PatientSex).Length);
            Assert.AreNotEqual(prev.ToString(), nf.FileMetaInfo.MediaStorageSOPInstanceUID.ToString());
            Assert.IsNull(nf.FileMetaInfo.ImplementationVersionName);
            Assert.IsNull(nf.FileMetaInfo.SourceApplicationEntityTitle);
            Assert.AreEqual(file.FileMetaInfo.TransferSyntax, nf.FileMetaInfo.TransferSyntax);
        }