# 痘痘按三视图各类型最大数量计分 ## 规则 正脸读取 `result.`,侧脸读取 `left_side_result.left_acne_info.` / `right_side_result.right_acne_info.`。每类分别取有效数量的最大值,不累加,也不是选皮损总数最多的照片。 | 类型 | 字段 | 每处扣分 | |---|---|---:| | 闭口 | closed_comedones | 1 | | 丘疹 | acne | 2 | | 脓包 | acne_pustule | 4 | | 结节 | acne_nodule | 6 | | 痘印 | acne_mark | 1.5 | 计数优先 `.count`,缺失时兼容已有矩形数量回退;负数、非整数、非有限数不计为有效数量。明确0才算未检出。 `计数扣分=min(50, Σ各类最大数量×权重)`。 正脸 `score_info.acne_score` 的既有100/85/70/55分档映射不变,侧脸整体评分不合并。 `痘痘P=min(正脸评分映射值,100−计数扣分)`;某一项缺失时仅用其他有效项;计数全部缺失则仅用正脸评分,二者都缺失不生成痘痘分。 报告文案与计分共用合并数量,侧脸检出脓包/结节也影响相应提示,计数不完整不声称完全未检出。这里的数量是三视图各类型最大值汇总,不等同于跨视图去重后的真实全脸总数。 ## 后台和历史 新记录保存 `acne_scoring`,版本 `three-view-type-max-v1`,包括五类正/左/右数量、最大值、来源视图、权重、每项扣分、扣分合计/封顶结果、完整性和正脸评分/映射值。 后台详情展示计分明细表。报告快照同步保存用于展示的变量。旧记录和快照不迁移、不改写,历史推荐保持原样。 ## 验证 - `node h5/test/acne-three-view.js`:分类分别取最大而非相加、不同类型来自不同视图、并列值、缺失/零/非法数量、计数回退、正脸评分约束、50分封顶、侧脸中重皮损文案与源数据不变。 - `H5_ACNE_MAX_TEST=1 node h5/test/report-persistence.mjs`:隔离合成三视图验证计分、报告文案、后台明细、保存/回看、CSV、历史不可变。 - `node h5/test/regression.js`:旧case2期望显式更新为侧脸闭口1处参与扣分;原始fixture不改写。 - 私有案例目录回放:`H5_WRINKLE_CASE_DIR= node h5/test/wrinkle-case-browser.mjs`。 `R20261014-171215-CYLF`:闭口为0/1/0→取1,丘疹为0/1/1→取1,其他三类为0。扣3分,痘痘P=97、S=9.91,稳韧力由原9.97变为9.91。与待上线的整体皱纹规则合用,紧塑力8.95、透亮感9.63,综合得分`round(8.95×4+9.63×3+9.91×3)=94`(仅皱纹修改时为95)。 当前本地实现,未提交或部署;此前待发布的北京时间、整体皱纹评分修改继续保留。所有回放使用隔离数据和固定接口返回,不调用付费检测、不写线上记录。