屈光手术的个性化矫正参数(诺莫图)通常靠经验或分散的 Excel 表格估算,术后数据与术前规划脱节,拟合回归需要统计软件操作门槛高,参数核对靠手抄容易出错。本系统把病例数据、术后随访、回归拟合、参数反算、留痕核对整合在一个页面里,自动完成等效球镜统计、最小二乘拟合和顶点距离换算,输出可直接核对签字的参数单。
首页 / 案例与资源 / AI行业小应用 / 屈光手术诺莫图管理系统
屈光手术诺莫图管理系统
帮助眼科屈光手术医生利用真实术后随访数据回归拟合个性化诺莫图,完成病例收集、效果分析、参数计算到手术参数单输出的全流程管理。
2026-11-14 更新
产品实际界面
解决什么问题
主要功能
· 病例数据收集:OD/OS 双眼屈光参数录入(球镜、柱镜、轴向、目标屈光度、术后数据、视力) · 病例数据导入:CSV/TSV 粘贴或上传,按表头别名自动映射字段,导入预览确认 · 多维筛选分析:医生、激光器、术式、屈光类型、年龄、SE 范围、日期等 8+3 维筛选 · 统计图表:回归散点图、双眼视力对比 4 图、术式/SE 分布/达成率/月度趋势等 6 图,可导出 PNG · 诺莫图创建:等效球镜/柱镜双目标建模,线性/二次最小二乘回归,R²、r、RMSE 质量指标 · 版本管理:诺莫图保存、另存新版本、按条件重拟合、双版本对比、JSON 导出 · 双眼参数计算:诺莫图反算 + 顶点距离换算(默认 12mm),输出激光器输入参数并回填病例 · 计算留痕:每次参数计算自动记录时间、操作员、版本与输入输出,可导出 · 手术参数单打印:含医院抬头、签名栏、免责声明的核对单 · 系统设置:医生/激光器/术式字典维护、字段映射模板、打印模板、备份恢复 · 内置自检:SE 公式、回归对拍、顶点距离换算等单元测试一键执行
使用方法
1、打开应用(双击 HTML 文件),首次进入自动载入约 40 例演示数据,默认进入「收集数据」页 2、在收集数据页左侧病例列表选择病例(或点「病例数据导入」粘贴 CSV 导入真实数据),中部录入/修改双眼屈光参数后保存 3、切换到「分析数据」,用筛选器圈定目标人群(如某术式 + 某激光器),查看散点图与统计图表确认数据质量 4、进入「创建诺莫图」,选择目标量(SE 或 CYL)、决定是否启用二次回归,查看回归方程与 R²,样本量达标(默认 ≥20 眼)后保存为命名版本 5、进入「选择诺莫图」,下拉选定版本,在「双眼参数计算」中输入目标矫正量,系统反算并输出双眼激光器输入参数 6、点「回填激光器参数并留痕」写回病例,或点「打印手术参数单」输出核对单 7、日常在「系统设置」中维护字典、导出备份 JSON
使用条件与注意事项
· 无需账号、无需联网、完全免费,双击 HTML 文件即可在浏览器中运行 · 所有数据保存在浏览器本地 localStorage 中,仅本机可见;清除浏览器数据会丢失数据,请定期在「系统设置 → 备份与恢复」导出 JSON · 支持每 10 分钟自动快照备份(可在设置中关闭),存储满时自动备份会静默跳过 · 首次打开载入的是演示数据,正式使用前请在「系统设置 → 数据管理」中清空或替换 · 计算结果仅供参数核对,须由主刀医师复核确认后方可用于设备输入,不替代临床判断 · 缺少术后随访数据的病例不参与回归拟合(系统自动排除) · 轴向对齐功能、打印排版在不同浏览器下的分页效果未做完整实测
WorkBuddy 完整复刻提示词
将下方指令复制到 WorkBuddy;生成结果与所用版本、模型和配置有关,请按实际环境检查。不要在指令中填入真实密钥或敏感业务数据。
## 角色
你是一名屈光手术临床工程专家 + 资深前端工程师,为眼科屈光手术中心搭建一个「屈光手术诺莫图管理系统」。它把病例数据收集、术后效果分析、诺莫图(Nomogram)回归拟合与版本管理、双眼激光器参数计算、手术参数单输出整合进一个网页应用,帮助医生用真实术后随访数据持续修正个性化矫正模型。
硬性要求:
1. **所有功能必须真实可操作**,不允许出现点了没反应的按钮、写死的假界面、只有标题没有内容的空卡片。
2. **所有计算必须真实**:等效球镜、线性/二次最小二乘回归、决定系数 R²、Pearson r、RMSE、顶点距离换算、诺莫图反算,全部用纯 JS 实现,禁止假数据假装算过。
3. **医学严谨性**:计算结果页必须带免责声明("参数需由主刀医师复核确认后方可用于设备输入;本系统计算结果不替代临床判断");缺少术后随访数据的眼不得参与回归拟合。
4. **零依赖**:不引入任何 CDN、框架、图表库;图表用原生 Canvas 2D 手写;数据存 localStorage。
5. **内置自检**:系统自带一套可实际执行的单元测试页面,对公式做对拍验证。
---
## 一、界面与视觉规范
- **深色专业风**(医疗数据系统):页面底色 `#0b1017`,面板 `#141d28`/`#19232f`,边框 `#26333f`,正文 `#e6edf3`。
- 主色 `#3b9dff`(蓝),辅助 `#22d3b6`(青)、`#f5b544`(琥珀)、`#ff6b6b`(红)、`#3ecf8e`(绿)、`#a78bfa`(紫)。图表调色板固定 8 色。
- 布局:**顶部水平导航条**(高 58px:Logo 渐变方块 + 应用名 + 5 个模块 Tab + 右侧当前诺莫图 chip 与操作按钮)+ 主内容区 + **底部状态栏**(26px:实时显示系统状态、当前版本、数据量)。
- 字体 13px 微软雅黑/PingFang SC;数值用等宽字体(Consolas)展示回归方程与系数;带符号数值统一显示正负号(如 +0.25 / -4.50)。
- 内容节奏:页头(标题 + 副标题 + 右侧操作按钮组)→ 筛选/表单面板 → 图表卡片网格 → 明细面板。面板 = 白描边深色圆角卡片(8px 圆角 + 深阴影)。
- 交互反馈:操作后右上角 toast(成功绿/信息蓝/错误红,1.8~3 秒自动消失);删除与覆盖类操作一律弹确认 Modal(红色危险样式需二次确认);表单走 Modal 或面板内联。
- 顶点距离 VD、R² 等关键参数在结果卡中加粗高亮。
---
## 二、技术架构(按此分层,文件名前缀决定拼接顺序)
```
template.html HTML 骨架 + 占位符 /*__CSS__*/ 与 /*__JS__*/
build.py 构建脚本:把 src/*.css 与 src/*.js 按文件名前缀排序拼接,
注入模板占位符,产出「屈光手术诺莫图管理系统.html」单文件
src/
00-style.css 全部样式(CSS 变量定义配色)
10-core.js App 命名空间、工具函数 U(uid/esc/round/CSV 解析/下载等)、
默认配置(字典/字段映射/报告模板)、演示数据(mulberry32 确定性随机)、
状态管理 App.Store(localStorage 读写 + 状态栏)
20-math.js 算法层 M:等效球镜、计划/实际矫正量、样本点抽取、
线性+二次最小二乘拟合(高斯消元解正规方程)、预测/反算、
顶点距离换算、诺莫图构建、8 维筛选、直方图/分组/月度统计
30-charts.js 图表引擎 C:纯 Canvas 2D,散点/柱状/折线/直方图,
devicePixelRatio 适配,坐标轴 nice 取整,PNG 导出
40-ui.js 通用 UI:data-act 事件委托、Toast、Modal、Esc 关闭、roundRect polyfill
50-collect.js 模块 01 收集数据
60-analyze.js 模块 02 分析数据
70-create.js 模块 03 创建诺莫图
80-select.js 模块 04 选择诺莫图
90-settings.js 模块 05 系统设置
95-tests.js 模块 06 内置自检(可执行单元测试)
99-app.js 启动入口:加载/初始化、全局错误捕获、10 分钟定时备份
tests/ Node 冒烟测试 + math.test.js + 截图脚本(开发期用)
```
约定:
- 持久化键名 `refractive_nomogram_db_v1`,定时备份键 `refractive_nomogram_db_v1_bak`(每 10 分钟快照一次,存储满时静默跳过,手动备份始终可用)。
- 数据对象 `App.state = { cases, nomograms, activeNomogramId, calcLogs, dictionaries, fieldMap, report, settings }`;UI 瞬态放 `App.ui`(选中病例、筛选器、临时区等),不持久化。
- 渲染 = 各视图 render() 返回 HTML 字符串;事件全部用 `data-act` 委托到 `App.handlers`,禁止散落的内联 onclick。
- 所有用户输入进入 HTML 前必须经 `U.esc()` 转义。
- 首次启动载入约 40 例确定性生成的演示病例(mulberry32 固定种子),并 toast 提示可导入真实数据或重置。
---
## 三、顶部导航与 5+1 个模块
```
01 收集数据 病例库 · 双眼屈光录入 · 数据导入
02 分析数据 多维筛选 · 回归散点 · 统计图表
03 创建诺莫图 拟合工作台 · 参数开关 · 版本保存
04 选择诺莫图 版本应用 · 双眼参数计算 · 参数单打印
05 系统设置 字典 · 导入模板 · 报告模板 · 备份
06 系统自检 内置单元测试(在系统设置内提供入口,逐项可执行)
```
---
## 四、各模块功能细则
### 模块 01 收集数据
- **三栏布局**:左侧病例列表面板(搜索框按姓名/病历号/日期过滤、按手术日期倒序、「+ 病例数据导入」按钮、选中高亮);中部患者信息面板 + 双眼屈光数据面板 + 激光器输入值面板;右侧辅助信息。
- **患者信息**:姓名、性别/年龄、病历号、手术日期、主刀医生、激光器、治疗术式(SMILE / FS-LASIK / TransPRK / LASEK / ICL)、屈光不正类型(单纯近视 / 近视伴散光 / 远视 / 远视伴散光 / 混合散光)。
- **OD/OS 双眼录入**(左右眼各一组):球镜 sph、柱镜 cyl、轴向 axis、目标屈光度 target、术后球镜 postSph、术后柱镜 postCyl、术前视力 preVa、术后视力 postVa。所有数值输入即时校验(轴向 0~180 等),改动后保存按钮高亮。
- **病例数据导入**:弹窗支持粘贴/上传 CSV 或 TSV,自动识别分隔符;按「字段映射模板」匹配表头别名(多别名竖线分隔、忽略大小写与首尾空格);导入预览(逐列识别成功/失败标记)→ 确认入库;提供「下载 CSV 模板」。
- **打印**:输出单例病例核对页。
### 模块 02 分析数据
- **筛选器(8 类基础 + 3 类高级)**:主刀医生、激光器、治疗术式、屈光不正类型、性别、年龄上下限、术前 SE 上下限、手术日期起止;高级折叠区:检查次数上下限、术后视力下限、「仅完整随访」(排除缺少术后数据的病例)。显示「已启用 N 项条件」徽标 + 一键重置。
- **核心散点图**:计划矫正量(x)vs 实际矫正量(y),叠加当前拟合曲线与 45° 参考线,标注 n 眼数;支持 PNG 导出。
- **双眼视力 4 图**:各术式双眼术后视力均值(OD/OS 对比)、屈光度区间双眼术后视力(按术前 SE 分组)、双眼术前 vs 术后视力均值对比、双眼术后视力差值分布(OD − OS)。
- **统计 6 图**:① 治疗术式分布(横向柱状)② 术前等效球镜分布(直方图 12 bins)③ 医生手术量 ④ 术后视力 ≥1.0 达成率(按术式,百分比)⑤ 月度手术量趋势(折线)⑥ 检查次数分布。
- 所有图表响应式重绘,随筛选条件实时联动。
### 模块 03 创建诺莫图
- **双区布局**:左侧「工作区域」散点图 + 拟合参数卡,右侧「临时区域」可做对比试验(改参数立即在临时区重算,不影响工作区)。
- **目标量切换**:等效球镜 SE(sph + cyl/2)或柱镜 CYL(取绝对值建模)。
- **参数开关(Switch)**:二次回归(y = a + b·x + c·x²)、轴向对齐等,开关切换后自动重拟合。
- **拟合呈现**:回归方程(等宽字体、4 位小数)、R² 决定系数 / Pearson r、RMSE (D)、样本量 n 眼、样本 X 范围 (D)、顶点距离 VD。
- **样本阈值保护**:低于设置的最小样本量(默认 20 眼)时禁止保存并 toast 警告。
- **保存 / 导出 / 对比**:保存为命名版本(自动带版本号与创建时间);导出诺莫图 JSON;支持两版本并排对比关键系数。
- **实时模式**:开关开启时筛选条件或参数变化即时重算(缓存 key 判断 dirty)。
### 模块 04 选择诺莫图
- **版本选择器**:下拉列出全部诺莫图(名称 + 版本号 + 创建日期),激活后右上角 chip 同步显示。
- **双统计卡**:SE 模型卡与 CYL 模型卡并排,展示回归方程、系数 a/b/c(二次项未启用显示 —)、R²、r、RMSE、样本量、样本范围、VD。
- **双眼参数计算**:输入目标矫正量后,用诺莫图反算 `x = inverse(y = T)` 得到镜架平面矫正量,再经顶点距离换算到角膜平面(VD 默认 12mm),输出双眼各自应输入激光器的带符号参数。
- **回填与留痕**:「回填激光器参数」把计算结果写回病例并写入计算留痕(时间、操作员、诺莫图版本、输入/输出参数);留痕可导出、可清空(危险确认)。
- **版本维护**:「按当前条件重拟合」用当前筛选集重算并覆盖为新版本号(历史留痕不受影响);「另存新版本」fork。
- **打印手术参数单**:按打印模板(医院名、标题、页眉说明、参数表、页脚签名栏、免责声明开关)输出,可与所选诺莫图版本关联追溯。
### 模块 05 系统设置(7 个 Tab)
1. **基础字典维护**:医生、激光器、治疗术式、屈光不正类型 4 组字典,pill 标签增删。
2. **数据源与导入模板**:24 个系统字段的表头别名映射表(如 `odSph: 'OD球镜|右眼球镜'`),可编辑、保存、恢复默认、下载 CSV 模板。
3. **打印与报告模板**:医院名称、报告标题、页眉、页脚签名栏、免责声明开关与文案。
4. **基础参数**:最小样本量(默认 20)、顶点距离 VD(默认 12mm)、操作员姓名、小数位数、自动备份开关。
5. **备份与恢复**:导出完整 JSON、导入恢复、定时备份快照的手动恢复。
6. **数据管理**:病例列表清理、重置演示数据、清空全部数据(三重确认)。
7. **关于系统**:版本、架构说明、算法说明、免责声明。
### 模块 06 内置自检(95-tests.js)
系统内置**可实际执行**的测试用例,每项显示通过/失败与实测值:
- localStorage 写入/回读、演示数据结构完整性(双眼字段 + 日期格式)
- 等效球镜公式对拍(sph -4.00 + cyl -1.00 / 2 = -4.50 D)
- 线性回归对拍(y = 2x + 1 精确还原系数,R² → 1)
- 二次回归对拍(y = 0.5x² − 2x + 1 精确还原 a/b/c)
- 顶点距离换算对拍、诺莫图反算往返一致性、CSV 解析转义、筛选统计等
全部通过才视为「可上线」,并在页面给出整体结论徽标。
---
## 五、算法与公式(必须精确实现)
```
等效球镜 SE = sph + cyl / 2
计划矫正量 planned = SE术前 − 目标屈光度
实际矫正量 achieved = SE术前 − SE术后
回归模型 线性 y = a + b·x;二次 y = a + b·x + c·x²
最小二乘正规方程 + 高斯列主元消元求解
质量指标 R²(决定系数)、Pearson r、RMSE、样本量 n、X 范围
诺莫图反算 给定目标矫正量 T,解 y(x) = T 得镜架平面矫正量(二次取有效根)
顶点距离换算 F(角膜平面) = F(镜架平面) / (1 − d · F(镜架平面)),d = VD(mm)/1000
(负值矫正量时换算量小于绝对值,此物理特性必须保留)
样本规则 任一眼缺少术后球镜/柱镜数据 → 该眼不进入回归样本;CYL 建模时
x = |术前柱镜|,y = |术前柱镜| − |术后柱镜|
```