什么是C4模型?
C4模型是一种简单且直观的方式来描述和沟通软件架构。它代表:
- 上下文 – 整体概览(谁使用该系统,以及周围存在哪些其他系统)
- 容器 – 高层次的技术构建模块(Web应用、移动应用、数据库等)
- 组件 – (可选)每个容器的内部结构
- 代码 – (可选)类/实现级别
它帮助团队和利益相关者在不同层级的视角下理解系统,而不会陷入细节之中。
下面我们将前两个层级(上下文和容器)应用于一个现实世界中的医疗预约预订系统.
我们为什么需要这个系统?
传统的医院预约安排令人痛苦:
- 患者在办公时间内拨打电话并等待接听
- 工作人员手动在纸质或分散的系统中查看医生的日程安排
- 重复预约和爽约现象很常见
- 患者没有简便的方式查看自己的医疗摘要或参加视频会诊
- 提醒被遗忘 → 浪费了诊所时间
新的医疗预约预订系统通过为患者提供7×24小时自助预约、实时可用性、自动提醒以及与远程医疗和电子病历系统的集成,解决了这些问题。
主要参与者有哪些?
| 参与者 | 描述 |
|---|---|
| 患者 | 需要医疗护理的人。预约、重新安排或取消预约;参与虚拟就诊 |
| 医疗人员 | 医生、护士、接待员,负责管理日程并治疗患者 |
层级1:系统上下文图
这是从3万英尺高空俯瞰的视角
@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 模型(上下文图 + 容器图)。参与者:患者和医疗人员(医生、护士、管理员)。该系统允许患者全天候预约、改期和取消预约,参加远程医疗视频通话,接收自动提醒,并查看自己的医疗摘要。它与现有的电子病历系统、医院主日程系统以及消息网关集成。使用现代技术栈:React Web 应用、React Native 移动应用、Node.js 后端、Python 调度引擎、PostgreSQL + MySQL 数据库,视频使用 WebRTC。”
→ 在不到 10 秒内,您将获得一个美观且布局正确的C4 上下文图 和 C4 容器图—— 与您之前看到的 PlantUML 示例几乎完全相同,但已渲染完成,可直接用于演示。
步骤 2:通过自然语言命令即时优化(2–5 分钟)
现在只需与图表对话:
- “添加一个通知服务容器,用于发送短信和邮件提醒”
- “将通知服务连接到医院消息系统”
- “使用 WebRTC 展示远程医疗模块”
- “将数据库拆分为患者数据库(MySQL)和预约数据库(PostgreSQL)”
- “将‘医疗人员’重命名为‘医生 / 护士 / 接待员’并为其添加图标”
- “将布局改为自上而下,并添加图例”
- “使 Web 应用和移动应用均通过 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模型成为现代软件架构文档事实标准的原因。