Skip to content

Hellocare iOS SDK

Cette documentation explique comment intégrer le SDK Hellocare sur un client iOS (Swift).

Il vous permet de piloter chaque étape du tunnel de connexion jusqu'à la consultation vidéo.

Pré-requis

La clé API fournie par Hellocare ainsi que le jeton de connexion utilisateur seront indispensables pour initialiser le SDK.

Si vous ne l'avez pas encore fait, référez-vous à au Guide de démarrage.

Configuration requise

Ce SDK fonctionne avec iOS 10 et plus.

Le SDK a besoin de certaines permissions pour fonctionner correctement. Ces permissions sont nécessaires au bon fonctionnement de la video et de l'audio.

NSCameraUsageDescription
NSMicrophoneUsageDescription

Installation

Le SDK Hellocare est disponible via Cocoapods

Afin d'ajouter le SDK à votre projet, il vous suffit d'ajouter à votre Podfile:

source 'https://github.com/CocoaPods/Specs.git' platform :ios, '10.0' use_frameworks!

pod 'HellocareSDK' 

Puis de lancer l'installation avec :

$ pod install 

Dans le cas ou vous n'avez pas la dernière version installée, utiliser la commande suivante :

$ pod cache clean 
$ pod repo update HellocareSDK 
$ pod install

Si vous ne reussissez pas à mettre à jour votre version du SDK, assurez-vous que votre version n'est pas bloquée par une ancienne versino dans fichier Podfile.lock .

La dernière version du SDK est la : 1.0.5

Initialisation

Vous devez utiliser la clé API fournie par Hellocare (test ou live).

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
........
HellocareSDK.setup(apiKey:String, sessionToken: String)
........
}

Les différentes étapes du tunnel d'appel sont dans l'ordre :

None -> Connecting  -> Dispatching  -> Joining  -> Join
                                    |
                                    |-> Doctor missing

Démarrez le tunnel d'appel

Il faut appeler la méthode goToConnectingState() de la classe HellocareSDK.

Sans spécialité

HellocareSDK.shared.goToConnectingState() 

Dans ce cas, on fait appel à un médecin généraliste.

Avec spécialité

HellocareSDK.shared.goToConnectingState(skillCode: String) 

Pour récupérer la liste des code de spécialités, un appel API est nécessaire (contactez-nous pour plus d'informations).

Stopper le tunnel d'appel

Il faut appeler la méthode onCancelSessionSuccess() du SDK:

HellocareSDK.shared.cancelSession() 

L'évènenement onCancelSessionSuccess() est remonté via le sdk lors d'une annulation avec succès. L'évènenement onSessionError(sessionError:SessionError) est remonté avec une erreur spécifique via le SDK lors de l'annulation si un problème a eu lieu.

Détails des différents état du SDK

None

Depuis cet état on peut faire appel qu'à l'état connecting

 HellocareSDK.shared.goToConnectingState() 

L'évènenement onConnectingStateSuccess(sessionUid: String) est remonté via le sdk lors d'une connexion effectuée avec succès. L'Uid de la session est retournée dans le paramètre sessionUid.

L'évènenement onSessionError(sessionError: SessionError) est remonté avec une erreur spécifique via le SDK lors de la connexion si un problème a eu lieu.

CONNECTING

Depuis cet état on peut faire appel qu'à l'état dispatching

 HellocareSDK.shared.goToDispatchingState()

L'évènenement onDispatchingStateSuccess() est remonté via le sdk si un professionnel de santé est disponible pour une consultation.
L'évènenement onDoctorMissingState() est remonté via le sdk si aucun professionnel de santé est disponible pour une consultation. L'évènenement onNextAvailabilityFound(date: Date) est remonté via le sdk si aucun professionnel de santé de la spécialité demandée est disponible immédiatement mais disponible dans un délais donné par la date remontée en paramètre (uniquement appelée si la spécialité est différente de celle de Médecin généraliste) L'évènenement onSessionError(SessionError sessionError) est remonté avec une erreur spécifique via le SDK lors de la demande de dispatch si un problème a eu lieu.

DOCTOR MISSING STATE

Depuis cet état on peut faire appel qu'à l'état cancel car aucun professionnel de santé est disponible.

HellocareSdk.shared.cancelSession() 

DISPATCHING

Depuis cet état on peut faire appel qu'à l'état joining


HellocareSDK.shared.goToJoinState() 

L'évènenement onJoinStateSuccess(assignedDoctor:AssignedDoctor, awaitingTime:Double) est remonté via le sdk en cas de succès avec les informations sur le professionnel de santé attribué pour cette consultation et une estimation du temps d'attente en minutes. Le temps d'attente est une estimation ce qui veut dire que la consultation peut démarrée avant ou après ce temps. (Voir l'état "Join" pour avoir des informations sur le démarrage de la consultation)

JOIN

Dans cet état le SDK est en attente que le professionnel de santé assigné pour la consultation la démarre. Dans ce cas l'évènement onVideoReadyToStart() est remonté via le sdk.

A la réception de cet évènement, vous pouvez lancer votre vue vidéo du SDK afin de lancer la consultation.

Exemple simple d'implementation du tunnel d'appel

    func startSession(){  
        HellocareSDK.shared.goToConnectingState()
    }

    func onConnectingStateSuccess() {
        HellocareSDK.shared.goToDispatchState()
    }

    func onDispatchingStateSuccess() {
        HellocareSDK.shared.goToJoinState()
    }

    func onJoinStateSuccess(assignedDoctor:AssignedDoctor, awaitingTime:Double) {
        // réception des informations du médecin
        // La séssion peut démarrée avant la fin du temps d'attente si événement onVideoReadyToStart est recu
        // Appeler startVideoSession avec un  VideoSessionListener pour voir la vidéo du patient duant l'attente
    }

    func onSessionError(sessionError:SessionError) {
        // Gestions des erreurs
    }

    func onDoctorMissingState() {
        updateOnDoctorMissingState()
    }

    func onVideoReadyToStart() {
        //Le médecin est connecté et a démarré sa vidéo
    }

    func onCancelSessionSuccess() {
     //Gestion de l'annulation de session
    }

Consultation vidéo

Un composant graphique VideoSessionView embarque la consultation vidéo et se charge de mettre en relation automatiquement le professionnel de santé et le patient.

Quand toutes les étapes du tunnel d'appel se sont déroulées avec succès, le SDK peut démarrer une consultation vidéo.

Vous pouvez ajouter une vue de type VideoSessionView dans votre storyboard.

NE PAS OUBLIER DE SELECTIONNER HellocareSDK COMME MODULE DANS Interfacebuilder

Vous pouvez aussi ajouter la vue programmatiquement dans votre ViewController.

  • Pour démarrer la vidéo, il suffit d'appeler la méthode de la classe VideoSessionView startVideoSession(videoSessionListener:VideoSessionListener)

NE PAS OUBLIER LES PERMISSIONS VIDEO ET AUDIO

  • Pour terminer une consultation vidéo, il suffit d'utiliser la méthode
HellocareSDK.shared.terminate()