Skip to content

集合:CBT应用记录(cbt_applications)

字数
2313 字
阅读时间
11 分钟

1. 目的与使用场景

  • 记录CBT(认知行为疗法)技巧的具体应用过程和效果,支持个性化推荐和疗效评估。由Ask心理助理、Dify工作流、效果评估系统使用。

枚举值

  • technique_type: cognitive_restructuring(认知重构)、evidence_examination(证据检验)、behavioral_activation(行为激活)、exposure_therapy(暴露疗法)、relaxation_training(放松训练)、problem_solving(问题解决)、mindfulness(正念练习)、social_skills(社交技能)
  • application_context: academic_stress(学业压力)、relationship_issues(人际关系)、self_esteem(自尊问题)、anxiety(焦虑管理)、depression'(情绪低落)、'anger_management(愤怒管理)、sleep_issues(睡眠问题)
  • difficulty_level: beginner(初级)、intermediate(中级)、advanced(高级)
  • completion_status: planned(计划中)、in_progress(进行中)、completed(已完成)、paused(暂停)、abandoned(放弃)
  • effectiveness_rating: none(未评估)、poor(效果差)、fair(一般)、good(良好)、excellent(优秀)

2. Schema 定义

字段类型必填默认值约束/校验说明隐私分级
_idstring-TCB 自动主键P2
_openidstring-TCB 自动用户 openidP2
user_id指针id-指向 users._id用户指针P2
session_id指针id-指向 ask_sessions._id关联会话P2
technique_typestring-枚举(见上方列表)CBT技巧类型P1
technique_namestring-长度 ≤ 50具体技巧名称P1
application_contextstring-枚举(见上方列表)应用场景P2
difficulty_levelstringbeginner枚举(beginner,intermediate,advanced)难度等级P1
completion_statusstringplanned枚举(planned,in_progress,completed,paused,abandoned)完成状态P1
effectiveness_ratingstringnone枚举(none,poor,fair,good,excellent)效果评分P2
target_issuestring-长度 ≤ 200目标问题描述P3
intervention_planstring-长度 ≤ 1000干预计划详情P3
implementation_notesstring-长度 ≤ 1000实施过程记录P3
challenges_facedarray[]元素为 string遇到的挑战P3
coping_strategiesarray[]元素为 string应对策略P2
insights_gainedarray[]元素为 string获得的洞察P2
behavioral_outcomesarray[]元素为 string行为结果P2
emotional_outcomesarray[]元素为 string情绪结果P2
cognitive_changesarray[]元素为 string认知改变P3
practice_frequencyobject-包含 planned, actual, adherence_rate练习频率P2
duration_minutesnumber-≥0实际时长(分钟)P1
skill_mastery_levelnumber-0-100技能掌握度P2
related_task_idsarray[]指向 tasks._id关联任务P1
follow_up_actionsarray[]元素为 object后续行动P1
is_template_basedboolfalse-是否基于模板P1
template_idstring--使用的模板IDP1
ai_recommendation_scorenumber-0-1AI推荐置信度P1
counselor_reviewedboolfalse-辅导员是否审核P2
counselor_notesstring-长度 ≤ 500辅导员备注P3
createdAtdate-服务端时间创建时间P1
updatedAtdate-服务端时间更新时间P1
completedAtdate--完成时间P1
is_deletedboolfalse-软删标记P2

3. 索引与唯一约束

  • 单字段索引:user_idtechnique_typeapplication_contextcompletion_statuseffectiveness_rating
  • 复合索引:[user_id, createdAt desc][technique_type, effectiveness_rating, createdAt desc]
  • 场景索引:[application_context, completion_status, createdAt desc]
  • 推荐索引:[ai_recommendation_score desc, createdAt desc]
  • 设计理由:用户CBT应用历史;技巧效果分析;场景特定查询;个性化推荐。

4. 访问控制(TCB 权限)

json
{
  "read": "_openid == auth.openid || auth.role in ['counselor','ops']",
  "write": "auth.role in ['dify_service','counselor','ops']"
}

用户可查看自身CBT应用记录;Dify服务负责写入;辅导员可查看和添加审核意见。

5. 关系与级联

  • user_idusers
  • session_idask_sessions
  • related_task_idstasks
  • 删除策略:软删保留审计;删除时保留匿名统计数据。

6. 数据生命周期与合规

  • 留存:CBT应用记录保留2年用于长期疗效评估
  • 匿名化:统计分析时对敏感内容进行脱敏处理
  • 导出:用户可导出个人CBT应用历程用于专业咨询
  • 审计字段:createdAtupdatedAtcompletedAteffectiveness_rating

7. API/云函数契约映射

| 接口/函数 | 读/写 | 使用字段 | 过滤条件 | 排序/分页 | 备注 | | /api/cbt/applications GET | 读 | technique_type, application_context, completion_status, effectiveness_rating | user_id = auth.uid | createdAt desc, 分页 | 用户CBT应用列表 | | /api/cbt/applications POST | 写 | technique_type, application_context, target_issue, intervention_plan | _openid = auth.openid | - | 创建CBT应用 | | /api/cbt/applications/{id} PATCH | 写 | completion_status, effectiveness_rating, implementation_notes | _id 匹配 | - | 更新CBT应用状态 | | 个性化推荐引擎 | 读 | technique_type, application_context, effectiveness_rating, skill_mastery_level | 用户历史 | ai_recommendation_score desc | CBT技巧推荐 | | 效果分析系统 | 读 | 所有字段 | 时间范围 | - | CBT效果统计分析 | | Dify工作流 cbtTracker | 写 | 所有字段 | - | - | CBT应用跟踪 |

8. 示例文档(≥3条)

json
{
  "_id": "cbt_app_001",
  "_openid": "oAbcd123",
  "user_id": "usr_001",
  "session_id": "ask_session_001",
  "technique_type": "cognitive_restructuring",
  "technique_name": "灾难化思维识别与挑战",
  "application_context": "academic_stress",
  "difficulty_level": "intermediate",
  "completion_status": "completed",
  "effectiveness_rating": "good",
  "target_issue": "考试前的灾难化思维:认为自己肯定会失败",
  "intervention_plan": "1. 识别灾难化思维 2. 寻找反证据 3. 生成替代思维 4. 行为验证",
  "implementation_notes": "用户能够识别自己的灾难化思维,并找到了具体的反证据。在引导下生成了更平衡的替代思维。",
  "challenges_faced": ["初期难以识别自动化思维", "对替代思维持怀疑态度"],
  "coping_strategies": ["证据检验法", "可能性评估", "过往成功经验回顾"],
  "insights_gained": ["自己的想法并不总是事实", "有证据表明自己有能力应对考试", "灾难化思维会增加焦虑"],
  "cognitive_changes": ["从'肯定失败'到'有可能考好'", "认识到自己有能力影响结果"],
  "emotional_outcomes": ["焦虑程度降低", "自信心提升", "学习动力增强"],
  "practice_frequency": {
    "planned": "每天3次",
    "actual": "每天2-3次",
    "adherence_rate": 0.85
  },
  "duration_minutes": 120,
  "skill_mastery_level": 75,
  "ai_recommendation_score": 0.88,
  "counselor_reviewed": true,
  "counselor_notes": "用户对认知重构技巧掌握良好,建议继续强化其他认知扭曲的识别。",
  "createdAt": "2024-04-06T10:30:00Z",
  "updatedAt": "2024-04-10T15:20:00Z",
  "completedAt": "2024-04-10T15:20:00Z"
}
{
  "_id": "cbt_app_002",
  "_openid": "oAbcd456",
  "user_id": "usr_002",
  "technique_type": "behavioral_activation",
  "technique_name": "行为激活:逐步增加愉悦活动",
  "application_context": "depression",
  "difficulty_level": "beginner",
  "completion_status": "in_progress",
  "target_issue": "情绪低落,缺乏动力,减少社交活动",
  "intervention_plan": "从简单的愉悦活动开始,逐步增加活动频率和复杂性",
  "implementation_notes": "用户开始记录每日活动,识别愉悦程度。计划每天增加一个小型愉悦活动。",
  "challenges_faced": ["初期活动动力不足", "对活动的愉悦感体验较弱"],
  "coping_strategies": ["活动分级",同伴支持", "即时奖励"],
  "behavioral_outcomes": ["开始记录活动日志", "完成了3次小型愉悦活动"],
  "emotional_outcomes": ["情绪略有改善", "对活动的抵触减少"],
  "practice_frequency": {
    "planned": "每天",
    "actual": "每周4-5",
    "adherence_rate": 0.65
  },
  "skill_mastery_level": 40,
  "ai_recommendation_score": 0.75,
  "createdAt": "2024-04-05T09:00:00Z",
  "updatedAt": "2024-04-08T16:30:00Z"
}
{
  "_id": "cbt_app_003",
  "_openid": "oAbcd789",
  "user_id": "usr_003",
  "session_id": "ask_session_002",
  "technique_type": "relaxation_training",
  "technique_name": "深呼吸放松技巧",
  "application_context": "anxiety",
  "difficulty_level": "beginner",
  "completion_status": "completed",
  "effectiveness_rating": "excellent",
  "target_issue": "社交场合中的紧张和焦虑",
  "intervention_plan": "学习4-7-8呼吸法,在焦虑时应用",
  "implementation_notes": "用户很快掌握了呼吸技巧,并在实际社交场景中成功应用。报告焦虑明显减轻。",
  "insights_gained": ["身体放松可以影响心理状态", "简单的技巧也很有效", "需要提前练习"],
  "behavioral_outcomes": ["能够主动应用放松技巧", "社交回避行为减少"],
  "emotional_outcomes": ["焦虑强度降低", "自信心提升", "社交意愿增强"],
  "practice_frequency": {
    "planned": "每天练习,焦虑时使用",
    "actual": "每天练习,实际使用了3",
    "adherence_rate": 0.9
  },
  "duration_minutes": 45,
  "skill_mastery_level": 85,
  "related_task_ids": ["task_relaxation_001"],
  "ai_recommendation_score": 0.92,
  "createdAt": "2024-04-06T14:20:00Z",
  "updatedAt": "2024-04-07T11:15:00Z",
  "completedAt": "2024-04-07T11:15:00Z"
}

9. 常用查询样例(≥3条)

javascript
// 用户的CBT应用历史
const userApplications = await db.collection('cbt_applications')
  .where({ user_id: auth.uid, is_deleted: false })
  .orderBy('createdAt', 'desc')
  .limit(20)
  .get();

// 技巧效果统计
const techniqueEffectiveness = await db.collection('cbt_applications')
  .where({
    technique_type: 'cognitive_restructuring',
    effectiveness_rating: db.command.in(['good', 'excellent']),
    createdAt: db.command.gte(new Date(Date.now() - 90 * 86400000).toISOString())
  })
  .count();

// 应用场景分析
const contextAnalysis = await db.collection('cbt_applications')
  .where({
    application_context: 'academic_stress',
    completion_status: 'completed'
  })
  .field({ technique_type: true, effectiveness_rating: true, skill_mastery_level: true })
  .get();

// 个性化推荐候选
const recommendations = await db.collection('cbt_applications')
  .where({
    user_id: targetUserId,
    completion_status: 'completed',
    effectiveness_rating: db.command.in(['good', 'excellent'])
  })
  .field({ technique_type: true, application_context: true, skill_mastery_level: true })
  .get();

10. 边界与错误码

  • 技巧不适用:推荐的技巧与用户状态不匹配返回 E_TECHNIQUE_NOT_SUITABLE
  • 进度异常:练习频率过低时发送提醒通知
  • 效果不佳:连续多个应用效果评分低触发辅导员关注
  • 难度不当:用户掌握度与难度不匹配时建议调整

11. 变更影响评估

  • 新增CBT技巧类型需要更新AI知识库和推荐算法
  • 效果评估体系变更影响个性化推荐准确性
  • 模板系统变更影响用户使用体验和学习效果

12. 假设与待确认

  • 假设skill_mastery_level基于多个因素自动计算;待确认具体算法
  • 待确认CBT技巧之间的依赖关系和前置条件
  • 待确认辅导员审核的具体流程和标准

贡献者

The avatar of contributor named as Cai Hongyu Cai Hongyu

文件历史

撰写