v2 Saphere Scan — une balise de script, dix langues

Les signes vitaux, par une caméra.

Trente secondes de vidéo. Ni brassard, ni ceinture, ni bracelet. Saphere lit le pouls dans un visage et le convertit en données physiologiques exploitables — sur le matériel que vos utilisateurs ont déjà en main.

Web, iOS, Android et applications hybrides. Intégrable dans une WebView.

Le widget Saphere Scan expliquant la mesure à un utilisateur

Ce qui est rendu

Dix variables pour une seule vidéo

Une capture unique de trente secondes livre des indicateurs cardiaques, respiratoires et morphologiques, chacun accompagné du signal dont il est tiré.

Fréquence cardiaque
bpm
Fréquence respiratoire
cpm
Variabilité cardiaque
ms
Niveau de stress
échelle
Pression artérielle
mmHg
Risque tensionnel
échelle
Âge apparent
années
Indice de masse corporelle
kg/m²
IMC estimé du visage
kg/m²
Score cardiovasculaire
0–100

Les variables qu’un client reçoit sont fixées sur son compte. Certaines demandent la taille, le poids, l’âge et le sexe de l’utilisateur.

Le principe

La photopléthysmographie à distance, en quatre temps

Le sang absorbe la lumière. À chaque battement, le volume sous la peau change, et la couleur réfléchie avec lui — d’une quantité bien trop faible pour l’œil, mais non pour un capteur.

Une caméra ordinaire filme le visage

La caméra frontale d’un téléphone, la webcam d’un ordinateur portable. Rien à brancher, rien à porter, rien à calibrer.

La lumière réfléchie par la peau est isolée

Un modèle de repères faciaux suit les régions où la peau est fine et peu mobile, et le widget les échantillonne image par image — jamais l’image entière.

Le signal du pouls est reconstruit

Ces variations minuscules, accumulées sur trente secondes, forment une onde dont le rythme est le cycle cardiaque.

Les variables se déduisent du signal

Fréquence, variabilité, respiration et indicateurs morphologiques sont calculés à partir de l’onde. Chacun revient soit avec sa valeur, soit avec la raison qui a empêché de la produire.

Le principe de la photopléthysmographie à distanceUne caméra ordinaire filme le visage ; la lumière ambiante réfléchie par la peau varie à chaque battement du cœur ; ces variations sont extraites sous forme de signal, dont se déduisent les variables physiologiques.Une caméra ordinaireLa lumière réfléchie par la peauLe signal extraitFréq. cardiaqueRespirationStresset le reste

Pourquoi Saphere

Conçu pour être intégré, pas contemplé

Un script, un appel

SaphereScan.create(root, options) puis bootstrap(). Le widget possède son conteneur, sa caméra et son shadow DOM — il ne peut pas répandre ses styles dans votre page, et votre page ne peut pas casser sa mise en page.

Le vôtre, jusqu'à la formulation

Chaque écran, chaque texte, chaque couleur est une option. Changez un libellé, remplacez une palette, retirez un écran du parcours — sans rien dupliquer.

Dix langues, deux sens de lecture

Arabe, allemand, anglais, espagnol, français, italien, polonais, portugais, portugais du Brésil et turc. La mise en page se retourne pour l’arabe, de la barre d’outils aux chevrons.

Vos secrets restent chez vous

Le widget ne détient jamais votre clé d’API. Il demande à votre point d’accès un jeton court et à usage unique au début de chaque mesure.

Franc sur la caméra

Cinq écrans de refus distincts — refusée, absente, occupée, non prise en charge, interrompue — chacun rapporté à votre code avec un code stable, non une panne générique.

Quarante événements de cycle de vie

Chaque écran atteint, chaque état de la caméra, chaque à-coup du transport et chaque phase de la mesure sont rapportés à votre gestionnaire. Des hooks vous laissent refuser une transition.

Intégration

De rien à une mesure qui tourne

Le widget est un module ES unique servi par le CDN. Il se monte dans un div qui vous appartient et prend la suite.

<div id="scan" style="height: 100dvh"></div>

<script type="module">
    // L'hôte décide de l'environnement : cdn.test.saphere.ai atteint le Test,
    // et le widget le suit jusqu'à l'api de mesure.
    import SaphereScan from "https://cdn.saphere.ai/saphere-scan/v2/main.js"

    const instance = SaphereScan.create("#scan", {
        lang: "fr",
        // Le widget ne détient jamais votre clé d'API : il demande à votre
        // serveur un jeton court au début de chaque mesure.
        proxy: {
            retrieveAccessToken: {
                strategy: "delegate",
                url: "/api/saphere-token"
            }
        },
        onEvent: event => {
            if (event.type === "measure:result")
                console.log(event.result.variables)
        }
    })

    await instance.bootstrap()
</script>

Tourne là où sont vos utilisateurs

Un navigateur, une WebView React Native, une coquille Ionic/Capacitor. Le widget ne demande qu’une caméra et un conteneur.

Rien à héberger

Le paquet, le modèle de détection du visage et les ressources sont tous servis par le CDN. Vous livrez une balise de script.

Échoue à découvert

Une caméra refusée, un jeton que votre point d’accès n’a pas voulu émettre, un réseau qui tombe : chacun ressort en événement nommé, pour que votre support puisse lire ce qui s’est passé.

À qui cela s'adresse

Partout où il faut mesurer un corps sans le toucher

Assurance

Souscription et programmes de prévention, sans passage en cabinet.

Télémédecine

Des constantes recueillies avant la consultation, depuis l'appareil du patient.

Santé au travail

Des points volontaires qui ne demandent aucun matériel à distribuer.

Sport et bien-être

Récupération et stress dans une application que l'on ouvre déjà.

Recherche clinique

Un recueil longitudinal à une échelle que le matériel n'atteint pas.

Santé connectée

Une couche de constantes pour les produits qui ont une caméra et pas de capteur.

Bornes en libre-service

Pharmacies et sites d'entreprise, sans contact par construction.

Automobile et industrie

Vigilance du conducteur ou de l'opérateur, depuis une caméra déjà posée.

Lire la documentation, ou nous parler

La prise en main mène une mesure complète de bout en bout en une dizaine de minutes, sur l’environnement de Test.