sequence-diagram.mermaid 2.6 KB

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