diff --git a/CHANGELOG.md b/CHANGELOG.md index 48f482e..2ee930c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # Release Notes +## 9.2.0 +### New +This version of the SDK adds support for wait offline. This gives the patient the option to close the app, remain in the wait queue, and be notified when their provider is ready for them. To accomplish this, we've added a number of things: +- New localizable strings: + | localizable.strings key | Usage| + |---|---| + |waitingRoom_link_waitOffline| CTA to enter the wait offline state | + |waitingRoom_message_waitOfflinePrompt| Prompt to explain the wait offline CTA | + |waitingRoom_waitOffline_title| Title shown when the patient successfully enters the wait offline state | + |waitingRoom_waitOffline_message| Message shown when the patient successfully enters the wait offline state | + |dialog_waitOffline_title| Title for the wait offline confirmation dialog | + |dialog_waitOffline_message| Message for the wait offline confirmation dialog | + |dialog_waitOffline_stay| Dialog action to not enter wait offline and remain in the waiting room | + |dialog_waitOffline_stay| Dialog action to enter the wait offline state and come back later | + |dialog_waitingRoom_button_confirm| Replaces `dialog_waitingRoomCancelConfirm_button_confirm` as the generic confirm action in dialogs | +- New `VisitStatus.waitOffline` case: Indicates that the patient is waiting offline and waiting for a notification to rejoin the visit. +- New `VisitCompletionReason.waitOffline` case: Used in the visit completion block to indicate the user chose to wait offline and close the visit for now. + +### Changes +- New `VisitStatus.caregiverAssigned` case: Indicates that a caregiver was assigned to the visit and that the visit is ready to start. +- Gave the alerts shown by the SDK a facelift to provide better extensibility options in the future. +- Updated the `dialog_waitingRoomCancelConfirm_button_confirm` localizable strings key to `Cancel visit and leave` +- Added a Privacy manifest file `PrivacyInfo.xcprivacy` to the SDK. The SDK privacy manifest file does not include Nutrition Labels as these entries will depend on which API you are using. Refer to the README.md file for more information. + +### Bug fixes +- Fixed issue where the Chat View back button was not visible when the Navigation Bar global tint color was white. + +### Breaking + +- `WaitTimeFailedReason.regionUnavailable` enum case was replaced by: + - `WaitTimeFailedReason.regionBusy`: Returned when region is experiencing high demand. + - `WaitTimeFailedReason.offHours`: Returned when the region is off hours / closed. +- New `WaitTimeFailedReason.visitNotFound` case: Returned when the given `visitId` is not found. + ## 9.1.1 ### Bug Fixes - Fixed virtual visit crash when integrating the SDK using Service Package Manager (SPM). @@ -11,7 +45,7 @@ ### New This version of the SDK adds support for virtual visit transfers between providers. To accomplish this we've added a number of things: -- Localizable strings: +- New Localizable strings: | localizable.strings key | Usage| |-------------------------------------------------------------|---| diff --git a/DexcareSDK.podspec b/DexcareSDK.podspec index f51d353..3bd00bf 100644 --- a/DexcareSDK.podspec +++ b/DexcareSDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'DexcareSDK' - s.version = '9.1.1' + s.version = '9.2.0' s.platform = :ios, '13.0' s.swift_version = '5.0' s.summary = 'DexcareSDK library for express care services' diff --git a/Package.swift b/Package.swift index 5cabd11..0c13133 100644 --- a/Package.swift +++ b/Package.swift @@ -27,6 +27,8 @@ let package = Package( "MessageKit", "FittedSheets", .product(name: "VonageClientSDKVideo", package: "vonage-client-sdk-video") - ]) + ], + resources: [.process("PrivacyInfo.xcprivacy")] + ) ] ) diff --git a/README.md b/README.md index 1fe701e..8549f81 100644 --- a/README.md +++ b/README.md @@ -32,15 +32,20 @@ Cocoapods will install the following dependencies 'FittedSheets' - Controls the presentation of the virtual visits ``` -## Swift/Xcode - -Starting with v6.0 will no longer work on Xcode 11 and you must upgrade to Xcode 12+ in order to use it. With this change, the framework has been upgraded to use the new `.xcframework` style of distribution. This will allow us to be more backwards compatible on swift versions going forward. - +## Privacy Manifest +Apple requires all apps and SDKs to provide a [privacy manifest file](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files). The DexCare SDK contains multiple APIs, making it hard for us to create a manifest file with all the "Privacy Nutrition Label Types" as it depends on which APIs you will use. If you want to see an example of a manifest file, please look at our [SampleApp](https://github.com/DexCare/DexCareSDK.iOS.SampleApp). +Here is the data we collect as part of our booking processes (Virtual, Provider, or Retail): +- **Name**: Used to book a visit. +- **Email Address**: Used to book a visit. +- **Phone Number**: Used to book a visit. +- **Physical Address**: Used to book a visit. +- **Other Diagnostic Data**: Used to help troubleshoot issues that could arise while using any of our APIs. +If you still have questions or need clarifications, please contact your implementation team. ## Changelog -Latest can be found on the [Changelog](changelog.md) +Latest changes can be found in the [Changelog](changelog.md) diff --git a/Sources/DexcareiOSSDK/Common/Bundle+DexcareSDK.swift b/Sources/DexcareiOSSDK/Common/Bundle+DexcareSDK.swift index b9d5034..5d0c0c2 100644 --- a/Sources/DexcareiOSSDK/Common/Bundle+DexcareSDK.swift +++ b/Sources/DexcareiOSSDK/Common/Bundle+DexcareSDK.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/CanBeEmpty.swift b/Sources/DexcareiOSSDK/Common/CanBeEmpty.swift index 9c60209..8443f9e 100644 --- a/Sources/DexcareiOSSDK/Common/CanBeEmpty.swift +++ b/Sources/DexcareiOSSDK/Common/CanBeEmpty.swift @@ -1,4 +1,4 @@ -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/Codable+Extension.swift b/Sources/DexcareiOSSDK/Common/Codable+Extension.swift index 2019f47..5429294 100644 --- a/Sources/DexcareiOSSDK/Common/Codable+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/Codable+Extension.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/Collection+Extension.swift b/Sources/DexcareiOSSDK/Common/Collection+Extension.swift index cf53493..2b3f922 100644 --- a/Sources/DexcareiOSSDK/Common/Collection+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/Collection+Extension.swift @@ -3,7 +3,7 @@ // ExpressCareCore // // Created by Reuben Lee on 2018-01-18. -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/Common/Data+Extension.swift b/Sources/DexcareiOSSDK/Common/Data+Extension.swift index 9e60ab3..112aab7 100644 --- a/Sources/DexcareiOSSDK/Common/Data+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/Data+Extension.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/DateFormatter+Extension.swift b/Sources/DexcareiOSSDK/Common/DateFormatter+Extension.swift index 9a23171..daa187a 100644 --- a/Sources/DexcareiOSSDK/Common/DateFormatter+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/DateFormatter+Extension.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/DexcareAppVersion.swift b/Sources/DexcareiOSSDK/Common/DexcareAppVersion.swift index 6d71fcd..4415811 100644 --- a/Sources/DexcareiOSSDK/Common/DexcareAppVersion.swift +++ b/Sources/DexcareiOSSDK/Common/DexcareAppVersion.swift @@ -1,9 +1,9 @@ // // AppVersion.swift -// ProvidenceVideo +// DexcareAppVersion // // Created by Reuben Lee on 2018-01-24. -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/Common/DexcareSDKLogger.swift b/Sources/DexcareiOSSDK/Common/DexcareSDKLogger.swift index f43e8f3..7b3a3c5 100644 --- a/Sources/DexcareiOSSDK/Common/DexcareSDKLogger.swift +++ b/Sources/DexcareiOSSDK/Common/DexcareSDKLogger.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/EmailValidator.swift b/Sources/DexcareiOSSDK/Common/EmailValidator.swift index ac25d15..594cace 100644 --- a/Sources/DexcareiOSSDK/Common/EmailValidator.swift +++ b/Sources/DexcareiOSSDK/Common/EmailValidator.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/NotificationObserver.swift b/Sources/DexcareiOSSDK/Common/NotificationObserver.swift index 3ed6be9..9261af6 100644 --- a/Sources/DexcareiOSSDK/Common/NotificationObserver.swift +++ b/Sources/DexcareiOSSDK/Common/NotificationObserver.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/PhoneValidator.swift b/Sources/DexcareiOSSDK/Common/PhoneValidator.swift index 14c935e..d471c02 100644 --- a/Sources/DexcareiOSSDK/Common/PhoneValidator.swift +++ b/Sources/DexcareiOSSDK/Common/PhoneValidator.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Common/UIColor+Extension.swift b/Sources/DexcareiOSSDK/Common/UIColor+Extension.swift index 2dee29f..0ed2678 100644 --- a/Sources/DexcareiOSSDK/Common/UIColor+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/UIColor+Extension.swift @@ -1,10 +1,12 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UIKit extension UIColor { // After discussion it was decided we will keep a static color in DexcareSDK for now. - static var buttonColor: UIColor = UIColor(red: 0.0/255.0, green: 105.0/255.0, blue: 170.0/255.0, alpha: 1.0) - static var link: UIColor = UIColor(red: 0.0/255.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0) + static let buttonColor = UIColor(red: 0.0/255.0, green: 105.0/255.0, blue: 170.0/255.0, alpha: 1.0) + static let link: UIColor = UIColor(red: 0.0/255.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0) + static let error: UIColor = UIColor(red: 211.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0) + static let divider = UIColor(hue: 0, saturation: 0, brightness: 0.43, alpha: 1.0) } diff --git a/Sources/DexcareiOSSDK/Common/UIView+Extension.swift b/Sources/DexcareiOSSDK/Common/UIView+Extension.swift index 590907f..ae90f8a 100644 --- a/Sources/DexcareiOSSDK/Common/UIView+Extension.swift +++ b/Sources/DexcareiOSSDK/Common/UIView+Extension.swift @@ -1,18 +1,18 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UIKit extension UIView { - func addAndClampToEdges(of parentView: UIView) { + func addAndClampToEdges(of parentView: UIView, margins: CGFloat = 0) { translatesAutoresizingMaskIntoConstraints = false parentView.addSubview(self) NSLayoutConstraint.activate([ - leadingAnchor.constraint(equalTo: parentView.leadingAnchor), - trailingAnchor.constraint(equalTo: parentView.trailingAnchor), - topAnchor.constraint(equalTo: parentView.topAnchor), - bottomAnchor.constraint(equalTo: parentView.bottomAnchor) + leadingAnchor.constraint(equalTo: parentView.leadingAnchor, constant: margins), + trailingAnchor.constraint(equalTo: parentView.trailingAnchor, constant: -margins), + topAnchor.constraint(equalTo: parentView.topAnchor, constant: margins), + bottomAnchor.constraint(equalTo: parentView.bottomAnchor, constant: -margins) ]) } } diff --git a/Sources/DexcareiOSSDK/Common/ZipCodeValidator.swift b/Sources/DexcareiOSSDK/Common/ZipCodeValidator.swift index 81b13ab..c533d0d 100644 --- a/Sources/DexcareiOSSDK/Common/ZipCodeValidator.swift +++ b/Sources/DexcareiOSSDK/Common/ZipCodeValidator.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Availability/AggregatedSlot.swift b/Sources/DexcareiOSSDK/DataModels/Availability/AggregatedSlot.swift index 016946b..e5c08aa 100644 --- a/Sources/DexcareiOSSDK/DataModels/Availability/AggregatedSlot.swift +++ b/Sources/DexcareiOSSDK/DataModels/Availability/AggregatedSlot.swift @@ -3,7 +3,7 @@ // DexcareiOSSDK // // Created by Matt Kiazyk on 2022-10-14. -// Copyright © 2022 Providence. All rights reserved. +// Copyright © 2022 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Availability/ProviderAvailabilityRequest.swift b/Sources/DexcareiOSSDK/DataModels/Availability/ProviderAvailabilityRequest.swift index 31a6a9a..4011fee 100644 --- a/Sources/DexcareiOSSDK/DataModels/Availability/ProviderAvailabilityRequest.swift +++ b/Sources/DexcareiOSSDK/DataModels/Availability/ProviderAvailabilityRequest.swift @@ -3,7 +3,7 @@ // DexcareiOSSDK // // Created by Matt Kiazyk on 2022-09-26. -// Copyright © 2022 Providence. All rights reserved. +// Copyright © 2022 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Availability/ProviderSlotAvailability.swift b/Sources/DexcareiOSSDK/DataModels/Availability/ProviderSlotAvailability.swift index c215ecb..7707b58 100644 --- a/Sources/DexcareiOSSDK/DataModels/Availability/ProviderSlotAvailability.swift +++ b/Sources/DexcareiOSSDK/DataModels/Availability/ProviderSlotAvailability.swift @@ -3,7 +3,7 @@ // DexcareiOSSDK // // Created by Matt Kiazyk on 2022-10-14. -// Copyright © 2022 Providence. All rights reserved. +// Copyright © 2022 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Common/Actor.swift b/Sources/DexcareiOSSDK/DataModels/Common/Actor.swift index cc55c80..a4ad068 100644 --- a/Sources/DexcareiOSSDK/DataModels/Common/Actor.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/Actor.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Barry on 4/22/20. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // struct Actor: Encodable, Equatable { diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/Address.swift b/Sources/DexcareiOSSDK/DataModels/Common/Address.swift similarity index 95% rename from Sources/DexcareiOSSDK/DataModels/Patient/Address.swift rename to Sources/DexcareiOSSDK/DataModels/Common/Address.swift index 30fc165..b0389da 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/Address.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/Address.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2020-03-25. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Common/BillingInformation.swift b/Sources/DexcareiOSSDK/DataModels/Common/BillingInformation.swift index aea3d3b..858ea33 100644 --- a/Sources/DexcareiOSSDK/DataModels/Common/BillingInformation.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/BillingInformation.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Barry on 4/22/20. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Common/Gender.swift b/Sources/DexcareiOSSDK/DataModels/Common/Gender.swift index d3460ce..c66461c 100644 --- a/Sources/DexcareiOSSDK/DataModels/Common/Gender.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/Gender.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. /// A generic representation of a Gender @frozen diff --git a/Sources/DexcareiOSSDK/DataModels/Common/PatientDeclaration.swift b/Sources/DexcareiOSSDK/DataModels/Common/PatientDeclaration.swift index 6e263a7..c9429c9 100644 --- a/Sources/DexcareiOSSDK/DataModels/Common/PatientDeclaration.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/PatientDeclaration.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Barry on 4/23/20. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Common/RetailDepartment.swift b/Sources/DexcareiOSSDK/DataModels/Common/RetailDepartment.swift index c2e9d7e..67a7d48 100644 --- a/Sources/DexcareiOSSDK/DataModels/Common/RetailDepartment.swift +++ b/Sources/DexcareiOSSDK/DataModels/Common/RetailDepartment.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Configs/BlisseyConfigs.swift b/Sources/DexcareiOSSDK/DataModels/Configs/BlisseyConfigs.swift new file mode 100644 index 0000000..1115750 --- /dev/null +++ b/Sources/DexcareiOSSDK/DataModels/Configs/BlisseyConfigs.swift @@ -0,0 +1,13 @@ +// +// BlisseyConfigs.swift +// DexcareiOSSDK +// +// Created by Daniel Johns on 2024-02-13. +// Copyright © 2024 DexCare. All rights reserved. +// + +import Foundation + +struct BlisseyConfigs: Decodable { + let minimumWaitTimeForWaitOffline: Int +} diff --git a/Sources/DexcareiOSSDK/DataModels/FeedbackService/FeedbackModels.swift b/Sources/DexcareiOSSDK/DataModels/FeedbackService/FeedbackModels.swift index b757a33..747630a 100644 --- a/Sources/DexcareiOSSDK/DataModels/FeedbackService/FeedbackModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/FeedbackService/FeedbackModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/DexcarePatient.swift b/Sources/DexcareiOSSDK/DataModels/Patient/DexcarePatient.swift index 242dffb..63dfd92 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/DexcarePatient.swift +++ b/Sources/DexcareiOSSDK/DataModels/Patient/DexcarePatient.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/HumanName.swift b/Sources/DexcareiOSSDK/DataModels/Patient/HumanName.swift index 04abf5d..49eaca4 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/HumanName.swift +++ b/Sources/DexcareiOSSDK/DataModels/Patient/HumanName.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation /// A structure containing information about a patient's name diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/Identifier.swift b/Sources/DexcareiOSSDK/DataModels/Patient/Identifier.swift index 904ccb6..9b25651 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/Identifier.swift +++ b/Sources/DexcareiOSSDK/DataModels/Patient/Identifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. /// A struct representing an EHRSystem + identifier public struct Identifier: Equatable, Codable { diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/PatientDemographics.swift b/Sources/DexcareiOSSDK/DataModels/Patient/PatientDemographics.swift index 92acfdc..cc11841 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/PatientDemographics.swift +++ b/Sources/DexcareiOSSDK/DataModels/Patient/PatientDemographics.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Patient/PatientGuid.swift b/Sources/DexcareiOSSDK/DataModels/Patient/PatientGuid.swift index cd7348d..564f762 100644 --- a/Sources/DexcareiOSSDK/DataModels/Patient/PatientGuid.swift +++ b/Sources/DexcareiOSSDK/DataModels/Patient/PatientGuid.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPractice.swift b/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPractice.swift index f8f54e8..5b7ad23 100644 --- a/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPractice.swift +++ b/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPractice.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2020-12-21. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPracticeRegion.swift b/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPracticeRegion.swift index 3d8f793..92870a6 100644 --- a/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPracticeRegion.swift +++ b/Sources/DexcareiOSSDK/DataModels/Practice/VirtualPracticeRegion.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2020-12-21. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation @@ -72,6 +72,31 @@ public struct VirtualPracticeRegion: Codable, Equatable { pediatricsAgeRange = try? values.decode(PediatricsAgeRange.self, forKey: .pediatricsAgeRange) departments = try values.decode([PracticeRegionDepartment].self, forKey: .departments) } + + // An internal constructor for VirtualPracticeRegion + // This constructor is not intended to be used in production + // It was created to simplify testing and SwiftUI previews + public init(practiceRegionId: String, + displayName: String, + regionCode: String, + active: Bool, + busy: Bool, + busyMessage: String, + visitPrice: Decimal, + availability: [PracticeRegionAvailability], + pediatricsAgeRange: PediatricsAgeRange?, + departments: [PracticeRegionDepartment]) { + self.practiceRegionId = practiceRegionId + self.displayName = displayName + self.regionCode = regionCode + self.active = active + self.busy = busy + self.busyMessage = busyMessage + self.visitPrice = visitPrice + self.availability = availability + self.pediatricsAgeRange = pediatricsAgeRange + self.departments = departments + } } // The pediatric age range used for providers that support pediatric visits diff --git a/Sources/DexcareiOSSDK/DataModels/Provider/MaxLookaheadDayResponse.swift b/Sources/DexcareiOSSDK/DataModels/Provider/MaxLookaheadDayResponse.swift index 0a718aa..e489bac 100644 --- a/Sources/DexcareiOSSDK/DataModels/Provider/MaxLookaheadDayResponse.swift +++ b/Sources/DexcareiOSSDK/DataModels/Provider/MaxLookaheadDayResponse.swift @@ -1,4 +1,4 @@ -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Provider/Provider.swift b/Sources/DexcareiOSSDK/DataModels/Provider/Provider.swift index 5739956..9b77d3a 100644 --- a/Sources/DexcareiOSSDK/DataModels/Provider/Provider.swift +++ b/Sources/DexcareiOSSDK/DataModels/Provider/Provider.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2021-01-11. -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. // import Foundation @@ -42,7 +42,7 @@ public struct ProviderVisitType: Codable, Equatable { /// If available, more information about a Visit Type public let description: String? - internal init( + public init( visitTypeId: String, name: String, shortName: VisitTypeShortName?, diff --git a/Sources/DexcareiOSSDK/DataModels/Provider/ProviderVisitInformation.swift b/Sources/DexcareiOSSDK/DataModels/Provider/ProviderVisitInformation.swift index e5c1cc3..66ecd2d 100644 --- a/Sources/DexcareiOSSDK/DataModels/Provider/ProviderVisitInformation.swift +++ b/Sources/DexcareiOSSDK/DataModels/Provider/ProviderVisitInformation.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2021-01-18. -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentFailedReason.swift b/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentFailedReason.swift index 1bc6705..6c7bc59 100644 --- a/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentFailedReason.swift +++ b/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentFailedReason.swift @@ -1,4 +1,4 @@ -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentRequest.swift b/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentRequest.swift index 332b7a3..ccf4541 100644 --- a/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentRequest.swift +++ b/Sources/DexcareiOSSDK/DataModels/Provider/ScheduleProviderAppointmentRequest.swift @@ -1,4 +1,4 @@ -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentModels.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentModels.swift index adea026..10f7b16 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentTimeSlot.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentTimeSlot.swift index 69bf1c5..bce195e 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentTimeSlot.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailAppointmentTimeSlot.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailInsuranceCardModels.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailInsuranceCardModels.swift index 6144a9e..dc2cc0a 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailInsuranceCardModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailInsuranceCardModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailScheduleModels.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailScheduleModels.swift index c602abb..0b75dcc 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/RetailScheduleModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/RetailScheduleModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/ScheduleDay.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/ScheduleDay.swift index 18bea9f..3b36246 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/ScheduleDay.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/ScheduleDay.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/RetailService/TimeSlot.swift b/Sources/DexcareiOSSDK/DataModels/RetailService/TimeSlot.swift index ae8d067..13d6a88 100644 --- a/Sources/DexcareiOSSDK/DataModels/RetailService/TimeSlot.swift +++ b/Sources/DexcareiOSSDK/DataModels/RetailService/TimeSlot.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/CancelReason.swift b/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/CancelReason.swift index 7b2d287..f6caddb 100644 --- a/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/CancelReason.swift +++ b/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/CancelReason.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2020-06-18. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/ScheduledVisit.swift b/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/ScheduledVisit.swift index f795e59..7f0ab67 100644 --- a/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/ScheduledVisit.swift +++ b/Sources/DexcareiOSSDK/DataModels/ScheduledVisit/ScheduledVisit.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2020-06-04. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/PostChatRequest.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/PostChatRequest.swift index 4947676..2a2d2f3 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/PostChatRequest.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/PostChatRequest.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Reuben Lee on 2020-03-16. -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/PushNotificationModels.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/PushNotificationModels.swift index a175a34..64f9bf2 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/PushNotificationModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/PushNotificationModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/ResumeVirtualVisitModels.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/ResumeVirtualVisitModels.swift index 83acde6..6d16460 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/ResumeVirtualVisitModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/ResumeVirtualVisitModels.swift @@ -1,9 +1,10 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation struct VisitSummary: Decodable, Equatable { let visitId: String + let practiceId: String let userId: String let status: VisitStatus let tokBoxVisit: TokBoxVisit? @@ -14,6 +15,7 @@ struct VisitSummary: Decodable, Equatable { enum CodingKeys: String, CodingKey { case visitId + case practiceId case userId case status case isTokBox @@ -27,6 +29,7 @@ struct VisitSummary: Decodable, Equatable { let container = try decoder.container(keyedBy: CodingKeys.self) visitId = try container.decode(String.self, forKey: .visitId) + practiceId = try container.decode(String.self, forKey: .practiceId) userId = try container.decode(String.self, forKey: .userId) status = try container.decode(VisitStatus.self, forKey: .status) tokBoxVisit = try? container.decode(TokBoxVisit.self, forKey: .tokBoxVisit) @@ -44,6 +47,7 @@ struct VisitSummary: Decodable, Equatable { init( visitId: String, + practiceId: String, userId: String, status: VisitStatus, tokBoxVisit: TokBoxVisit?, @@ -51,6 +55,7 @@ struct VisitSummary: Decodable, Equatable { modality: VirtualVisitModality? ) { self.visitId = visitId + self.practiceId = practiceId self.userId = userId self.status = status self.tokBoxVisit = tokBoxVisit @@ -86,7 +91,13 @@ public struct VisitStatus: RawRepresentable, Codable, Equatable { /// visit was declined by the staff before seeing a provider public static let staffDeclined = VisitStatus(rawValue: "staffdeclined") @available(*, unavailable, renamed: "staffDeclined") - public static let staffdeclined = VisitStatus(rawValue: "staffdeclined") + public static let staffdeclined = VisitStatus(rawValue: "old staffdeclined") + + /// The patient is waiting offline for a notification before rejoining the visit + public static let waitOffline = VisitStatus(rawValue: "waitoffline") + + /// A caregiver is already assigned and is ready to start a visit immediately + public static let caregiverAssigned = VisitStatus(rawValue: "caregiverassigned") public init(rawValue: Self.RawValue) { self.rawValue = rawValue @@ -98,10 +109,10 @@ public struct VisitStatus: RawRepresentable, Codable, Equatable { switch self { case VisitStatus.done, VisitStatus.cancelled, VisitStatus.staffDeclined: return false - case VisitStatus.requested, VisitStatus.inVisit, VisitStatus.waitingRoom: + case VisitStatus.caregiverAssigned, VisitStatus.requested, VisitStatus.inVisit, VisitStatus.waitingRoom, VisitStatus.waitOffline: return true default: - return false + return true } } } diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualCouponCodeModels.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualCouponCodeModels.swift index f4c4936..e18031d 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualCouponCodeModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualCouponCodeModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualInsruanceModels.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualInsruanceModels.swift index 336b649..3074c56 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualInsruanceModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualInsruanceModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitModels.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitModels.swift index a89ddbd..b7918cb 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitModels.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitModels.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation // Based on https://github.com/providenceinnovation/visit-service/blob/master/app/api/Liontower.VisitService.v6.yaml diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitRequest.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitRequest.swift index d0ec39c..5f14379 100644 --- a/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitRequest.swift +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/VirtualVisitRequest.swift @@ -3,7 +3,7 @@ // DexcareiOSSDK // // Created by Matt Kiazyk on 2021-08-30. -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DataModels/VirtualService/WaitOfflineRequest.swift b/Sources/DexcareiOSSDK/DataModels/VirtualService/WaitOfflineRequest.swift new file mode 100644 index 0000000..9a14522 --- /dev/null +++ b/Sources/DexcareiOSSDK/DataModels/VirtualService/WaitOfflineRequest.swift @@ -0,0 +1,24 @@ +// +// WaitOfflineRequest.swift +// DexcareiOSSDK +// +// Created by Daniel Johns on 2024-02-05. +// Copyright © 2024 DexCare. All rights reserved. +// + +import Foundation + +struct WaitOfflineRequest: Encodable { + struct WaitOfflineRequestBody: Encodable { + let visitId: String + let practiceId: String + let sessionId: String + } + + let action = "patientEnterWaitOffline" + let data: WaitOfflineRequestBody + + init(visitId: String, practiceId: String, sessionId: String) { + data = WaitOfflineRequestBody(visitId: visitId, practiceId: practiceId, sessionId: sessionId) + } +} diff --git a/Sources/DexcareiOSSDK/DataModels/WaitTime/WaitTimeLocalizationInfo.swift b/Sources/DexcareiOSSDK/DataModels/WaitTime/WaitTimeLocalizationInfo.swift index 777cb94..0cfed6a 100644 --- a/Sources/DexcareiOSSDK/DataModels/WaitTime/WaitTimeLocalizationInfo.swift +++ b/Sources/DexcareiOSSDK/DataModels/WaitTime/WaitTimeLocalizationInfo.swift @@ -3,7 +3,7 @@ // DexcareiOSSDK // // Created by Matt Kiazyk on 2022-09-08. -// Copyright © 2022 Providence. All rights reserved. +// Copyright © 2022 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/DexcareSDK.h b/Sources/DexcareiOSSDK/DexcareSDK.h index 1308b99..a83679e 100644 --- a/Sources/DexcareiOSSDK/DexcareSDK.h +++ b/Sources/DexcareiOSSDK/DexcareSDK.h @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. #import diff --git a/Sources/DexcareiOSSDK/DexcareSDK.swift b/Sources/DexcareiOSSDK/DexcareSDK.swift index b317d8e..334bae7 100644 --- a/Sources/DexcareiOSSDK/DexcareSDK.swift +++ b/Sources/DexcareiOSSDK/DexcareSDK.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/FailedReason/DexcareAPIError.swift b/Sources/DexcareiOSSDK/FailedReason/RetailService/DexcareAPIError.swift similarity index 77% rename from Sources/DexcareiOSSDK/FailedReason/DexcareAPIError.swift rename to Sources/DexcareiOSSDK/FailedReason/RetailService/DexcareAPIError.swift index cefc8d2..22d8064 100644 --- a/Sources/DexcareiOSSDK/FailedReason/DexcareAPIError.swift +++ b/Sources/DexcareiOSSDK/FailedReason/RetailService/DexcareAPIError.swift @@ -3,7 +3,7 @@ import Foundation /// Type to hold information on certain DexCare network calls public struct DexcareAPIError { /// Specific message on what the error is - let message: String + public let message: String /// internal error code for use in debugging - let errorCode: Int + public let errorCode: Int } diff --git a/Sources/DexcareiOSSDK/FailedReason/FailedReason.swift b/Sources/DexcareiOSSDK/FailedReason/RetailService/FailedReason.swift similarity index 97% rename from Sources/DexcareiOSSDK/FailedReason/FailedReason.swift rename to Sources/DexcareiOSSDK/FailedReason/RetailService/FailedReason.swift index 27684f7..e387e5e 100644 --- a/Sources/DexcareiOSSDK/FailedReason/FailedReason.swift +++ b/Sources/DexcareiOSSDK/FailedReason/RetailService/FailedReason.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/FailedReason/RetailService/ScheduleRetailAppointmentFailedReason.swift b/Sources/DexcareiOSSDK/FailedReason/RetailService/ScheduleRetailAppointmentFailedReason.swift index 0ded1cf..e4eaf60 100644 --- a/Sources/DexcareiOSSDK/FailedReason/RetailService/ScheduleRetailAppointmentFailedReason.swift +++ b/Sources/DexcareiOSSDK/FailedReason/RetailService/ScheduleRetailAppointmentFailedReason.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/FailedReason/VirtualService/CouponCodeFailedReason.swift b/Sources/DexcareiOSSDK/FailedReason/VirtualService/CouponCodeFailedReason.swift index 4ffb9c4..ab12405 100644 --- a/Sources/DexcareiOSSDK/FailedReason/VirtualService/CouponCodeFailedReason.swift +++ b/Sources/DexcareiOSSDK/FailedReason/VirtualService/CouponCodeFailedReason.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/FailedReason/VirtualService/VirtualVisitFailedReason.swift b/Sources/DexcareiOSSDK/FailedReason/VirtualService/VirtualVisitFailedReason.swift index 7e66da4..72e2f72 100644 --- a/Sources/DexcareiOSSDK/FailedReason/VirtualService/VirtualVisitFailedReason.swift +++ b/Sources/DexcareiOSSDK/FailedReason/VirtualService/VirtualVisitFailedReason.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/FailedReason/VirtualService/WaitTimeFailedReason.swift b/Sources/DexcareiOSSDK/FailedReason/VirtualService/WaitTimeFailedReason.swift index b5592ec..cad3272 100644 --- a/Sources/DexcareiOSSDK/FailedReason/VirtualService/WaitTimeFailedReason.swift +++ b/Sources/DexcareiOSSDK/FailedReason/VirtualService/WaitTimeFailedReason.swift @@ -2,16 +2,22 @@ import Foundation /// An `Error` enum returned for Estimated Wait Times public enum WaitTimeFailedReason: Error, FailedReasonType, Equatable { - /// The `PracticeRegionId` passed in does not exist on our system - case regionNotFound - /// There are no Providers that are on call in the PracticeRegion. case noOnCallProviders - /// The Practice Region is busy or it's off hours. - case regionUnavailable + /// The Practice Region is off hours. + case offHours + + /// The Practice Region is experiencing high demand (busy). + case regionBusy + + /// The `PracticeRegionId` passed in does not exist on our system + case regionNotFound + + /// The visit with the given visitId was not found. + case visitNotFound - /// Something went wrong internally. Please send us the correlation id + /// Something went wrong internally. Please send us the correlation id. case internalServerError /// Some information is missing from the request. Check the message @@ -27,12 +33,16 @@ public enum WaitTimeFailedReason: Error, FailedReasonType, Equatable { // Convert the response data to utf8 text let dataText = String(data: data ?? Data(), encoding: .utf8) ?? "" switch statusCode { - case 400 where dataText.contains("REGION_UNAVAILABLE"): - return .regionUnavailable + case 400 where dataText.contains("OFF_HOURS"): + return .offHours + case 400 where dataText.contains("REGION_BUSY"): + return .regionBusy case 400 where dataText.contains("NO_ONCALL_PROVIDERS"): return .noOnCallProviders - case 404: + case 400 where dataText.contains("NO_REGIONS_FOUND"): return .regionNotFound + case 404: + return .visitNotFound case 500: return .internalServerError default: diff --git a/Sources/DexcareiOSSDK/Info.plist b/Sources/DexcareiOSSDK/Info.plist index b12c2a2..d95ee6e 100644 --- a/Sources/DexcareiOSSDK/Info.plist +++ b/Sources/DexcareiOSSDK/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 9.1.1 + 9.2.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSCameraUsageDescription diff --git a/Sources/DexcareiOSSDK/NetworkService/ConvertsToURLRequest.swift b/Sources/DexcareiOSSDK/NetworkService/ConvertsToURLRequest.swift index 86210ed..d645924 100644 --- a/Sources/DexcareiOSSDK/NetworkService/ConvertsToURLRequest.swift +++ b/Sources/DexcareiOSSDK/NetworkService/ConvertsToURLRequest.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/NetworkService/DexcareNetworkError.swift b/Sources/DexcareiOSSDK/NetworkService/DexcareNetworkError.swift index 426f86a..8dff6d0 100644 --- a/Sources/DexcareiOSSDK/NetworkService/DexcareNetworkError.swift +++ b/Sources/DexcareiOSSDK/NetworkService/DexcareNetworkError.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/NetworkService/NetworkRequestModifier.swift b/Sources/DexcareiOSSDK/NetworkService/NetworkRequestModifier.swift index 16cd311..f130e50 100644 --- a/Sources/DexcareiOSSDK/NetworkService/NetworkRequestModifier.swift +++ b/Sources/DexcareiOSSDK/NetworkService/NetworkRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/NetworkService/ResponseValidator.swift b/Sources/DexcareiOSSDK/NetworkService/ResponseValidator.swift index b238929..df7b383 100644 --- a/Sources/DexcareiOSSDK/NetworkService/ResponseValidator.swift +++ b/Sources/DexcareiOSSDK/NetworkService/ResponseValidator.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/NetworkService/TokenRefresher.swift b/Sources/DexcareiOSSDK/NetworkService/TokenRefresher.swift index 3a5c669..168d6db 100644 --- a/Sources/DexcareiOSSDK/NetworkService/TokenRefresher.swift +++ b/Sources/DexcareiOSSDK/NetworkService/TokenRefresher.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/NetworkService/URLRequestBuilder.swift b/Sources/DexcareiOSSDK/NetworkService/URLRequestBuilder.swift index d85e17b..a58bb96 100644 --- a/Sources/DexcareiOSSDK/NetworkService/URLRequestBuilder.swift +++ b/Sources/DexcareiOSSDK/NetworkService/URLRequestBuilder.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/PrivacyInfo.xcprivacy b/Sources/DexcareiOSSDK/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..2d55cfe --- /dev/null +++ b/Sources/DexcareiOSSDK/PrivacyInfo.xcprivacy @@ -0,0 +1,23 @@ + + + + + NSPrivacyTracking + + NSPrivacyTrackingDomains + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyCollectedDataTypes + + + diff --git a/Sources/DexcareiOSSDK/RequestModifiers/BearerTokenRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/BearerTokenRequestModifier.swift index 1d65803..836b9e1 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/BearerTokenRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/BearerTokenRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/RequestModifiers/CorrelationIdRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/CorrelationIdRequestModifier.swift index 5d5b8dc..c387396 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/CorrelationIdRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/CorrelationIdRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/RequestModifiers/DomainRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/DomainRequestModifier.swift index 3167c57..b612014 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/DomainRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/DomainRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import UIKit struct DomainNetworkRequestModifier: NetworkRequestModifier { diff --git a/Sources/DexcareiOSSDK/RequestModifiers/OrchestrationApiKeyRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/OrchestrationApiKeyRequestModifier.swift index 46a32a9..8001fc1 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/OrchestrationApiKeyRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/OrchestrationApiKeyRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/RequestModifiers/ProductIdentifyingRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/ProductIdentifyingRequestModifier.swift index 7dce485..40e72c8 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/ProductIdentifyingRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/ProductIdentifyingRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/RequestModifiers/UserAgentNetworkRequestModifier.swift b/Sources/DexcareiOSSDK/RequestModifiers/UserAgentNetworkRequestModifier.swift index b756408..b586347 100644 --- a/Sources/DexcareiOSSDK/RequestModifiers/UserAgentNetworkRequestModifier.swift +++ b/Sources/DexcareiOSSDK/RequestModifiers/UserAgentNetworkRequestModifier.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UIKit diff --git a/Sources/DexcareiOSSDK/Services/AppointmentService.swift b/Sources/DexcareiOSSDK/Services/AppointmentService.swift index ffc62da..4d2d39f 100644 --- a/Sources/DexcareiOSSDK/Services/AppointmentService.swift +++ b/Sources/DexcareiOSSDK/Services/AppointmentService.swift @@ -2,7 +2,7 @@ // AppointmentService.swift // DexcareSDK // -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/Services/BearerTokenAware.swift b/Sources/DexcareiOSSDK/Services/BearerTokenAware.swift index 759fa4b..15d1e72 100644 --- a/Sources/DexcareiOSSDK/Services/BearerTokenAware.swift +++ b/Sources/DexcareiOSSDK/Services/BearerTokenAware.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Services/DexcareRoute.swift b/Sources/DexcareiOSSDK/Services/DexcareRoute.swift index 76d516c..4a13016 100644 --- a/Sources/DexcareiOSSDK/Services/DexcareRoute.swift +++ b/Sources/DexcareiOSSDK/Services/DexcareRoute.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Services/PatientService.swift b/Sources/DexcareiOSSDK/Services/PatientService.swift index a6cc635..799960a 100644 --- a/Sources/DexcareiOSSDK/Services/PatientService.swift +++ b/Sources/DexcareiOSSDK/Services/PatientService.swift @@ -1,4 +1,4 @@ -// Copyright © 2020 Providence. All rights reserved. +// Copyright © 2020 DexCare. All rights reserved. import Foundation /// Base Protocol used to create patients, get patients diff --git a/Sources/DexcareiOSSDK/Services/PracticeService.swift b/Sources/DexcareiOSSDK/Services/PracticeService.swift index 1d190b3..6f891eb 100644 --- a/Sources/DexcareiOSSDK/Services/PracticeService.swift +++ b/Sources/DexcareiOSSDK/Services/PracticeService.swift @@ -1,4 +1,4 @@ -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Services/ProviderService.swift b/Sources/DexcareiOSSDK/Services/ProviderService.swift index a937cb9..46c5072 100644 --- a/Sources/DexcareiOSSDK/Services/ProviderService.swift +++ b/Sources/DexcareiOSSDK/Services/ProviderService.swift @@ -3,7 +3,7 @@ // DexcareSDK // // Created by Matt Kiazyk on 2021-01-11. -// Copyright © 2021 Providence. All rights reserved. +// Copyright © 2021 DexCare. All rights reserved. // import Foundation diff --git a/Sources/DexcareiOSSDK/Services/RetailService.swift b/Sources/DexcareiOSSDK/Services/RetailService.swift index f1854aa..1980904 100644 --- a/Sources/DexcareiOSSDK/Services/RetailService.swift +++ b/Sources/DexcareiOSSDK/Services/RetailService.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/Services/VirtualService.swift b/Sources/DexcareiOSSDK/Services/VirtualService.swift index e35fe65..4311b27 100644 --- a/Sources/DexcareiOSSDK/Services/VirtualService.swift +++ b/Sources/DexcareiOSSDK/Services/VirtualService.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UIKit @@ -253,6 +253,9 @@ protocol InternalVirtualService: AnyObject { // Async func cancelVirtualVisit(visitId: String) async throws + // Wait offline + func attemptToWaitOffline(visitId: String, practiceId: String, sessionId: String) async throws + } public enum VisitCompletionReason: String { @@ -282,8 +285,10 @@ public enum VisitCompletionReason: String { case staffDeclined /// Virtual visit failed with an unknown error case failed - /// Phone Visit has been requested. + /// Phone Visit has been requested case phoneVisit + /// User has elected to wait offline + case waitOffline } class VirtualServiceSDK: VirtualService, InternalVirtualService { @@ -360,6 +365,10 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { return dexcareRoute.lionTowerBuilder.post("/api/6/visit/\(visitId)/chat/\(sessionId)") } + func waitOffline() -> URLRequest { + return dexcareRoute.lionTowerBuilder.post("/v1/visits/event") + } + // MARK: - In Visit func cancel(visitId: String) -> URLRequest { @@ -397,6 +406,10 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { } // MARK: WaitTime + func getBlisseyConfigs() -> URLRequest { + return dexcareRoute.fhirBuilder.get("v2/blisseyconfigs") + } + func getWaitTimeAvailability() -> URLRequest { return dexcareRoute.lionTowerBuilder.get("/api/9/regions/waittimes") } @@ -704,20 +717,29 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { let waitingTokenURL = routes.token(visitId: response.visitId, sessionId: tokBoxVisit.waitingRoomSession.sessionId).token(authenticationToken) let videoTokenURL = routes.token(visitId: response.visitId, sessionId: tokBoxVisit.videoConferenceSession.sessionId).token(authenticationToken) + let blisseyConfigsURL = routes.getBlisseyConfigs() - async let waitingTokenResponse: TokBoxTokenResponse = asyncNetworkService.requestObject(waitingTokenURL) - async let videoTokenResponse: TokBoxTokenResponse = asyncNetworkService.requestObject(videoTokenURL) + let initialState: VisitInitialState + switch response.status { + case .inVisit: initialState = .inVisit + case .waitOffline: initialState = .waitOffline + default: initialState = .waitingRoom + } - var results: (TokBoxTokenResponse, TokBoxTokenResponse) - + let waitingTokenResponse: TokBoxTokenResponse + let videoTokenResponse: TokBoxTokenResponse + let minimumWaitTimeForWaitOffline: Int do { - results = try await (waitingTokenResponse, videoTokenResponse) + waitingTokenResponse = try await asyncNetworkService.requestObject(waitingTokenURL) + videoTokenResponse = try await asyncNetworkService.requestObject(videoTokenURL) + let blisseyConfigs: BlisseyConfigs? = try? await asyncNetworkService.requestObject(blisseyConfigsURL) + minimumWaitTimeForWaitOffline = blisseyConfigs?.minimumWaitTimeForWaitOffline ?? .max } catch { throw VirtualVisitFailedReason.from(error: error) } - let waitingToken = results.0.token - let videoToken = results.1.token + let waitingToken = waitingTokenResponse.token + let videoToken = videoTokenResponse.token let tytoCare = response.tytoCare self.dexcareConfiguration.serverLogger?.visitId = response.visitId @@ -726,13 +748,15 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { virtualService: self, displayName: displayName, visitId: response.visitId, + practiceId: response.practiceId, userId: response.userId, apiKey: apiKey, waitingRoomSessionId: tokBoxVisit.waitingRoomSession.sessionId, videoSessionId: tokBoxVisit.videoConferenceSession.sessionId, waitingRoomToken: waitingToken, videoToken: videoToken, - inVisitOnResume: response.status == .inVisit, + initialState: initialState, + minimumWaitTimeForWaitOffline: minimumWaitTimeForWaitOffline, navigator: VirtualVisitNavigator( presentingViewController: presentingViewController, customizationOptions: self.customizationOptions @@ -755,6 +779,7 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { } } ) + self.virtualVisitManager?.forceWaitOfflineHidden = response.status == .caregiverAssigned // Make sure to register our device token with lion tower endpoint // Note: userId is old and response actually returns patientGuid, @@ -1126,6 +1151,18 @@ class VirtualServiceSDK: VirtualService, InternalVirtualService { } } + func attemptToWaitOffline(visitId: String, practiceId: String, sessionId: String) async throws { + let requestBody = WaitOfflineRequest(visitId: visitId, practiceId: practiceId, sessionId: sessionId) + let urlRequest = routes.waitOffline().body(json: requestBody).token(authenticationToken) + do { + try await asyncNetworkService.requestVoid(urlRequest) + } catch { + dexcareConfiguration.logger?.log("Could not wait offline: \(error.localizedDescription)") + dexcareConfiguration.serverLogger?.postErrorIfNeeded(error: VirtualVisitFailedReason.from(error: error), data: ["visitId": visitId]) + throw FailedReason.from(error: error) + } + } + func onVisitSuccess(visitId: String) { visitSuccess?(visitId) resumeSuccess?() diff --git a/Sources/DexcareiOSSDK/VirtualVisit/ChatViewController.swift b/Sources/DexcareiOSSDK/VirtualVisit/ChatViewController.swift index 4898f82..8b08a29 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/ChatViewController.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/ChatViewController.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import MessageKit @@ -41,12 +41,26 @@ class ChatViewController: MessagesViewController, ChatView { var messages: [ChatMessage] = [] let semaphore = DispatchSemaphore(value: 1) + private var backBarButtonItem: UIBarButtonItem { + // We create a custom back button to accomodate the fact that some implementation will + // update the navigation tint color globally to white. + // 'UINavigationBar.appearance().tintColor = .white' + let backButton = UIButton(type: .custom) + backButton.setImage(UIImage(systemName: "chevron.left"), for: .normal) + backButton.tintColor = .link + backButton.setTitle("Back", for: .normal) + backButton.setTitleColor(.link, for: .normal) + backButton.addTarget(self, action: #selector(backButtonTapped), for: .touchUpInside) + return UIBarButtonItem(customView: backButton) + } + init(manager: VirtualVisitManagerType, serverLogger: LoggingService?) { self.manager = manager self.serverLogger = serverLogger userSender = ChatSender(id: manager.userId, displayName: manager.chatDisplayName) super.init(nibName: nil, bundle: nil) + navigationItem.leftBarButtonItem = backBarButtonItem } @available(*, unavailable) @@ -159,6 +173,10 @@ class ChatViewController: MessagesViewController, ChatView { DispatchQueue.main.asyncAfter(wallDeadline: .now() + workItemDelay, execute: workItem) } + @objc private func backButtonTapped() { + navigationController?.popViewController(animated: true) + } + private func refreshTypingIndicator(shown: Bool) { // Cancel any existing workItem if there is any if let currentWorkItem = typingIndicatorWorkItem { @@ -225,7 +243,7 @@ extension ChatViewController: MessagesDataSource { } func messageForItem(at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> MessageType { - /// There is an issue where the message does not exist at the given index. + /// There is an issue where the message does not exit at the given index. /// Unfortunetly, we are unable to reproduce the issue. /// We added extra logs to track the issue and help us reproduce it. /// diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/DevicePermissionRequester.swift b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/DevicePermissionRequester.swift index 8a9f4f2..b1d76a3 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/DevicePermissionRequester.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/DevicePermissionRequester.swift @@ -1,4 +1,4 @@ -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. import Foundation diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/MicrophonePermissionChecker.swift b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/MicrophonePermissionChecker.swift index 7ecf104..1b6ad88 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/MicrophonePermissionChecker.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/MicrophonePermissionChecker.swift @@ -1,4 +1,4 @@ -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. import Foundation import AVFoundation diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/NotificationPermissionChecker.swift b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/NotificationPermissionChecker.swift index e52e20f..97f1fa7 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/NotificationPermissionChecker.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/NotificationPermissionChecker.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UserNotifications diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/Permissions.swift b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/Permissions.swift index 8fb63f5..bb9aabe 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/Permissions.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/Permissions.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. struct Permissions: Equatable { diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/VideoCameraPermissionChecker.swift b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/VideoCameraPermissionChecker.swift index c236ec1..456a9d6 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/VideoCameraPermissionChecker.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DevicePermissions/VideoCameraPermissionChecker.swift @@ -1,4 +1,4 @@ -// Copyright © 2018 Providence. All rights reserved. +// Copyright © 2018 DexCare. All rights reserved. import Foundation import AVFoundation diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DeviceTokenHelpers.swift b/Sources/DexcareiOSSDK/VirtualVisit/DeviceTokenHelpers.swift index 7d35b39..469b8e8 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DeviceTokenHelpers.swift +++ b/Sources/DexcareiOSSDK/VirtualVisit/DeviceTokenHelpers.swift @@ -1,4 +1,4 @@ -// Copyright © 2019 Providence. All rights reserved. +// Copyright © 2019 DexCare. All rights reserved. import Foundation import UIKit diff --git a/Sources/DexcareiOSSDK/VirtualVisit/DexcareVirtualVisit.storyboard b/Sources/DexcareiOSSDK/VirtualVisit/DexcareVirtualVisit.storyboard index fbd8256..9143c83 100644 --- a/Sources/DexcareiOSSDK/VirtualVisit/DexcareVirtualVisit.storyboard +++ b/Sources/DexcareiOSSDK/VirtualVisit/DexcareVirtualVisit.storyboard @@ -1,9 +1,9 @@ - + - + @@ -22,10 +22,10 @@ - + - + @@ -64,10 +64,10 @@ - + - + + + + + + + + + + + + + + + + + -