public void GivenPrivateIdentificationCodeWithoutVR_WhenValidating_ThenShouldSucceed() { DicomTag dicomTag = new DicomTag(0x2201, 0x0010); AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(dicomTag.GetPath(), null); _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }
private async Task <int> AddTagAsync(DicomTag tag) { AddExtendedQueryTagEntry extendedQueryTagEntry = tag.BuildAddExtendedQueryTagEntry(); var list = await _extendedQueryTagStore.AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry }, 128); return(list[0].Key); }
public void GivenPrivateTagWithTooLongPrivateCreator_WhenValidating_ThenShouldThrowException() { // max length of PrivateCreator is 64 AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry("12051003", DicomVRCode.CS, new string('c', 65)); Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry })); }
public void GivenPrivateIdentificationCodeWithWrongVR_WhenValidating_ThenShouldSucceed() { DicomTag dicomTag = new DicomTag(0x2201, 0x0010); AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(dicomTag.GetPath(), DicomVR.AE.Code); Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry })); }
public async Task GivenValidInput_WhenAddExtendedQueryTagIsInvoked_ThenShouldSucceed() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry entry = tag.BuildAddExtendedQueryTagEntry(); await _extendedQueryTagService.AddExtendedQueryTagAsync(new AddExtendedQueryTagEntry[] { entry }, default); _extendedQueryTagEntryValidator.ReceivedWithAnyArgs().ValidateExtendedQueryTags(default);
public void GivenInvalidTag_WhenValidating_ThenShouldThrowException(string path) { AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path, DicomVRCode.AE); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); Assert.Equal(string.Format("The extended query tag '{0}' is invalid as it cannot be parsed into a valid Dicom Tag.", path), ex.Message); }
[InlineData("0018A001", "", DicomVRCode.SQ)] // when VR is missing for standard tag public void GivenUnsupportedVR_WhenValidating_ThenShouldThrowException(string path, string vr, string expectedVR) { AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path, vr); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); Assert.Equal(string.Format("The VR code '{0}' specified for tag '{1}' is not supported.", expectedVR, path), ex.Message); }
public void GivenValidAndInvalidTags_WhenValidating_ThenShouldThrowException() { AddExtendedQueryTagEntry invalidEntry = DicomTag.PatientName.BuildAddExtendedQueryTagEntry(); AddExtendedQueryTagEntry validEntry = DicomTag.DeviceSerialNumber.BuildAddExtendedQueryTagEntry(); Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { validEntry, invalidEntry })); }
public void GivenInvalidTagWithoutVR_WhenNormalizing_ThenShouldNotThrowException() { // Add this unit test for regression: we had a bug when tag is valid and VR is null, NullPointerException is thrown. More details can be found https://microsofthealth.visualstudio.com/Health/_workitems/edit/81015 AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path: "00111011", null, null, QueryTagLevel.Series); entry.Normalize(); }
public void GivenPrivateIdentificationCodeTagWithoutVR_WhenNormalizing_ThenVRShouldBeFilled() { AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry("22010010", null, null, QueryTagLevel.Instance); AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(DicomVRCode.LO, normalized.VR); }
public void GivenSupportedTag_WhenValidating_ThenShouldThrowException() { AddExtendedQueryTagEntry entry = DicomTag.PatientName.BuildAddExtendedQueryTagEntry(); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry })); Assert.Equal(string.Format("The query tag '{0}' is already supported.", entry.Path), ex.Message); }
public void GivenMissingLevel_WhenValidating_ThenShouldThrowException() { AddExtendedQueryTagEntry entry = new AddExtendedQueryTagEntry { Path = "00101060", VR = "PN" }; Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry })); }
public void GivenValidExtendedQueryTagEntry_WhenNormalizing_ThenShouldReturnSameEntry(AddExtendedQueryTagEntry entry) { AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(entry.Path, normalized.Path); Assert.Equal(entry.VR, normalized.VR); Assert.Equal(entry.Level, normalized.Level); }
public void GivenVROfLowerCase_WhenNormalizing_ThenVRShouldBeUpperCase() { DicomTag tag = DicomTag.DeviceLabel; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(tag.GetPath(), tag.GetDefaultVR().Code.ToLowerInvariant(), null, QueryTagLevel.Instance); AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(entry.VR.ToUpperInvariant(), normalized.VR); }
public void GivenStandardTagWithoutVR_WhenNormalizing_ThenVRShouldBeFilled(string vr) { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(tag.GetPath(), vr, null, QueryTagLevel.Instance); AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(tag.GetDefaultVR().Code, normalized.VR); }
public void GivenStandardTagWithPrivateCreator_WhenValidating_ThenShouldThrowExceptoin() { AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(DicomTag.DeviceSerialNumber.GetPath(), null, privateCreator: "PrivateCreator"); Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); }
public void GivenPrivateTagWithoutPrivateCreator_WhenValidating_ThenShouldThrowException() { string path = "12051003"; string vr = DicomVRCode.OB; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path, vr); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); Assert.Equal(string.Format("The private creator for private tag '{0}' is missing.", path), ex.Message); }
public void GivenPrivateTagWithoutVR_WhenValidating_ThenShouldThrowException() { string path = "12051003"; string vr = string.Empty; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path, vr, "PrivateCreator1"); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry })); Assert.Equal(string.Format("The vr for tag '12051003' is missing.", path), ex.Message); }
public async Task GivenCompletedExtendedQueryTag_WhenAddExtendedQueryTag_ThenShouldThrowException() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry extendedQueryTagEntry = tag.BuildAddExtendedQueryTagEntry(); await AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry }); await Assert.ThrowsAsync <ExtendedQueryTagsAlreadyExistsException>(() => AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry })); }
public void GivenInvalidVRForTag_WhenValidating_ThenShouldThrowException() { string tagPath = DicomTag.DeviceSerialNumber.GetPath(); string vr = "CS"; // expected vr should be LO. CS is not acceptable AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(tagPath, vr); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); Assert.Equal(string.Format("The VR code '{0}' is incorrectly specified for '{1}'. The expected VR code for it is '{2}'. Retry this request either with the correct VR code or without specifying it.", vr, tagPath, "LO"), ex.Message); }
public void GivenInvalidVR_WhenValidating_ThenShouldThrowException() { string tagPath = DicomTag.DeviceSerialNumber.GetPath(); string vr = "LOX"; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(tagPath, vr); var ex = Assert.Throws <ExtendedQueryTagEntryValidationException>(() => { _extendedQueryTagEntryValidator.ValidateExtendedQueryTags(new AddExtendedQueryTagEntry[] { entry }); }); Assert.Equal(string.Format("The VR code '{0}' for tag '{1}' is invalid.", vr, tagPath), ex.Message); }
public async Task GivenReindexingExtendedQueryTag_WhenAddExtendedQueryTag_ThenShouldThrowException() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry extendedQueryTagEntry = tag.BuildAddExtendedQueryTagEntry(); int key = (await AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry }, ready: false)).Single(); Assert.NotEmpty(await _extendedQueryTagStore.AssignReindexingOperationAsync(new int[] { key }, Guid.NewGuid())); await Assert.ThrowsAsync <ExtendedQueryTagsAlreadyExistsException>(() => AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry })); }
public void GivenStandardTagAsKeyword_WhenNormalizing_ThenVRShouldBeFilled() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(path: tag.DictionaryEntry.Keyword, tag.GetDefaultVR().Code, null, QueryTagLevel.Instance); string expectedPath = tag.GetPath(); AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(normalized.Path, expectedPath); }
public void GivenStandardTagWithVR_WhenNormalizing_ThenVRShouldNotBeUpdated() { DicomTag tag = DicomTag.DeviceSerialNumber; string vr = DicomVR.CS.Code; AddExtendedQueryTagEntry entry = CreateExtendedQueryTagEntry(tag.GetPath(), vr, null, QueryTagLevel.Instance); AddExtendedQueryTagEntry normalized = entry.Normalize(); Assert.Equal(vr, normalized.VR); }
public async Task GivenExistingExtendedQueryTag_WhenDeleteExtendedQueryTag_ThenTagShouldBeRemoved() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry extendedQueryTagEntry = tag.BuildAddExtendedQueryTagEntry(); await _extendedQueryTagStore.AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry }); await _extendedQueryTagStore.DeleteExtendedQueryTagAsync(extendedQueryTagEntry.Path, extendedQueryTagEntry.VR); await VerifyTagNotExist(extendedQueryTagEntry.Path); }
public void GivenPrivateTagWithNonEmptyPrivateCreator_WhenNormalizing_ThenPrivateCreatorShouldBeNull(string privateCreator) { DicomTag tag1 = new DicomTag(0x0405, 0x1001); AddExtendedQueryTagEntry normalized = new AddExtendedQueryTagEntry() { Level = QueryTagLevel.Instance.ToString(), Path = tag1.GetPath(), PrivateCreator = privateCreator, VR = DicomVRCode.CS }.Normalize(); Assert.Null(normalized.PrivateCreator); }
public async Task GivenMoreThanAllowedExtendedQueryTags_WhenAddExtendedQueryTag_ThenShouldThrowException() { DicomTag tag1 = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry extendedQueryTagEntry1 = tag1.BuildAddExtendedQueryTagEntry(); await AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry1 }); DicomTag tag2 = DicomTag.DeviceDescription; AddExtendedQueryTagEntry extendedQueryTagEntry2 = tag2.BuildAddExtendedQueryTagEntry(); await Assert.ThrowsAsync <ExtendedQueryTagsExceedsMaxAllowedCountException>(() => AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry2 }, maxAllowedCount : 1)); }
public async Task GivenValidExtendedQueryTag_WhenAddExtendedQueryTag_ThenTagQueryStatusShouldBeEnabled() { DicomTag tag = DicomTag.DeviceSerialNumber; AddExtendedQueryTagEntry extendedQueryTagEntry = tag.BuildAddExtendedQueryTagEntry(); await AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry }); var tagEntry = await _extendedQueryTagStore.GetExtendedQueryTagAsync(tag.GetPath()); Assert.Equal(QueryStatus.Enabled, tagEntry.QueryStatus); }
public async Task GivenValidExtendedQueryTags_WhenAddExtendedQueryTag_ThenTagShouldBeAdded() { DicomTag tag1 = DicomTag.DeviceSerialNumber; DicomTag tag2 = new DicomTag(0x0405, 0x1001, "PrivateCreator1"); AddExtendedQueryTagEntry extendedQueryTagEntry1 = tag1.BuildAddExtendedQueryTagEntry(); AddExtendedQueryTagEntry extendedQueryTagEntry2 = tag2.BuildAddExtendedQueryTagEntry(vr: DicomVRCode.CS); IReadOnlyList <int> keys = await AddExtendedQueryTagsAsync(new AddExtendedQueryTagEntry[] { extendedQueryTagEntry1, extendedQueryTagEntry2 }); await AssertAddedAsync(keys[0], extendedQueryTagEntry1); await AssertAddedAsync(keys[1], extendedQueryTagEntry2); }
public void GivenValidAddExtendedQueryTagEntry_WhenValidating_ShouldSucced() { AddExtendedQueryTagEntry addExtendedQueryTagEntry = new AddExtendedQueryTagEntry() { Path = "00101001", Level = "Study" }; var validationContext = new ValidationContext(addExtendedQueryTagEntry); IEnumerable <ValidationResult> results = addExtendedQueryTagEntry.Validate(validationContext); Assert.Empty(results); }