Latest Release

  • Full release note history can be found in Release Notes

    8.0.1

    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 and VirtualVisitAssignmentQualifer.pediatric options. Regular virtual visits without special qualifications, should set the VirtualVisitDetails.assignmentQualifers to nil
    • Removes missed async version of RetailService.getClinics this was renamed to RetailService.getRetailDepartments

    8.0.0

    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
    • VirtualVisitDetails replaces the deprecated VirtualVisitInformation. Please see documentation for more information on the properties.
    • Added VirtualService.getWaitTimeAvailability to fetch the new WaitTimeAvailability array. See documentation for more ways to filter the results.
    • Added VirtualService.getAssignmentQualifiers to fetch the array of VirtualVisitAssignmentQualifier to use in getWaitTimeAvailability or create Visit
    • Added VirtualService.getModalities to fetch the array of VirtualVisitModality to use in getWaitTimeAvailability or create Visit
    • Added VirtualVisitFailedReason.visitTypeNotSupported - returned when you try and call VirtualService.resumeVirtualVisit with a non-virtual visit type.

    • 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 to EmailValidator.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 from RawRepresentable.
    • 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 the VirtualVisitDetails.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 in visitTypeId is deprecated in favour of ProviderService.getProviderTimeslots and passing in a VisitTypeShortName instead

    Removals

    • VirtualSerivce.startVirtualVisit - use the new VirtualSerivce.createVirtualVisit passing in the new VirtualVisitDetails
    • VirtualVisitInformation - use VirtualVisitDetails with the new VirtualSerivce.createVirtualVisit
    • PracticeService.getVirtualPracticeRegionAvailability - use the new VirtualService.getWaitTimeAvailability
    • PracticeService.getEstimatedWaitTime - use the new VirtualService.getWaitTimeAvailability
    • RegionAvailability - use the new WaitTimeAvailability returning from VirtualService.getWaitTimeAvailability
    • PatientService.createPatientWithMyChart has been removed and can no longer be called.
    • Removed VirtualVisitFailedReason.deprecated
    • RetailService.getClinics has been renamed to RetailService.getRetailDepartments which in turn return RetailDepartments from the previous Clinics
    • ClinicTimeslots have been renamed to RetailAppointmentTimeslots
    • ScheduleVisit.clinic has been renamed to ScheduleVisit.retailDepartment

    Other

    • Updated internal endpoint for VirtualService.getEstimatedWaitTime
    • Updated internal endpoint for VirtualService.getVirtualVisitStatus
    • Updated internal endpoint for VirtualService.cancelVirtualVisit
    • Updated OpenTok dependency to 2.22.3
    • Updated MessageKit dependency to 3.8.0
  • Full release notes history can be found in Release Notes

    8.1.3

    • Remove the requirement to provide relationship information as part of a patient data. This will not be self contained inside VirtualVisitDetails only

    8.1.2

    Internal

    • Fix the structure blocking a patient relationship detail from being displayed correctly on consumer portal.

    8.1.1

    New

    • Added a new property to VirtualVisitDetails named actorRelationshipToPatient representing the patient’s relationship to the patient if scheduling for someone else. Possible values for this are found under RelationshipToPatient enum.
    • If creating a visit for PatientDeclaration.Other, it is now a requirement to provide an actorRelationshipToPatient or validation fails with Relationship must be defined message.

    8.1.0

    New

    • DexCareVirtualPatient will have throw Missing Phone Number error if none of the three phone numbers exist in the order of home, work, and mobile
    • Added Spanish language translations for most of the communicated information
    • Added a new VirtualService.createVirtualVisitWithPatient method, to create a patient with the virtualActor that makes use of a Patient model.
    • Added new property for VirtualVisitDetails model named traveling. It is an optional field that can be passed a boolean value.

    Internal

    • Updated OpenTok to version 2.23.0.
    • Updated proguard to reduce SDK size

    Deprecated

    • Deprecated the use of VirtualActor and it’s usage and replaced by Patient information instead.
    • Deprecated the use of VirtualService.createVirtualVisit and replaced by VirtualService.createVirtualVisitWithPatient

    8.0.1

    New

    VirtualVisitDetails can now take in null as the assignmentQualifiers. Null will assume default qualifiers and you will have to use VirtualService.getAssignmentQualifiers to get access to available qualifiers.

    Internal

    • Removed DefaultVirtualVisitAssignmentQualifiers

    8.0.0

    New

    • Added a new VirtualService.createVirtualVisit method, which uses a new backend endpoint with more functionality. The new API allows for scheduling for a patient using an Epic identifier instead of a DexCare patientGuid, scheduling phone-call virtual visits, and is more flexible in terms of required information to schedule a virtual visit. See the DexCare developers site for more information.
    • Added a new VirtualService.getWaitTimeAvailability method to fetch the new WaitTimeAvailability list for all Virtual Provider queues. This includes information about all available regions for all practices. The results can optionally be filtered by several parameters. See the code documentation for available filters.
    • Added a new VirtualService.getAssignmentQualifiers method to fetch the all supported VirtualVisitAssignmentQualifier to use to filter VirtualService.getWaitTimeAvailability and in VirtualService.createVirtualVisit.
    • Added new mandatory parameters userEmail and contactPhoneNumber in VirtualVisitDetails model, these parameters are used to contact the user. -VirtualVisitDetails replaces the deprecated VirtualVisitInformation. Please see documentation for more information on the properties.
    • Added a new VirtualService.getModalities method to fetch the all supported VirtualVisitModality to use to filter VirtualService.getWaitTimeAvailability and in VirtualService.createVirtualVisit.
    • Scheduling a phone-call virtual visits using VirtualService.createVirtualVisit and VirtualVisitTypeName as phone will return empty Intent, a visitId, and a VirtualVisitTypeName object.
    • VisitStatus enum converted to a String
    • New method VisitStatus.isVisitStatusActive is added which returns a Boolean depending on the VisitStatus passed as an argument.
    • New enum DefaultVisitStatus is available to give access to the list of default visit status names.
    • Added a new VirtualPracticeRegion.pedatricsAgeRange property to indicate the age of patients that pediatric providers can see.

    Breaking

    • A MissingInformationError is now returned in the VirtualService.createVirtualVisit methods when VirtualVisitInformation.visitReason is empty string. This now matches the behavior in the Retail and Provider services.
    • VirtualSerivce.startVirtualVisit - use the new VirtualSerivce.createVirtualVisit passing in the new VirtualVisitDetails.
    • VirtualVisitInformation - use VirtualVisitDetails with the new VirtualSerivce.createVirtualVisit.
    • PracticeService.getVirtualPracticeRegionAvailability - use the new VirtualService.getWaitTimeAvailability.
    • PracticeService.getEstimatedWaitTime - use the new VirtualService.getEstimatedWaitTime.
    • RegionAvailability - use the new WaitTimeAvailability returning from VirtualService.getWaitTimeAvailability.
    • Removed PatientService.createPatientWithMyChart() method. This is no longer supported by the SDK.
    • Clinic references have been updated to RetailDepartment.
    • ClinicTimeSlot is replaced by RetailAppointmentTimeSlot.
    • RetailService.getClinics is replaced by RetailService.getRetailDepartments
    • ScheduledVisit.clinic is replaced by ScheduledVisit.retailDepartment

    Deprecated

    • UnavailableAppointmentError is now deprecated. It will be replaced by the standard NetworkError.ServiceUnavailableError in a future release.
    • ProviderService.getProviderTimeslots passing in visitTypeId is deprecated in favour of ProviderService.getProviderTimeslotsWithShortName and passing in a VisitTypeShortName instead.

    Internal

    • VisitStatus is now just a typealias that is a String.

    • Updated TokBox SDK version from 2.22.0 to 2.22.3
    • Updated androidMaterial version from 1.0.0 to 1.4.0
    • Updated Jackson parser versions from 2.12.4 to 2.13.3
    • Updated androidx test junit ext from 1.1.2 to 1.1.3
    • Updated androidx test rules from 1.3.0 to 1.4.1-alpha06
    • Updated androidx constraint layout from 1.1.3 to 2.0.4
    • Updated androidx databindingCompiler from 4.1.2 to 7.2.1
    • Updated androidx fragmentTesting from 1.3.0 to 1.4.1
    • Updated mockitoAndroid from 3.0.0 to 3.3.0

    • Update getEstimatedWaitTime under VirtualVisitContract from v6 to v9 api endpoint
    • Update cancelVirtualVisit under VisitServiceContract from v8 to v9 api endpoint
    • Update getVirtualPractice under PracticeService from v8 to v9 api endpoint