private List<Field> PopulateLocationsFieldData(ModuleInstanceView parent, ProviderProfileDto provider, Field templateField) { var locationsFields = new List<Field>(); var request = new ListProviderOrgUnitsRequest() { ProviderId = provider.Id }; var response = parent.ProcessRequest<ListProviderOrgUnitsResponse>(request); foreach (var location in response.OrgUnits) { var locationField = (Field)templateField.Clone(); foreach (var column in locationField.FieldColumns) { foreach (var field in column.Fields) { switch (field.FieldName) { case "LocationName": field.Value = location.Name; break; case "LocationAddress": var sb = new StringBuilder(); sb.Append(location.Address1 + "<br />"); if (!string.IsNullOrEmpty(location.Address2)) sb.Append(location.Address2 + "<br />"); sb.AppendFormat("{0}, {1} {2}", location.City, location.State, location.PostalCode); field.Value = sb.ToString(); break; case "Phone": field.Value = location.DisplayPhone; break; case "Fax": field.Value = location.DisplayFax; break; case "AcceptingNewPatients": if (location.IsAcceptingNewPatients) field.Value = field.TrueValue; else field.Value = field.FalseValue; break; case "Insurances": field.Values.Clear(); foreach (var insurance in location.Insurance) field.Values.Add(insurance.InsuranceName); break; case "Services": field.Values.Clear(); foreach (var service in location.Service) field.Values.Add(service.ServiceName); break; case "Hours": field.Values.Clear(); foreach (var schedule in location.Schedule) field.Values.Add(string.Format("{0} {1}-{2}", schedule.Day, schedule.Open, schedule.Close)); break; case "Map": field.Value = "mapDiv_" + location.OrgUnitId; field.MappingProvider = _mappingSettings.MappingProvider.ToString().ToUpperInvariant(); field.MapItem = new MapItem() { Title = location.Name, Latitude = location.Latitude.HasValue ? location.Latitude.ToString() : string.Empty, Longitude = location.Longitude.HasValue ? location.Longitude.ToString() : string.Empty, LocationAddress = string.Format("{0}, {1}, {2} {3}", location.Address1, location.City, location.State, location.PostalCode), LocationPhoneNum = location.DisplayPhone }; break; case "AppointmentRequestLink": if (location.AllowAppointmentRequests) { field.Value = ProviderUtils.GetAppointmentRequestLinkText(field); field.URL = ProviderUtils.GetAppointmentRequestLinkUrl(field, provider.Id, location.Id); } else { field.URL = string.Empty; field.Value = string.Empty; } break; } } } locationsFields.Add(locationField); } return locationsFields; }
private string GetProvider(ConvertServiceRequest request) { var providerId = 0; if (request.Parameters.ContainsKey("externalId")) { providerId = LookupDataEntityMapId(request.Parameters["externalId"], false); } else if (request.Parameters.ContainsKey("id")) { if (!int.TryParse(request.Parameters["id"], out providerId)) throw new BusinessException("Provider Id must be a valid integer"); } // create the requests var profileRequest = new ReadProviderProfileRequest { ProviderId = providerId, BypassCache = true }; var locationsRequest = new ListProviderOrgUnitsRequest { ProviderId = providerId, BypassCache = true, IncludeExternalIds = true }; var educationRequest = new ListProviderEducationRequest { ProviderId = providerId, BypassCache = true, IncludeIncomplete = true }; var languageRequst = new ListProviderLanguagesRequest { ProviderId = providerId, BypassCache = true }; var clinicalRequest = new ListProviderClinicalInterestRequest { ProviderId = providerId, BypassCache = true }; var certificationRequest = new ListProviderCertificationSpecialtyRequest { ProviderId = providerId, BypassCache = true }; var orgUnitAffiliationRequest = new ListProviderOrgUnitAffiliationRequest { ProviderId = providerId, ShowAdminList = true, BypassCache = true }; var providerTypesRequest = new ListProviderProviderTypeRequest { ProviderId = providerId, BypassCache = true }; var providerSpecialtiesRequest = new ListProviderSpecialtiesRequest { ProviderId = providerId, BypassCache = true }; // add the requests to the dispatcher var provider = ProcessRequest<ReadProviderProfileResponse>(profileRequest).Provider; var locations = ProcessRequest<ListProviderOrgUnitsResponse>(locationsRequest).OrgUnits; var educations = ProcessRequest<ListProviderEducationResponse>(educationRequest).Records; var languages = ProcessRequest<ListProviderLanguagesResponse>(languageRequst).Languages; var clinicalInterests = ProcessRequest<ListProviderClinicalInterestResponse>(clinicalRequest).ClinicalInterests; var certifications = ProcessRequest<ListProviderCertificationSpecialtyResponse>(certificationRequest).CertificationSpecialties; var orgUnitAffiliations = ProcessRequest<ListProviderOrgUnitAffiliationResponse>(orgUnitAffiliationRequest).Records; var providerTypes = ProcessRequest<ListProviderProviderTypeResponse>(providerTypesRequest).ProviderTypes; var providerSpecialties = ProcessRequest<ListProviderSpecialtiesResponse>(providerSpecialtiesRequest).ProviderSpecialties; var viewModel = new ProviderV2 { ProviderId = provider.Id.ToString(CultureInfo.InvariantCulture), Npi = provider.Npi.HasValue ? provider.Npi.Value.ToString(CultureInfo.InvariantCulture) : null, NamePrefix = provider.NamePrefix, FirstName = provider.FirstName, MiddleName = provider.MiddleName, LastName = provider.LastName, NameSuffix = provider.NameSuffix, AdditionalSuffix = provider.AdditionalSuffix, Gender = provider.Gender, DateOfBirth = provider.DateOfBirth.HasValue ? provider.DateOfBirth.Value.ToString(CultureInfo.InvariantCulture) : string.Empty, Phone = provider.Phone, Fax = provider.Fax, Email = provider.Email, Website = provider.Website, PhilosophyOfCare = provider.PhilosophyOfCare, AdditionalInformation = provider.AdditionalInformation, InPracticeSince = provider.InPracticeSince.HasValue ? provider.InPracticeSince.Value.ToString(CultureInfo.InvariantCulture) : string.Empty, ProviderGroup = provider.ProviderGroupName, PictureId = provider.PictureId == 0 ? null : provider.PictureId.ToString(CultureInfo.InvariantCulture), ImageUrl = provider.ImageUrl, VideoContent = provider.VideoContent, AboutMe = provider.AboutMe, IsEnabled = provider.IsEnabled.ToString(CultureInfo.InvariantCulture), ProviderExternalId = provider.ProviderExternalId, Keywords = provider.Keywords, CustomKeywords = provider.CustomKeywords, ExcludedKeywords = provider.ExcludedKeywords, Custom1 = provider.Custom1, Custom2 = provider.Custom2, Custom3 = provider.Custom3, DynamicColumns = provider.DynamicColumns, Specialties = providerSpecialties.Select(s => new ProviderSpecialtyV2 { SpecialtyName = s.SpecialtyName, IsPrimary = s.IsPrimary.ToString(CultureInfo.InvariantCulture), IsBoardCertified = s.IsBoardCertified.ToString(CultureInfo.InvariantCulture), SpecialtyType = s.SpecialtyType }).ToList(), Languages = languages.Select(l => new ProviderLanguageV2 { LanguageName = l.LanguageName, IsFluent = l.IsFluent.ToString(CultureInfo.InvariantCulture), IsPrimary = l.IsPrimary.ToString(CultureInfo.InvariantCulture) }).ToList(), EducationTypes = educations.Select(e => new ProviderEducationV2 { EducationTypeName = e.EducationTypeName, YearCompleted = e.YearCompleted, InstitutionName = e.InstitutionName, IsComplete = e.IsCompleted.ToString(CultureInfo.InvariantCulture) }).ToList(), ClinicalInterests = clinicalInterests.Select(c => new ProviderClinicalInterestV2 { Name = c.ClinicalInterestName }).ToList(), OrgUnits = locations.Select(o => new ProviderOrgUnitV2 { OrgUnitId = o.OrgUnitId.ToString(CultureInfo.InvariantCulture), OrgUnitExternalId = o.OrgUnitExternalId, Phone = o.DisplayPhone, Fax = o.DisplayFax, IsPrimary = o.IsPrimary.ToString(CultureInfo.InvariantCulture), IsAcceptingNewPatients = o.IsAcceptingNewPatients.ToString(CultureInfo.InvariantCulture), ProviderOrgUnitId = o.Id.ToString(CultureInfo.InvariantCulture), Insurances = o.Insurance.Where(i => !i.IsInheritedDisabled).Select(i => new ProviderOrgUnitInsuranceV2 { Name = i.InsuranceName }).ToList(), Services = o.Service.Select(s => new ProviderOrgUnitServiceV2 { Name = s.ServiceName }).ToList(), Schedules = o.Schedule.Select(s => new ProviderOrgUnitScheduleV2 { OpenTime = s.Open, CloseTime = s.Close, DayOfWeek = s.Day }).ToList(), DisabledInheritedInsurances = o.Insurance.Where(i => i.IsInherited && i.IsInheritedDisabled).Select(i => new DisabledInheritedInsuranceV2 { Name = i.InsuranceName }).ToList() }).ToList(), CertificationAgencies = certifications.Select(c => new CertificationAgencyV2 { AgencyName = c.CertificationAgencyName, CertificationBoards = new CertificationBoardV2[1]{new CertificationBoardV2 { BoardName = c.CertificationBoardName, CertificationSpecialties = new CertificationSpecialtyV2[1]{new CertificationSpecialtyV2 { Name = c.CertificationSpecialtyName, YearOfIssuance = c.YearOfIssuance }}.ToList() }}.ToList() }).ToList(), OrgUnitAffiliations = orgUnitAffiliations.Select(a => new ProviderOrgUnitAffiliationV2 { OrgUnitId = a.OrgUnitId.ToString(CultureInfo.InvariantCulture), OrgUnitTypeId = a.OrgUnitTypeId.ToString(CultureInfo.InvariantCulture), Service = a.ServiceName }).ToList(), ProviderTypes = providerTypes.Select(t => new ProviderTypeV2 { Name = t.ProviderTypeName }).ToList() }; return CommonUtils.XmlSerialize(viewModel); }
private static IEnumerable<ProviderOrgUnitDto> GetProviderLocations(ProviderAdminDetailView parent, int providerId) { var request = new ListProviderOrgUnitsRequest() { ProviderId = providerId }; return parent.ProcessRequest<ListProviderOrgUnitsResponse>(request).OrgUnits; }