Personnaliser
L'URL de l'iframe accepte plusieurs paramètres de requête qui contrôlent son comportement et son apparence. Cette page est la référence canonique : tous les paramètres pris en charge par l'iframe sont énumérés ci-dessous, et chacun est expliqué en détail dans les sections suivantes.
Utilisez le générateur pour prévisualiser et copier une URL d'iframe configurée.
Le générateur utilise un exemple d'identifiant company pour que l'aperçu fonctionne. Remplacez-le par votre propre identifiant avant de déployer.
Référence rapide
company(obligatoire) : identifiant de société éphémère (aussi appelé clé d'application) émis à partir de votre jeton API S2S. Voir la page Sécurité pour savoir comment le générer.companyCallbackUrl: remplace l'URL de rappel par défaut vers laquelle le rapport diagnostique est envoyé. Voir la section Remplacement de l'URL de rappel.isForPatient(par défaut0) : quand défini à1, simplifie le libellé du questionnaire pour les utilisateurs non-cliniciens.enableResult(par défaut1) : active ou désactive l'affichage des résultats diagnostiques à l'utilisateur.showQuestionnairesHeader(par défaut1) : contrôle la visibilité du titre du questionnaire.enableDiagnosisSupport(par défaut1) : quand défini à0, saute l'étape d'identification des conditions et ne mesure que la sévérité.forcedScoringSystems: liste séparée par des virgules de codes de système de cotation qui doivent être calculés indépendamment du niveau de confiance diagnostique.enableAnamnesis(par défaut0) : quand défini à1, affiche le formulaire d'anamnèse.macroscopicMedia(par défautdisabled) : si une image contextuelle (macroscopique) est requise. Valeurs autorisées :disabled,optional,required.enableExtendedInstructions(par défaut0) : quand défini à1, affiche l'ensemble complet des meilleures pratiques de prise de photo.enableAlternativeCameraModule(par défaut0) : active le module de caméra dans l'iframe (contournement pour les frameworks qui bloquent les entrées de fichier).enableAlternativeCameraModuleAndroid(par défaut0) : identique au drapeau précédent, limité à Android.primary: code couleur hexadécimal pour la couleur de l'interface utilisateur primaire.secondary: code couleur hexadécimal pour la couleur de l'interface utilisateur secondaire.fontFamily: famille de polices utilisée dans l'iframe. Supportée :Roboto,Montserrat.locale(par défauten) : langue de l'application. Supportée :en,es.extraData: JSON codé en Base64 avec des données supplémentaires jointes au rapport (par exemple un identifiant de patient). Masqué aux utilisateurs finaux.enableExtraDataInPdf(par défaut0) : quand défini à1, imprime les valeursextraDatadans le rapport PDF généré.
Le reste de cette page décrit chaque paramètre en détail, groupé par purpose.
Mode patient
Quand les utilisateurs primaires de l'iframe sont des patients, définissez isForPatient=1. Cela réécrit les questionnaires dans un langage plus accessible. Par exemple, au lieu du label technique Itchiness, le patient voit How would you describe how itchy you feel?.
Visibilité des résultats
Le comportement par défaut est d'afficher les résultats à l'utilisateur une fois sa photo traitée. Passez enableResult=0 pour masquer les résultats et afficher uniquement un message de confirmation.
Titre du questionnaire
showQuestionnairesHeader contrôle la visibilité du titre au-dessus des questionnaires (le titre "Medical questionnaire"). Par défaut 1.
Support diagnostique
Le paramètre enableDiagnosisSupport contrôle si la fonction de support diagnostique basée sur l'IA s'exécute.
Quand désactivé (enableDiagnosisSupport=0), l'iframe saute complètement l'étape d'identification des conditions. Cela est utile quand la condition du patient est déjà connue et l'objectif est uniquement de mesurer la sévérité. Par exemple, quand un clinicien a confirmé un diagnostic et veut suivre les scores PASI ou SCORAD au fil du temps sans déclencher une nouvelle analyse diagnostique.
Systèmes de cotation forcés
forcedScoringSystems est une liste séparée par des virgules de codes de système de cotation qui doivent être calculés indépendamment du niveau de confiance diagnostique:
https://iframe.legit.health/?company=XXX&forcedScoringSystems=aladinLocal,ascoradLocal
Systèmes de cotation disponibles
aladinLocal: Acne Lesion estimation grading index (IGA acne).agppgaLocal: Generalized Pustular Psoriasis Physician Global Assessment.aihs4Local: International Hidradenitis Suppurativa severity score.apasiLocal: Automatic Psoriasis Area and Severity Index.asaltLocal: Automatic Severity of ALopecia Tool.ascoradLocal: SCORAD for atopic dermatitis.auasLocal: Urticaria Activity Score.awosiLocal: Pressure ulcers assessment.pure4: Psoriatic arthritis UnclutteRed screening Evaluation.sevenPc(ou7PC) : 7-point checklist for pigmented lesions.uct: Urticaria Control Test.
Si forcedScoringSystems n'est pas spécifié, l'iframe calcule automatiquement le système de cotation chaque fois que la condition détectée par l'algorithme de support diagnostique a un niveau de confiance supérieur à 40 % et un système de cotation associé. Cela maintient le flux de travail rationalisé : les conditions les plus probables sont évaluées pour la sévérité sans nécessiter de configuration explicite.
Questionnaire d'anamnèse
Le paramètre enableAnamnesis affiche ou masque le formulaire d'anamnèse. La valeur par défaut est 0, passez enableAnamnesis=1 pour l'afficher.
Il y a deux types de questions que l'iframe peut poser:
Questions génériques
Quand le formulaire d'anamnèse est activé, l'utilisateur voit cinq questions cliniquement pertinentes qui ne sont pas liées à une condition spécifique:
- Quelle est la raison de la consultation ? Comment le problème a-t-il commencé ? Décrivez l'origine.
- Avez-vous des allergies, notamment aux médicaments ? Si oui, énumérez les allergies.
- Prenez-vous des médicaments ou un traitement ? Si oui, expliquez quel traitement vous suivez.
- Avez-vous une maladie grave ? Avez-vous subi une intervention chirurgicale ?
- Y a-t-il un antécédent de maladie grave dans votre famille ?
Questions spécifiques à la condition
Si l'IA identifie une condition avec une confiance suffisante, l'iframe ajoute automatiquement le questionnaire associé à cette condition. Par exemple, si la lésion est le psoriasis avec une probabilité élevée, le patient est interrogé sur les questions PASI que l'IA ne peut pas déduire de l'image.
Les questions spécifiques à la condition sont celles qui composent chaque système de cotation. Voir la section Avancé → Systèmes de cotation.
Téléchargement d'image
Dans l'iframe, l'utilisateur télécharge des images en cliquant sur Click here to add an image. Cela ouvre l'appareil photo ou le sélecteur de fichiers.
Les utilisateurs peuvent télécharger plusieurs images de la même lésion :
Quand cela se produit, toutes les images appartiennent au même DiagnosticReport et constituent un seul appel à l'appareil.
Qualité de l'image
L'appareil exécute une technologie appelée DIQA qui mesure la qualité visuelle de chaque image téléchargée. Si le score est en dessous de 60, l'iframe demande à l'utilisateur de retélécharger après avoir corrigé le problème.
Le score est inclus dans le message envoyé par l'iframe:
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 74, // 👈
// ...
},
Image macroscopique
macroscopicMedia contrôle si l'utilisateur doit télécharger une image contextuelle (macroscopique):
disabled(par défaut): le champ est masqué.optional: l'utilisateur peut télécharger une image macroscopique.required: l'utilisateur doit télécharger une image macroscopique pour continuer.
Cela est utile quand le contexte visuel est essentiel, par exemple dans les évaluations cliniques où une prise de vue large complète un gros plan.
Instructions étendues
enableExtendedInstructions=1 affiche un ensemble complet de meilleures pratiques pour prendre des photos. Par défaut 0 affiche un ensemble minimal.
Module de caméra alternatif
Les frameworks tels que Ionic limitent souvent l'accès au matériel (particulièrement l'appareil photo) quand le contenu est rendu à l'intérieur d'un iframe. Le flux standard <input type="file"> que l'iframe utilise par défaut est bloqué dans ces environnements, nous proposons donc un module alternatif qui demande directement l'accès à la caméra depuis l'iframe.
Ce problème affecte principalement les appareils Android exécutant des applications basées sur Ionic. Vous devrez peut-être activer spécifiquement enableAlternativeCameraModuleAndroid pour ceux-ci.
enableAlternativeCameraModule=1: active le module alternatif sur chaque plateforme.enableAlternativeCameraModuleAndroid=1: l'active uniquement pour Android.
Couleurs et famille de polices
Les couleurs primaire et secondaire sont personnalisées via les paramètres primary et secondary (codes hex).
Pour la typographie, l'iframe supporte actuellement Roboto et Montserrat via le paramètre fontFamily. Contactez-nous si vous avez besoin d'une police supplémentaire et nous ferons de notre mieux pour l'inclure.
Langue
La langue de l'interface est définie avec le paramètre locale (en, es). Si vous avez besoin d'une autre langue, veuillez nous contacter.
Données supplémentaires
extraData accepte n'importe quelle chaîne et est jointe au rapport. C'est un endroit pratique pour transmettre des identifiants qui doivent voyager avec le rapport mais rester masqués aux utilisateurs, comme les identifiants de patient, les fournisseurs d'assurance, ou les références d'épisode:
const data = toBase64(JSON.stringify({ patient: "XXX", insuranceProvider: "YYY" }));
Par défaut, extraData est stocké sur le rapport mais n'est pas imprimé dans le PDF généré. Définissez enableExtraDataInPdf=1 pour l'inclure dans le PDF. Cela est utile quand le PDF est livré directement à un clinicien ou un patient et les données supplémentaires doivent être visibles dans le document.
Remplacement de l'URL de rappel
Lors de la configuration de votre entreprise, l'intégrateur fournit une URL de rappel par défaut vers laquelle Legit.Health envoie le rapport diagnostique une fois l'analyse terminée. Le paramètre companyCallbackUrl vous permet de remplacer cette valeur par défaut au niveau iframe, ce qui est utile quand le même identifiant company est réutilisé dans différents environnements (staging, production) ou à travers des produits qui ont besoin que le rapport soit livré à différents points de terminaison:
https://iframe.legit.health/?company=XXX&companyCallbackUrl=https://your-server.example.com/legit-health-webhook
L'URL doit être accessible depuis Internet public, accepter les requêtes POST, et répondre avec un code de statut 2xx. La charge utile que votre point de terminaison reçoit correspond au schéma JSON décrit dans la section Sortie → Formats JSON.
companyCallbackUrl active un modèle de livraison en mode envoi : Legit.Health envoie le rapport à votre point de terminaison dès qu'il est prêt. Si vous préférez récupérer le rapport à la demande en utilisant l'identifiant id retourné par le postMessage analysis_completed, utilisez le point de terminaison API à la place. Les deux modèles peuvent coexister.
Étapes suivantes
- Sécuriser l'accès en production ? Voir la page Sécurité.
- Vouloir connaître le code spécifique à chaque plateforme ? Voir la section Plateformes.
- Besoin de gérer les rappels de l'iframe ? Voir la section Rappels.