Exemplo n.º 1
0
        public AnonymizeStudyOutput AnonymizeStudy(AnonymizeStudyInput input)
        {
            // load study to anonymize
            IDataStoreReader    reader = DataAccessLayer.GetIDataStoreReader();
            IStudy              study  = reader.GetStudy(input.StudyInstanceUID);
            List <ISopInstance> sops   = new List <ISopInstance>(study.GetSopInstances());

            // ensure there is a valid output location
            if (string.IsNullOrEmpty(input.OutputDirectory))
            {
                // create temp dir
            }

            string fullPath = Path.GetFullPath(input.OutputDirectory);

            if (!Directory.Exists(fullPath))
            {
                Directory.CreateDirectory(fullPath);
            }

            // set up anonymization data
            StudyData studyData = new StudyData();

            studyData.PatientId         = input.PatientId;
            studyData.PatientsNameRaw   = input.PatientsName;
            studyData.PatientsBirthDate = input.PatientsBirthDate;
            studyData.PatientsSex       = input.PatientsSex;
            studyData.AccessionNumber   = input.AccessionNumber;
            studyData.StudyDescription  = input.StudyDescription;
            studyData.StudyDate         = input.StudyDate;

            DicomAnonymizer anonymizer = new DicomAnonymizer();

            anonymizer.StudyDataPrototype = studyData;

            //The default anonymizer removes the series data, so we just clone the original.
            anonymizer.AnonymizeSeriesDataDelegate =
                delegate(SeriesData original) { return(original.Clone()); };

            // anonymize each image in the study
            for (int i = 0; i < sops.Count; ++i)
            {
                ISopInstance sop  = sops[i];
                DicomFile    file = new DicomFile(sop.GetLocationUri().LocalDiskPath);

                anonymizer.Anonymize(file);

                file.Save(string.Format("{0}\\{1}.dcm", fullPath, i));
            }

            return(new AnonymizeStudyOutput(sops.Count));
        }
Exemplo n.º 2
0
		public AnonymizeStudyOutput AnonymizeStudy(AnonymizeStudyInput input)
		{
			// load study to anonymize
			IDataStoreReader reader = DataAccessLayer.GetIDataStoreReader();
			IStudy study = reader.GetStudy(input.StudyInstanceUID);
			List<ISopInstance> sops = new List<ISopInstance>(study.GetSopInstances());

			// ensure there is a valid output location
			if(string.IsNullOrEmpty(input.OutputDirectory))
			{
				// create temp dir
			}

			string fullPath = Path.GetFullPath(input.OutputDirectory);
			if (!Directory.Exists(fullPath))
			{
				Directory.CreateDirectory(fullPath);
			}

			// set up anonymization data
			StudyData studyData = new StudyData();
			studyData.PatientId = input.PatientId;
			studyData.PatientsNameRaw = input.PatientsName;
			studyData.PatientsBirthDate = input.PatientsBirthDate;
			studyData.PatientsSex = input.PatientsSex;
			studyData.AccessionNumber = input.AccessionNumber;
			studyData.StudyDescription = input.StudyDescription;
			studyData.StudyDate = input.StudyDate;

			DicomAnonymizer anonymizer = new DicomAnonymizer();
			anonymizer.StudyDataPrototype = studyData;

			//The default anonymizer removes the series data, so we just clone the original.
			anonymizer.AnonymizeSeriesDataDelegate =
				delegate(SeriesData original) { return original.Clone(); };

			// anonymize each image in the study
			for (int i = 0; i < sops.Count; ++i)
			{
				ISopInstance sop = sops[i];
				DicomFile file = new DicomFile(sop.GetLocationUri().LocalDiskPath);

				anonymizer.Anonymize(file);

				file.Save(string.Format("{0}\\{1}.dcm", fullPath, i));
			}

			return new AnonymizeStudyOutput(sops.Count);
		}