Image

Welcome Developers!

Explore our developer documentation for our REST APIs and Mobile Native SDKs.

Latest Release

NOTE: DexCare SDK 7.0 requires at minimum version 8.47.3 of the DexCare backend to fully function.

  • Full release note history can be found in Release Notes

    7.1.1

    Fixed

    • Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+

    7.1.0

    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 a VisitStatus enum. A helper function isActive is also added to VisitStatus to indicate whether or not you can resume with that visitId or not.
    • Added a [PatientQuestion] array to the RetailVisitInformation and ProviderVisitInformation 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 use contactPhoneNumber. 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.
  • Full release notes history can be found in Release Notes

    7.1.0

    New

    • Added a new VirtualService.getVideoCallStatistics() that returns statistics information about a video conference that occurred in the current DexCare SDK session.
    • Added a new method VirtualService.getVirtualVisitStatus(visitId: String) which returns the current status of a virtual visit. This can be used to determine if a visit can be reconnected to using VirtualService.resumeVirtualVisit.
    • The SDK now performs a device health check before entering the virtual visit waiting room. The check ensures that the device has a camera and microphone, both of which are required for virtual visits. In the event that the device does not have one or neither of them, a new UnsupportedDeviceError will be returned in the VirtualService.startVirtualVisit and VirtualService.resumeVirtualVisit methods.
    • Added a new PatientQuestion model. The RetailVisitInformation and ProviderVisitInformation objects now optionally take in a list of PatientQuestion. This can be used during retail and provider visits to pass additional information through to the Epic appointment record.

    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 use contactPhoneNumber. 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.

    Internal

    • Extended the amount of time the SDK will attempt to reconnect to a virtual visit upon a disconnect. The reconnecting spinner dialog now has a Cancel button. Users can use this button to stop reconnection attempts, and upon confirmation will be removed from the virtual visit. The visit remains active and can be rejoined using VirtualService.resumeVirtualVisit.
    • Button order updated for some dialogs inside virtual visit, according to Material Design. The confirmation button is now always the right-most button, and cancel is always left-most.
    • Updated endpoint for ProviderService.getProviderTimeSlots to a new version.
    • Kotlin updated from 1.5.0 to 1.5.21.
    • Android Gradle build tools updated from 4.2.1 to 4.2.2.
    • Jackson & Jackson-related dependencies updated from 2.12.2 to 2.12.4.

    Breaking

    • Renamed SessionStatus to VisitStatus. This model was marked as public, but there wasn’t much use for it anywhere outside the SDK. Therefore, it will most likely be a seamless upgrade.

    7.0.1

    Fixed

    • Reverted changes in 7.0.0 related to Chuck. The Environment.isProd flag now controls whether or not Chuck will appear, as it did before 7.0.0.

    7.0.0

    New

    • Introduced a new VirtualEventListener interface that can optionally be set on VirtualService to listen for various events while the patient is inside the waiting room/video conference. Note that the listener should primarily be used for logging purposes.
    • Reintroduced VirtualService.getEstimatedWaitTime(visitId) as a public method. This can be used to get the estimated wait time for a particular visit. This is the same info that is displayed to the user in the waiting room.
    • Added a new PracticeService.getEstimatedWaitTime(practiceRegionId) method, which will retrieve the estimated wait time for a specific Virtual Practice region. Note that the estimate is cached and updated every 5 minutes.
    • Added a new CustomizationOptions.validateEmails boolean which allows the ability to disable email validation within the SDK.

    Breaking

    • Several Date types in SDK models have been replaced by more appropriate Java 8 Date Time types. See the SDK 7.0 migration guide for details.
    • Removed deprecated models/methods/properties:
      • Address.address
      • Address.address2
      • Region
      • RetailService.uploadInsuranceCard
      • VirtualPracticeRegion.getVisitPriceInDollars
      • VirtualService.startVirtualVisit methods without practiceId argument
      • VirtualService.getRegions
      • VirtualService.getRegionAvailability
      • VirtualService.getInsurancePayers
      • VirtualService.verifyCouponCode
      • VirtualVisitInformation.currentState
    • Removed all of the DexCare SDK’s Date extension functions. They are no longer needed with the Java 8 Date Time types.
    • Changes around visit types:
      • AllowedVisitType.visitType renamed to AllowedVisitType.shortName.
      • AllowedVisitType.visitType type changed to a new VisitTypeShortName type (which is a typealias of String).
      • 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 VisitType enum.
      • ProviderService.getMaxLookaheadDays method’s visitTypeShortName type changed to VisitTypeShortName from String (no functional change).
      • ProviderVisitType.shortName type changed to VisitTypeShortName from String (no functional change).
      • VisitType.type renamed to VisitType.shortName
      • VisitType.type type changed to VisitTypeShortName from String (no functional change).
    • Removed MissingPropertyError as it was no longer returned in any SDK method.
    • Removed UnexpectedMethodOrderError as it was no longer returned in any SDK method.
    • Removed VirtualService.VISIT_NOT_TOKBOX_RESULT_CODE result code as it is no longer returned. All visits are now assumed to be TokBox.
    • All methods in PracticeService can now return a MissingInformationError when a required parameter is empty.
    • The no-op version of Chuck is now used for release builds. This means that even when Environment.isProd is false for release builds, Chuck will not appear.

    Deprecated

    • EmailValidator.EMAIL_REGEX is now deprecated. It is renamed to EmailValidator.EMAIL_VALIDATION_REGEX to match iOS.

    Fixed

    • Fixed proguard rules to keep VirtualService’s companion object, allowing access to the SDK’s result codes for the virtual visit activity.
    • Fixed YouTube player initialization error on API 30 devices.
    • Only the first address in the PatientDemographics.addresses list is now validated for the Retail, Virtual, and Provider scheduling APIs. All addresses are still validated for PatientService.findOrCreatePatient and PatientService.findOrCreateDependentPatient APIs.
    • ServiceUnavailableError now correctly extends sealed class NetworkError instead of Throwable.

    Internal

    • Updated OpenTok to version 2.20.1.
    • Core library desugaring is now enabled in the SDK.
    • Kotlin updated from 1.4.21 to 1.5.0.
    • RxJava updated from 2.2.11 to 3.0.12.
    • RxAndroid updated from 2.1.1 to 3.0.0.
    • RxPermissions updated from 0.11 to 0.12.
    • Retrofit updated from 2.6.1 to 2.9.0.
    • Jackson & Jackson-related dependencies updated from 2.11.1 to 2.12.2.
    • The SDK now depends on com.fasterxml.jackson.datatype:jackson-datatype-jsr310 version 2.12.2.
    • Koin updated from 2.2.0 to 2.2.2.
      • Note: Koin’s groupid changed when migrating to MavenCentral. It’s now io.insert-koin instead of org.koin.
    • The SDK no longer depends on com.xwray:groupie and com.xwray:groupie-databinding.
    • Androidx Navigation Component updated from 2.3.3 to 2.3.5.
    • Removed usage kotlin-android-extensions plugin which is now deprecated.
    • Migrated to kotlin-parcelize plugin as a replacement for functionality that was available in kotlin-android-extensions.
    • Updated to a new version of the Virtual Visit wait time endpoint.
    • JCenter is no longer used as a dependency repository. MavenCentral should be used instead.
    • All non-network-related errors returned by the SDK are now logged for debugging purposes.

Support or Contact

Please contact your DexCare Customer Success Manager or Primary DexCare contact via Email/Slack or login to your Customer Service Desk ticketing system to submit a request.