public void GivenDicomDatasetWithImplicitVR_WhenValidating_ThenItShouldThrowNotAcceptableException(DicomTransferSyntax transferSyntax) { var dicomDataset = Samples .CreateRandomInstanceDataset(dicomTransferSyntax: transferSyntax) .NotValidated(); Assert.Throws <NotAcceptableException>(() => ImplicitValueRepresentationValidator.Validate(dicomDataset)); }
public void GivenDicomDatasetWithNonImplicitVR_WhenValidating_ThenItShouldSucceed(DicomTransferSyntax transferSyntax) { var dicomDataset = Samples .CreateRandomInstanceDataset(dicomTransferSyntax: transferSyntax) .NotValidated(); ImplicitValueRepresentationValidator.Validate(dicomDataset); }
private static void ValidateCoreTags(DicomDataset dicomDataset, string requiredStudyInstanceUid) { // Validate for Implicit VR ImplicitValueRepresentationValidator.Validate(dicomDataset); // Ensure required tags are present. EnsureRequiredTagIsPresent(DicomTag.PatientID); EnsureRequiredTagIsPresent(DicomTag.SOPClassUID); // The format of the identifiers will be validated by fo-dicom. string studyInstanceUid = EnsureRequiredTagIsPresent(DicomTag.StudyInstanceUID); string seriesInstanceUid = EnsureRequiredTagIsPresent(DicomTag.SeriesInstanceUID); string sopInstanceUid = EnsureRequiredTagIsPresent(DicomTag.SOPInstanceUID); // Ensure the StudyInstanceUid != SeriesInstanceUid != sopInstanceUid if (studyInstanceUid == seriesInstanceUid || studyInstanceUid == sopInstanceUid || seriesInstanceUid == sopInstanceUid) { throw new DatasetValidationException( FailureReasonCodes.ValidationFailure, DicomCoreResource.DuplicatedUidsNotAllowed); } // If the requestedStudyInstanceUid is specified, then the StudyInstanceUid must match. if (requiredStudyInstanceUid != null && !studyInstanceUid.Equals(requiredStudyInstanceUid, StringComparison.OrdinalIgnoreCase)) { throw new DatasetValidationException( FailureReasonCodes.MismatchStudyInstanceUid, string.Format( CultureInfo.InvariantCulture, DicomCoreResource.MismatchStudyInstanceUid, studyInstanceUid, requiredStudyInstanceUid)); } string EnsureRequiredTagIsPresent(DicomTag dicomTag) { if (dicomDataset.TryGetSingleValue(dicomTag, out string value)) { return(value); } throw new DatasetValidationException( FailureReasonCodes.ValidationFailure, string.Format( CultureInfo.InvariantCulture, DicomCoreResource.MissingRequiredTag, dicomTag.ToString())); } }