DexCare SDK 5.0.0

This page contains information on how to upgrade from SDK 4.0 to SDK 5.0. For a full list of changes, see the Release Notes.

Cocoapods

We are no longer using the PodSpec-iOS going forward. Please update your PodFile to

 pod 'DexcareSDK', :git => 'https://github.com/Dexcare/DexcareSDK-iOS.git'

or if you want just want a specific version

pod 'DexcareSDK', :git => 'https://github.com/Dexcare/DexcareSDK-iOS.git', :tag => '5.0.0'

Practices

The main change in SDK 5.0 is the deprecation of Regions, and the addition of Virtual Practices. A Practice is a collection of resources that provides a type of care to patients. Each practice has a separate set of regions & hours, payment information, and a pool of caregivers to treat patients. They are an additional layer of separation/precision on top of Regions.

Regions deprecation

The following methods are now deprecated and should be replaced by calls in the new PracticeService:

VirtualService.getRegions(brandName)
VirtualService.getRegionAvailability(regionId)

The new methods in PracticeService are:

PracticeService.getVirtualPractice(practiceId)
PracticeService.getVirtualPracticeRegionAvailability(practiceRegionId)

The practiceIds are static and can be hardcoded for each practice your app wants to support. They can be provided by your DexCare contact.

getVirtualPractice returns a VirtualPractice object which contains various information about the practice, including a list of VirtualPracticeRegions. The VirtualPracticeRegion object has a regionCode property which can be used in place of the old Region.regionId. The VirtualPracticeRegions can be displayed to the user for their selection, just like the old Regions.

Note that not all VirtualPracticeRegions are meant to be displayed to the user. For example, there can be a VirtualPracticeRegion set up that does not book to Epic, and can be separate from normal patient queues. This allows for testing virtual visits in production environments without impacting real patients or providers.

VirtualVisitInformation

https://developers.dexcarehealth.com/ios/latest/Structs/VirtualVisitInformation.html

A new parameter has been added to the VirtualVisitInformation object, practiceRegionId. This should be the VirtualPracticeRegion.practiceRegionId property from the region selected by the user.

The parameter is always required when booking using practices (which is the only non-deprecated way to book virtual visits). It is marked as optional for backwards compatibility with the old Regions method of booking virtual visits.

StartVirtualVisit

The existing VirtualService.startVirtualVisit methods have been deprecated. New VirtualService.startVirtualVisit methods have been added to replace them, with a single new parameter practiceId.

Again, this can be hardcoded for each virtual practice your app supports.

PCP

  • Environment.pcpUrl has been removed. You no longer need to override this in your Environment object.
  • AppointmentService.getPcpAppointments() has been removed. There is no replacement as this feature is no longer supported.
  • All P CP related models have been removed. There are noreplacements as this feature is no longer supported.

Property name changes

  • DexcarePatient.demographicLinks has been renamed to DexcarePatient.demographicsLinks
  • PatientDemographics.ssn has been renamed to PatientDemographics.last4SSN
  • AllowedVisitType.shortName is now a VisitType enum

4.0 Deprecations

Anything marked as deprecated in SDK 4.0 has been removed. See the SDK 4.0 Changelog for details of what was deprecated and what the replacements were.

New Additions

  • ProviderService is a new feature that allows scheduling a visit with a particular provider, specified by their NPI.
  • PatientService.getSuffixes() is a new method that returns a list of acceptable suffixes for use in the creation of HumanName objects.

Dates and Timezones

ScheduleDay.date in 5.0 now returns with the timezone local to the Clinic or the Provider. In previous builds, this was returning as GMT:0. This shouldn’t effect you, as for the ScheduleDay.date you should effectively only be using the date portion of the date, ignoring the timezone to group the timeslots

More documentation has been added to any Date

Common Issues

Expression type 'PatientDemographics' is ambiguous without more context

Usually this happens because the actorRelationshipToPatient is still in the init. actorRelationshipToPatient is no longer on the PatientDemographics object and is now required on the Retail/Virtual/Provider visitInformation.

Missing argument for parameter 'practiceRegionId' in call

practiceRegionId is now required on VirtualVisitInformation. If you are still using the old deprecated startVirtualVisit without practices, you should be setting this to nil.