internal Series(SeriesXml xml, Study parent, IDicomFileLoader dicomFileLoader) { _xml = xml; _parentStudy = parent; _dicomFileLoader = dicomFileLoader; _sopInstanceCollection = new SopInstanceCollection(this); _firstSopInstance = _sopInstanceCollection.FirstOrDefault(); }
public Study(StudyXml xml, IDicomFileLoader dicomFileLoader) { _studyInstanceUid = xml.StudyInstanceUid; _xml = xml; _dicomFileLoader = dicomFileLoader; _seriesCollection = new SeriesCollection(this); _firstSopInstance = _seriesCollection.SelectMany(s => s.SopInstances).FirstOrDefault(); }
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 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)); }
public LocalStoreSopDataSource(ISopInstance sop) : base(sop.FilePath) { _sop = sop; }