什麼是C4模型?
C4模型是一種簡單且直觀的方式,用於描述和溝通軟體架構。它代表:
- 上下文 – 整體概況(誰使用此系統,以及周圍存在哪些其他系統)
- 容器 – 高階技術模組(網頁應用程式、行動應用程式、資料庫等)
- 組件 – (可選)每個容器的內部結構
- 程式碼 – (可選)類別/實作層級
它幫助團隊和利益相關者在不同層級的縮放下理解系統,而不會陷入過多細節。
以下我們將前兩個層級(上下文與容器)應用於一個實際案例醫療預約系統.
我們為什麼需要這個系統?
傳統醫院預約排程令人痛苦:
- 病患在辦公時間撥打電話並等待接通
- 工作人員手動檢查醫生的排程,這些排程分散在紙本或零散的系統中
- 重複預約和爽約的情況很常見
- 病患沒有簡單的方法查看自己的醫療摘要或參與視訊會診
- 提醒被遺忘 → 浪費診療時間
新的醫療預約系統透過提供病患24小時自助預約、即時可用性、自動提醒,以及與遠距醫療和電子病歷系統的整合,解決這些問題。
主要參與者有哪些?
| 參與者 | 描述 |
|---|---|
| 病患 | 需要醫療照護的人。預約、重新安排或取消預約;參與虛擬會診 |
| 醫療人員 | 醫生、護士、接待員,負責管理時程並治療病人 |
等級 1:系統上下文圖
這是從三萬英尺高空俯瞰的視角
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
LAYOUT_TOP_DOWN()
LAYOUT_WITH_LEGEND()
標題:系統上下文圖 – 醫療預約系統
Person(患者, “患者”, “預約時段,參與視訊會診”)
Person(醫療人員, “醫療人員”, “醫生、護士、管理員”)
System(預約系統, “醫療預約系統”, “用於預約、重新安排、取消預約及虛擬會診的核心系統”)
System_Ext(電子病歷系統, “電子病歷系統”, “電子健康紀錄”)
System_Ext(遠距醫療平台, “遠距醫療平台”, “視訊會診基礎設施”)
System_Ext(排程系統, “醫院排程系統”, “醫生/房間的總日曆”)
System_Ext(通訊系統, “醫院通訊系統”, “簡訊/電子郵件網關”)
Rel(患者, 預約系統, “預約/重新安排時段,參與視訊通話”)
Rel(患者, 遠距醫療平台, “透過此平台進行虛擬會診”)
Rel(患者, 電子病歷系統, “檢視個人紀錄(僅讀)”)
Rel(醫療人員, 預約系統, “管理預約”)
Rel(醫療人員, 電子病歷系統, “讀取/寫入病患紀錄”)
Rel(醫療人員, 排程系統, “檢視總體排程”)
Rel(醫療人員, 通訊系統, “發送通知”)
Rel(預約系統, 排程系統, “檢查並更新即時可用性”)
Rel(預約系統, 電子病歷系統, “同步病患識別碼與基本資料”)
Rel(預約系統, 通訊系統, “觸發簡訊/電子郵件提醒”)
@enduml

上下文中的關鍵要點:我們的預約系統是連接病人、人員與四個現有企業系統的中心樞紐。
等級 2:容器圖
現在我們進行放大,展示系統邊界內的主要技術組件。

關鍵容器說明
| 容器 | 技術 | 責任 |
|---|---|---|
| 網頁預約應用程式 | React + Node.js/Express | 供患者與員工使用的單頁應用程式 |
| 行動應用程式 | React Native | 患者使用的原生 iOS/Android 經驗 |
| 遠距醫療模組 | WebRTC + 信令伺服器 | 安全視訊通話、等候室、螢幕共用 |
| 排程引擎 | Python/Django | 核心業務邏輯:避免重複預約、緩衝時間、假日 |
| 通知服務 | Node.js + Redis + BullMQ | 可靠地在 24 小時、2 小時及 15 分鐘前傳送提醒 |
| 患者資料庫 (MySQL) | MySQL 8 | 個人資料、同意事項、偏好語言 |
| 預約資料庫 (PostgreSQL) | PostgreSQL 15 | 所有預約與變更的不可更改審計紀錄 |
我們何時使用每張圖表?
| 情境 | 應顯示哪張圖表 |
|---|---|
| 與醫院高階主管或患者對話 | 上下文圖(整體概觀,無技術術語) |
| 新開發人員入職 | 容器圖(顯示程式碼存放位置) |
| 討論安全性與合規性邊界 | 容器(明確區分內部與外部系統) |
| 選擇技術堆疊或雲端部署 | 容器(顯示資料庫、訊息佇列等) |
| 撰寫與外部供應商的RFP或合約 | 上下文 + 容器 |
如何使用Visual Paradigm 的 AI 驅動視覺化模型聊天機器人以簡化醫療預約系統的整個 C4 模型流程
以下是一個真實世界的逐步工作流程,可將數小時的手動繪圖與文件編寫,轉化為與 AI 的 10 至 15 分鐘對話。

步驟 1:從零開始,僅需一個提示(30 秒)
只需將以下內容輸入 Visual Paradigm 的 AI 聊天中:
「為現代醫療預約系統建立完整的 C4 模型(上下文圖 + 容器圖)。參與者:患者與醫療人員(醫生、護士、行政人員)。系統讓患者可 24/7 預約、重新安排及取消預約,參與遠端醫療視訊會議,接收自動提醒,並檢視自己的醫療摘要。系統整合現有的電子病歷系統、醫院主排程系統與訊息網關。使用現代技術堆疊:React 網頁應用、React Native 移動應用、Node.js 後端、Python 排程引擎、PostgreSQL 與 MySQL 資料庫,以及 WebRTC 用於視訊。」
→ 在不到 10 秒內,您即可獲得一張美觀且正確排版的C4 上下文圖與C4 容器圖——幾乎與您先前看到的 PlantUML 範例相同,但已自動渲染且可直接用於簡報。
步驟 2:使用自然語言指令立即進行優化(2–5 分鐘)
現在只需與圖表對話:
- 「新增一個通知服務容器,用於發送簡訊與電子郵件提醒」
- 「將通知服務連接至醫院訊息系統」
- 「以 WebRTC 顯示遠端醫療模組」
- 「將資料庫拆分為患者資料庫(MySQL)與預約資料庫(PostgreSQL)」
- 「將『醫療人員』重新命名為『醫生/護士/接待員』,並加入圖示」
- 「將版面改為自上而下,並加入圖例」
- 「讓網頁應用與行動應用程式均透過 HTTPS 與後端連接」
每個命令都會立即更新實時圖表——無需拖曳、無需重新對齊、無語法錯誤。
步驟 3:提出您的圖表問題(即時洞察)
將其視為一位知識豐富的建築師坐在您身旁:
- 「這個系統依賴哪些外部系統?」
- 「列出所有容器及其技術」
- 「主要的安全邊界是什麼?」
- 「生成一份關於此架構的一頁式高層概要」
- 「為我們的招標文件撰寫一段三段落的描述」
您將立即獲得完美撰寫的文字,可直接複製貼上至提案、Confluence 或 PowerPoint 中。
步驟 4:按需獲取完整文件(30 秒內)
告訴 AI:
「為此 C4 模型生成專業的架構文件,包含上下文描述、容器描述、關鍵設計決策及技術選型。」
您將在幾秒內收到一份完整且美觀排版的 Markdown 或 Word 可用文件。
步驟 5:在需要團隊協作時,一键匯出至專業工具
當設計獲得批准後:
- 點擊「在 Visual Paradigm 桌面版中開啟」或「匯出為 .vpp 專案」
- 整個模型(包含形狀、佈局、註解、術語表)將在完整的 Visual Paradigm 工具中打開,供團隊審查、版本控制、新增元件圖或序列圖、產生 PDF/PNG 等。
這為醫療專案帶來革命性改變的原因
| 傳統方式(2–8 小時) | 使用 Visual Paradigm AI(10–15 分鐘) |
|---|---|
| 開啟 PlantUML / draw.io / Lucidchart | 只需輸入一段文字 |
| 手動建立每個方框與箭頭 | AI 立即生成 95% 正確的圖表 |
| 反覆修正佈局與對齊 | 每次編輯後,AI 均能維持完美佈局 |
| 另行撰寫文件 | 提問 → 立即獲得完美的文件 |
| 在不同工具間複製貼上 | 一键無縫轉移至功能完整的桌面工具 |
結果:解決方案架構師、企業架構師和開發團隊現在可以比安排下一次會議還快地產出適合利益相關者的C4圖表和文件。
立即開始:前往 Visual Paradigm Online → 「AI聊天」→ 貼上上方的提示,並在幾秒內觀看神奇效果發生。
總結
僅使用兩個簡單的圖表,我們現在就能清楚回答:
- 系統的功能是什麼,以及誰會受益
- 它如何融入現有的醫院IT環境
- 我們需要建立或整合哪些主要應用程式和資料庫
這種清晰度大幅減少業務利益相關者、架構師和開發團隊之間的誤解——這正是C4模型成為現代軟體架構文件事實標準的原因。