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.
9.0 includes some major breaking changes. This document will guide you through the changes.
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 https://github.com/DexCare/DexCareSDK-iOS/
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.