DexCare SDK 9.0.0

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

The primary goals of this release were to add SPM support and to clean up previously deprecated code.

Swift Package Manager Support

In addition to Cocoapods, the DexCare SDK now supports Swift Package Manager. This will be the primary supported means of delivering the SDK but Cocoapods support will continue for the foreseeable future. You can include this SDK via SPM by adding a dependency with the URL and ensuring a minimum version of 9.0.0. Versions before 9.0.0 have no SPM support.

CatchmentArea Removal

PatientService.getCatchmentArea(visitState:, residenceState:, residenceZipCode:, brand:) function and CatchmentArea struct have been removed in favor of bundling this information with the existing PracticeService.getVirtualPractice(practiceId:) function. The VirtualPracticeRegion struct now contains a list of PracticeRegionDepartment which contain the departments id and ehrSystemName in addition to other pertinent information about the department.

Insurance Card Removal

The previously deprecated PaymentService.uploadInsuranceCard(frontImage:, backImage:) has been removed with no replacement provided. This functionality will no longer work on previous versions of the SDK either. In addition the InsuranceCardFailedReason struct has also been removed since it was only used by uploadInsuranceCard function.

PaymentMethod Simplification

We’ve removed the previously deprecated ability to upload insurance cards for payment, we’ve also removed the PaymentMethod cases that took insurance card id’s, these being insuranceImageSelf(cardId:) and insuranceImageOther(cardId:). This change allows us to drop the Manual identifier from all the other cases, simplifying and shortening all the enum cases names. We’ve also remove the previously deprecated cases that took providerId as a parameter in favor of better supported payorId and payorName. To get these two pieces of information you’ll need to call PaymentService.getInsurancePayers(tenant:) function. We’ve now also dropped the withPayor suffix to all those cases further simplifying and shortening the enum case names.

A mapping of old to new cases is below. All the renamed cases have the same arguments so they’ve been omitted for clarity of the document. Only the base name of the case has changed.

PaymentMethod - 8.x PaymentMethod - 9.0
self self
couponCode couponCode
creditCard(stripeToken:) creditCard(stripeToken:)
insuranceManualSelf(memberId:, providerId:, insuranceGroupNumber:) -
insuranceManualSelfWithPayor(…) insuranceSelf(…)
insuranceManualOther(…) -
insuranceManualOtherWithPayor(…) insuranceOther(…)
insuranceImageSelf(cardId:) -
insuranceImageOther(firstName:, lastName:, gender:, dateOfBirth:, cardId:) -

Virtual Visit Custom Strings

The CustomStrings struct and associated property of CustomizationOptions have been removed. These strings can still be customized by providing an entry matching the correct key in your localizable.strings file. Additional strings can also be found in the localizable.strings file shipped with the SDK.

CustomStrings property localizable.strings key
waitingRoomTitle waitingRoom_title_navigation
waitingRoomCancelButtonTitle waitingRoom_link_cancelVisit
cancelThisVisitActionTitle dialog_waitingRoomCancelConfirm_button_confirm
abortAppointmentAlertTitle dialog_waitingRoomCancelConfirm_title_cancelCall
permissionDeniedAlertTitle dialog_permission_body_message
cancelReconnectAlertMessage dialog_cancelReconnect_message

General code clean up

As part of the process to release our SDK as source, we went through and cleaned many symbols including removing a number of initializers for structs that should only ever be created from network requests. All of the renamed symbols will have 1 click fixes available via Xcode.