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_REGEXis added. This is the regex used in the
InvalidPatientDemographicsObjectErrorno longer returns the address in the error message when the zip code is invalid, and instead returns the index of the address in the addresses list.
- Added a new optional parameter to the
VirtualConfig. This new model contains various customization options related the the virtual visit experience.
VirtualConfigcurrently has two optional parameters:
showWaitingRoomVideo- Whether or not to display the YouTube video on the waiting room. Defaults to
waitingRoomYouTubeVideoId- A YouTube video id that can be optionally specified to change the video that displays inside the virtual waiting room. When not specified, the YouTube video id
2woiLsEG2zois used (the same video that has always played in the waiting room, no changes).
When these properties or
VirtualConfig are not explicitly overridden, the default values are used.
- Fixed TytoCare QR code generation. Devices should now be able to pair directly after a factory reset.
- Changed the 5GHz error message to be more about connecting to a 2.4GHz Wi-Fi. The 5GHz error dialog would also display when the user is connected to mobile data, so the error message was reworded to make more sense in this case as well.
- Fixed TytoCare QR code generation on API 24 and 25.
- Fixed TytoCare QR code getting cut off on smaller screen sizes.
- 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 Tyto device. For more information about TytoCare, visit https://www.tytocare.com/.
- The DexCare SDK now uses permissions
ACCESS_FINE_LOCATION. These are used to get the user’s current Wifi SSID in the TytoCare flow. The user is only prompted to allow location permission when the SSID is needed, and they have the option to decline and enter the SSID manually.
- Added new methods
DexCareSDK.setDomain. These methods can optionally be used to change the API key and domain at runtime. These methods are generally not needed if the configs are already set in string resources.
- Added a new method
DexCareSDK.setCustomizationOptionswhich will be used to set various minor customizations within the SDK.
VirtualPracticeRegion.visitPriceis now already divided by 100. The visitCost represents the price of a visit in dollars, rather than cents as previously. The type has changed from Int to Double. If this division was done on your app, it should be removed to get the proper visit price in dollars.
OLD SDK 6.0: visitPrice = 4900 NEW SDK 6.1: visitPrice = 49.0
VirtualPracticeRegion.getVisitPriceInDollars()is now deprecated. The existing property
visitPricenow represents the visit cost in dollars.
- Fixed an issue inside the video conference where the patient would not be able to see or hear the provider after the provider refreshed their window and reconnected.
- Improved UI for the error dialog that appears when the Virtual session gets disconnected.
- Updated to Kotlin version 1.4.21.
- Updated Kotlin jvmTarget to Java 9.
- Updated to a new version of the virtual visit cancellation endpoint.
- Updated OpenTok to version
- Fixed an issue where network calls were logged to device logcat.
- Added a new PaymentService, which now contains the existing payment-related methods. No new methods were added.
RetailService.uploadInsuranceCardis now deprecated. It has been moved to
VirtualService.getInsurancePayersis now deprecated. It has been moved to
VirtualService.verifyCouponCodeis now deprecated. It has been moved to
- The SDK is now targeting Android API 30.
- Fixed a rare crash related to the waiting room YouTube video.
- Updated OpenTok to version
- Fixed a crash when inflating the Virtual Visit screens on certain AndroidX Navigation Component versions.
- Updated androidx.core:core-ktx dependency to version 1.3.2.
- Updated AndroidX Navigation Component dependency to version 2.3.3.
NOTE: SDK 5.0 requires at minimum version 7.0.0 of the DexCare backend services.
- Added a new PracticeService, which contains new APIs to get info about a particular Practice and PracticeRegion. Practices will replace the existing Regions concept in the Virtual booking flow. See the documentation for more details: PracticeService
- Added a new ProviderService, which contains new APIs to get info about a particular care Provider, retrieve the Provider’s time slots, and schedule a visit directly with the Provider. See the documentation for more details: ProviderService
- Added a new
PatientService.getSuffixes()API, which returns a list of acceptable name suffixes.
- Push Notifications are now optional. It is still highly recommended to register for push notifications.
- Loosened validation on SDK methods that schedule visits. Now only properties used in the API are validated, instead of anything that gets passed in.
VirtualService.getRegionAvailability()methods. The “Regions” are being deprecated in favor of Practices and VirtualPracticeRegions. See the new PracticeService for details.
- Deprecated most models related to Regions. Any regions-related models not deprecated are shared and used by Practices.
VirtualVisitInformation.currentStateand made it optional. With Practices, this parameter is no longer needed.
VirtualService.startVirtualVisitmethods. New startVirtualVisit methods were added with slightly different parameters to support Practices.
Address.address2properties. New properties
line2are added as replacements. This is a rename to match iOS.
- The value returned by
VirtualService.verifyCouponCodeis now already divided by 100. 4900.0 -> 49.0. This now matches iOS.
AppointmentService.getPcpAppointments()method. PCP is not supported by DexCare and is no longer accessible through the SDK.
- Removed all models related to PCP.
Address.countryproperty. Changing the country is not currently supported.
- Removed all methods/models that were marked as deprecated in SDK 4.0.
- Removed unused properties from
- Fixed a rare crash when an error is encountered from the TokBox SDK.
- Updated OkHttp to version
- Resolved a potential SDK crash related to consumer app ProGuard conflicts with the SDK. Internally to the SDK, the issue has been avoided entirely. No changes required on the app side.
- Updated ProGuard rules to minimize conflicts between multiple obfuscated libraries (duplicate class error).
- Fixed an issue where
PatientService.findOrCreateDependentPatientdid not set the EHR system name in the PatientDemographics object before returning the full DexCarePatient object.
- Updated several API endpoints to newer versions. These changes were internal to the SDK, no changes are required on the app.
- Updated Kotlin to version 1.4.20.
- Updated Koin to version 2.2.0.
- Added new Virtual Visit return codes to enable the apps to distinguish and handle different virtual visit results. See VirtualService’s Companion object for details.
- Made all public models implement Parcelable, in case implementing apps want to transfer models between fragments/activities.
- RetailService.scheduleRetailAppointment now returns a visitId upon success, instead of nothing. The visitId can be used to cancel the visit. This is the only place the visitId is returned for “dependent” visits (AppointmentService.getRetailVisits only returns visits for the signed in user).
- Added new method to DexCareSDK object: setRefreshTokenContract(refreshTokenContract: RefreshTokenContract?). This allows for changing the RefreshTokenContract after initialization.
- Creating patients and booking have been overhauled to be simpler:
- Removed the requirement to call
PatientService.createDependentPatientmethod. New methods
PatientService.findOrCreateDependentPatient. These depend on a new
CatchmentAreaproperty that internally is what the SDK uses to figure out the visit state.
PatientService.getCatchmentAreais now available to figure out the EHRSystem based on a visit state. If you already know the EHR system and department Id (retail clinics have this info), there is no need to call this method.
VirtualService.startVirtualVisithave new methods to use the new
CatchmentAreaproperty. You also must pass up the full
DexcarePatientinstead of the just the demographics.
AppointmentService.cancelRetailVisitis now deprecated.
AppointmentService.cancelRetailAppointmenthas been added to replace it. The new method
AppointmentService.cancelRetailAppointmenttakes in the visitId (
ScheduledVisit.id), not the appointment id as the old method did.
Clinic.distanceStringproperty is now deprecated. Existing function
Clinic.getDistanceString(userLocation: Location): Stringshould be used instead.
VirtualService.startVirtualVisitmethods were deprecated, as new startVirtualVisit methods have been introduced, with slightly different parameters.
PatientService.createDependentPatientmethods have been deprecated, as new
PatientService.findOrCreateDependentPatientmethods have been introduced, with slightly different parameters/return values.
- Made the SDK’s Koin instance internal to the SDK.
DexCareSDK.initWithKoinSupportmethod is removed, now there is only one init method. If your app relied on any of the SDK’s modules, you will need to set up your own modules and providers in your app to replace them.
valueproperty type changed from Any to String.
- Added input validation for various required arguments throughout the SDK. A MissingInformationError will be returned when empty string is passed in to a required input parameter.
dispose()method from RefreshTokenContract.
- Removed properties
- Added missing functionality where Virtual Visits were not continuously updating the estimated wait time in the virtual waiting room.
- Removed internal Splunk Mint SDK. No changes required on the app side.
- Fixed issue with SDK crashing during initialization (ProGuard rules tweaked). No changes required on the app side.
- Fixed issue with autocomplete on the SDK/services.
- Updated to Gradle 6.7, and Android build tools gradle plugin to 4.1.0.
See the 3.0.0 Migration Guide.
DexCare SDK 3.0.0 High-Level Overview
- Aligned the iOS and Android SDKs. This means that the services and models are now much more similar between the platforms.
- Updated the Insurance Card Capture endpoints. The APIs available in version 2.x of the SDK are not available on certain environments. This SDK release contains updated APIs that are available on all environments.
- Simplified SDK usage, particularly around posting virtual feedback. The number of parameters required to post feedback has been reduced to 1 - the minimum amount of information required from the implementing app (the user’s feedback). Everything else is temporarily stored in memory from the most recent Virtual Visit, and handled by the SDK. It’s no longer necessary for the implementing app to keep track of visitIds, conferenceIds, etc.
- New data validation requirements around phone numbers, emails, and zip codes. The requirements are detailed in each platform’s migration guide.
- Various bug fixes and stabilization.
- Updated TokBox SDK to version 2.18.0 - iOS/Android
VirtualVisitService.getEstimatedWaitTime(visitID: String): DataObserver<EstimatedWaitTime>internal to the SDK. This API is handled in the virtual visit waiting room, which is managed by the SDK.
EstimatedWaitTimeinternal to the SDK.
textproperty was renamed to
displayTextto match iOS.
- Multiple changes to Retail-related models and methods. This was done to align Android and iOS SDKs. Changes include property renaming, new properties, and minor SDK contract changes.
AppointmentService.getCancelReasons(brandName: String): DataObserver<List<CancelReason>>to use an updated API internally. Aside from the property rename above, this should be a seamless transition.