Skip to content

Commit

Permalink
Add update tests to verify pixel data on GET instance (#3309)
Browse files Browse the repository at this point in the history
* Add update tests to verify pixel data on GET instance

* typo
  • Loading branch information
bcarthic authored Jan 14, 2024
1 parent 2553487 commit 3267adc
Showing 1 changed file with 21 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public async Task WhenUpdatingDicomMetadataForStudyWithMultipleInstances_ThenItS

// Verify study
await VerifyMetadata(studyInstanceUid1, Enumerable.Repeat("New^PatientName", 2).ToArray());
await VerifyRetrieveInstance(studyInstanceUid1, dicomFile1, "New^PatientName");
await VerifyRetrieveInstance(studyInstanceUid1, dicomFile1, "New^PatientName", true);

// Update again to ensure DICOM file is not corrupted after update
await UpdateStudyAsync(expectedInstancesUpdated: 2, expectedStudyUpdated: 1, studyInstanceUid1, "New^PatientName1");
Expand Down Expand Up @@ -133,7 +133,7 @@ public async Task WhenUpdatingDicomMetadataWithDicomFileSizeGreaterThan4MB_ThenI

// Verify study
await VerifyMetadata(studyInstanceUid1, Enumerable.Repeat("New^PatientName", 1).ToArray());
await VerifyRetrieveInstance(studyInstanceUid1, dicomFile1, "New^PatientName");
await VerifyRetrieveInstance(studyInstanceUid1, dicomFile1, "New^PatientName", true);
await VerifyRetrieveFrame(studyInstanceUid1, dicomFile1);

// Update again to ensure DICOM file is not corrupted after update
Expand Down Expand Up @@ -256,9 +256,9 @@ private async Task VerifyRetrieveInstance(string studyInstanceUid, DicomFile dic
dicomFile.Dataset.GetSingleValue<string>(DicomTag.SOPInstanceUID),
dicomTransferSyntax: "*");

DicomFile retrievedDicomFile = await instanceRetrieve.GetValueAsync();
DicomFile updatedFile = await instanceRetrieve.GetValueAsync();

Assert.Equal(expectedPatientName, retrievedDicomFile.Dataset.GetSingleValue<string>(DicomTag.PatientName));
Assert.Equal(expectedPatientName, updatedFile.Dataset.GetSingleValue<string>(DicomTag.PatientName));

if (requestOriginalVersion)
{
Expand All @@ -269,8 +269,10 @@ private async Task VerifyRetrieveInstance(string studyInstanceUid, DicomFile dic
dicomTransferSyntax: "*",
requestOriginalVersion: true);

DicomFile retrievedDicomFile1 = await instanceRetrieve1.GetValueAsync();
Assert.NotNull(retrievedDicomFile);
DicomFile originalFile = await instanceRetrieve1.GetValueAsync();
Assert.NotNull(originalFile);

VerifyPixelData(originalFile, updatedFile);
}
}

Expand Down Expand Up @@ -357,6 +359,19 @@ await Assert.ThrowsAsync<DicomWebException>(
() => _client.RetrieveStudyMetadataAsync(studyInstanceUid));
}

private static void VerifyPixelData(DicomFile originalFile, DicomFile updateFile)
{
var originalPixelData = DicomPixelData.Create(originalFile.Dataset);
var updatePixelData = DicomPixelData.Create(updateFile.Dataset);

Assert.Equal(originalPixelData.NumberOfFrames, updatePixelData.NumberOfFrames);

for (int i = 0; i < originalPixelData.NumberOfFrames; i++)
{
Assert.Equal(originalPixelData.GetFrame(i).Data, updatePixelData.GetFrame(i).Data, BinaryComparer.Instance);
}
}

public Task InitializeAsync() => Task.CompletedTask;

public async Task DisposeAsync()
Expand Down

0 comments on commit 3267adc

Please sign in to comment.