DexCare SDK 7.0.0

This page contains information on how to upgrade from SDK 6.0 to SDK 7.0. For a full list of changes, see the Release Notes.

VisitType changes

VisitType has been renamed to VisitTypeShortName and switched from an enum to a struct that inherits from RawRepresentable. This allows for new Visit Types to be added in the future without the need for a new SDK version with a hard coded enum.

The old VisitType enum cases are now static properties on VisitTypeShortName. Ex: illness, virtual etc.

With the change, we’ve updated the functions that used the old AllowedVisitType and instead use the VisitTypeShortName type. 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.



let dexcareSDK = DexcareSDK(configuration: ...)
dexcareSDK.retailService.getTimeSlots(departmentName: clinic.departmentName, allowedVisitType: nil)


let dexcareSDK = DexcareSDK(configuration: ...)
dexcareSDK.retailService.getTimeSlots(departmentName: clinic.departmentName, visitTypeShortName: nil)
// or
dexcareSDK.retailService.getTimeSlots(departmentName: clinic.departmentName, visitTypeShortName: .illness)


A new VirtualEventDelegate can now be set on an SDK instance

let dexcareSDK = DexcareSDK(configuration: ...)
dexcareSDK.virtualService.setVirtualEventDelegate(delegate: self) 

When set, the SDK will return various events during the Virtual Visit experience. These are for analytic purposes only, and should not be used as user facing errors. Consider these “soft” errors. Any “hard” errors will be returned in the failure closure when starting or resuming a virtual visit. More information can be found on the VirtualEventDelegate API documentation.

If you have the SDKLogger instance already attached, you will receive similar results, in some instances more information to help debug.


A new waitTime for PracticeRegions has been added PracticeService.getEstimatedWaitTime This can be used to show the calculated estimated wait time for a practice region.

Also added (was previously internal) was the ability to show a wait time for a virtual visit. VirtualSerivce.getEstimatedWaitTime will show you the estimated for a vist. This is the same call that is used and shown in the DexCareSDK Waiting Room.

Both will return a WaitTime struct.

Email Validation

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.

let dexcareSDK = DexcareSDK(configuration: ...)
let customizationOptions = CustomizationOptions(validateEmails: true)
dexcareSDK.customizationOptions = customizationOptions

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.

ZipCode Validation

The SDK now accepts 5+4 US zip codes. Previously the SDK would only accept 5 digit zip codes. Similar to Email Valication - you can see the RegEx the SDK uses at ZipCodeValidator.ZIP_CODE_VALIDATION_REGEX

// Acceptable zip codes
- 90210
- 90210-1234


The OpenTok dependency has been ugpraded to 2.20.0 which cleans up all the warnings that were in 2.19.0

Deprecation removals

  • 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

    These were previously with warning on 6.X, before upgrading to 7.0, it’s a good idea to make sure that all SDK warnings are removed.