public void GivenATransactionContextAndImagingStudyWithNewEndpointReference_WhenProcessedForStudyWithEndpoint_ThenEndpointIsAdded() { ImagingStudy imagingStudy = FhirResourceBuilder.CreateNewImagingStudy(DefaultStudyInstanceUid, new List <string>() { DefaultSeriesInstanceUid }, new List <string>() { DefaultSopInstanceUid }, DefaultPatientResourceId); // Simulate the imaging study with an existing endpoint. Endpoint existingEndpoint = FhirResourceBuilder.CreateEndpointResource(id: "2345", name: "new wado-rs"); var existingEndpointResourceId = new ServerResourceId(ResourceType.Endpoint, existingEndpoint.Id); var existingEndpointReference = existingEndpointResourceId.ToResourceReference(); imagingStudy.Endpoint.Add(existingEndpointReference); Endpoint endpoint = FhirResourceBuilder.CreateEndpointResource(); var endpointResourceId = new ServerResourceId(ResourceType.Endpoint, endpoint.Id); var endpointReference = endpointResourceId.ToResourceReference(); FhirTransactionContext context = FhirTransactionContextBuilder.DefaultFhirTransactionContext(FhirTransactionContextBuilder.CreateDicomDataset()); context.Request.Endpoint = FhirTransactionRequestEntryGenerator.GenerateDefaultNoChangeRequestEntry <Endpoint>(endpointResourceId); _imagingStudyPropertySynchronizer.Synchronize(context, imagingStudy); Assert.Collection( imagingStudy.Endpoint, endPoint => Assert.Equal(existingEndpointReference, endPoint), endPoint => Assert.Equal(endpointReference, endPoint)); }
public static void ValidateRequestEntryMinimumRequirementForWithChange( FhirTransactionRequestMode expectedRequestMode, string path, Bundle.HTTPVerb?expectedMethod, FhirTransactionRequestEntry actualEntry) { // For request entry with no change, use the method below. Assert.NotEqual(FhirTransactionRequestMode.None, expectedRequestMode); Assert.NotNull(actualEntry); Assert.Equal(expectedRequestMode, actualEntry.RequestMode); if (expectedRequestMode == FhirTransactionRequestMode.Create) { // If the request mode is create, then it should be client generated resource id. Assert.IsType <ClientResourceId>(actualEntry.ResourceId); } else if (expectedRequestMode == FhirTransactionRequestMode.Update) { // Otherwise, it should be server generated resource id. ServerResourceId serverResourceId = Assert.IsType <ServerResourceId>(actualEntry.ResourceId); Assert.Equal(path, serverResourceId.ToString()); } Assert.NotNull(actualEntry.Request); Assert.Equal(expectedMethod, actualEntry.Request.Method); Assert.Equal(path, actualEntry.Request.Url); if (expectedMethod != Bundle.HTTPVerb.DELETE) { Assert.NotNull(actualEntry.Resource); } }
public async Task GivenATransactionContextAndImagingStudyWithExistingEndpointReference_WhenProcessedForStudy_ThenEndpointResourceIsNotAddedAsync() { ImagingStudy imagingStudy = FhirResourceBuilder.CreateNewImagingStudy(DefaultStudyInstanceUid, new List <string>() { DefaultSeriesInstanceUid }, new List <string>() { DefaultSopInstanceUid }, DefaultPatientResourceId); Endpoint endpoint = FhirResourceBuilder.CreateEndpointResource(); var endpointResourceId = new ServerResourceId(ResourceType.Endpoint, endpoint.Id); var endpointReference = endpointResourceId.ToResourceReference(); FhirTransactionContext context = FhirTransactionContextBuilder.DefaultFhirTransactionContext(FhirTransactionContextBuilder.CreateDicomDataset()); context.Request.Endpoint = FhirTransactionRequestEntryGenerator.GenerateDefaultNoChangeRequestEntry <Endpoint>(endpointResourceId); imagingStudy.Endpoint.Add(endpointReference); await _imagingStudyPropertySynchronizer.SynchronizeAsync(context, imagingStudy); Assert.Collection( imagingStudy.Endpoint, endPoint => Assert.Equal(endpointReference, endPoint)); }
public static void ValidateRequestEntryMinimumRequirementForNoChange(ServerResourceId expectedResourceId, FhirTransactionRequestEntry actualEntry) { Assert.NotNull(actualEntry); Assert.Equal(FhirTransactionRequestMode.None, actualEntry.RequestMode); // No update means the resource already exists and nothing has changed, // so it should still have server generated resource id. ServerResourceId serverResourceId = Assert.IsType <ServerResourceId>(actualEntry.ResourceId); Assert.Equal(expectedResourceId, serverResourceId); Assert.Null(actualEntry.Request); }
public void GivenDifferentServerResourceId_WhenHashCodeIsComputed_ThenHashCodeShouldBeDifferent(ResourceType resourceType, string resourceId) { var newServerResourceId = new ServerResourceId(resourceType, resourceId); Assert.NotEqual(ServerResourceId.GetHashCode(), newServerResourceId.GetHashCode()); }
public void GivenSameServerResourceId_WhenHashCodeIsComputed_ThenTheSameHashCodeShouldBeGenerated() { var newServerResourceId = new ServerResourceId(DefaultResourceType, DefaultResourceId); Assert.Equal(ServerResourceId.GetHashCode(), newServerResourceId.GetHashCode()); }
public static FhirTransactionRequestEntry GenerateDefaultNoChangeRequestEntry <TResource>(ServerResourceId resourceId) where TResource : Resource, new() { return(new FhirTransactionRequestEntry( FhirTransactionRequestMode.None, request: null, resourceId, new TResource())); }
public static FhirTransactionRequestEntry GenerateDefaultUpdateRequestEntry <TResource>(ServerResourceId resourceId) where TResource : Resource, new() { return(new FhirTransactionRequestEntry( FhirTransactionRequestMode.Update, new Bundle.RequestComponent() { Method = Bundle.HTTPVerb.PUT, }, resourceId, new TResource())); }