Example #1
0
 internal Series(SeriesXml xml, Study parent, IDicomFileLoader dicomFileLoader)
 {
     _xml                   = xml;
     _parentStudy           = parent;
     _dicomFileLoader       = dicomFileLoader;
     _sopInstanceCollection = new SopInstanceCollection(this);
     _firstSopInstance      = _sopInstanceCollection.FirstOrDefault();
 }
Example #2
0
        public Study(StudyXml xml, IDicomFileLoader dicomFileLoader)
        {
            _studyInstanceUid = xml.StudyInstanceUid;
            _xml             = xml;
            _dicomFileLoader = dicomFileLoader;

            _seriesCollection = new SeriesCollection(this);
            _firstSopInstance = _seriesCollection.SelectMany(s => s.SopInstances).FirstOrDefault();
        }
Example #3
0
			public bool TryGet(string sopInstanceUid, out ISopInstance series)
			{
				var seriesXml = Xml[sopInstanceUid];
				if (seriesXml != null)
				{
					series = _owner.GetSopInstance(seriesXml);
					return true;
				}
				series = null;
				return false;
			}
Example #4
0
            public bool TryGet(string sopInstanceUid, out ISopInstance series)
            {
                var seriesXml = Xml[sopInstanceUid];

                if (seriesXml != null)
                {
                    series = _owner.GetSopInstance(seriesXml);
                    return(true);
                }
                series = null;
                return(false);
            }
        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));
        }
Example #6
0
		internal Series(SeriesXml xml, Study parent, IDicomFileLoader dicomFileLoader)
		{
			_xml = xml;
			_parentStudy = parent;
			_dicomFileLoader = dicomFileLoader;
			_sopInstanceCollection = new SopInstanceCollection(this);
			_firstSopInstance = _sopInstanceCollection.FirstOrDefault();
		}
 public LocalStoreSopDataSource(ISopInstance sop)
     : base(sop.FilePath)
 {
     _sop = sop;
 }
 public LocalStoreSopDataSource(ISopInstance sop)
     : base(sop.FilePath)
 {
     _sop = sop;
 }
Example #9
0
		public Study(StudyXml xml, IDicomFileLoader dicomFileLoader)
		{
			_studyInstanceUid = xml.StudyInstanceUid;
			_xml = xml;
			_dicomFileLoader = dicomFileLoader;

			_seriesCollection = new SeriesCollection(this);
			_firstSopInstance = _seriesCollection.SelectMany(s => s.SopInstances).FirstOrDefault();
		}