

Automatisation des diapositives d’éducation des patients avec une API santé (2026)
L’automatisation des diapositives d’éducation des patients signifie qu’un travail backend lit un texte source approuvé et dé-identifié (instructions de sortie, explications de procédures, directives cliniques) depuis votre référentiel de contenu et le transforme en présentations via l’API 2Slides. Fast PPT generate produit un PPTX éditable par pathologie et par langue à 10 crédits par page, donc une présentation de 8 pages coûte 80 crédits, soit environ 0,20 $. create-pdf-slides plus generate-narration produit des présentations de formation du personnel avec narration. Cette solution est conçue pour les équipes d’éducation hospitalière, les entreprises de santé numérique et les agences de communication médicale.
Points clés
- Un seul document source approuvé devient une présentation par langue en changeant une seule valeur
responseLanguage; 2Slides prend en charge plus de 20 langues, dont l’espagnol, le vietnamien et l’arabe. - Une présentation patient Fast PPT de 8 pages coûte 80 crédits, soit environ 0,20 $ avec le pack de démarrage à 5 $ ; 500 présentations par mois représentent 40 000 crédits, soit exactement le pack à 80 $.
- Une présentation de formation du personnel de 10 pages avec narration coûte 1 010 crédits pour les diapositives conçues en images plus 2 100 crédits pour la narration, soit environ 7,78 $ au total.
- Seul le texte approuvé et dé-identifié est envoyé dans
userInput: aucun nom de patient, numéro de dossier médical (MRN) ou date de naissance. Chaque jobId, version source et décision du réviseur est enregistré dans une table d’audit. - 2Slides ne revendique aucune certification HIPAA et cet article ne constitue pas un avis juridique ; les contrôles de conformité sont à mettre en œuvre et documenter par vos soins.
À qui cela s’adresse-t-il
Vous gérez l’éducation des patients dans un système hospitalier, vous êtes responsable du contenu dans une entreprise de santé numérique, ou vous produisez des supports dans une agence de communication médicale. La problématique est la même : une directive change, et 40 présentations spécifiques à une pathologie en 6 langues deviennent soudain obsolètes alors que les personnes qui pourraient les corriger sont en consultation. Un travail backend qui régénère les présentations à partir de la source approuvée et les envoie à un réviseur clinique supprime la reconstruction manuelle sans supprimer la relecture.
N’utilisez pas cette recette si votre texte source n’est pas encore approuvé, ou si des informations spécifiques à un patient doivent être intégrées dans une requête. Elle publie du contenu contrôlé à grande échelle ; elle ne génère pas de plans de soins individualisés.
Le flux de travail en un coup d’œil
| Étape | Outil | Ce qui se passe | Endpoint 2Slides / crédits |
|---|---|---|---|
| 1 | Gestionnaire de secrets, service backend | Stocker la clé API côté serveur, définir quel texte peut entrer dans une requête | GET /api/v1/echo (vérification d’authentification gratuite) |
| 2 | Référentiel de contenu (Git, CMS, DAM) | Texte source approuvé, dé-identifié, avec horodatage de version et somme de contrôle | aucun |
| 3 | Travail backend | Choisir un modèle clinique calme, générer une présentation par pathologie et par langue | GET /api/v1/themes/search (gratuit), POST /api/v1/slides/generate (10 crédits/page) |
| 4 | Exécuteur de tâches + base de données de revue | Interroger, télécharger le PPTX, stocker avec jobId et version source, marquer en attente de revue | GET /api/v1/jobs/{id} (gratuit) |
| 5 | Même travail, piste formation | Présentation de formation du personnel conçue en images, puis narration pour vidéos d’intégration | create-pdf-slides (10 + 100/page à 2K), generate-narration (210/page) |
| 6 | Réviseur clinique, éditeur | Approuver ou rejeter, horodater la version, publier sur portail ou LMS | download-slides-pages-voices (ZIP gratuit de PNG + WAV) |
Étape 1 : Définir la limite de conformité et garder la clé API côté serveur
Avant tout code, définissez la limite : quel texte peut sortir de votre réseau sous forme de userInput. Pour l’éducation des patients, il s’agit de contenu approuvé, destiné au grand public, décrivant une pathologie, une procédure ou une consigne. Il ne décrit jamais un patient spécifique. La règle HIPAA sur la confidentialité, documentée sur hhs.gov/hipaa, régit les informations de santé protégées ; votre responsable de la confidentialité décide comment un service tiers de génération s’intègre à vos politiques. Rien dans cet article ne remplace cette revue.
Ensuite, obtenez une clé API sur 2slides.com/api. Les clés sont émises dans l’onglet API Keys avec 500 crédits gratuits, suffisants pour environ six présentations test de 8 pages. La clé doit être stockée dans un gestionnaire de secrets ou une variable d’environnement côté serveur, jamais dans un navigateur, une application mobile ou un carnet partagé.

Figure 1 : La page de référence API sur 2slides.com, incluant la note de sécurité indiquant que les clés doivent rester côté serveur.
Vérifiez la clé depuis le serveur qui exécutera le travail :
curl -s https://2slides.com/api/v1/echo \
-H "Authorization: Bearer $SLIDES_API_KEY"Une réponse authentifiée signifie que les identifiants sont en place et que vous pouvez passer au contenu.
Étape 2 : Préparer un contenu source approuvé et dé-identifié avec horodatage de version
Le travail de génération lit depuis un enregistrement, pas depuis une fenêtre de chat. Un enregistrement source minimal contient le texte approuvé, une version et l’organe approbateur, afin que chaque présentation puisse être retracée jusqu’aux mots exacts dont elle est issue.
{
"slug": "heart-failure-discharge",
"title": "Retour à domicile après une hospitalisation pour insuffisance cardiaque",
"version": "2026.09.1",
"approved_by": "Comité d’éducation clinique",
"approved_on": "2026-09-03",
"reading_level": "Niveau 6ème",
"approved_text": "L’insuffisance cardiaque signifie que le cœur ne pompe pas aussi bien qu’il le devrait. Après votre retour à domicile : pesez-vous chaque matin... Appelez votre équipe soignante si vous prenez 3 livres en un jour ou 5 livres en une semaine..."
}Trois règles garantissent que cet enregistrement est sûr à envoyer :
- Jamais de PHI. Aucun nom, MRN, date de naissance, date de rendez-vous, ni aucune information décrivant une personne. Un passage regex pour MRN et les formats de date est effectué avant chaque soumission, et un contrôle échoué bloque le travail.
- Texte approuvé uniquement. Le travail lit le champ
approved_textd’un enregistrement dont le statut estapproved. Les brouillons sont ignorés. - Source en langage clair. Fast PPT adapte votre formulation aux espaces réservés du modèle, donc un texte écrit à un niveau de lecture de 6ème produit des diapositives à ce niveau.
Étape 3 : Générer des supports d’éducation des patients multilingues avec Fast PPT
Choisissez le modèle une fois. Recherchez un style calme et clinique et stockez le themeId retourné en configuration :
curl -s "https://2slides.com/api/v1/themes/search?query=healthcare&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"Essayez aussi query=medical. Choisissez un contraste élevé, une grande taille de police, et pas d’infographies denses ; les présentations patients sont lues sur téléphone en salle d’attente et imprimées à la station des infirmières.
Puis générez une présentation par langue. La source anglaise reste la même ; seul responseLanguage change. Utilisez mode: "async" car vous soumettez plusieurs travaux en lot.
curl -s -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Retour à domicile après une hospitalisation pour insuffisance cardiaque. L’insuffisance cardiaque signifie que le cœur ne pompe pas aussi bien qu’il le devrait. Après votre retour à domicile : pesez-vous chaque matin avant le petit-déjeuner. Prenez vos médicaments exactement comme indiqué sur votre feuille de médicaments. Limitez le sel à la quantité indiquée par votre équipe soignante. Appelez votre équipe si vous prenez 3 livres en un jour ou 5 livres en une semaine, si vous êtes plus essoufflé, ou si vos jambes gonflent. Version source 2026.09.1, revue par le Comité d’éducation clinique.",
"themeId": "<themeId from themes/search>",
"responseLanguage": "Spanish",
"mode": "async"
}'La réponse est { "jobId": "..." }. Répétez avec "Vietnamese", "Arabic", "Simplified Chinese", et toute autre langue de la liste prise en charge. Passez le nom de la langue, pas un code ; "es" ne fonctionnera pas, "Spanish" oui.

Figure 2 : Documentation de l’endpoint generate montrant responseLanguage et les plus de 20 langues de sortie supportées.
Interrogez toutes les 5 à 10 secondes jusqu’à ce que le travail soit success ou failed :
curl -s https://2slides.com/api/v1/jobs/<jobId> \
-H "Authorization: Bearer $SLIDES_API_KEY"Un travail terminé retourne une downloadUrl pour le PPTX. La limite de requêtes est de 6 par minute par clé sur generate et 10 par minute sur jobs/{id}. Dix langues pour une pathologie signifient dix soumissions espacées de 10 secondes, et chaque présentation revient en environ 30 secondes.
Étape 4 : Construire la file d’attente de revue en Python (générer, stocker, approuver)
Le script ci-dessous lit un enregistrement source approuvé, génère une présentation par langue, télécharge chaque PPTX, et écrit une ligne dans une table deck_reviews avec le statut pending_review. Rien n’est publié depuis ce script. Un réviseur, un clinicien bilingue ou un traducteur médical certifié pour les versions non anglaises, appelle approve() après vérification du fichier.
import hashlib
import json
import os
import sqlite3
import time
import requests
API = "https://2slides.com/api/v1"
HEADERS = {
"Authorization": f"Bearer {os.environ['SLIDES_API_KEY']}",
"Content-Type": "application/json",
}
# Choisi une fois depuis GET /api/v1/themes/search?query=healthcare, stocké en config
THEME_ID = os.environ["CLINICAL_THEME_ID"]
LANGUAGES = ["English", "Spanish", "Vietnamese", "Arabic"]
db = sqlite3.connect("patient_education.db")
db.execute("""
CREATE TABLE IF NOT EXISTS deck_reviews (
job_id TEXT PRIMARY KEY,
condition_slug TEXT,
language TEXT,
source_version TEXT,
source_sha256 TEXT,
theme_id TEXT,
file_path TEXT,
status TEXT,
reviewer TEXT,
reviewed_at TEXT,
created_at TEXT
)""")
def now():
return time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
def assert_no_phi(text):
# Garde minimale ; étendez avec vos propres motifs et une vérification humaine en amont.
import re
if re.search(r"\bMRN\b|\b\d{7,10}\b|\b\d{1,2}/\d{1,2}/\d{2,4}\b", text):
raise ValueError("Le texte source a échoué au contrôle des motifs PHI")
def submit(source, language):
body = {
"userInput": source["approved_text"],
"themeId": THEME_ID,
"responseLanguage": language,
"mode": "async",
}
r = requests.post(f"{API}/slides/generate", headers=HEADERS, json=body, timeout=60)
r.raise_for_status()
return r.json()["jobId"]
def wait(job_id):
while True:
r = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30)
r.raise_for_status()
job = r.json()
if job["status"] == "success":
return job["downloadUrl"]
if job["status"] == "failed":
raise RuntimeError(f"job {job_id} failed")
time.sleep(8) # interroger toutes les 5 à 10 secondes
def download(url, path):
os.makedirs(os.path.dirname(path), exist_ok=True)
with requests.get(url, stream=True, timeout=120) as r:
r.raise_for_status()
with open(path, "wb") as f:
for chunk in r.iter_content(65536):
f.write(chunk)
def enqueue_for_review(source):
if source.get("status") != "approved":
raise ValueError("Seuls les enregistrements source approuvés peuvent être générés")
assert_no_phi(source["approved_text"])
digest = hashlib.sha256(source["approved_text"].encode("utf-8")).hexdigest()
for language in LANGUAGES:
job_id = submit(source, language)
url = wait(job_id)
path = f"decks/{source['slug']}/{source['version']}/{language}_{job_id}.pptx"
download(url, path)
db.execute(
"INSERT INTO deck_reviews VALUES (?,?,?,?,?,?,?,?,?,?,?)",
(job_id, source["slug"], language, source["version"], digest,
THEME_ID, path, "pending_review", None, None, now()),
)
db.commit()
time.sleep(10) # rester sous 6 requêtes/min par clé
def approve(job_id, reviewer):
db.execute(
"UPDATE deck_reviews SET status='approved', reviewer=?, reviewed_at=? WHERE job_id=?",
(reviewer, now(), job_id),
)
db.commit()
def reject(job_id, reviewer):
db.execute(
"UPDATE deck_reviews SET status='rejected', reviewer=?, reviewed_at=? WHERE job_id=?",
(reviewer, now(), job_id),
)
db.commit()
if __name__ == "__main__":
with open("sources/heart-failure-discharge.json", encoding="utf-8") as f:
enqueue_for_review(json.load(f))Deux choix de conception sont importants. Le chemin du fichier et la ligne de base de données portent la version source et le jobId, ainsi un réviseur peut toujours répondre à la question « quels mots ont produit cette diapositive ? ». Et le script ne comporte pas d’étape de publication : la publication ne lit que les lignes où status = 'approved'.
Étape 5 : Produire des présentations de formation du personnel clinique avec narration
Les présentations patients restent sur la voie Fast PPT car les infirmières et éducateurs les modifient dans PowerPoint. La formation du personnel nécessite souvent une vidéo qu’un nouveau collaborateur peut regarder lors de son intégration, ce qui signifie des diapositives conçues en images plus une voix : la chaîne create-pdf-slides puis generate-narration, avec la même clé et la même limite de conformité.
Soumettez le texte du protocole approuvé. page: 0 laisse le planificateur choisir le nombre de diapositives ; resolution: "2K" maintient le coût à 100 crédits par page.
curl -s -X POST https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Formation : hygiène des mains et séquence de mise et retrait des EPI pour les unités hospitalières. Version du protocole approuvée 2026.09. <texte du protocole approuvé ici>",
"designStyle": "Présentation de formation clinique calme, bleu doux et blanc, grande police lisible, icônes linéaires simples, pas de photos de patients",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 0,
"contentDetail": "standard",
"responseLanguage": "English"
}'Interrogez jobs/{jobId} comme avant. Quand la présentation est success, demandez la narration pour ce job :
curl -s -X POST https://2slides.com/api/v1/slides/generate-narration \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "<jobId from create-pdf-slides>",
"mode": "single",
"speakerName": "Clinical Educator",
"voice": "Kore",
"contentMode": "standard",
"includeIntro": true
}'La narration est uniquement asynchrone et coûte 210 crédits par page. À la fin, POST /api/v1/slides/download-slides-pages-voices avec { "jobId": "..." } renvoie un ZIP gratuit de fichiers PNG et WAV par page que votre pipeline assemble en MP4 avec FFmpeg ou transmet à votre LMS. Les scripts de narration passent par le même réviseur que les diapositives ; une erreur dans l’audio reste une erreur. Pour structurer le contenu lui-même, voir comment créer une présentation de formation avec l’IA ; si le protocole est en PDF, le flux PDF vers diapositives couvre son résumé avant soumission.
Étape 6 : Publier, horodater et auditer votre automatisation des diapositives d’éducation des patients
La publication est une requête base de données, pas un appel de génération. L’éditeur sélectionne les lignes avec status = 'approved', copie le PPTX (ou un PDF exporté) vers le portail patient, un kiosque ou un LMS, et imprime le tampon de version sur la page publiée : version source, date d’approbation, langue. Quand l’enregistrement source change en 2026.10.1, le travail régénère toutes les langues, les anciennes lignes sont marquées superseded, et la file de revue se remplit à nouveau.
La table deck_reviews est votre journal d’audit. Par présentation, elle répond aux questions qu’une équipe qualité posera : quelle version source, quelle somme de contrôle, quel modèle, quel jobId, qui a révisé, et quand. Conservez-la aussi longtemps que votre politique de conservation des données l’exige.
Choisir un style de référence
Si aucun modèle Fast PPT ne correspond à votre identité visuelle, la voie image-design peut dériver un système de design à partir d’une référence. La Galerie 2Slides héberge des présentations de référence réelles que vous pouvez passer en referenceImageUrl à create-like-this, ou utiliser comme inspiration pour un prompt designStyle. Ce sont des présentations de référence, pas des sorties API de ce flux.

Figure 3 : Diapositive de titre de « The Future of Wellness 2025 Edition » de la Galerie 2Slides, un style doux et peu contrasté adapté au secteur santé, utilisable comme referenceImageUrl.

Figure 4 : Diapositive de contenu de la même présentation de la Galerie, montrant comment une palette restreinte maintient la lisibilité des informations cliniques.

Figure 5 : Page de détail de la Galerie, avec aperçu diapositive par diapositive et téléchargement PPT/PDF ; copiez une URL d’image de diapositive ici pour l’utiliser comme référence.
Pour la plupart des équipes hospitalières, la meilleure référence est votre propre diapositive de marque approuvée : hébergez-la à une URL publique, passez-la en referenceImageUrl, et chaque présentation du personnel hérite de ce système de design.
Coût estimé
Deux volumes mensuels réalistes. Les présentations patients sont des fichiers Fast PPT de 8 pages ; les présentations de formation du personnel sont des présentations image-design de 10 pages en 2K avec narration.
| Élément | Crédits chacun | Niveau A : 20 présentations patients + 2 formations narrées | Niveau B : 500 présentations patients + 10 formations narrées |
|---|---|---|---|
| Présentation patient, 8 pages, Fast PPT | 80 | 1 600 | 40 000 |
| Présentation personnel, 10 pages, images 2K | 1 010 | 2 020 | 10 100 |
| Narration, 10 pages | 2 100 | 4 200 | 21 000 |
| Total crédits | 7 820 | 71 100 | |
| Approx. USD | 19,55 $ à 0,0025 $/crédit (pack 22,50 $ pour 10 000) | 142,20 $ à 0,002 $/crédit (packs 80 $ pour 40 000) |
Le niveau A correspond à une bibliothèque de 10 pathologies en 2 langues plus deux vidéos de formation par mois. Le niveau B correspond à une bibliothèque de 50 pathologies en 10 langues plus dix vidéos, soit un système multi-sites. Les crédits sont à la consommation ; le plan Pro optionnel ajoute 10 000 crédits par mois mais n’est pas requis pour l’accès API.
Fast PPT ou diapositives image-design pour ce cas d’usage ?
| Besoin | Utilisation | Pourquoi |
|---|---|---|
| Documents patients que les infirmières éditeront et imprimeront | generate (Fast PPT) | PPTX natif éditable, 10 crédits/page, environ 30 secondes par présentation |
| Même contenu en 10 langues | generate avec responseLanguage | Une source, un changement de paramètre par langue |
| Vidéo d’intégration pour le personnel | create-pdf-slides puis generate-narration | Seuls les travaux image-design peuvent être narrés ; ZIP de PNG + WAV construit le MP4 |
| Présentations devant correspondre à l’image de marque hospitalière | create-like-this avec referenceImageUrl | Dérive le système de design à partir de votre diapositive approuvée |
Fast PPT ne peut pas être narré. Une présentation destinée aux patients nécessitant de l’audio pour les publics à faible alphabétisation passe par la voie image-design à 100 crédits par page plus 210 par page pour la narration, et revient en PDF plus images plutôt qu’en PPTX éditable.
Pièges courants
- PHI qui s’infiltre via un champ secondaire. Un paragraphe « cas clinique » dans une directive peut contenir un détail patient réel. Passez le contrôle de motifs sur chaque champ concaténé dans
userInput, et maintenez une étape humaine de dé-identification en amont. - Limite de requêtes atteinte lors d’un pic de régénération.
generate,create-pdf-slidesetgenerate-narrationautorisent 6 requêtes par minute par clé. Espacer les soumissions de 10 secondes ; une reconstruction 50 pathologies par 10 langues fait 500 travaux et environ 84 minutes de soumissions, adapté à un travail nocturne. - Clé API dans un front-end ou carnet. Les clés restent dans des variables d’environnement côté serveur. Faites tourner la clé si elle apparaît dans un document partagé.
- Essayer de narrer un travail Fast PPT.
generate-narrationrejette les jobIds degenerate. Utilisezcreate-pdf-slidesoucreate-like-thispour tout ce qui nécessite une voix. - Langue passée en code.
responseLanguageprend un nom comme"Vietnamese"ou"Traditional Chinese". Les codes comme"vi"échouent. - Une directive de 40 pages collée en entier. Les entrées longues produisent des diapositives denses et surchargées. Résumez d’abord aux 6 à 10 points destinés aux patients, ou mettez
page: 0sur la voie image-design et laissez le planificateur choisir le nombre.
Questions fréquemment posées
Est-il sûr d’envoyer du contenu d’éducation des patients à une API de présentation IA ?
C’est approprié lorsque le contenu est approuvé, destiné au grand public, et ne contient aucune information de santé protégée. Les instructions de sortie pour « patients avec insuffisance cardiaque » ne contiennent pas de PHI ; une note sur un patient nommé en contient. Maintenez le contrôle PHI automatisé et en amont et impliquez votre responsable de la confidentialité. 2Slides ne revendique pas de certification HIPAA, et cet article ne constitue pas un avis juridique.
Dans quelles langues peut-on générer des supports d’éducation des patients multilingues ?
2Slides supporte plus de 20 langues de sortie via responseLanguage, dont l’anglais, l’espagnol, l’arabe, le portugais, le vietnamien, le chinois simplifié, le chinois traditionnel, l’hindi, le coréen, le russe, le français et l’allemand. Passez le nom de la langue, pas un code ISO. Traitez la sortie comme un premier brouillon à faire relire par un clinicien bilingue ou un traducteur médical certifié avant publication.
Les présentations destinées aux patients peuvent-elles être narrées comme les formations du personnel ?
Oui, mais uniquement sur la voie image-design. Générez la présentation patient avec create-pdf-slides (100 crédits par page en 2K) au lieu de Fast PPT, puis appelez generate-narration à 210 crédits par page. Un explainer patient narré de 6 pages coûte 10 + 600 + 1 260 = 1 870 crédits, soit environ 4,68 $. Les travaux Fast PPT ne peuvent pas être narrés.
Comment gérer une mise à jour de directive dans toutes les langues ?
Augmentez la version de l’enregistrement source, marquez les anciennes lignes superseded, et relancez le travail. Chaque langue reçoit un nouveau jobId, un chemin de fichier contenant la nouvelle version, et une nouvelle ligne pending_review. Le tampon publié change uniquement quand un réviseur approuve, donc les patients ne voient jamais une mise à jour non revue, et le journal d’audit montre quand chaque langue a basculé.
Comment cela se compare-t-il aux autres API pour générer des présentations médicales ?
L’API Gamma, documentée sur developers.gamma.app, offre une automatisation similaire mais nécessite un plan Pro pour obtenir des clés API, tandis que les clés 2Slides fonctionnent sur tout compte, y compris la version gratuite avec 500 crédits. Cela rend possible un pilote IT hospitalier avant tout achat. Ce sont deux services tiers, donc les mêmes règles de dé-identification s’appliquent, et cette comparaison est écrite par l’équipe 2Slides.
Prochaines étapes
L’automatisation des diapositives d’éducation des patients est surtout un exercice de gouvernance avec un peu de code : un enregistrement source approuvé, un travail qui génère une présentation par langue, et une file de revue qui contrôle la publication.
- Obtenez une clé API sur 2slides.com/api ; les 500 crédits gratuits couvrent environ six présentations test de 8 pages.
- Parcourez les autres recettes par équipe dans l’article central, Cas d’usage de l’API de présentation IA par équipe.
- Lectures associées : Présentations IA pour la santé et les diapositives médicales pour le flux manuel que ce travail remplace, et Vidéos de formation d’entreprise avec voix IA pour la production des présentations de formation narrées.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free