2Slides Logo
使用醫療API自動化病患教育簡報(2026)
2Slides Team
6 min read

使用醫療 API 自動化病患教育簡報 (2026)

病患教育簡報自動化指的是後端工作從您的內容庫讀取經過核准且去識別化的原始文字(出院指示、程序說明、臨床指引),並透過 2Slides API 將其轉換成簡報。Fast PPT 的 generate 每頁 10 點數,依疾病與語言產生可編輯的 PPTX,8 頁簡報約需 80 點數,約 0.20 美元。create-pdf-slides 加上 generate-narration 則產生帶旁白的員工訓練簡報。此方案專為醫院教育團隊、數位健康公司與醫療傳播代理商打造。

重點摘要

  • 一份核准的原始文件透過改變單一 responseLanguage 參數,即可產生每種語言一套簡報;2Slides 支援超過 20 種語言,包括西班牙語、越南語與阿拉伯語。
  • 一套 8 頁的 Fast PPT 病患簡報需 80 點數,約 0.20 美元(以 5 美元入門包計算);每月 500 套簡報需 40,000 點數,正好是 80 美元的點數包。
  • 一套 10 頁帶旁白的員工內訓簡報,圖片設計部分需 1,010 點數,旁白需 2,100 點數,總計約 7.78 美元。
  • 只有經核准且去識別化的文字可放入 userInput,不得包含病患姓名、病歷號或出生日期。每個 jobId、原始版本與審核決策皆寫入稽核表。
  • 2Slides 不宣稱符合 HIPAA 認證,本文非法律建議;合規控管由您自行實施與記錄。

適用對象

您負責醫院系統的病患教育、數位健康公司的內容管理,或醫療傳播代理商的教材製作。痛點相同:指引更新時,40 個疾病特定簡報、6 種語言同時過時,而能修正的人員正忙於門診。透過後端工作從核准的原始資料重新生成簡報並送交臨床審核,可免除手動重建,卻不失審核流程。

若您的原始文字尚未核准,或需輸入任何病患特定資訊,請勿使用此方案。它是用於大規模發佈受控內容,非產生個別化照護計畫。

工作流程一覽

步驟工具發生什麼事2Slides 端點 / 點數
1秘密管理器、後端服務將 API 金鑰存於伺服器端,定義可輸入提示的文字GET /api/v1/echo(免費驗證)
2內容庫(Git、CMS、DAM)核准且去識別化的原始文字,帶版本標記與校驗碼
3後端工作選擇冷靜臨床模板,依疾病與語言產生簡報GET /api/v1/themes/search(免費)、POST /api/v1/slides/generate(每頁 10 點數)
4工作執行器 + 審核資料庫輪詢、下載 PPTX,存檔並標記待審核GET /api/v1/jobs/{id}(免費)
5同一工作,訓練路徑產生圖片設計員工內訓簡報,接著產生旁白影片create-pdf-slides(每頁 10 + 100 點數,2K 解析度)、generate-narration(每頁 210 點數)
6臨床審核者、發佈者核准或拒絕,蓋版本章,發佈至入口網站或 LMSdownload-slides-pages-voices(免費下載 PNG + WAV ZIP)

步驟 1:劃定合規邊界並將 API 金鑰保存在伺服器端

撰寫任何程式碼前,先明確界定什麼文字可作為 userInput 離開您的網路。對病患教育而言,僅限核准的、面向一般大眾的疾病、程序或指示說明文字,絕不包含特定病患資訊。HIPAA 隱私規則詳見 hhs.gov/hipaa,您的隱私官決定第三方生成服務如何符合政策。本文不替代該審查。

接著至 2slides.com/api 取得 API 金鑰。金鑰於 API Keys 頁籤發放,含 500 點免費點數,約可生成六套 8 頁測試簡報。金鑰應存於秘密管理器或伺服器端環境變數,絕不可放在瀏覽器、行動應用或共用筆記本。

2Slides API 參考頁面,含金鑰必須保存在伺服器端的安全說明

圖 1:2slides.com 的 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": "小學六年級", "approved_text": "心衰竭表示心臟無法有效泵血。出院後:每天早晨稱重... 若一天內體重增加 3 磅或一週增加 5 磅,請聯絡您的照護團隊..." }

三項規則確保紀錄安全可送出:

  • 絕不含 PHI。 不得有姓名、病歷號、出生日期、預約日期或任何描述個人資訊。每次送出前會用正規表達式檢查病歷號與日期格式,若檢查不過則阻擋工作。
  • 僅核准文字。 工作讀取狀態為 approved 的紀錄的 approved_text 欄位,草稿不處理。
  • 淺顯易懂的文字。 Fast PPT 會將您的文字套入模板,建議使用小學六年級閱讀程度的文字以產生相應層級的簡報。

步驟 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。選擇高對比、大字體、無複雜圖表;病患簡報常在候診室手機閱讀或護理站列印。

接著依語言產生簡報。英文原文不變,只改 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": "心衰竭住院出院後注意事項。心衰竭表示心臟無法有效泵血。出院後:每天早餐前稱重。依照藥物清單準時服藥。限制鹽分攝取量,遵照照護團隊指示。若一天內體重增加 3 磅或一週增加 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 秒輪詢工作狀態,直到 successfailed

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

完成後會回傳 PPTX 的 downloadUrlgenerate 限制每金鑰每分鐘 6 次請求,jobs/{id} 每分鐘 10 次。10 種語言同一疾病即 10 次提交,間隔 10 秒,每套簡報約 30 秒完成。

步驟 4:用 Python 建立審核佇列(產生、儲存、核准)

以下程式讀取一筆核准原始紀錄,依語言產生簡報,下載 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) # 保持每金鑰每分鐘不超過 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))

兩個設計重點:檔案路徑與資料庫列皆帶有原始版本與 jobId,方便審核者回答「這張投影片是用哪段文字產生的?」且腳本不含發佈步驟,發佈只讀取 status = 'approved' 的列。

步驟 5:產生帶旁白的臨床員工訓練簡報

病患簡報走 Fast PPT 路徑,護理師與教育者可在 PowerPoint 編輯。員工內訓通常需新進員工可觀看的影片,故需圖片設計簡報加語音:使用 create-pdf-slidesgenerate-narration,同一金鑰與合規邊界。

送出核准的指引文字。page: 0 讓規劃者決定頁數;resolution: "2K" 控制每頁 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": "內訓:住院單位手部衛生與個人防護裝備穿脫流程。核准指引版本 2026.09。<此處放核准指引文字>", "designStyle": "冷靜臨床訓練簡報,柔和藍白色調,大字體易讀,簡單線條圖示,無病患照片", "aspectRatio": "16:9", "resolution": "2K", "page": 0, "contentDetail": "standard", "responseLanguage": "English" }'

照前述方式輪詢 jobs/{jobId}。簡報完成後,呼叫旁白產生:

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 }'

旁白僅支援非同步,費用為每頁 210 點數。完成後,呼叫 POST /api/v1/slides/download-slides-pages-voices 並帶 { "jobId": "..." },可免費取得每頁 PNG 與 WAV 檔案 ZIP,您的流程可用 FFmpeg 合成 MP4,或交由 LMS 使用。旁白稿與簡報同由審核者檢查,音訊錯誤仍是錯誤。內容結構參考 如何用 AI 製作訓練簡報;若指引為 PDF,則參考 PDF 轉簡報 工作流程,先摘要再送出。

步驟 6:發佈、版本標記與稽核病患教育簡報自動化

發佈是資料庫查詢,不是生成呼叫。發佈者挑選 status = 'approved' 的列,將 PPTX(或匯出 PDF)複製到病患入口網站、資訊亭或 LMS,並在發佈頁面蓋上版本章:原始版本、核准日期、語言。當原始紀錄升級為 2026.10.1,工作重新生成所有語言,舊列標記為 superseded,審核佇列重新填滿。

deck_reviews 表即稽核日誌。每套簡報可回答品質團隊常問的問題:使用哪個原始版本、校驗碼、模板、jobId、誰審核、何時審核。依照您的紀錄保存政策保留。

選擇參考風格

若無 Fast PPT 模板符合您的視覺識別,圖片設計路徑可從參考圖片衍生設計系統。2Slides Gallery 提供真實案例簡報,可作為 referenceImageUrl 傳入 create-like-this,或作為 designStyle 提示靈感。它們是參考簡報,不是本工作流程的 API 輸出。

2Slides Gallery 中的「The Future of Wellness 2025」參考簡報,冷靜的醫療風格

圖 3:「The Future of Wellness 2025 Edition」標題頁,2Slides Gallery,柔和低對比的醫療風格,適合作為 referenceImageUrl

2Slides Gallery 中的「The Future of Wellness 2025」參考簡報,冷靜的醫療風格

圖 4:同一 Gallery 簡報的內容頁,展示克制的調色板如何保持臨床資訊易讀。

2Slides Gallery 健康產業簡報細節頁,含逐頁預覽與 PPT/PDF 下載

圖 5:Gallery 細節頁,含逐頁預覽與 PPT/PDF 下載;可複製投影片圖片 URL 作為參考。

對多數醫院團隊而言,更佳的參考是您自家核准的品牌簡報:將其放在公開 URL,傳入 referenceImageUrl,每套員工簡報即繼承該設計系統。

費用估算

兩種實際月度用量。病患簡報為 8 頁 Fast PPT 檔;員工訓練簡報為 10 頁 2K 圖片設計簡報,含旁白。

項目每份點數A 方案:20 套病患簡報 + 2 套帶旁白訓練簡報B 方案:500 套病患簡報 + 10 套帶旁白訓練簡報
病患簡報,8 頁,Fast PPT801,60040,000
員工簡報,10 頁,2K 圖片設計1,0102,02010,100
旁白,10 頁2,1004,20021,000
總點數7,82071,100
約略美元19.55 美元(0.0025 美元/點數,適用 10,000 點數包 22.50 美元)142.20 美元(0.002 美元/點數,適用 40,000 點數包 80 美元)

A 方案為 10 種疾病、2 種語言的資料庫,加上每月兩支內訓影片。B 方案為 50 種疾病、10 種語言,加上十支影片,約為多院區系統。點數採用隨用隨付,Pro 計畫每月額外 10,000 點數非必須。

本案例 Fast PPT 或圖片設計簡報?

需求使用原因
護理師會編輯列印的病患手冊generate(Fast PPT)原生可編輯 PPTX,每頁 10 點數,約 30 秒完成一套
同內容多達 10 種語言generate 搭配 responseLanguage一份原文,語言參數切換
員工入職影片create-pdf-slides 後接 generate-narration只有圖片設計簡報能產生旁白;PNG + WAV ZIP 可合成 MP4
必須符合醫院品牌形象的簡報create-like-this 搭配 referenceImageUrl從核准簡報衍生設計系統

Fast PPT 無法產生旁白。若病患簡報需音訊以協助低識字率族群,請走圖片設計路徑,每頁 100 點數加 210 點數旁白,回傳 PDF 與圖片,非可編輯 PPTX。

常見陷阱

  • PHI 從次要欄位滲入。 指引中的「案例說明」段落可能含真實病患資訊。對所有拼接入 userInput 的欄位執行模式檢查,並在上游加入人工去識別步驟。
  • 重建高峰時觸及速率限制。 generatecreate-pdf-slidesgenerate-narration 每金鑰每分鐘限 6 次請求。提交間隔 10 秒;50 種疾病 × 10 種語言共 500 個工作,約 84 分鐘,適合夜間批次。
  • API 金鑰出現在前端或筆記本。 金鑰應保存在伺服器端環境變數。若曾出現於共用文件,請立即更換。
  • 嘗試為 Fast PPT 工作產生旁白。 generate-narration 拒絕 generate 的 jobId。需使用 create-pdf-slidescreate-like-this
  • 語言以代碼傳入。 responseLanguage 需傳語言名稱,如 "Vietnamese""Traditional Chinese",代碼如 "vi" 會失敗。
  • 整份 40 頁指引全文貼入。 輸入過長會產生密集且雜亂的簡報。請先摘要至 6 至 10 個病患重點,或在圖片設計路徑設定 page: 0 讓規劃者決定頁數。

常見問題解答

將病患教育內容送到 AI 簡報 API 是否安全?

只要內容是核准的、面向一般大眾且不含受保護健康資訊(PHI),即屬適當。針對「心衰竭病患」的出院指示不含 PHI;若提及特定病患姓名則含 PHI。請保持 PHI 檢查自動化且置於上游,並諮詢您的隱私官。2Slides 不宣稱符合 HIPAA,本文章非法律建議。

多語言病患教育材料可產生哪些語言?

2Slides 透過 responseLanguage 支援 20 多種輸出語言,包括英文、西班牙文、阿拉伯文、葡萄牙文、越南文、簡體中文、繁體中文、印地文、韓文、俄文、法文與德文。請傳語言名稱而非 ISO 代碼。輸出視為初稿,需雙語臨床醫師或認證醫療翻譯審核後再發佈。

病患簡報能像員工訓練簡報一樣有旁白嗎?

可以,但僅限圖片設計路徑。使用 create-pdf-slides 產生病患簡報(2K 解析度每頁 100 點數),再呼叫 generate-narration(每頁 210 點數)。6 頁帶旁白病患說明約需 10 + 600 + 1,260 = 1,870 點數,約 4.68 美元。Fast PPT 工作無法產生旁白。

如何處理指引更新,涵蓋所有語言?

提升原始紀錄版本,標記舊列為 superseded,重新執行工作。每種語言獲得新 jobId,檔案路徑含新版本,並新增 pending_review 列。發佈標記僅在審核通過時更新,病患不會看到未審核的更新,稽核日誌記錄每種語言切換時間。

與其他醫療簡報生成 API 比較如何?

Gamma API(文件見 developers.gamma.app)提供類似自動化,但需 Pro 計畫才能取得 API 金鑰;2Slides 金鑰適用任何帳號,包括免費層 500 點數,方便醫院 IT 先行試用。兩者皆為第三方服務,去識別規則相同,本文由 2Slides 團隊撰寫。

下一步

病患教育簡報自動化主要是治理工作,程式碼量少:一筆核准原始紀錄、一個依語言產生簡報的工作,以及一個審核佇列控管發佈。

About 2Slides

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

Try For Free