| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- sequenceDiagram
- participant Mini as 小程序(五维详情页)
- participant Ctrl as DimensionAssessmentController
- participant MS as DimensionMeasureService
- participant LG as cfc-langgraph(AI)
- participant DSS as DimensionScoreService
- participant NS as NormService
- participant SA as ScoringAlgorithm
- participant HIS as HealthIndexService
- participant ES as EnergyService
- participant VO as HealthDimensionVO
- Note over Mini,LG: ① 采集(L1 行为 / L2 机器提取)
- Mini->>Mini: 玩游戏/拍舌/拍脸(game-wrapper 记录反应时、hits/false-alarms)
- Mini->>LG: 上传舌象/人脸(POST /api/v1/tongue|emotion)
- LG-->>Mini: 结构化结果(概率/质量评分/帧数)
- Mini->>Ctrl: POST /api/assessment/measure/submit (含 rawValue/quality/modelVersion/measureTime)
- Ctrl->>MS: submit(request)
- MS->>MS: 校验时间戳(防补填)+质量门禁(不达标拒收)
- MS-->>Ctrl: Result<Void> (落 DimensionMeasure)
- Note over Ctrl,HIS: ② 计分 → 维度分
- Mini->>Ctrl: POST /api/assessment/dimension-score/get {childId, dimension}
- Ctrl->>DSS: compute(childId, dimension)
- DSS->>MS: list(measures of dimension)
- loop 每个指标 metric
- DSS->>NS: getNorm(metricCode, gender, ageMonths)
- NS-->>DSS: AssessmentMetricNorm(mean, sd)
- DSS->>SA: tScore(raw, mean, sd, direction) %% 负向(反应时/错误)取100-T
- DSS->>SA: dPrime(hits, fa) / beta(hr, far) %% 游戏类用 d′,β 异常降权
- end
- DSS->>SA: aggregateDimension(items) %% Σ(w·c·T)/Σ(w·c),缺失源重归一化
- SA->>SA: icc(sources) → 一致性系数(1/0.8/0.6)
- SA->>SA: confidence(完整度均值 × 一致性)
- DSS->>DSS: 落 DimensionScore 快照(含 confidence/sampleSize/dataSources)
- DSS-->>Ctrl: DimensionScoreVO
- Ctrl-->>Mini: Result<DimensionScoreVO>
- Note over Mini,VO: ③ 维度分 → 五维健康指数 → getOverview
- Mini->>Ctrl: POST /api/assessment/health-index/get {childId}
- Ctrl->>HIS: compute(childId)
- HIS->>DSS: 取五维 DimensionScore
- HIS->>SA: 总健康指数 = Σ(维度分×权重)/Σ(权重) %% 默认等权,配置表可调
- HIS->>HIS: 落 HealthIndexSnapshot
- HIS-->>Ctrl: HealthIndexVO
- Ctrl-->>Mini: Result<HealthIndexVO>
- Note over Mini,VO: ④ 五维概览页(对接现有 getOverview)
- Mini->>ES: getOverview(memberId)
- ES->>HIS: getLatest(childId) %% 替换原 healthIndex=0
- HIS-->>ES: 各维 score + confidence
- ES->>VO: 组装 HealthDimensionVO(DimensionItem.healthIndex/confidence/dataSources)
- ES-->>Mini: 五维概览(分数+置信度随报告展示)
|