public async Task <Spine> GetProviderDetails(string odsCode) { var fhirApiQuery = _configurationService.GetFhirApiQueryConfiguration(Enumerations.FhirQueryTypes.GetRoutingReliabilityDetailsFromSDS.ToString()); var query = fhirApiQuery.QueryText.SearchAndReplace(new Dictionary <string, string> { { "{odsCode}", Regex.Escape(odsCode) } }); var tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; var spineProviderDetails = await _fhirRequestExecution.ExecuteFhirQuery <DTO.Response.Fhir.Spine>(query, _spineOptionsDelegate.CurrentValue.SpineFhirApiSystemsRegisterFqdn, token); if (spineProviderDetails != null && spineProviderDetails.Entries != null && spineProviderDetails.Entries.Count > 0) { var spineProviderAsId = await GetGpProviderAsIdByOdsCodeAndPartyKey(odsCode, spineProviderDetails.PartyKey); var spine = new Spine { PartyKey = spineProviderDetails.PartyKey, AsId = spineProviderAsId?.AsId, OdsCode = odsCode, ManufacturingOrganisationOdsCode = spineProviderAsId?.ManufacturingOrganisationOdsCode, EndpointAddress = spineProviderDetails.EndpointAddress, ProductName = await GetProductName(spineProviderAsId?.ManufacturingOrganisationOdsCode) }; return(spine); } return(null); }
public async Task <Spine> GetConsumerDetails(string odsCode) { if (!string.IsNullOrEmpty(odsCode)) { var fhirApiQuery = _configurationService.GetFhirApiQueryConfiguration(Enumerations.FhirQueryTypes.GetAccreditedSystemDetailsForConsumerFromSDS.ToString()); var query = fhirApiQuery.QueryText.SearchAndReplace(new Dictionary <string, string> { { "{odsCode}", Regex.Escape(odsCode) } }); var tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; var spineConsumerDetails = await _fhirRequestExecution.ExecuteFhirQuery <DTO.Response.Fhir.Spine>(query, _spineOptionsDelegate.CurrentValue.SpineFhirApiSystemsRegisterFqdn, token); var spine = new Spine { AsId = spineConsumerDetails?.AsId, OdsCode = odsCode }; return(spine); } return(null); }