【学习工作】 DentalCase:口腔病例展示创作平台 · Demo

### 我是一名口腔医生,没有任何编程和设计背景。坦白说,这个想法在我脑子里已经转了很久——每次在 PPT 里反复对齐图片、调整裁剪、改标题的时候,我都在想:明明上次做过一样的版式,为什么不能直接保存下来下次用?看到同行发了一张漂亮的病例展示图,想照着做自己的版本,为什么只能肉眼模仿?这些想法一直停留在"想想而已"的阶段,因为我不会写代码,不知道怎么把它变成现实。

直到遇到 TRAE。它让我可以用自然语言描述需求,AI 帮我写代码、调接口、做部署——一个完全不懂技术的牙医,从零开始,把这个想了很久的东西真正做了出来。这个 Demo 的每一行代码都是我和 TRAE 对话产生的。我想这就是 AI 时代最打

动我的地方:它不是替你思考,而是让没有技术背景的人,也能把脑子里想了很久的东西变成现实。

### 一、Demo 简介

**是什么:** DentalCase 是一款面向口腔医生的病例展示图创作工具——上传一张你满意的病例展示图,AI 自动识别版式结构并生成可复用模板,之后只需填入新病例照片和文字,即可一键导出同款版式的展示图。

**面向谁:** 所有需要制作病例展示图的口腔医生,包括正畸、美学修复、种植、儿牙、全科等亚专科医生,以及口腔研究生和诊所团队。

**核心功能:**

1. **AI 版式识别**:上传任意病例展示图(自己做的或同行分享的),AI 自动分析图片区域、文字区域的位置和比例,生成结构化模板。识别结果包含画布尺寸、背景色、各槽位(图片/文字)的坐标与标签。

2. **画布编辑器**:基于模板进行病例创作,支持图片拖拽定位、缩放适配,文字实时编辑同步到画布,所见即所得。

3. **模板库管理**:内置 4 套预设模板(治疗前后对比、三视图、四宫格、全景+细节),AI 识别的模板自动入库,支持模板 JSON 导入导出,逐步构建个人专属版式库。

4. **高清导出**:支持 PNG/JPG 格式导出,2 倍分辨率输出,满足学术汇报和社交分享的画质需求。

### 二、Demo 创作思路

**灵感来源:** 作为口腔行业从业者,我观察到身边医生每周都在重复做病例展示图——学术会议汇报需要前后对比图,诊所宣传需要统一风格的展示内容,患者沟通需要直观的治疗过程图。但每一次都在 PPT 或 PS 里从头排版,即使版式和上次一模一样,也要重新拖拽、对齐、裁剪、改字。更有医生看到同行发了一张很漂亮的病例图,想照着做自己的版本,只能凭肉眼模仿,费时费力还做不到一样好看。

**想解决的问题:** 传统设计工具(PPT/PS/Keynote)没有版式记忆功能,做过的版式无法保存复用;普通模板库(Canva)只提供别人设计好的固定模板,既不能沉淀自己的风格,也不能"学会"别人好看的版式。这中间存在一个巨大的空白——医生真正需要的不是"教我设计"或"给我模板",而是"记住我做过的版式,下次直接用"。

**为什么做这个方向:** AI 视觉理解能力已经可以识别图片中的版式结构(哪块是照片、哪块是标题、比例多少),结合画布编辑器,就能把"看一张图 → 拆出版式 → 新病例填进去 → 导出"这个流程自动化。核心理念:把时间留给临床,让病例更好呈现。

### 三、Demo 体验地址

体验地址:https://helpful-banoffee-5b85b5.netlify.app/

打开即可体验完整功能:浏览预设模板库、选择模板进入编辑器、上传图片到槽位、编辑文字、画布拖拽缩放、高清导出。

### 四、TRAE 实践过程

本项目全程使用 TRAE IDE 完成,以下是从产品定位到部署上线的完整开发历程:

**Step 1 · 产品定位与差异化分析**

与 TRAE 深度对话分析产品定位。核心洞察是:医生的痛点不是"不会设计",而是"做过的版式没法复用"。传统工具(PPT/PS)没有版式记忆功能,模板库(Canva)只提供固定模板——两者都无法沉淀医生自己的审美资产。最终确定差异化定位:**“版式记忆引擎”**,把医生欣赏的病例展示图(自己的或同行的)通过 AI 识别版式结构,转化为可长期复用的智能模板。

Session ID:2913064871265952:5b1aab4a331b79947e160e947517a7f1_6a53da623ab817e3596d3fbb.6a53da623ab817e3596d3fbe.6a53da623ab817e3596d3fbc:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/13 02:18:10)

**Step 2 · PRD 文档与 V1 范围定义**

通过 TRAE 对话完成了产品需求文档的迭代。确定了 V1 核心闭环:**上传参考图 → AI 识别版式 → 医生微调 → 保存模板 → 上传新病例图 → 编辑文字 → 导出**。明确了不做 AI 图片分类、多页 PPT、登录及历史记录等功能,先跑通最小可用闭环。同时完成了创意产品文档的生成(dentalcase-product-doc.html)。

Session ID:2913064871265952:4c43d17c803ddde074e73b2af1133acd_6a53da623ab817e3596d3fbb.6a5506423ab817e3596d4068.6a5506423ab817e3596d4066:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/13 23:37:38)

**Step 3 · 技术选型与项目骨架搭建**

与 TRAE 协作确定了技术栈:**React 18 + TypeScript + Vite 6 + Tailwind CSS + Fabric.js 6.4 + Dexie 4(IndexedDB)**。TRAE 协助完成了项目骨架搭建、核心数据模型设计(Slot/Template/Case 三层结构)、首页三入口卡片(创建病例 / 官方模板库 / 我的模板)、4 套预设模板(治疗前后对比、三视图、四宫格、全景+细节)以及画布基础展示功能。TypeScript 类型检查零错误,Vite 运行正常。

Session ID:2913064871265952:935601ad8d376d3673cab768f563dd66_6a551b1c3ab817e3596d4190.6a551d233ab817e3596d41af.6a551d233ab817e3596d41ad:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/14 01:15:15)

2913064871265952:b4da1a71f09e8480bbf76cb18ae70a77_6a551b1c3ab817e3596d4190.6a577e443ab817e3596d4af5.6a577e443ab817e3596d4af3:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/15 20:34:12)

**Step 4 · AI 版式识别引擎开发**

这是项目最核心的技术模块。与 TRAE 协作完成了以下工作:

- 设计 AI prompt 工程方案,要求 AI 返回标准化的版式 JSON(canvas 尺寸 + slots 槽位坐标)

- 实现 Cloudflare Worker 代理层,支持 **MiniMax API** 进行版式识别

- 增强识别能力:不仅识别图片和文字区域的位置,还要**还原布局结构**(上下/左右排列、网格结构、间距比例)和**图文绑定关系**(文字标签与相邻图片的归属关系)

- 部署 V2 Worker 到 Cloudflare(https://dentalcase-ai-v2.1968310453.workers.dev),经历了 API Key 配置、Wrangler 版本更新、模型名兼容性修复等调试过程

- 前端 AIImport 页面完整交互流程:上传 → 预览 → 分析中 → 结果展示(图片区/文字区数量)→ 保存到"我的模板"

通过 TRAE 对话实现了基于 Fabric.js 的可视化编辑器:

- 根据模板 slots 自动渲染占位区域,自适应缩放

- 图片上传:点击槽位触发文件选择,支持拖拽上传,FileReader 转 base64 渲染到画布

- 图片编辑:Fabric.js 原生支持拖拽定位、缩放控制点适配

- 文字编辑:右侧工具面板实时输入,同步更新画布 FabricText

- 导出功能:Fabric canvas.toDataURL,支持 PNG/JPG 双格式,2 倍分辨率 multiplier

- 病例保存:IndexedDB 持久化存储 slotData(图片 base64 + 文字内容)

Session ID:2913064871265952:cb660d6188473bbb9df03407bbe9c284_6a577b5f3ab817e3596d4a47.6a577b5f3ab817e3596d4a4a.6a577b5f3ab817e3596d4a48:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/15 20:21:51)

2913064871265952:85fc12af97f73c2f81bceca05d342cae_6a577b5f3ab817e3596d4a47.6a5780323ab817e3596d4b59.6a5780323ab817e3596d4b57:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/15 20:42:26)

**Step 6 · 部署上线**

使用 TRAE 协助完成部署:

- 前端通过 Netlify 拖拽部署(dentalcase-v2/dist 文件夹)

- 最终线上地址:https://helpful-banoffee-5b85b5.netlify.app/

- Git 提交保存完整版本(ecac3fa,24 个文件 7840 行代码)

Session ID:2913064871265952:5653892868feeb1d15c23415ce4949af_6a577b5f3ab817e3596d4a47.6a57a2153ab817e3596d4e7c.6a57a2153ab817e3596d4e7a:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/15 23:07:01)

另外,报名也是在teae的协助下完成的。感谢

2913064871265952:c42074a3300001e9753d8c18370a2d96_6a55d4f13ab817e3596d4243.6a55d4f13ab817e3596d4246.6a55d4f13ab817e3596d4244:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/14 14:19:29)

-–

## 附件说明

- 可选上传产品介绍文档:dentalcase-product-doc-v2.html

-–

## 附:已通过的报名帖链接