交付出件箱

← 返回出件箱

智脑 C 端(家长版)· 方案沟通稿 v1.4(门店端可看孩子档案 · 提到一期)

dev2 · 2026-08-21 · 阶段 1 需求明确
【实证】= 我 grep 过 origin/test 代码;其余是设计描述

一、定位

以「子席位」为载体把智脑开放给家长:门店开通、平台管控与对账、C 端三功能+孩子档案。
一期目标:基础功能、业务能跑。

二、一期范围(本次做)

PC 后台 ·「子席位管理」新菜单页(长官 8-21 定名 · 统计条 + 大弹框)

页面从上到下三段:
1. 筛选条:时间快捷档(今天/本周/本月/自定义)+ 机构名称 + 账号 + 状态 + 开通来源
2. 快速统计卡(随筛选联动·全局合计):期间开通总数 · 生效中总数 · 已到期总数
→ 选「今天」不选机构 = 今天所有机构一共开了多少,一眼出数
3. 机构聚合列表:一行一机构(期间开通/累计/生效中/已到期)+ 行尾「明细」按钮
→ 点开大弹框(宽弹窗·非抽屉,长官定):该机构席位流水
(账号·微信昵称/头像(未绑定则显示"未绑定")·手机号·开通日·时长·到期日·状态)
+ 行内管控(停用/启用/换绑/重置密码)+ 分页
【实证】正式席位页已有微信昵称/头像/未绑定这套列(seats/page.tsx 命中 5/4/4 处),照搬
- 按月导出对账单按钮(按当前筛选导 CSV)
- 机构详情页:一行「子席位 N 个 → 查看」跳转(带机构预筛),不做整套 tab

PC 后台 · 机构弹框新增「允许开通家长子席位」开关(长官 8-22 加)

B 端智脑(门店)

🔴 家长端设置页必须新开第三分支(长官 8-22 · 越权口子)

🔴 家长账号与门店走同一个入口登录(长官 8-22 强调 · 已 grep 验证)

C 端 H5(家长)

收费口径

线下按月对账,系统只记数量,不设开通上限,不碰支付/结算链路。

三、二期范围(留口不做)

事项 一期留的口
续期(门店办 + 后台也能办) 到期即停用;时长/到期字段已设计好
按次购买秒读次数(微信支付+价格管理) 配额表预留「购买次数」字段
到期前提醒(家长/门店) 一期仅 C 端显示到期日
问答额度精细化(若有滥用) 沿用现有机构级日计量,先观察
眼轴预测 / 百分位定位(参照品有) 算法跟对方要、不确定拿得到;一期只做实测曲线
合并展示门店档案(参照品有) 一期不做门店档案打通
导出文件(参照品 B 有 · 带去医院给医生看) 一期先给分享,导出 PDF 二期做

四、Q1~Q4 拍板结果(2026-08-21 长官定)

# 问题 结论
Q1 开通交付方式 开完给账号密码,家长自己登录绑手机号(不定向录手机号)。理由:支持批量开、与正式席位同模式复用最彻底;定向开唯一好处"开出来就带手机号"不值得牺牲批量
Q2 孩子档案/报告门店可见性 ~~一期门店不可看~~ → 🔴 2026-08-21 变更:外部回复到,门店端查看孩子档案与报告提到一期,入口放平板端「视力屈光记录」,家长建的档案带「家长自建」来源标识
Q3 问答限次 不限次(沿用现有机构级日计量)
Q4 正式席位手机号再开子席位 允许(B 端 C 端互不影响;唯一性只约束"一个手机号一个子席位")
Q5 防控措施枚举里的品牌词(憩尔目/压轴/紫金龙等) 照抄不改(长官 8-21 定)
Q6 档案身份证号字段 保留,选填不砍(长官 8-21 定)

五、🔴 架构决策(2026-08-21 长官拍板 · 后续实施以此为唯一口径)

D-A:检查数据只用一张表 —— 定为 vision_exams

长官定「必须整到一个表,不能识别去 A、手填去 B」。选 vision_exams 的物理依据:

  1. OCR 本来就写它 —— four_l_orchestrator.py:665 / ocr_persistence_service.py:96 /
    md_parser_service.py:381 / bulk_importer.py:189 四处 VisionExam(
  2. 参照品 B 的检查单字段它几乎全有:主诉 chief_complaint · 既往史 medical_history ·
    身高 height · 体重 weight · 戴镜 current_lens_status · 验光方式 refraction_method ·
    验光组 ref_*(球镜/柱镜/轴位/矫正视力)· 戴镜处方组 rx_* · 眼轴 axial_length_* ·
    眼压 iop_* · K1/K2 · 角膜散光 ast_* · 角膜中央厚度 cct_* ·
    Worth 4孔灯 worth_4dot · 交替遮盖 alternate_cover · 眼位 eye_position ·
    防控手段 prevention_history · 检查日期 visit_date · 来源 data_source(系统/手动录入)
  3. refraction_method 的语义正是长官指出的那个结构(现值 小瞳/散瞳/电脑)——
    「选哪个类型,下面填的字段都一样、不变」⇒ 一组球柱轴+矫正视力 + 一个方式标签

一期在 vision_exams 上补:验光地点 · 防控笔记(或复用 remarks/user_supplement_info)
· refraction_method 枚举扩为 无 / 小瞳 / 快散 / 中散 / 慢散(照参照品 B)

⚠️ refractive_records(Phase 63 平板端那套)本期不动、不迁移、不双写;
它继续服务门店平板端。C 端档案只读写 vision_exams。

D-D:家长端模块「名单制」· 只用于新家长端(甲案 · 长官 8-21 定)

D-E:家长端模块配置放在「子席位管理」页(长官 8-21 定)

不另开设置页,也不塞进机构编辑弹窗 —— 就在「子席位管理」页里配"家长端显示哪些模块"。

D-F:C 端平板端 + 手机端一期都做(长官 8-21 定)

D-B:识别不吃秒读额度

长官定「档案里不计入,只有报告秒读上传才吃 6 次」。
⇒ 实现上两条链路分开计量:档案内的识别回填不计数;「报告秒读」功能才扣次。

D-C:图片识别直接复用智脑报告秒读那套

不另做识别引擎。上传的图按现有秒读方式识别 → 回填到 vision_exams 对应字段 → 家长核对。
识别不出来的照旧手填;图片本身一律存档(现成受管表 report_image 的 kind 枚举
refraction/axial/oct/fundus 与四类图一一对应)。

五、自检发现与处置(2026-08-21 · 详见 c-end-plan-selfaudit-20260821.md)

# 自检发现 长官处置 一期要做什么
1 家长行为/报告图按 org 落表(seat_activity_log/report_image),会混进门店机构线 修 _ACTOR_TYPES 新增子席位一档;反向清查所有按 org_id 聚合的读接口,逐个排除子席位
2 秒读配额是新机制(现表是"机构+按天+消息/图片数",秒读还没接配额) 修 新建按账号+365天+秒读次数的配额模型 + 在秒读入口做扣减(解析成功才扣,失败可回滚)。工作量单独算,不是"加个字段"
3 B 端设置页门店进不进得去存疑 门店可进设置页(长官确认) 「子席位开通管理」就放该页,一期范围不变
4 到期停用没定执行者 到期即自动停用;C 端本来就要登录 登录时校验到期(惰性),不新增定时任务;后台列表"已到期"用 SQL 条件算
5 家长 AI 用量成本记谁头上 不专门做成本核算 用量大头自然归机构(现状即如此);明细可按家长查是免费副产品 —— seat_activity_log 本来就带 org_id + actor_id + event_type,不新建账、不加工作量。真要算钱二期再说

六、两条边界默认(我按常识定的,长官扫一眼)

  1. 🔴 子席位不计入正式席位数、不进结算口径:机构管理的席位统计、签约的
    activated_seat_count、结算侧一切按席位算的数字,都不受子席位影响 —— 两套账彻底分开
  2. 停用/到期只锁登录,不删数据:孩子档案与检查记录保留,续期(二期)后原样恢复

七、流程位

云机环境 · 非验收证据。