private void GetProviderName(ModuleInstanceView parent, PublicModels.ProviderAppointmentView.ProviderAppointmentView viewSettings, int orgUnitId, int providerId) { var request = GetProviderRequest(orgUnitId, providerId); var response = parent.ProcessRequest<PopulateProviderComboBoxResponse>(request); if (response != null && response.Results != null && response.Results.FirstOrDefault() != null) viewSettings.ProviderName = response.Results.FirstOrDefault().FullName; }
private void GetSpecialtiesList(ModuleInstanceView parent, PublicModels.ProviderAppointmentView.ProviderAppointmentView viewSettings, int orgUnitId, int providerId) { var request = GetProviderRequest(orgUnitId, providerId); request.IncludeSpecialtiesInResults = true; var response = parent.ProcessRequest<PopulateProviderComboBoxResponse>(request); if (response != null && response.Specialties != null) viewSettings.SpecialtyList = response.Specialties.Select(s => s.SpecialtyName).ToList(); }
private EventRegistrationResult Register(ModuleInstanceView parent, PublicModels.EventCartView.EventCartView settingsData, IDictionary<string, string> parameters) { try { ValidateCart(settingsData); var request = new RegisterCartRequest(); var attendees = new List<CartAttendeeDto>(); foreach (var occurrence in settingsData.EventOccurrences) { attendees.Add(new CartAttendeeDto() { Attendee = new AttendeeDto() { FirstName = settingsData.PrimaryAttendee.FirstName, LastName = settingsData.PrimaryAttendee.LastName, Address1 = settingsData.PrimaryAttendee.Address1, Address2 = settingsData.PrimaryAttendee.Address2, City = settingsData.PrimaryAttendee.City, StateName = settingsData.PrimaryAttendee.State, PostalCode = settingsData.PrimaryAttendee.PostalCode, EmailAddress = settingsData.PrimaryAttendee.Email, PrimaryPhone = settingsData.PrimaryAttendee.Phone }, EventOccurrenceId = occurrence.Id }); foreach (var guest in occurrence.GuestAttendees) { attendees.Add(new CartAttendeeDto() { Attendee = CreateGuestAttendeeDto(guest, settingsData.PrimaryAttendee, occurrence.IsGuestDemographicInfoRequired), EventOccurrenceId = occurrence.Id }); } // Submit ULM lead SubmitLeadForEventOccurrence(occurrence.EventTitle, occurrence.LeadManagementBusinessUnitId, parent, settingsData, parameters); } request.Attendees = attendees; var response = parent.ProcessRequest<RegisterCartResponse>(request); return new EventRegistrationResult() { IsSuccessful = true, EventRegistrationId = response.EventRegistrationId, RegistrationIdentifier = response.RegistrationIdentifier }; } catch (Exception ex) { if (ex is BusinessException) return new EventRegistrationResult() { IsSuccessful = false, ErrorMessage = ex.Message }; else return new EventRegistrationResult() { IsSuccessful = false, Error = ex }; } }
private PublicModels.EventCartView.EventCartView BuildAdminSettingsView(PublicModels.EventCartView.EventCartView settingsData) { return settingsData; }
private void AddSettings(PublicModels.EventCartView.EventCartView viewSettings) { var settingGroup = viewSettings.GetOrCreateSettingGroup(PublicModelConstants.BasicSettingsGroup); settingGroup.AddSetting(new Setting("RegistrationConfirmationPageUrl", "Registration Confirmation Page URL", SettingFieldType.Text)); }
private void SubmitLeadForEventOccurrence(string eventTitle, string businessUnitId, DataProxyBase dataProxy, PublicModels.EventCartView.EventCartView viewSettings, IDictionary<string, string> parameters) { // Read/validate settings var settings = LeadManagementHelper.ReadSettings(dataProxy); if (string.IsNullOrEmpty(settings.ClientId)) return; if (string.IsNullOrEmpty(businessUnitId)) businessUnitId = settings.EventRegistrationBusinessUnitId; var attendee = viewSettings.PrimaryAttendee; var lead = new BrightWhistleLead(); lead.SetFieldValue(BrightWhistleFields.BusinessUnitId, businessUnitId); lead.SetFieldValue(BrightWhistleFields.LeadSource, "Event Registration"); lead.SetFieldValue(BrightWhistleFields.FirstName, attendee.FirstName); lead.SetFieldValue(BrightWhistleFields.LastName, attendee.LastName); lead.SetFieldValue(BrightWhistleFields.Email, attendee.Email); lead.SetFieldValue(BrightWhistleFields.PhoneNumber, attendee.Phone); lead.SetFieldValue(BrightWhistleFields.Street1, attendee.Address1); lead.SetFieldValue(BrightWhistleFields.Street2, attendee.Address2); lead.SetFieldValue(BrightWhistleFields.City, attendee.City); lead.SetFieldValue(BrightWhistleFields.State, attendee.State); lead.SetFieldValue(BrightWhistleFields.Zip, attendee.PostalCode); lead.SetFieldValue("EventTitle", eventTitle); LeadManagementHelper.SubmitLeadDataAsync(lead, dataProxy, viewSettings, parameters); }
private ProviderAppointmentSubmissionResult Register(ModuleInstanceView parent, PublicModels.ProviderAppointmentView.ProviderAppointmentView settingsData, IDictionary<string, string> parameters) { try { ValidateForm(settingsData); SubmitLead(parent, settingsData, parameters); return new ProviderAppointmentSubmissionResult { IsSuccessful = true }; } catch (Exception ex) { if (ex is BusinessException) return new ProviderAppointmentSubmissionResult() { IsSuccessful = false, ErrorMessage = ex.Message }; else return new ProviderAppointmentSubmissionResult() { IsSuccessful = false, Error = ex }; } }
private void ValidateForm(PublicModels.ProviderAppointmentView.ProviderAppointmentView settingsData) { var errorMessageMarkup = new StringBuilder(); if (string.IsNullOrEmpty(settingsData.Patient.FirstName)) errorMessageMarkup.Append("Patient First Name is required<br />"); if (string.IsNullOrEmpty(settingsData.Patient.LastName)) errorMessageMarkup.Append("Patient Last Name is required<br />"); if (string.IsNullOrEmpty(settingsData.Patient.Email)) errorMessageMarkup.Append("Patient Email is required<br />"); if (string.IsNullOrEmpty(settingsData.Patient.Phone)) errorMessageMarkup.Append("Patient Phone Number is required<br />"); if (string.IsNullOrEmpty(settingsData.Specialty)) errorMessageMarkup.Append("Specialty is required<br />"); if (errorMessageMarkup.Length > 0) throw new BusinessException(errorMessageMarkup.ToString()); }
private void SubmitLead(DataProxyBase dataProxy, PublicModels.ProviderAppointmentView.ProviderAppointmentView viewSettings, IDictionary<string, string> parameters) { var settings = LeadManagementHelper.ReadSettings(dataProxy); if (string.IsNullOrEmpty(settings.ClientId)) return; var patient = viewSettings.Patient; var lead = new BrightWhistleLead(); lead.SetFieldValue(BrightWhistleFields.UniqueId, Guid.NewGuid().ToString()); lead.SetFieldValue(BrightWhistleFields.BusinessUnitId, settings.ProviderAppointmentRequestBusinessUnitId); lead.SetFieldValue(BrightWhistleFields.LeadSource, "Appointment Request"); lead.SetFieldValue(BrightWhistleFields.FirstName, patient.FirstName); lead.SetFieldValue(BrightWhistleFields.LastName, patient.LastName); lead.SetFieldValue(BrightWhistleFields.Email, patient.Email); lead.SetFieldValue(BrightWhistleFields.PhoneNumber, patient.Phone); lead.SetFieldValue(BrightWhistleFields.Street1, patient.Address1); lead.SetFieldValue(BrightWhistleFields.Street2, patient.Address2); lead.SetFieldValue(BrightWhistleFields.City, patient.City); lead.SetFieldValue(BrightWhistleFields.State, patient.State); lead.SetFieldValue(BrightWhistleFields.Zip, patient.PostalCode); lead.SetFieldValue(BrightWhistleFields.DateOfBirth, patient.DateOfBirth); lead.SetFieldValue("MiddleName", patient.MiddleName); lead.SetFieldValue("Gender", patient.Gender); lead.SetFieldValue("PatientStatus", patient.PatientStatus); lead.SetFieldValue("PreferredContactMethod", patient.ContactMethod); lead.SetFieldValue("Specialty", viewSettings.Specialty); lead.SetFieldValue("RequestedPhysician", viewSettings.ProviderName); lead.SetFieldValue("PreferredLocation", viewSettings.Location); lead.SetFieldValue("Insurance", viewSettings.Insurance); lead.SetFieldValue("AppointmentDate", viewSettings.AppointmentDate); lead.SetFieldValue("GroupNumber", viewSettings.GroupNumber); lead.SetFieldValue("MemberId", viewSettings.MemberId); lead.SetFieldValue("SymptomsOrComments", viewSettings.Comments); LeadManagementHelper.SubmitLeadDataAsync(lead, dataProxy, viewSettings, parameters); }
private PublicModels.ProviderAppointmentView.ProviderAppointmentView SetControlValues(ModuleInstanceView parent, PublicModels.ProviderAppointmentView.ProviderAppointmentView viewSettings, IDictionary<string, string> parameters) { int orgUnitId; int providerId; string location; string provider; if (!parameters.TryGetValue("LocationId", out location)) return viewSettings; if (!parameters.TryGetValue("ProviderId", out provider)) return viewSettings; if (!int.TryParse(location, out orgUnitId)) return viewSettings; if (!int.TryParse(provider, out providerId)) return viewSettings; GetSpecialtiesList(parent, viewSettings, orgUnitId, providerId); GetInsuranceList(parent, viewSettings, orgUnitId, providerId); GetLocationList(parent, viewSettings, orgUnitId, providerId); GetProviderName(parent, viewSettings, orgUnitId, providerId); return viewSettings; }