Skip to content

Releases: DexCare/DexCareSDK-iOS

8.2.0

03 Nov 17:29
99d37dc
Compare
Choose a tag to compare

New

  • PaymentMethod.insuranceManualSelf and PaymentMethod.insuranceManualOther now take in an optional insuranceGroupNumber property.
  • Added new ScheduleProviderAppointmentFailedReason.patientNotOnPhysicialPanel. Will return if on ProviderService.scheduleProviderVisit provider requires that the patient be on their panel.
  • Added VirtualVisitDetails.additionalDetails property to allow saving of meta/extra information on a visit.

AvailabilityService

  • Included is a new AvailabilityService which allows you to search for an available provider, by location, or department. Options include sorting by most available, giving the ability to give timeslots to lesser booked providers
  • Timeslots can also be searched with similar functionality.

Fixes

  • Update internal endpoint for provider bookings with insurance to save the appointment notes properly (ENG-1040)

Other

  • Updated OpenTok to 2.23.1

Deprecations

  • PaymentService.uploadInsuranceCard has been deprecated as it's no longer supported
  • PaymentMethod.insuranceImageSelf and PaymentMethod.insuranceImageOther has been depecrated as it's no longer supported.

8.1.0

24 Aug 16:42
3e8e25e
Compare
Choose a tag to compare

New

  • Support for localization. To override the SDK keys, simply create a Localizable.strings file, match the keys used by the SDK, and the SDK will look there first for any overrides.
  • Added VirtualVisitDetails.traveling boolean property.

Fixes

  • On Visit creation, when using DexCarePatient, check mobile and work phone, not just homePhone (DC-9929)

Deprecations

  • CustomStrings has been deprecated. Any previous use of customStrings will be used first over Localizable.strings file, but will be removed in a future version.

Other

  • Updated OpenTok to 2.23.0.

8.0.1

29 Jun 18:57
2a2ba40
Compare
Choose a tag to compare

New

  • New VirtualVisitFailedReason.invalidRequest(message:) added to better show the error returned by the server if 400 returned. See message returned for specific error.

Fixes

  • Fixes MessageKit dependency version misalignment
  • Removes hardcoded VirtualVisitAssignmentQualifer.adult and VirtualVisitAssignmentQualifer.pediatric options. Regular virtual visits without special qualifications, should set the VirtualVisitDetails.assignmentQualifers to nil
  • Removes missed async version of RetailService.getClinics this was renamed to RetailService.getRetailDepartments

8.0.0

15 Jun 18:38
70ef540
Compare
Choose a tag to compare

New

  • 2 new VirtualService.createVirtualVisit methods have been added.

    • Both take in the new VirtualVisitDetails
    • One will use the existing DexcarePatient
    • One will use the new EhrPatient
  • VirtualVisitDetails replaces the deprecated VirtualVisitInformation. Please see documentation for more information on the properties.

  • Added VirtualService.getWaitTimeAvailability to fetch the new WaitTimeAvailability array. See documentation for more ways to filter the results.

  • Added VirtualService.getAssignmentQualifiers to fetch the array of VirtualVisitAssignmentQualifier to use in getWaitTimeAvailability or create Visit

  • Added VirtualService.getModalities to fetch the array of VirtualVisitModality to use in getWaitTimeAvailability or create Visit

  • Added VirtualVisitFailedReason.visitTypeNotSupported - returned when you try and call VirtualService.resumeVirtualVisit with a non-virtual visit type.

  • Added VirtualPracticeRegion.pedatricsAgeRange to indicate the age of patients that pediatric providers can see.

  • Upon signing in to the SDK, some validation configs are pulled down from the server. This allows for the validation to be consistent across DexCare platforms, and also allows for the validation requirements to be configurable per-environment. This currently only affects the EmailValidator, but may be expanded to other areas in a future SDK version.

  • A new EmailValidator.EMAIL_REGEX_FROM_CONFIG is available to get the latest email regex the SDK will use. This will default to EmailValidator.EMAIL_VALIDATION_REGEX.

  • A new DexcareSDK.getStatusPage is available to asynchronously grab the current status of the DexCare Platform. You can use this method to check for any incidents or scheduled maintenances on our infrastructure.

  • VisitStatus has been switched from an enum to a struct that inherits from RawRepresentable.

  • An optional VirtualVisitDetails.initialStatus property has been added to support setting an initial Visit Status on a virtual visit.

Phone Visits

  • 8.0 supports the ability to schedule a phone visit. Similar to virtual visits, except the provider will end up phoning instead of using the virtual video platform
  • On VirtualService.createVirtualVisit simply set the VirtualVisitDetails.visitTypeName = "phone"
  • IMPORTANT The SDK will return in the completion event with VisitCompletionReason.phoneVisit after a successful creation or a resume It is up to you to check for that result and handle appropriately.

Swift Concurrency

Included in 8.0 is support for Swift Concurrency on all public functions. Both concurrency and closure-based functions will be supported. Internally, the SDK has moved to Concurrency for all internal calls and therefore we have removed PromiseKit as a required Dependency.

For more examples of how you can call the new functions, please look at the v8 migration guide.

Fixes

  • VisitStatus.isActive function is now a proper public function (DC-6006)
  • PatientDemographics.birthDate is now validated for future dates (DC-5904)
  • NavigationBar on Waiting Room sometimes would not show and be transparent on iOS15 (DC-8901)

Deprecations

  • ProviderService.getProviderTimeslots passing in visitTypeId is deprecated in favour of ProviderService.getProviderTimeslots and passing in a VisitTypeShortName instead

Removals

  • VirtualSerivce.startVirtualVisit - use the new VirtualSerivce.createVirtualVisit passing in the new VirtualVisitDetails
  • VirtualVisitInformation - use VirtualVisitDetails with the new VirtualSerivce.createVirtualVisit
  • PracticeService.getVirtualPracticeRegionAvailability - use the new VirtualService.getWaitTimeAvailability
  • PracticeService.getEstimatedWaitTime - use the new VirtualService.getWaitTimeAvailability
  • RegionAvailability - use the new WaitTimeAvailability returning from VirtualService.getWaitTimeAvailability
  • PatientService.createPatientWithMyChart has been removed and can no longer be called.
  • Removed VirtualVisitFailedReason.deprecated
  • RetailService.getClinics has been renamed to RetailService.getRetailDepartments which in turn return RetailDepartments from the previous Clinics
  • ClinicTimeslots have been renamed to RetailAppointmentTimeslots
  • ScheduleVisit.clinic has been renamed to ScheduleVisit.retailDepartment

Other

  • Updated internal endpoint for VirtualService.getEstimatedWaitTime
  • Updated internal endpoint for VirtualService.getVirtualVisitStatus
  • Updated internal endpoint for VirtualService.cancelVirtualVisit
  • Updated internal endpoint for PracticeService.getVirtualPractice
  • Updated OpenTok dependency to 2.22.3
  • Updated MessageKit dependency to 3.8.0

7.2.1

25 Mar 18:30
a86be71
Compare
Choose a tag to compare

Dependency Updates

  • Updated OpenTok dependency to 2.22.0
  • Updated MessageKit dependency to 3.7.0

7.2.0

10 Jan 19:41
038b9f8
Compare
Choose a tag to compare

New

  • Adds a PatientService.deletePatientAccount to start the process of deleting a DexCare Patient Account.

  • Upon signing in to the SDK, some validation configs are pulled down from the server. This allows for the validation to be consistent across DexCare platforms, and also allows for the validation requirements to be configurable per-environment. This currently only affects the EmailValidator, but may be expanded to other areas in a future SDK version.

  • A new EmailValidator.EMAIL_REGEX_FROM_CONFIG is available to get the latest email regex the SDK will use. This will default to EmailValidator.EMAIL_VALIDATION_REGEX.

Fixed

  • Adjusts the QR Code that is displayed for TytoCare setup when it sometimes gets cut off - DC-6766

Other

  • Updated OpenTok dependency to 2.21.2

7.1.1

08 Sep 02:57
de82c0e
Compare
Choose a tag to compare

Fixed

  • Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+

7.0.1

08 Sep 02:47
16c9710
Compare
Choose a tag to compare

Fixed

  • Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+

7.1.0

03 Aug 14:30
263ff3e
Compare
Choose a tag to compare

New

  • Introduced a new VideoCallStatistics structure that can return network statistics about a video visit. Statistics are automatically gathered during a visit by the SDK, and can be queried by you after a visit is complete.
  • VideoCallStatistics includes information about packet loss, bandwidth speeds, and bytes send/received. This should be used for your debugging or logging purposes.
  • These statistics can be retrieve by calling VirtualService.getVideoCallStatistics() after a video visit has started.
  • Added a new VirtualService.getVirtualVisitStatus(visitId:) that will return a VisitStatus enum. A helper function isActive is also added to VisitStatus to indicate whether or not you can resume with that visitId or not.
  • Added a [PatientQuestion] array to the RetailVisitInformation and ProviderVisitInformation object. This can be used during retail and provider visits to pass up information to be saved.

Important

  • When booking for retail, virtual, or provider, the visitDetails.contactPhoneNumber will be the only valid phone number needed. In previous versions, on someone else visits, the demographic.homePhone was required to be valid. Going forward, the SDK will only use contactPhoneNumber. If the phone number is different between the demographic.homePhone and the contactPhoneNumber then in Virtual Visits, the PRR will see the difference and can adjust the EPIC record if needed.

It is recommended that on intake, you provide a Phone Number field that can be prepopulated with whichever phone you wish. That phone number should be saved to the visitDetails.contactPhoneNumber on booking.

Fixed

  • When a network issue occurs during a video visit or in the waiting room, the SDK now extends it's retry time to 2 minutes. During this time a reconnecting spinner is shown to the user, which includes a cancel option. Tapping cancel can allow the user to leave the video visit, but does not mark the visit as cancelled and is still active. Users can rejoin the video visit.

Other

  • Updated internal endpoint for ProviderService.getProviderTimeslots
  • When starting a virtual visit, internally the SDK will send a notification to the server to indicate that the device has enabled their video and microphone.

7.0.0

30 Jun 17:42
618522d
Compare
Choose a tag to compare

7.0.0

New

  • Introduced a new VirtualEventDelegate protocol that can optionally be set on VirtualService.setVirtualEventDelegate(delegate?) to listen for various events while the patient is inside the waiting room/video conference. Note that the delegate should primarily be used for logging purposes.
  • Added PracticeService.getEstimatedWaitTime(practiceRegionId) function to retrieve the estimated wait time of a practice region.
  • Added VirtualService.getEstimatedWaitTime function to retrieve the estimated wait time when you're in a visit waiting room. This was previously internal and was called and displayed on the waiting room view
  • Added CustomizationOptions.validateEmails that if set to false will skip any email validation the SDK uses. You can set the customization through the DexcareSDK.customizationOption property after initialization. Defaults to TRUE for backwards compatibility. Epic is still the final validation for emails and you should use this property in sync in how your Epic server validates email. This will skip ALL email validation (not including empty fields) - so it is up to you to validate any emails if this property is set to false. The email validation SDK uses can be found at EmailValidator.EMAIL_VALIDATION_REGEX.
  • ZipCodeValidator (and the SDK as a result) now accepts 9-digit zip codes in addition to 5-digit zip codes. A hyphen is required for 9-digit zips.
  • ZipCodeValidator.ZIP_CODE_VALIDATION_REGEX has been added. This is the Regex string used in the ZipCodeValidator.isValid class function.
  • When booking for retail, virtual, or provider, the SDK now checks for valid zip codes and returns error if it does not pass validation

Breaking

  • VisitType

    • VisitType has been renamed to VisitTypeShortName and switched from an enum to a struct that inherits from RawRepresentable.
    • This is to allow future VisitTypes to be created, without the need of new SDK's.
    • Old enum values have been switched to static variables: ex: public static let illness = VisitTypeShortName(rawValue: "Illness")
    • ProviderService.getMaxLookaheadDays now accepts a VisitTypeShortName instead of an AllowedVisitType, (no functional change)
    • RetailService.getTimeSlots method's allowedVisitType parameter changed to visitTypeShortName: VisitTypeShortName. This means that you can retrieve time slots for any visit type you want to support, and the SDK no longer restricts to the few that were defined in the old VisitType enum.
    • ProviderVisitType.shortName type changed to VisitTypeShortName from String (no functional change).
  • Removed the following deprecated models/methods/properties:

    • Region
    • Region.Prices
    • Region.Availability
    • VirtualService.getRegions
    • RetailService.getRetailClinics
    • RetailService.uploadInsurance
    • VirtualSerivce.getRegionAvailability
    • VirtualService.getInsurancePayers
    • VirtualService.verifyCouponCode
    • VirtualService.startVirtualVisit methods without practiceId argument
    • VirtualVisitInformation.currentState
    • DexcareConfiguration.customStrings
    • ScheduledVisitFailedReason

Fixed

  • When posting feedback, VirtualFeedback.rating case now validates the rating option to be between 0-10.

Other

  • Updated internal endpoint for wait time.
  • Updated OpenTok dependency to 2.20.0 - this update should clean up the hundreds of project warnings
  • All non-network-related errors returned by the SDK are now logged for debugging purposes.