Releases: DexCare/DexCareSDK-iOS
8.2.0
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
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
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
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
Dependency Updates
- Updated OpenTok dependency to 2.22.0
- Updated MessageKit dependency to 3.7.0
7.2.0
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
Fixed
- Fixes a crash that happens on iOS version < 14.0. Minimum iOS version is now iOS 13+
7.0.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 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.0
7.0.0
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.
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.