肠外营养审方与计算器
用途
将「肠外营养处方计算 + 审方核查」封装为可交付的单文件 HTML 小程序(无外部依赖、离线可用、手机/电脑均可使用),供临床药师在制定 PN 方案、点评 PN 医嘱、评估 TNA 稳定性与渗透压时快速核算。核心交互为双栏录入:左侧"处方"填商品制剂用量、右侧"成份含量"填单体营养液与电解质,同名成分自动叠加,全部指标实时推导。所有参考值均来自中国指南与专家共识。
适用场景
- 用户要求制作肠外营养计算器 / PN 计算工具 / 营养处方点评 / 审方核查工具("做个肠外营养计算器""PN计算小程序""帮我点评这个肠外营养医嘱"等)。
- 用户要求对具体肠外营养医嘱做剂量核算、成分拆分、渗透压评估、阳离子浓度与稳定性核查。
- 用户提供指南/共识 PDF、审方指引 docx、已有 Excel 计算器作为参考,要求按其标准重建或扩展工具。
工作流
第 1 步:读取参考资料(如有)并核对标准
用户可能附上指南 PDF / 审方指引 docx / 已有计算器 xlsx。按以下方式提取:
- PDF:用 pymupdf 提取全文存为 txt,再 grep 关键数值(
fitz已弃用,用import pymupdf)。 - docx / xlsx:先加载
tencent-docs-routingskill 确定通道;editor_sdk可用时经present_files打开文件后获得真实file_id再读取(注意:open_file返回的路径 file_id 常常不可用,需get_pool_status找预览后生成的短 ID);SDK 失败时可回退用 python 直接解析并向用户说明。 - 必须核对的关键指标见
references/标准速查.md,以速查表为准,不要凭记忆填写数值。
第 2 步:生成计算器
- 将
assets/肠外营养审方与计算器.html复制到用户工作区(可改名)。 - 按用户实际情况调整:
- RX 制剂数据(const RX = {...}):每个制剂的formula字段定义"每 ml/g/支 提供的成分 g 或 mmol"。同名成分会自动叠加。如医院有特定品种或浓度,按说明书修改formula数值。
- RX_PRESC / RX_ADD 数组:控制双栏顺序,按用户习惯调整。
- 默认处方数值(update()中的输入默认值、示例体重/身高)。 - 模板已内置:患者评估(BMI/IBW/能量/蛋白/液体目标、SPN 指征)、双栏处方录入、自定义"其他药品"行、自动成分叠加与来源明细、能量结构核算、浓度/渗透压/输注时间、审方 10 条自动判定、审核报告复制、依据对照表与科研转化选题表。
- 核心机制:用户输入 ml/g/支 →
computeTotals()遍历 RX 按 formula 累加各成分(含自定义行)→ 浓度/比例/审方全部从 totals 推导。
第 3 步:验证(必做,防数值错误)
运行 scripts/verify_calculator.js <html路径>(node 环境),用 DOM mock 执行页面脚本并断言关键数值:
- 场景1 默认示例:50%糖100ml+10%糖1000ml+长链脂肪乳200ml+18AA-III 580ml+谷氨酰胺100ml+浓氯化钠20ml+10%氯化钾45ml+葡萄糖酸钙18ml+25%硫酸镁10ml → 总热量≈1190 kcal、渗透压≈795、一价≈45、二价≈6.7、热氮比≈71。
- 场景2 异常:浓氯化钠176ml+氯化钾149ml+葡萄糖酸钙68ml+硫酸镁20ml → 一价>150、二价>10 强制触发。
- 场景3 自定义行:灭菌注射用水100ml + 自定义糖盐200ml(糖0.05g/ml+Na0.154mmol/ml)→ 葡萄糖叠加至160g、Na⁺64.8mmol、总液量2373ml。
若断言失败,检查 RX.formula 换算系数与 computeTotals() 累加逻辑后再交付。
第 4 步:交付
- 用
present_files打开 HTML(会自动进入预览面板)。 - 回复中以表格输出:
- 表 1:计算器各模块指标与指南依据(模块/核心指标/参考值/依据文件);
- 表 2:科研转化参考(模块/选题理由50字/预计可检索文献量/推荐期刊方向)——用户常同时要求。 - 提示:如需线上分享链接(培训演示),可进一步部署静态站。
关键实现细节
- 双栏录入 + 自动叠加(核心设计):每个制剂在 RX 中声明
formula: {glu:0.5, fat:0.2, ...}表示每 ml/g/支 提供的成分 g 或 mmol。computeTotals()遍历 RX 把同名成分累加;buildSourceTable()生成"成分来源明细"展示每个制剂的贡献。 - 自定义"其他药品"行:处方与成份含量两栏末尾各内置 2 个自定义行(
cust1~cust4),可填药品名/用量/单位(ml/g/支),点「🧪 成分」展开录入"每单位含量"(糖/脂/鱼油/氨基酸/谷氨酰胺/Na/K/Ca/Mg/P),自动并入叠加计算;不填成分时仅计入总液量(如灭菌注射用水)。如需更多自定义行,复制custRow(id)模板并加入CUST_IDS即可。 - 热量系数:葡萄糖 3.4、脂肪乳 9、氨基酸 4 kcal/g;非蛋白热量 NPC=糖×3.4+脂×9。
- 氮量:复方氨基酸 g×16% + 丙氨酰谷氨酰胺 g×12.89%;热氮比=NPC/氮,参考 100~200:1(稳定者 150:1)。
- 渗透压估算(共识附录1):〔糖g×5 + 脂g×1.3~1.5 + 氨基酸g×10 + 谷氨酰胺g×5 + 电解质mEq×1(Ca/Mg 记 2 价)+ 微量营养素 19mOsm/支〕÷ 总液量(L);≤900 外周、>900 中心静脉。
- 阳离子:一价(Na+K)≤150 mmol/L、二价(Ca+Mg)≤10 mmol/L(强制);钾外周 ≤3 g/L(40 mmol/L)。
- 制剂换算(说明书记载,勿随意改):50%葡萄糖 0.5 g/ml、20%脂肪乳 0.2 g/ml、10.36% 18AA-III 0.1036 g/ml、20%丙氨酰谷氨酰胺 0.2 g/ml;浓氯化钠 1.7 mmol Na/ml、10%氯化钾 1.34 mmol K/ml、10%葡萄糖酸钙 0.22 mmol Ca/ml、25%硫酸镁 1.0 mmol Mg/ml、甘油磷酸钠 2.0 Na + 1.0 P mmol/ml、0.9%氯化钠 0.154 mmol Na/ml、葡萄糖氯化钠 5%糖+0.9%NaCl、鱼油10% 0.1 g/ml(全部计入鱼油)、多种油20% 含15%鱼油。
- 审方 10 条:强制 5 条(一价≤150、二价≤10、TNA 必须含复方氨基酸、维生素C 不与钙同袋、钾≤3g/L 外周)+ 强制有条件 2 条(谷氨酰胺须与复方氨基酸合用且非 9AA、鱼油须与其他脂肪乳合用)+ 提醒 3 条(脂占 NPC≤60%、鱼油≤20%、谷氨酰胺≤30%)。
- 患者信息留白:身高/体重等默认留空(placeholder 提示),BMI/IBW/目标量/PN 需补充量等依赖体重的结果显示"—",人工勾选/填写后自动显示;处方成分叠加、渗透压、阳离子等与体重无关的指标不受影响始终计算。
- 微量元素渗透压:微量元素按 10ml/支默认 19 mOsm/支折算(共识附录1),渗透压系数固定 1.9 mOsm/ml(与共识公式一致);如使用 40ml/支等不同规格,按需调整 RX.trace 的 formula 或 osm 系数即可。
- 含量系数内置不展示:各制剂换算系数严格按说明书写入 RX.formula(页面不展示含量标注,仅用于计算);如医院品种不同,按说明书改 RX.formula 即可。
- 微量元素双规格校准:多种微量元素支持 10ml/支 与 40ml/支,规格下拉(traceSpec)+ 每支渗透压可编辑(traceOsm,10ml 默认19、40ml 默认76 mOsm);渗透压贡献=用量ml × 每支mOsm ÷ 规格ml,两种规格混用亦准确。
- 配色:达标绿、超标红、警示黄;页面为浅色医疗风格(蓝青色系)。
- 模板为纯前端,无任何第三方依赖,安全性审计结论 P2(安全)。