private HealthcareProviderDirectoryQueryResponse HandleCore(GetHealthcareProviderDirectoryEntriesRequest request)
        {
            using (var proxy = new DynamicWebServiceProxy <IHealthQueryService> ())
            {
                HealthcareProviderDirectoryQueryRequest niemRequest = BuildNiemRequest();

                HealthcareProviderDirectoryQueryResponse niemResponse = proxy.Client.Query(niemRequest);
                return(niemResponse);
            }
        }
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>The Response</returns>
        public override Response Handle(GetHealthcareProviderDirectoryEntriesRequest request)
        {
            GetHealthcareProviderDirectoryEntriesResponse response = CreateTypedResponse();

            try
            {
                HealthcareProviderDirectoryQueryResponse niemResponse = HandleCore(request);

                var remResponse = niemResponse
                                  .HealthcareProvider
                                  .Where(p => p.IsHealthcareProfessional) // Filter Non Healthcare Provider entries, such as Organizations // From the response retrieve the list of providers
                                  .Select(MapToREMDto)                    // Map them to a REM Dto Entity
                                  .ToList();

                response.Providers = remResponse;
            }
            catch (Exception exception)
            {
                // The Call to the Web Service failed
                response.Exception = new ExceptionInfo(exception);
            }

            return(response);
        }