VirtualService

public protocol VirtualService

Base Protocol to create, setup, cancel Virtual Visits

  • Resumes a Virtual Visit

    Precondition

    Must call patientService.getPatient() before calling this method

    Declaration

    Swift

    func resumeVirtualVisit(visitId: String, presentingViewController: UIViewController, dexCarePatient: DexcarePatient, onCompletion: @escaping VisitCompletion, success: @escaping () -> Void, failure: @escaping (VirtualVisitFailedReason) -> Void)

    Parameters

    visitId

    An existing VisitId that is active

    presentingViewController

    A ViewController from which the DexcareSDK will present the waiting room view and eventually the virtual meeting

    dexCarePatient

    The DexcarePatient for this visit, loaded from a previous patientService.getPatient() call. This patient’s display name will be used during the visit.

    onCompletion

    A closure called when a visit has been completed successfully or has ended with an error. A VisitCompletionReason is passed in as a paramter.

    success

    A closure called when a visit is successfully resumed.

    failure

    A closure called if any FailedReason errors are returned

  • Updates a push notification device token

    Declaration

    Swift

    func updatePushNotificationDeviceToken(token: Data)

    Parameters

    token

    a device token that is returned by an iOS device in AppDelegate.application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)

  • Submit the patient feedback questions and answers for a virtual visit.

    Precondition

    Must call visitService.startVirtualVisit or visitService.resumeVirtualVisit before calling this method

    Declaration

    Swift

    func postFeedback(feedbacks: [VirtualFeedback], success: @escaping () -> Void, failure: @escaping (FailedReason) -> Void)

    Parameters

    feedbacks

    An array of VirtualFeedback enums, each representing a single feedback question and answer asked to the patient.

    success

    closure when the feedback has been posted successfully

    failure

    closure when the feedback posting failed

  • Cancels an existing valid virtual visit.

    Declaration

    Swift

    func cancelVirtualVisit(visitId: String, success: @escaping () -> Void, failure: @escaping (VirtualVisitFailedReason) -> Void)

    Parameters

    success

    closure when the visit was successfully cancelled

    failure

    closure when the cancel visit fails. If VirtualVisitFailedReason.virtualVisitNotFound is returned it means the visit no longer exists.

  • Starts a virtual visit using a Practice

    Call this method to create a new virtual visit and show its full-screen user interface on the specified view controller. Before calling this method, at least one patient must be created by calling patientService.findOrCreatePatient() if the current user is the patient, patientService.findOrCreateDependentPatient() if the patient is a dependent (anyone other than the logged in user) must call.

    If the patient already exists, you do not need to call the above method, but the demographic must exist in the ehrSystem you are trying to book to.

    Declaration

    Swift

    func startVirtualVisit(presentingViewController: UIViewController, paymentMethod: PaymentMethod, virtualVisitInformation: VirtualVisitInformation, catchmentArea: CatchmentArea, patientDexCarePatient: DexcarePatient, actorDexCarePatient: DexcarePatient?, practiceId: String, onCompletion: @escaping VisitCompletion, success: @escaping (String) -> Void, failure: @escaping (VirtualVisitFailedReason) -> Void)

    Parameters

    presentingViewController

    A view controller from which the virtual visit UI (waiting room, video call screen, feedback) will be presented.

    paymentMethod

    An enumeration with payment/billing information for this visit

    virtualVisitInformation

    A struct containing information specific to this visit request

    catchmentArea

    A struct containing information about an EHRSystem and a department Id used to book the virtual visit. If unknown, you can call PatientService.getCatchmentArea to get the object or create your own based on and existing EHRSystem and DepartmentId

    patientDexCarePatient

    a dexcare Patient object used to book the virtual visit under. When booking for a dependent, this will be the dependent patient. Note: The SDK will use the demographic that has the same EHRSystem as the catchmentArea.

    actorDexCarePatient

    a dexcare Patient object when booking a virtual visit for a dependent. A relationshipToPatient must be set on the demographic in order to book. Note: The SDK will use the demographic that has the same EHRSystem as the catchmentArea.

    practiceId

    an UUID string of the VirtualPractice of where the virtual visit is being scheduled

    onCompletion

    A closure called when a visit has been completed successfully or has ended with an error. A VisitCompletionReason is passed in as a paramter.

    success

    A closure called when a visit is successfully created. The new visitId is passed back as the only parameter.

    failure

    A closure called if any FailedReason errors are returned

  • Sets the delegate to invoke various events allowing you to capture analytics.

    Note

    See VirtualEventDelegate for more information

    Declaration

    Swift

    func setVirtualEventDelegate(delegate: VirtualEventDelegate?)
  • Fetches the estimated WaitTime for a virtual visit

    Important

    WaitTime is estimated and may change. The time returned should not be used as a definitive time when a Virtual Visit will begin.

    Declaration

    Swift

    func getEstimatedWaitTime(visitId: String, success: @escaping (WaitTime) -> Void, failure: @escaping (WaitTimeFailedReason) -> Void)

    Parameters

    visitId

    A id from a start or a resume virtual visit.

    success

    A closure called with a WaitTime return value

    failure

    A closure called if any WaitTimeFailedReason errors are returned

  • Gets the statistics report from the OpenTok (Vonage) SDK from a virtual visit. Virtual Visit must have been started in the current app session, and the Provider must have started the visit for this method to return any results. These statistics are only stored in memory, and are cleared upon starting a new visit, calling DexCareSDK.signOut(), or by closing the app (since they’re only in memory)

    Note

    See VideoCallStatistics for more information on values returned

    Declaration

    Swift

    func getVideoCallStatistics() -> VideoCallStatistics?

    Return Value

    An optionalVideoCallStatistics object containing stats about the visit

  • Fetches the latest status for a virtual visit

    Declaration

    Swift

    func getVirtualVisitStatus(visitId: String, success: @escaping (VisitStatus) -> Void, failure: @escaping (FailedReason) -> Void)

    Parameters

    visitId

    A id from a start or a resume virtual visit.

    success

    A closure called with a VisitStatus enum return value

    failure

    A closure called if any FailedReason errors are returned