iOS SDK Release Notes
9.1.1 - April 8, 2024
Bug Fixes
- Fixed virtual visit crash when integrating the SDK using Service Package Manager (SPM).
- Fixed issue where canceling a virtual visit was taking multiple seconds before dismissing the waiting room screen.
- Fixed issue where localization strings were not available when integrating the SDK using CocoaPods.
- Added server logs to track the “Index out of range” error in ChatViewController.messageForItem(IndexPath, MessagesCollectionView).
9.1.0 - March 7, 2024
New
This version of the SDK adds support for virtual visit transfers between providers. To accomplish this we’ve added a number of things:
- Localizable strings: | localizable.strings key | Usage| |—|—| |waitingRoom_link_leaveVisit| CTA to leave a visit after being transferred back to the waiting room | |waitingRoom_message_patientTransfer| Message shown only after being transferred back to the waiting room | |waitingRoom_message_dismiss| CTA to dismiss the above message | |dialog_waitingRoomCancelConfirm_title_leaveCall| Dialog title to confirm the user wants to leave the call | |dialog_waitingRoomCancelConfirm_message_leaveCallConfirmation| Dialog message to confirm the user wants to leave the call |
VirtualEventDelegate.onWaitingRoomTransferred
Called when the user is transferred back to the waiting room after already being in a callVisitCompletionReason.left
Used in the visit completion block to indicate the user chose to leave the visit
9.0.0 - November 27, 2023
New
- Support for Swift Package Manager
- Library is now released as source code instead of a binary package
- Added
PracticeRegionDepartment
which is now returned as part ofgetVirtualPractice(practiceId:)
Removals
getCatchmentArea(visitState:, residenceState:, residenceZipCode:, brand:)
andCatchmentArea
have been removed, see v9 migration guide for more informationPaymentMethod
enum cases have been simplified, see v9 migration guide for more information.- Creating a
PaymentMethod
via insurance card has been removed along sideInsuranceCardFailedReason
- Virtual visit customization via
CustomStrings
has been removed, see v9 migration guide for more information - All other previously deprecated symbols have been removed. They are:
AllowedVisitType.init
EmailValidator.EMAIL_REGEX_FROM_CONFIG
EmailValidator.EMAIL_VALIDATION_REGEX
OpenDay.init
OpenHours.init
PatientDemographics.init
PhoneValidator.PHONE_VALIDATION_REGEX
PracticeRegionAvailability.init
Provider.init
ProviderDepartment.init
ProviderService.getProviderTimeslots
ProviderTimeSlot.init
ProviderVisitType.init
RetailDepartment.init
RetailService.scheduleRetailAppointment
ScheduleDay.init
ScheduledProviderVisit.init
ScheduledProviderVisit.VirtualMeetingInfo.init
ScheduledVisit.init
ScheduledVisit.AppointmentDetails.init
ScheduledVisit.Timestamps.init
VirtualPractice.init
VirtualPractice.PracticePaymentAvailability.init
VirtualPracticeRegion.init
VirtualPracticeRegion.pedatricsAgeRange
WaitTime.init
WaitTimeLocalizationInfo.init
ZipCodeValidator.ZIP_CODE_VALIDATION_REGEX
8.5.0 - August 11, 2023
Bug fixes
- Fixed
VirtualPracticeRegion.pedatricsAgeRange
not being decoded from the network response ScheduleRetailAppointmentRequest.init
is no longer optional. All errors are surfaced via throwing
Other
- Update TokBox to
OTXCFramework
version 2.25.1
Clean up
We’ve fixed a number of misspelled symbols in this release and marked many the incorrectly spelled symbols as deprecated. We’ve also renamed a few symbols to better align with standard Swift naming conventions. All these symbols provide 1 click fixes via Xcode and will be removed completely in the next release. There are also a few cases of misspellings that are impossible to deprecate while leaving the original intact, these will be removed with fixit’s available in the next release as well. Further, we’ve deprecated a number of initializers for objects that should only be constructed via Codable
. If you feel any of these should remain, please reach out to us.
For reference the deprecated symbols are:
AllowedVisitType.init
EmailValidator.EMAIL_REGEX_FROM_CONFIG
EmailValidator.EMAIL_VALIDATION_REGEX
OpenDay.init
OpenHours.init
PatientDemographics.init
PhoneValidator.PHONE_VALIDATION_REGEX
PracticeRegionAvailability.init
Provider.init
ProviderDepartment.init
ProviderService.getProviderTimeslots
ProviderTimeSlot.init
ProviderVisitType.init
RetailDepartment.init
RetailService.scheduleRetailAppointment
ScheduleDay.init
ScheduledProviderVisit.init
ScheduledProviderVisit.VirtualMeetingInfo.init
ScheduledVisit.init
ScheduledVisit.AppointmentDetails.init
ScheduledVisit.Timestamps.init
VirtualPractice.init
VirtualPractice.PracticePaymentAvailability.init
VirtualPracticeRegion.init
VirtualPracticeRegion.pedatricsAgeRange
WaitTime.init
WaitTimeLocalizationInfo.init
ZipCodeValidator.ZIP_CODE_VALIDATION_REGEX
8.4.0 - June 2, 2023
New
PaymentMethod.insuranceManualSelfWithPayor
now takes in more insurance information.payorId
(replacesproviderId
), andpayorName
PaymentMethod.insuranceManualOtherWithPayor
now takes in more insurance information.payorId
(replacesproviderId
),payorName
andsubcriberId
- Added
getEMRPatient
toPatientService
to allow loading a patient information using a MyChartSSO authentication token
Deprecations
PaymentMethod.insuranceManualSelf
has been deprecated in favor of usingPaymentMethod.insuranceManualSelfWithPayor
.payorId
is the new property to to pass in the insurance payor id.PaymentMethod.insuranceManualOther
has been deprecated in favor of usingPaymentMethod.insuranceManualOtherWithPayor
.payorId
is the new property to to pass in the insurance payor id.
8.3.1 - March 31, 2023
Other
- Updated OpenTok to 2.24.2
- SDK is built with Xcode 14.1, supporting iOS 13+
8.3.0 - Dec 14, 2022
New
- Added
RetailService.getRetailDepartment
to load information on a single retail department. - Default Waiting Room video has been updated to load from Vimeo, supporting Spanish localization. Waiting Room video can still be overridden through the
VirtualConfig
property on intialization.
Other
- Fixed a scenario where the SDK version posted inside the userAgent header on api calls was incorrect
- Updated OpenTok to 2.24.0
- SDK is built with Xcode 14.1, supporting iOS 13+
8.2.0 - Nov 2, 2022
New
PaymentMethod.insuranceManualSelf
andPaymentMethod.insuranceManualOther
now take in an optionalinsuranceGroupNumber
property.- Added new
ScheduleProviderAppointmentFailedReason.patientNotOnPhysicialPanel
. Will return if onProviderService.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 supportedPaymentMethod.insuranceImageSelf
andPaymentMethod.insuranceImageOther
has been depecrated as it’s no longer supported.
8.1.0 - August 24, 2022
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 overLocalizable.strings
file, but will be removed in a future version.
Other
- Updated OpenTok to 2.23.0.
8.0.1 - June 29, 2022
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
andVirtualVisitAssignmentQualifer.pediatric
options. Regular virtual visits without special qualifications, should set theVirtualVisitDetails.assignmentQualifers
tonil
- Removes missed async version of
RetailService.getClinics
this was renamed toRetailService.getRetailDepartments
8.0.0 - June 15, 2022
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
- Both take in the new
VirtualVisitDetails
replaces the deprecatedVirtualVisitInformation
. Please see documentation for more information on the properties.- Added
VirtualService.getWaitTimeAvailability
to fetch the newWaitTimeAvailability
array. See documentation for more ways to filter the results. - Added
VirtualService.getAssignmentQualifiers
to fetch the array ofVirtualVisitAssignmentQualifier
to use ingetWaitTimeAvailability
or create Visit - Added
VirtualService.getModalities
to fetch the array ofVirtualVisitModality
to use ingetWaitTimeAvailability
or create Visit - Added
VirtualVisitFailedReason.visitTypeNotSupported
- returned when you try and callVirtualService.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 toEmailValidator.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 fromRawRepresentable
.- 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 theVirtualVisitDetails.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 invisitTypeId
is deprecated in favour ofProviderService.getProviderTimeslots
and passing in aVisitTypeShortName
instead
Removals
VirtualSerivce.startVirtualVisit
- use the newVirtualSerivce.createVirtualVisit
passing in the newVirtualVisitDetails
VirtualVisitInformation
- useVirtualVisitDetails
with the newVirtualSerivce.createVirtualVisit
PracticeService.getVirtualPracticeRegionAvailability
- use the newVirtualService.getWaitTimeAvailability
PracticeService.getEstimatedWaitTime
- use the newVirtualService.getWaitTimeAvailability
RegionAvailability
- use the newWaitTimeAvailability
returning fromVirtualService.getWaitTimeAvailability
PatientService.createPatientWithMyChart
has been removed and can no longer be called.- Removed
VirtualVisitFailedReason.deprecated
RetailService.getClinics
has been renamed toRetailService.getRetailDepartments
which in turn returnRetailDepartments
from the previousClinics
ClinicTimeslots
have been renamed toRetailAppointmentTimeslots
ScheduleVisit.clinic
has been renamed toScheduleVisit.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 - March 25, 20222
Other
- Updated OpenTok dependency to 2.22.0
- Updated MessageKit dependency to 3.7.0
7.2.0 - January 10, 2022
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 toEmailValidator.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 - September 7, 2021
Fixed
- Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+
7.1.0 - August 2, 2021
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 aVisitStatus
enum. A helper functionisActive
is also added toVisitStatus
to indicate whether or not you can resume with that visitId or not. - Added a
[PatientQuestion]
array to theRetailVisitInformation
andProviderVisitInformation
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 usecontactPhoneNumber
. 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.1 - September 7, 2021
Fixed
- Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+
7.0.0 - June 30, 2021
New
- Introduced a new
VirtualEventDelegate
protocol that can optionally be set onVirtualService.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 theDexcareSDK.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 atEmailValidator.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 theZipCodeValidator.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 toVisitTypeShortName
and switched from an enum to a struct that inherits fromRawRepresentable
.- This is to allow future
VisitType
s 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 aVisitTypeShortName
instead of anAllowedVisitType
, (no functional change)RetailService.getTimeSlots
method’sallowedVisitType
parameter changed tovisitTypeShortName: 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 oldVisitType
enum.ProviderVisitType.shortName
type changed toVisitTypeShortName
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. DC-5026
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.
6.1.7 June 16, 2021
Updated
- 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 zip codes.
ZipCodeValidator.ZIP_CODE_VALIDATION_REGEX
has been added. This is the Regex string used in theZipCodeValidator.isValid
class function.
6.1.6 May 13, 2021
Fixed
- Adjusts TytoCare setup views for smaller devices
- When opening Chat, the keyboard no longer automatically opens.
6.1.5 May 10, 2021
Fixed
- Fixed new Waiting room functionality not showing as available
- Fixed a crash on launch by downgrading MessageKit back to 3.5.0
6.1.2 May 7, 2021
New
- Added a new optional parameter to the
CustomizationOptions
model,VirtualConfig
. This new model contains various customization options related the the virtual visit experience.VirtualConfig
currently has two optional parameters:showWaitingRoomVideo
- Whether or not to display the video on the waiting room. Defaults totrue
.waitingRoomVideoURL
- A bundle url that can be optionally specified to change the video that displays inside the virtual waiting room. When not specified, the default video is used (the same video that has always played in the waiting room, no changes). See documentation for more detail and example. When these properties orVirtualConfig
are not explicitly overridden, the default values are used.
Deprecated
- Deprecated
DexcareConfiguration.init
where you pass in the deprecatedCustomStrings
. A new init is available to use withoutCustomStrings
. Any custom strings should now be passed throughDexcareSDK.customizationOption
Other
- Removed some public classes and functions that should be internal only
- Updated MessageKit to 3.6.0
6.1.1 May 2, 2021
- Fixes a crash when loading up a virtual visit.
6.1.0 April 30, 2021
New
- Added support for TytoCare devices in the Virtual Visit experience. When enabled on the server, a new button will appear in the waiting room and conference screens. Clicking the button will open a new window that instructs the user on how to pair/connect their TytoCare device. For more information about TytoCare, visit https://www.tytocare.com/.
- New permissions are also required in order for the TytoCare integration to work:
- The Wifi entitlement will need to be enabled on your build.
- Location with percise accuracy.
- If any of the new permissions are not available, the integration will still work, but the SDK will not be able to get the current Wifi network information
DexCareSDK.customizationOptions
now has atytoCareConfig
option for any TytoCare configuration that is allowed in the SDK. Please update these before starting a virtual visit.- More information and details are available on https://developers.dexcarehealth.com/virtualvisit/tytocare
Deprecations
- Deprecated
DexcareConfiguration.customStrings
in favour ofDexcareSDK.customizationOptions
, which can be set after initialization of the SDK and anytime before a start of a Virtual Visit.
Changes
- When starting a virtual visit, the
VirtualVisitInformation.userEmail
will ALWAYS be used in the request irregardless of what is in the DexcarePatient object. This now matches retail appointments is doing. DC-4213
Other
- Dropped support for iOS 11. Minimum iOS version is now iOS 12
- Update MessageKit to 3.5.1. InputBarAccessoryView to 5.3.0
- Updated OpenTok to 2.19.1 (Note: A LOT of warnings are still present)
- Updated an internal endpoint for cancelling a virtual visit.
- Updated some public enums with the
@frozen
attribute.DexcareSDKLogLevel
Gender
PatientDeclaration
VirtualFeedback
PaymentHolderDeclaration
6.0.0 - March 17, 2021
Xcode 12
- iOS SDK is now using an
.xcframework
to distribute the SDK. Xcode 11 is no longer supported. You must upgrade to Xcode 12.0+ in order to use v6.0
Breaking
- The framework has been renamed to
DexcareiOSSDK
fromDexcareSDK
. Anywhere in your app where youimport DexcareSDK
will need be changed toimport DexcareiOSSDK
PaymentService
VirtualService.getInsurancePayers
has been deprecated and moved toPaymentService.getInsurancePayers
VirtualService.verifyCouponCode
has been deprecated and moved toPaymentService.verifyCouponCode
,RetailService.uploadInsuranceCard
has been deprecated and moved toPaymentService.uploadInsuranceCard
- Added a property on
DexcareSDK
instance calledpaymentService
Other
- Dependency OpenTok updated to v2.19
- Note: You may get a LOT of warnings with v2.19. They are aware of the issue, but the warnings does not stop Virtual Visits from working.
5.0.0 - March 9, 2021
NOTE: SDK 5.0 requires at minimum version 7.0.0 of the DexCare backend services.
Practices
- Added a new
PracticeService
to the SDK to loadVirtualPractice
Information PracticeService.getVirtualPractice(practiceId)
to load information about a practicePracticeService.getVirtualPracticeRegionAvailability(practiceRegionId)
to load- Added a new
VirtualService.startVirtualVisit
which takes in thepracticeId
from the above call. VirtualVisitInformation.practiceRegionId
is now required when calling the above function- New models
VirtualPractice
,PracticeCareMode
,PracticePaymentAvailability
,VirtualPracticeRegion
have been made public
Providers
- Added a new
ProviderService
to the SDK to loadProvider
Information. - Added
ProviderService.getProvider(providerNationalId)
to retrieve information about a provider. - Added
ProviderService.getProviderTimeslots(providerNationalId, visitTypeId, startDate, endDate)
to load timeslots for a given provider - Added
ProviderService.getMaxLookaheadDays(visitTypeShortName, ehrSystemName)
to get the max days the server will look ahead for timeslots - Added
ProviderService.scheduleProviderVisit(paymentMethod, providerVisitInformation, timeSlot, ehrSystemName,
patientDexcarePatient, actorDexcarePatient?)
to book through a provider. - New models
Provider
,ProviderDepartment
,ProviderVisitType
,ScheduledProviderVisit
Other
- New
PatientService.getSuffixes
has been added to load the list of approved suffixes that can be optional used to fill in the suffix field of aPatientDemographic.HumanName
property ScheduleDay.date
is now formatted in the timezone of the Clinic/Provider. You can effectively ignore the timezone, as the property should be used for grouping of time slots.- Changed internally the endpoint for
RetailService.getTimeSlots
- A Virtual Visit must succeed in order to submit any feedback through
VirtualService.postFeedback
Deprecated
VirtualService.getRegions
has been deprecated in favour of the newerPracticeService.getPractice
VirtualService.getRegionAvailability
has been deprecated in favour of the newerPracticeService.getPracticeRegionAvailability
VirtualService.startVirtualVisit(with catchmentArea)
has been deprecated. Going forward use thestartVirtualVisit
method that has the practiceId.VirtualVisitInformation.currentState
has been marked as deprecated and now optional. This can be set to nil when booking through Practices.
Breaking
- Removed
PatientDemographics.actorRelationshipToPatient
property. Going forward, this property should be set fromRetailVisitInformation
orVirtualVisitInformation
instead - Removed deprecated
VirtualService.updatePushNotificationDeviceToken(String)
- switch toupdatePushNotificationDeviceToken(Data)
instead - Removed deprecated
VirtualService.startVirtualVisit
that does not use catchmentArea or practiceId - Removed deprecated
VirtualService.resumeVirtualVisit
that does not use a dexcarePatient - Removed deprecated
PatientService.createPatient(usingVisitState)
- switch tofindOrCreatePatient(inEhrSystem)
method instead - Removed deprecated
PatientService.createDependentPatient(usingVisitState)
- switch tofindOrCreateDependentPatient(inEhrSystem)
method instead - Removed deprecated
PatientService.createPatient(inEhrSystem)
- switch tofindOrCreatePatient(inEhrSystem)
method instead - Removed deprecated
PatientService.createDependentPatient(inEhrSystem)
- switch tofindOrCreateDependentPatient(inEhrSystem)
method instead - Removed
AppointmentService.cancelRetailAppointment(appointmentId)
- switch to.cancelRetailAppointment(visitId)
method instead - Removed
AppointmentService.scheduleRetailAppointment()
- switch toRetailService.scheduleRetailAppointment()
method instead Environment.pcpURL
has been removed from the DexcareSDK initializer- Removed
AppointmentService.getPCPAppointments
-
Removed
PCPAppointment
andPrimaryCareAppointmentFailedReason
DexcarePatient.demographicLinks
has been renamed toDexcarePatient.demographicsLinks
PatientDemographics.ssn
has been renamed toPatientDemographics.last4SSN
AllowedVisitType.shortName
is now aVisitType
enum
Fixed
- When passing in a nil
VirtualVisitInformation.preTriageTags
the function would return an error. This adds internally a default empty array if nil is passed in. Workaround for client in the interim is to pass in an empty array. (DC-3502) - If a user disallows push notifications, the SDK now allows them to start a Virtual Visit. Only Microphone and Camera are required. (DC-3885)
Dependencies
- Updated
MessageKit
to 3.3
4.0.3
Fixes
- Chats inside virtual waiting room and virtual visits, were not persisting if the virtual visit was resumed (DC-3773)
4.0.2
Changed/Updated
AppointmentService.getPCPAppointments
is marked as deprecated and will be removed in the next minor versionPCPAppointment
and associated objects are marked as deprecated and will be removed in the next minor version.Environment.pcpURL
is marked as deprecated and the property will be removed in the next minor version
Fixes
- Using the
RefreshTokenDelegate
now gets called properly (DC-3446)
4.0.1
Changed/Updated
CatchmentArea.ehrSystem
andCatchmentArea.departmentId
properties are now public
4.0.0
New
- A new
AppointmentService.cancelRetailAppointment(visitId:)
method is now the method used to cancel retail visits. The oldAppointmentService.cancelRetailAppointment(appointmentId:)
is now deprecated.VisitId
will be the id passed back in theAppointmentService.getRetailVisits
call. - A new
DexcareSDK.refreshTokenDelegate
delegate is now available to better handle 401 UnAuthenticated errors. When a client adopts this protocol, they have the ability to try and send a valid token (say for example if it’s expired) and the network call will retry.
Create patient/Booking
- Creating patients and booking have been overhauled to be simpler.
- Removed the requirement to call
PatientService.createPatient(visit state or ehrSystem)
orPatientService.createDependentPatient(visit state or ehrSystem)
and instead created newPatientService.findOrCreatePatient
orPatientService.findOrCreateDependentPatient
. These depend on a newCatchmentArea
property that internally is what the SDK uses to figure out the visit state. PatientService.getCatchmentArea
is now available to figure out the EHRSystem based on a visit state. If you know the EHRSystem, there is no need to call this methodVirtualService.startVirtualVisit
have new methods to use the newCatchmentArea
property. You also must pass up the fullDexcarePatient
instead of the just the demographics.RetailService.scheduleRetailAppointment
is new to expect aDexcarePatient
and an optional patient for dependent if you’re booking an appointment for a dependent.This replaces the oldAppointmentService.scheduleRetailAppointment
Breaking
- Any old deprecated functions, methods, protocols, classes from
3.0
have now been removed. It is recommended if you are coming from2.x
to first update to3.X
then to4.0
Changed/Updated
RetailService.getRetailClinics
is nowRetailService.getClinics
(DC-2769)- Added some extra validation for empty strings on some methods. (DC-2885)
- Updated an internal endpoint used by the sdk to resume virtual visits (DC-2836)
- Adds the SDK Version to the
userAgent
header for all network calls (DC-3206) PatientDemographic.actorRelationshipToPatient
is deprecated. AllactorRelationshipToPatient
should now be passed in via theRetailVisitInformation
or theVirtualVisitInformation
- Removed
AllowedVisitType.reasonLabel
andAllowedVisitType.description
as they are unused
3.0.2
Changed/Updated
- Makes all public models inherit from
Codable
. Previously some public models were just set asDecodable
. This should help in using the DexcareSDK with ReactNative.
Fixes
- Chats inside a virtual visit (not in waiting room) did not successfully decode when a provider sent a message (DC-2947)
3.0.1
Fixes
- Updated podspec to included updated 2.18 OpenTok pod
- When in Virtual Chat the message from device should be on the right side and different color. (DC-2794) _____
3.0.0
Breaking
- Virtual Visits with Someone else now require
PatientDemographics.relationshipToPatient
to be set. This now matches what retail visits are requiring. VirtualVisitInformation
now has a requireduserEmail
property.VirtualVisitInformation
now has a requiredcontactPhoneNumber
property.VirtualVisitInformation.declaration
is nowVirtualVisitInformation.patientDeclaration
RetailVisitInformation
now has a requireduserEmail
property.-
RetailVisitInformation
now has a requiredcontactPhoneNumber
property. RetailService.uploadInsuranceCard
has been changed to return a string instead of a URLPaymentMethod.insuranceImageSelf
andPaymentMethod.insuranceImageOther
have been changed to require a new cardId instead of a URL
New
- A new
Environment
struct has been created to simplify initialization of DexCareSDK VirtualConfiguration
replacesVirtualSDKConfiguration
DexcareConfiguration
replacesDexcareSDKConfiguration
that takes in the newEnvironment
propertyDexcareSDK.signIn(accessToken:String)
replacesDexcareSDK.authentication.signIn
DexcareSDK.signOut()
replacesDexcareSDK.authentication.signOut
VirtualService.startVirtualVisit
without email replaces the same call with email. Email property is now passed throughVirtualVisitInformation.userEmail
VirtualService.resumeVirtualVisit
without email replaces the same call with email, dislplayName. DisplayName is now gathered automatically by SDK.PatientService.createPatient
andPatientService.createDependentPatient
now have extra validation checks forAddress.postalCode
,homePhone
,mobilePhone
,workPhone
,- New
VirtualFeedback
enum that is used in new postFeedback call VirtualService.postFeedback([VirtualFeedback])
replacesVirtualService.postFeedback(patientId...)
to simplify the postFeedback call. AstartVirtualVisit
or aresumeVirtualVisit
must have been called before you can call this function.RetailService.uploadInsuranceCard
has been changed to use a new insurance card capture (ICC) endpoint.PaymentMethod.insuranceImageSelf
andPaymentMethod.insuranceNewImageOther
have been added
Changed/Updated
- OpenTok is now v 2.18.0
Dexcare.retail
has been renamed toDexcare.retailService
Dexcare.virtual
has been renamed toDexcare.virtualService
Dexcare.appointment
has been renamed toDexcare.appointmentService
Dexcare.patient
has been renamed toDexcare.patientService
VirtualSDKConfiguration
has been deprecated in favor ofVirtualConfiguration
DexcareSDKBaseURL
has been deprecated in favor ofEnvironment
DexcareSDKConfiguration
has been deprecated in favor ofDexcareConfiguration
DexcareSDK.authentication
has been deprecatedRegion.Price
struct is nowRegion.Prices
. Property onRegion
is stillprices
Deleted
- Old deprecated
func startVirtualVisit(request: VirtualVisitRequest, presentingViewController: UIViewController, displayName: String, givenName: String, familyName: String, onCompletion: @escaping VisitCompletion, success: @escaping (String) -> Void, failure: @escaping (VirtualVisitFailedReason) -> Void)
is now removed - Removed deprecated
VirtualVisitRequest
- Removed unused public
VirtualFeedbackRequest
struct
Fixes
- When in the waiting room, and the provider declines the visit, the virtual visit now closes as it should. DC-2019
2.3.0
Breaking
- DexcareSDK now is built with Xcode 11.3
Changed
- Removed header API key from calls to DIG fhirorch
- Fixes crash in ChatViewController: DC-1813
- Added VirtualService.cancelVirtualVisit
2.2.0
New
- Added
getRetailVisits
toAppointmentService
- Added new
ScheduledVisit
model which is returned ingetRetailVisits
- Added new
Clinic
model as a replacement forRetailClinic
- Note:
Clinic.departmentName
is the new property name forRetailClinic.urlName
Changed
- Moved
scheduleRetailAppointment
fromRetailService
toAppointmentService
- Deprecated
AppointmentService.scheduleRetailAppointment
with the oldRetailTimeslot
paramater in favor of using the newTimeSlot
parameter - Deprecated
RetailService.appointments
which is nowAppointmentService.getRetailVisits
- Deprecated
RetailClinic
in favor ofClinic
- Deprecated
RetailClinicAddress
in favor ofAddress
- Deprecated
RetailService.clinics(brandName)
in favor ofRetailService.getRetailClinics(brand)
- Deprecated
RetailService.timeslots(clinicURLName)
in favor ofRetailService.getTimeSlots(departmentName: allowedVisitType)
- Deprecated
RetailBookingInfo
in favor ofClinicTimeSlot
- Deprecated
RetailSchedulingDays
in favor ofScheduleDay
- Deprecated
RetailTimeslot
in favor ofTimeSlot
- Deprecated
CancellationReason
in favor ofCancelReason
- Moved
cancellationReasons
fromRetailService
toAppointmentService
and renamed it togetCancelReasons
- Deprecated
RetailService.cancelRetailAppointment
in favor ofAppointmentService.cancelRetailAppointment
with the newCancelReason
parameter
Breaking
ScheduleDay.date
is now aDate
type instead of a string
[2.1.1]
Changed
- Updated header key for fhirorch calls to
X-api-key
fromx-api-keys
[2.1.0]
New
- Added new AppointmentService.
- Added AppointmentService.getPCPAppointments
Changed
- Added PCP base url to dexcare configuration as optional.
NOTE
- In future versions RetailService will be deprecated with functions moved over to the new AppointmentService