2Slides Logo
医療APIによる患者教育スライド自動化(2026年版)
2Slides Team
4 min read

医療APIによる患者教育スライドの自動化(2026年版)

患者教育スライドの自動化とは、承認済みかつ匿名化されたソーステキスト(退院指示、手技説明、臨床ガイドライン)をコンテンツリポジトリからバックエンドジョブが読み取り、2Slides APIを通じてスライドデッキに変換することを指します。Fast PPTのgenerateは、1ページあたり10クレジットで、状態ごと・言語ごとに編集可能なPPTXを生成します。8ページのデッキなら80クレジット、約0.20ドルです。create-pdf-slidesgenerate-narrationを組み合わせると、ナレーション付きのスタッフ研修用デッキが作成できます。これは病院の教育チーム、デジタルヘルス企業、メドコムエージェンシー向けに設計されています。

主なポイント

  • 1つの承認済みソース文書から、responseLanguageの値を変えるだけで言語ごとに1つのデッキが生成されます。2Slidesはスペイン語、ベトナム語、アラビア語を含む20以上の言語に対応。
  • 8ページのFast PPT患者用デッキは80クレジット、約0.20ドル(5ドルのスターターパックの場合)。月500デッキなら40,000クレジットで、80ドルのパックに相当。
  • ナレーション付きの10ページスタッフ研修デッキは、画像デザインスライドで1,010クレジット、ナレーションで2,100クレジット、合計約7.78ドル。
  • userInputには承認済みかつ匿名化されたテキストのみを入力。患者名、MRN、誕生日は含みません。すべてのjobId、ソースバージョン、レビュアーの判断は監査テーブルに記録。
  • 2SlidesはHIPAA認証を主張せず、本記事は法的助言ではありません。コンプライアンス管理はユーザー側で実装・記録してください。

対象ユーザー

病院システムで患者教育を担当している方、デジタルヘルス企業でコンテンツ管理をしている方、メドコムエージェンシーで資料制作をしている方。課題は共通です:ガイドラインが変わると、6言語×40状態分のデッキが一斉に古くなり、修正できる人は診療中。承認済みソースからデッキを再生成し、臨床レビュアーに回すバックエンドジョブが、手動再作成をなくしつつレビューは維持します。

ソーステキストが未承認、または患者固有情報をプロンプトに入れる必要がある場合は、このレシピは適しません。制御されたコンテンツを大規模に公開するもので、個別のケアプランを生成するものではありません。

ワークフロー概要

ステップツール内容2Slidesエンドポイント / クレジット
1シークレットマネージャー、バックエンドサービスAPIキーをサーバー側に保管し、プロンプトに入るテキストを定義GET /api/v1/echo(認証チェック無料)
2コンテンツリポジトリ(Git、CMS、DAM)承認済みかつ匿名化されたソーステキスト(バージョンスタンプ・チェックサム付き)なし
3バックエンドジョブ落ち着いた臨床テンプレートを選び、状態と言語ごとに1デッキ生成GET /api/v1/themes/search(無料)、POST /api/v1/slides/generate(10クレジット/ページ)
4ジョブランナー+レビューデータベースポーリングしてPPTXをダウンロード、jobId・ソースバージョンと共に保存、レビュー待ちにマークGET /api/v1/jobs/{id}(無料)
5同じジョブ、研修トラック画像デザインのスタッフ研修デッキ作成、続けてオンボーディング動画用ナレーション生成create-pdf-slides(2K解像度で10+100クレジット/ページ)、generate-narration(210クレジット/ページ)
6臨床レビュアー、公開担当承認または却下、バージョンスタンプ付与、ポータルやLMSに公開download-slides-pages-voices(PNG+WAVの無料ZIP)

ステップ1:コンプライアンス境界を設定しAPIキーはサーバー側に保持

コードを書く前に、ネットワーク外に出るuserInputのテキスト範囲を明確にします。患者教育では、承認済みの一般向けコンテンツ(状態説明、手技説明、指示)に限定し、特定の患者を記述しません。HIPAAプライバシールールはhttps://www.hhs.gov/hipaaに記載。プライバシー担当者が第三者生成サービスのポリシー適合を判断してください。本記事はその代替ではありません。

APIキーは2slides.com/apiで取得。API Keysタブで500クレジットの無料キーが発行されます。これは8ページのテストデッキ約6セット分に相当。キーはシークレットマネージャーやサーバー環境変数に保管し、ブラウザやモバイルアプリ、共有ノートには絶対に置かないでください。

2Slides APIリファレンスとAPIキーをサーバー側に保持するセキュリティ注意

図1:2slides.comのAPIリファレンスページ。APIキーはサーバー側に保持する旨のセキュリティ注意を含む。

ジョブを実行するサーバーからキーを検証:

curl -s https://2slides.com/api/v1/echo \ -H "Authorization: Bearer $SLIDES_API_KEY"

認証済みレスポンスが返れば、資格情報は正しく設定されています。次はコンテンツへ。

ステップ2:承認済みかつ匿名化されたソースコンテンツをバージョンスタンプ付きで準備

生成ジョブはチャットウィンドウではなくレコードから読み込みます。最小限のソースレコードは承認テキスト、バージョン、承認機関を含み、どの言葉からデッキが作られたか追跡可能です。

{ "slug": "heart-failure-discharge", "title": "心不全入院後の退院時の注意", "version": "2026.09.1", "approved_by": "臨床教育委員会", "approved_on": "2026-09-03", "reading_level": "小学校6年生相当", "approved_text": "心不全とは心臓のポンプ機能が十分でない状態です。退院後は毎朝体重を測ってください… 1日で3ポンド、1週間で5ポンド増えたらケアチームに連絡を…" }

安全に送信するための3つのルール:

  • PHI(個人識別情報)は絶対に含めない。 名前、MRN、誕生日、予約日など個人を特定できる情報は不可。MRNや日付パターンの正規表現チェックを毎回実行し、失敗したらジョブをブロック。
  • 承認済みテキストのみ。 ジョブはapproved_textフィールドを読み、レコードのステータスがapprovedであることを確認。ドラフトは無視。
  • わかりやすい言葉で。 Fast PPTはテンプレートのプレースホルダーに合わせて文章を調整するため、小学校6年生レベルの文章が適切。

ステップ3:Fast PPTで多言語患者教育資料を生成

テンプレートは一度選択。落ち着いた臨床的な見た目を検索し、返されたthemeIdを設定に保存:

curl -s "https://2slides.com/api/v1/themes/search?query=healthcare&limit=5" \ -H "Authorization: Bearer $SLIDES_API_KEY"

query=medicalも試してください。高コントラスト、大きな文字、複雑なインフォグラフィックなしが望ましい。患者用デッキは待合室のスマホや看護師ステーションで印刷されるためです。

言語ごとに1デッキ生成。英語のソースは同じで、responseLanguageだけ変えます。複数ジョブをバッチで送るためmode: "async"を指定。

curl -s -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "心不全入院後の退院時の注意。心不全とは心臓のポンプ機能が十分でない状態です。退院後は毎朝朝食前に体重を測ってください。薬は薬剤シートに記載の通り正確に服用してください。塩分はケアチームの指示量に制限してください。1日で3ポンド、1週間で5ポンド増えた場合、息切れが悪化した場合、脚がむくんだ場合はケアチームに連絡してください。ソースバージョン2026.09.1、臨床教育委員会によるレビュー済み。", "themeId": "<themes/searchで得たthemeId>", "responseLanguage": "Spanish", "mode": "async" }'

レスポンスは{ "jobId": "..." }。同様に"Vietnamese", "Arabic", "Simplified Chinese"など対応言語で繰り返し。言語コードではなく言語名を渡すこと。"es"は不可、"Spanish"が正しい。

2Slides generateエンドポイントのresponseLanguageと20以上の対応言語

図2:generateエンドポイントのドキュメント。responseLanguageと20以上の対応言語を示す。

5~10秒ごとにポーリングし、ジョブがsuccessまたはfailedになるまで待つ:

curl -s https://2slides.com/api/v1/jobs/<jobId> \ -H "Authorization: Bearer $SLIDES_API_KEY"

完了するとPPTXのdownloadUrlが返る。generateは1キーあたり1分間に6リクエスト、jobs/{id}は10リクエストのレート制限あり。10言語なら10回の送信を10秒間隔で行い、各デッキは約30秒で返る。

ステップ4:Pythonでレビューキューを構築(生成、保存、承認)

以下のジョブは1つの承認済みソースレコードを読み込み、言語ごとにデッキを生成、PPTXをダウンロードし、deck_reviewsテーブルにpending_review状態で行を追加。公開は行わず、レビュアー(バイリンガル臨床医または認定医療翻訳者)がファイルを確認後にapprove()を呼び出します。

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", } # GET /api/v1/themes/search?query=healthcareで選択し設定に保存したもの 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): # 最小限のガード。独自パターンや上流の人間チェックを追加推奨。 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("ソーステキストが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} が失敗しました") time.sleep(8) # 5~10秒ごとにポーリング 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("承認済みソースレコードのみ生成可能です") 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) # 1キーあたり6リクエスト/分以下に抑える 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))

重要な設計ポイントは2つ。ファイルパスとDB行にソースバージョンとjobIdを含め、レビュアーが「このスライドはどの言葉から作られたか」を常に答えられること。そしてスクリプトに公開処理を含めず、公開はstatus = 'approved'の行のみを参照して行うこと。

ステップ5:ナレーション付き臨床スタッフ研修デッキを作成

患者用デッキはFast PPT経路のまま、看護師や教育者がPowerPointで編集・印刷します。スタッフ研修は新入社員がオンボーディング時に視聴する動画が必要なため、画像デザインスライド+音声のcreate-pdf-slidesgenerate-narration連携を使います。同じAPIキーとコンプライアンス境界で。

承認済みプロトコルテキストを送信。page: 0でスライド数はプランナーが選択可能。resolution: "2K"で1ページあたり100クレジットに抑制。

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": "インサービス:入院病棟での手指衛生とPPEの着脱手順。承認済みプロトコルバージョン2026.09。<承認済みプロトコルテキスト>", "designStyle": "落ち着いた臨床研修デッキ、柔らかい青と白、大きく読みやすい文字、シンプルな線画アイコン、患者写真なし", "aspectRatio": "16:9", "resolution": "2K", "page": 0, "contentDetail": "standard", "responseLanguage": "English" }'

前述のようにjobs/{jobId}をポーリング。デッキがsuccessになったら、そのジョブでナレーションをリクエスト:

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": "<create-pdf-slidesのjobId>", "mode": "single", "speakerName": "Clinical Educator", "voice": "Kore", "contentMode": "standard", "includeIntro": true }'

ナレーションは非同期のみで、1ページあたり210クレジット。完了後、POST /api/v1/slides/download-slides-pages-voices{ "jobId": "..." }を送ると、ページごとのPNG+WAVファイルの無料ZIPが返り、FFmpegでMP4に結合するかLMSに渡します。ナレーション原稿もスライドと同じレビュアーがチェック。音声の誤りも誤情報です。コンテンツ構成についてはAIで研修デッキを作る方法、PDFがある場合はPDFからスライドへのワークフローを参照。

ステップ6:患者教育スライド自動化の公開、バージョン管理、監査

公開は生成API呼び出しではなくDBクエリ。公開担当者はstatus = 'approved'の行を選び、PPTX(またはPDF)を患者ポータル、キオスク、LMSにコピーし、公開ページにソースバージョン、承認日、言語のスタンプを押す。ソースレコードが2026.10.1に更新されると、全言語で再生成され、古い行はsupersededにマークされ、レビュアーキューが再び埋まる。

deck_reviewsテーブルは監査ログ。各デッキについて、品質管理チームが知りたい「どのソースバージョンか」「どのチェックサムか」「どのテンプレートか」「どのjobIdか」「誰がいつレビューしたか」を答えます。記録ポリシーに従い保管してください。

参考スタイルの選び方

Fast PPTテンプレートにブランドイメージが合わない場合、画像デザイン経路で参考資料からデザインシステムを派生可能。2Slidesギャラリーには実際の参考デッキがあり、referenceImageUrlとしてcreate-like-thisに渡すか、designStyleプロンプトの参考に使えます。これらはAPI出力ではなく参考用デッキです。

2Slidesギャラリーの「The Future of Wellness 2025」参考デッキ、落ち着いた医療系ビジュアルスタイル

図3:「The Future of Wellness 2025 Edition」タイトルスライド。柔らかく低コントラストな医療系スタイルでreferenceImageUrlに適する。

同ギャラリーのコンテンツスライド、抑制されたパレットで臨床情報を読みやすく

図4:同デッキのコンテンツスライド。抑えた配色で臨床情報の可読性を確保。

2Slidesギャラリーの詳細ページ、スライドごとのプレビューとPPT/PDFダウンロード

図5:ギャラリー詳細ページ。スライド単位のプレビューとPPT/PDFダウンロード。ここでスライド画像URLをコピーし参考資料に使える。

多くの病院チームにとっては、自社の承認済みブランドスライドが最良の参考資料。公開URLにホストし、referenceImageUrlとして渡せば、すべてのスタッフデッキがそのデザインシステムを継承。

費用の目安

現実的な月間ボリューム例。患者用デッキは8ページのFast PPT、スタッフ研修デッキは10ページの2K画像デザイン+ナレーション付き。

項目1件あたりクレジットTier A: 患者用20デッキ+研修2デッキTier B: 患者用500デッキ+研修10デッキ
患者用デッキ(8ページ、Fast PPT)801,60040,000
スタッフ研修デッキ(10ページ、2K画像)1,0102,02010,100
ナレーション(10ページ)2,1004,20021,000
合計クレジット7,82071,100
概算USD$19.55($0.0025/クレジット、10,000クレジット$22.50パック相当)$142.20($0.002/クレジット、40,000クレジット$80パック相当)

Tier Aは10状態×2言語+月2本のインサービス動画。Tier Bは50状態×10言語+月10本の動画で、多施設システム相当。クレジットは従量課金制。Proプランは月10,000クレジット追加だがAPI利用に必須ではない。

このユースケースにFast PPTと画像デザインスライドのどちらを使うべきか?

ニーズ利用API理由
看護師が編集・印刷する患者用配布資料generate(Fast PPT)ネイティブ編集可能PPTX、10クレジット/ページ、1デッキ約30秒
同じ内容を10言語で用意generate + responseLanguageソース1つ、言語ごとにパラメータ変更のみ
スタッフ向けオンボーディング動画create-pdf-slidesgenerate-narration画像デザインのみナレーション対応。PNG+WAVのZIPでMP4作成可能
病院ブランドイメージに完全準拠したデッキcreate-like-this + referenceImageUrl承認済みスライドからデザインシステムを派生

Fast PPTはナレーション不可。低リテラシー向けに音声が必要な患者用デッキは画像デザイン経路で、1ページ100クレジット+ナレーション210クレジット。PDF+画像で返るため編集不可。

よくある落とし穴

  • PHIが二次的なフィールドから漏れる。 ガイドラインの「症例紹介」段落に実患者情報が含まれることも。userInputに連結するすべてのフィールドでパターンチェックを行い、上流で人間による匿名化を必ず実施。
  • 再生成バーストでレート制限に引っかかる。 generatecreate-pdf-slidesgenerate-narrationは1キーあたり1分間に6リクエスト。送信は10秒間隔でキューイング。50状態×10言語の再生成は500ジョブ、約84分かかるため夜間バッチに適切。
  • APIキーをフロントエンドやノートに置く。 キーはサーバー環境変数に保持。共有ドキュメントにキーが出たらすぐにローテーション。
  • Fast PPTジョブにナレーションを試みる。 generate-narrationgenerateのjobIdを拒否。音声が必要ならcreate-pdf-slidescreate-like-thisを使う。
  • 言語をコードで渡す。 responseLanguage"Vietnamese""Traditional Chinese"など言語名を受け付け、"vi"などコードは不可。
  • 40ページのガイドラインを丸ごと貼る。 長すぎる入力は密で雑多なスライドに。まず6~10の患者向けポイントに要約するか、画像デザイン経路でpage: 0を指定しプランナーに枚数を選ばせる。

よくある質問

患者教育コンテンツをAIプレゼンAPIに送っても安全ですか?

承認済みで一般向け、PHIを含まない内容なら適切です。「心不全患者向け退院指示」はPHIなしですが、特定患者名の記載はNG。PHIチェックは自動化し上流で行い、プライバシー担当者を巻き込んでください。2SlidesはHIPAA認証を主張せず、本記事は法的助言ではありません。

多言語患者教育資料はどの言語で生成可能ですか?

2SlidesはresponseLanguageで20以上の出力言語をサポート。英語、スペイン語、アラビア語、ポルトガル語、ベトナム語、簡体字中国語、繁体字中国語、ヒンディー語、韓国語、ロシア語、フランス語、ドイツ語など。ISOコードではなく言語名を渡してください。出力は初稿として、バイリンガル臨床医や認定医療翻訳者が公開前にレビューしてください。

患者向けデッキもスタッフ研修デッキのようにナレーションできますか?

はい、ただし画像デザイン経路のみです。患者用デッキをFast PPTではなくcreate-pdf-slides(2K解像度で1ページ100クレジット)で生成し、続けてgenerate-narration(1ページ210クレジット)を呼び出します。6ページのナレーション付き患者説明は10 + 600 + 1,260 = 1,870クレジット、約4.68ドル。Fast PPTジョブはナレーション不可。

ガイドライン更新を全言語にどう反映しますか?

ソースレコードのバージョンを上げ、古い行をsupersededにマークし、ジョブを再実行。各言語に新しいjobIdと新バージョンを含むファイルパス、pending_review行が作られます。公開スタンプはレビュアー承認時のみ更新されるため、患者は未レビューの更新を見ず、監査ログで言語ごとの切り替え時期がわかります。

他の医療プレゼン生成APIと比べてどうですか?

GammaのAPI(developers.gamma.app)も類似の自動化を提供しますが、APIキー発行にProプランが必要です。一方2Slidesは無料アカウントでも500クレジット付きのキーが発行され、病院ITのパイロットが購入前に可能。どちらも第三者サービスなので匿名化ルールは同様に適用されます。本比較は2Slidesチームによるものです。

次のステップ

患者教育スライド自動化は、承認済みソースレコード、言語ごとに1デッキ生成するジョブ、公開を制御するレビューキューという、少量のコードとガバナンスの組み合わせです。

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free