health-detection-flow.md 4.7 KB

用户使用流程图 — 身体健康检测

flowchart TD
    %% ============ 颜色定义 ============
    classDef actor fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
    classDef action fill:#fff3e0,stroke:#f57c00,stroke-width:1px
    classDef system fill:#e8f5e9,stroke:#388e3c,stroke-width:1px
    classDef decision fill:#fce4ec,stroke:#d32f2f,stroke-width:1px
    classDef role fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px
    classDef endpoint fill:#f5f5f5,stroke:#616161,stroke-width:1px,shape:box

    subgraph 注册与家庭
        A1(("家长<br>开始")) --> A2[微信授权登录]
        A2 --> A3[创建/加入家庭]
        A3 --> A4[添加家庭成员<br>(孩子/老人等)]
    end

    subgraph 数据采集入口
        A4 --> B0{选择检测方式}
        B0 --> B1[上传肠道菌群PDF报告]
        B0 --> B2[上传体检报告/化验单]
        B0 --> B3[舌诊拍照上传]
        B0 --> B4[填写健康问卷]
        B0 --> B5[手动录入维度评分]
    end

    subgraph AI解析层
        B1 --> C1[PDF解析引擎<br>PdfParseService]
        C1 --> C2{是否匹配到<br>家庭成员?}
        C2 -->|自动匹配<br>姓名+性别+年龄| C3[标记到对应成员]
        C2 -->|匹配失败| C4[提示家长手动绑定]

        B2 --> C5[OCR/结构化解析]
        C5 --> C6[提取指标: 身高/体重/<br>血常规/视力等]

        B3 --> C7[舌诊AI分析<br>TongueDiagnosisService]
        C7 --> C8[舌苔/舌色/齿痕分析]

        B4 --> C9[问卷评分计算]
        B5 --> C10[直接录入评分]
    end

    subgraph 报告预览与确认
        C3 --> D1[生成解析预览<br>Phase 1 /parse-preview]
        D1 --> D2{家长确认<br>数据是否正确?}
        D2 -->|修改| D3[家长在线编辑指标]
        D3 --> D2
        D2 -->|确认| D4[正式入库<br>Phase 2 /confirm]
        C6 --> D1
        C8 --> D1
    end

    subgraph 7维健康评分
        D4 --> E1[维度评分引擎<br>DimensionScoreService]
        E1 --> E2[刷新7维健康评分<br>refreshFromGutReport]
        E2 --> E3[营养缺乏分析<br>NutritionDeficiencyService]
        E3 --> E4[食材推荐指数<br>FoodRecommendService]
        E4 --> E5[健康分析报告<br>HealthAnalysisService]
    end

    subgraph AI教练解读
        E5 --> F1[家长查看健康报告]
        F1 --> F2{是否需要<br>AI解读?}
        F2 -->|是| F3[Dify AI聊天<br>POST /api/ai/chat/send]
        F3 --> F4[AI解析报告指标<br>生成改善建议]
        F4 --> F5[AI生成任务计划<br>TaskParseService]
        F5 --> F6[家长查看解读结果]
        F2 -->|否| G1
    end

    subgraph 专业身份介入
        F6 --> G1{是否需要<br>深度介入?}
        G1 -->|健康问题咨询| G2[营养师介入]
        G1 -->|全方位服务| G3[管家介入]
        G1 -->|成长规划| G4[成长规划师介入]
        G1 -->|自行跟进| G5[结束]

        G2 --> G2a[申请营养师服务]
        G2a --> G2b[营养师审核家长需求]
        G2b --> G2c[开具个性化营养方案]
        G2c --> G2d[餐食推荐<br>MealRecommendService]
        G2d --> G5

        G3 --> G3a[申请管家服务]
        G3a --> G3b[管家审核通过]
        G3b --> G3c[管家分配 + 建档<br>ButlerProfile]
        G3c --> G3d[管家定期跟进健康数据]
        G3d --> G3e[管家协调营养师/规划师]
        G3e --> G5

        G4 --> G4a[规划师查看报告]
        G4a --> G4b[规划师下发改善任务]
        G4b --> G4c[任务执行与跟踪]
        G4c --> G5
    end

    subgraph 持续跟踪
        G5 --> H1[家长定期上传新报告]
        H1 --> H2[系统对比历史趋势]
        H2 --> H3[提示改善进展/异常]
        H3 --> F1
    end

    %% ============ 角色标注 ============
    R1(("👤 家长")):::actor
    R2(("🤖 AI教练")):::role
    R3(("🥗 营养师")):::role
    R4(("🏠 管家")):::role
    R5(("📋 规划师")):::role

    A4 -.- R1
    F3 -.- R2
    G2 -.- R3
    G3 -.- R4
    G4 -.- R5

角色说明

角色 系统映射 职责
家长 role=parent 发起检测、上传报告、确认数据、查看解读、选择服务
AI教练 AiChatController + Dify API 自动解析报告、生成解读与改善建议、任务计划
营养师 NutritionistController / nutritionist role 审核通过的专业人士,出具营养方案与饮食推荐
管家 ButlerService / butler role 全方位家庭健康管家,协调资源、定期跟进
规划师 GuideController / teacher role 成长规划师,基于报告制定改善任务并跟踪
管理员 role=admin 审核草稿、管理知识库、系统配置(后台)