public void Validate(DicomFile dicomFile) { DicomAttributeCollection sopInstanceDataset = dicomFile.DataSet; DicomAttributeCollection metaInfo = dicomFile.MetaInfo; DicomAttribute attribute = metaInfo[DicomTags.MediaStorageSopClassUid]; // we want to skip Media Storage Directory Storage (DICOMDIR directories) if ("1.2.840.10008.1.3.10" == attribute.ToString()) { throw new DataStoreException("Cannot process dicom directory files."); } DicomValidator.ValidateStudyInstanceUID(sopInstanceDataset[DicomTags.StudyInstanceUid]); DicomValidator.ValidateSeriesInstanceUID(sopInstanceDataset[DicomTags.SeriesInstanceUid]); DicomValidator.ValidateSOPInstanceUID(sopInstanceDataset[DicomTags.SopInstanceUid]); DicomValidator.ValidateTransferSyntaxUID(metaInfo[DicomTags.TransferSyntaxUid]); if (dicomFile.SopClass == null) { throw new DataStoreException("The sop class must not be empty."); } DicomValidator.ValidateSopClassUid(dicomFile.SopClass.Uid); Study study = new Study(); study.Initialize(dicomFile); _validator.ValidatePersistentObject(study); }