125 lines
7.5 KiB
JavaScript
125 lines
7.5 KiB
JavaScript
|
|
// 生成SCL-90完整JSON文件的脚本
|
|||
|
|
// SCL-90标准90个题目内容
|
|||
|
|
|
|||
|
|
const scl90Items = [
|
|||
|
|
"头痛", "神经过敏,心中不踏实", "头脑中有不必要的想法或字句盘旋", "头昏或昏倒", "对异性的兴趣减退",
|
|||
|
|
"对旁人责备求全", "感到别人能控制您的思想", "责怪别人制造麻烦", "忘记性大", "担心自己的衣饰整齐及仪态的端正",
|
|||
|
|
"容易烦恼和激动", "胸痛", "害怕空旷的场所或街道", "感到自己的精力下降,活动减慢", "想结束自己的生命",
|
|||
|
|
"听到旁人听不到的声音", "发抖", "感到大多数人都不可信任", "胃口不好", "容易哭泣",
|
|||
|
|
"同异性相处时感到害羞不自在", "感到受骗、中了圈套或有人想抓住您", "无缘无故地 suddenly 感到害怕", "自己不能控制地大发脾气", "怕单独出门",
|
|||
|
|
"经常责怪自己", "腰痛", "感到难以完成任务", "感到孤独", "感到苦闷",
|
|||
|
|
"过分担忧", "对事物不感兴趣", "感到害怕", "您的感情容易受到伤害", "感到旁人能知道您的私下想法",
|
|||
|
|
"感到别人不理解您、不同情您", "感到人们对您不友好、不喜欢您", "做事必须做得很慢以保证做得正确", "心跳得很厉害", "恶心或胃部不舒服",
|
|||
|
|
"感到比不上他人", "肌肉酸痛", "感到有人在监视您、谈论您", "难以入睡", "做事必须反复检查",
|
|||
|
|
"难以做出决定", "怕乘电车、公共汽车、地铁或火车", "呼吸有困难", "一阵阵发冷或发热", "因为感到害怕而避开某些东西、场合或活动",
|
|||
|
|
"脑子变空了", "身体发麻或刺痛", "喉咙有梗塞感", "感到前途没有希望", "不能集中注意",
|
|||
|
|
"感到身体的某一部分软弱无力", "感到紧张或容易紧张", "感到手或脚发重", "想到死亡的事", "吃得太多",
|
|||
|
|
"当别人看着您或谈论您时感到不自在", "有一些不属于您自己的想法", "有想打人或伤害他人的冲动", "醒得太早", "必须反复洗手、点数或触摸某些东西",
|
|||
|
|
"睡得不稳不深", "有想摔坏或破坏东西的冲动", "有一些别人没有的想法或念头", "感到对别人神经过敏", "在商店或电影院等人多的地方感到不自在",
|
|||
|
|
"感到任何事情都很困难", "一阵阵恐惧或惊恐", "感到在公共场合吃东西很不舒服", "经常与人争论", "单独一人时神经很紧张",
|
|||
|
|
"别人对您的成绩没有做出恰当的评价", "即使和别人在一起也感到孤单", "感到坐立不安心神不定", "感到自己没有什么价值", "感到熟悉的东西变成陌生或不像是真的",
|
|||
|
|
"大叫或摔东西", "害怕会在公共场合昏倒", "感到别人想占您的便宜", "为一些有关"性"的想法而很苦恼", "您认为应该因为自己的过错而受到惩罚",
|
|||
|
|
"感到要很快把事情做完", "感到自己的身体有严重问题", "从未感到和其他人很亲近", "感到自己有罪", "感到自己的脑子有毛病"
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// SCL-90因子定义
|
|||
|
|
const factors = [
|
|||
|
|
{ code: "F1", name: "躯体化", items: [1,4,12,27,40,42,48,49,52,53,56,58] },
|
|||
|
|
{ code: "F2", name: "强迫症状", items: [3,9,10,28,38,45,46,51,55,65] },
|
|||
|
|
{ code: "F3", name: "人际关系敏感", items: [6,21,34,36,37,41,61,69,73] },
|
|||
|
|
{ code: "F4", name: "抑郁", items: [5,14,15,20,22,26,29,30,31,32,54,71,79] },
|
|||
|
|
{ code: "F5", name: "焦虑", items: [2,17,23,33,39,57,72,78,80,86] },
|
|||
|
|
{ code: "F6", name: "敌对", items: [11,24,63,67,74,81] },
|
|||
|
|
{ code: "F7", name: "恐怖", items: [13,25,47,50,70,75,82] },
|
|||
|
|
{ code: "F8", name: "偏执", items: [8,18,43,68,76,83] },
|
|||
|
|
{ code: "F9", name: "精神病性", items: [7,16,35,62,77,84,85,87,88,90] }
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 生成JSON
|
|||
|
|
const json = {
|
|||
|
|
scale: {
|
|||
|
|
scaleCode: "SCL_90",
|
|||
|
|
scaleName: "症状自评量表SCL-90",
|
|||
|
|
scaleEnName: "Symptom Checklist 90",
|
|||
|
|
scaleType: "symptom",
|
|||
|
|
scaleVersion: "1.0",
|
|||
|
|
scaleIntro: "SCL-90是一个包含90个项目的症状自评量表,用于评估个体的心理症状水平",
|
|||
|
|
scaleDescription: "SCL-90量表包含90个项目,涵盖9个症状因子:躯体化、强迫症状、人际关系敏感、抑郁、焦虑、敌对、恐怖、偏执、精神病性。采用5级评分(0-4分),是心理健康评估的重要工具。",
|
|||
|
|
itemCount: 90,
|
|||
|
|
estimatedTime: 30,
|
|||
|
|
targetPopulation: "一般人群",
|
|||
|
|
author: "Derogatis",
|
|||
|
|
source: "心理卫生评定量表手册",
|
|||
|
|
reference: "Derogatis, L. R. (1977). SCL-90: Administration, scoring, and procedures manual. Clinical Psychometric Research.",
|
|||
|
|
status: "0",
|
|||
|
|
sortOrder: 0
|
|||
|
|
},
|
|||
|
|
items: scl90Items.map((content, index) => ({
|
|||
|
|
item: {
|
|||
|
|
itemNumber: index + 1,
|
|||
|
|
itemContent: content,
|
|||
|
|
itemType: "single",
|
|||
|
|
required: "1",
|
|||
|
|
reverseScore: "0",
|
|||
|
|
sortOrder: index + 1
|
|||
|
|
},
|
|||
|
|
options: [
|
|||
|
|
{ optionCode: "A", optionContent: "没有", optionScore: 0, sortOrder: 1 },
|
|||
|
|
{ optionCode: "B", optionContent: "很轻", optionScore: 1, sortOrder: 2 },
|
|||
|
|
{ optionCode: "C", optionContent: "中等", optionScore: 2, sortOrder: 3 },
|
|||
|
|
{ optionCode: "D", optionContent: "偏重", optionScore: 3, sortOrder: 4 },
|
|||
|
|
{ optionCode: "E", optionContent: "严重", optionScore: 4, sortOrder: 5 }
|
|||
|
|
]
|
|||
|
|
})),
|
|||
|
|
factors: factors.map((factor, index) => ({
|
|||
|
|
factor: {
|
|||
|
|
factorCode: factor.code,
|
|||
|
|
factorName: factor.name,
|
|||
|
|
factorEnName: getFactorEnName(factor.code),
|
|||
|
|
factorDescription: `SCL-90 ${factor.name}因子,包含${factor.items.length}个题目`,
|
|||
|
|
factorOrder: index + 1
|
|||
|
|
},
|
|||
|
|
rules: factor.items.map(itemNum => ({
|
|||
|
|
itemNumber: itemNum,
|
|||
|
|
rule: {
|
|||
|
|
optionIds: "",
|
|||
|
|
weight: 1.0,
|
|||
|
|
calculationType: "sum"
|
|||
|
|
}
|
|||
|
|
}))
|
|||
|
|
})),
|
|||
|
|
interpretations: [
|
|||
|
|
// 总体解释
|
|||
|
|
{ factorId: null, scoreRangeMin: 0, scoreRangeMax: 160, level: "低", levelName: "正常", interpretationTitle: "正常范围", interpretationContent: "您的总体得分在正常范围内,心理健康状况良好。", suggestions: "继续保持良好的心理状态,注意日常生活中的压力管理。", sortOrder: 1 },
|
|||
|
|
{ factorId: null, scoreRangeMin: 161, scoreRangeMax: 250, level: "中", levelName: "轻度", interpretationTitle: "轻度症状", interpretationContent: "您可能存在轻度的心理症状,建议适当关注自己的心理健康。", suggestions: "建议通过放松训练、运动、社交等方式缓解压力,如症状持续可考虑咨询专业人士。", sortOrder: 2 },
|
|||
|
|
{ factorId: null, scoreRangeMin: 251, scoreRangeMax: 360, level: "高", levelName: "中重度", interpretationTitle: "中重度症状", interpretationContent: "您的得分显示可能存在中重度的心理症状,建议寻求专业心理帮助。", suggestions: "强烈建议咨询心理医生或心理治疗师,进行专业的心理评估和治疗。", sortOrder: 3 }
|
|||
|
|
],
|
|||
|
|
warningRules: [
|
|||
|
|
{ factorId: null, ruleName: "重度症状预警", warningLevel: "高", scoreMin: 250, scoreMax: 360, autoRelief: "0", status: "0" },
|
|||
|
|
{ factorId: null, ruleName: "紧急症状预警", warningLevel: "紧急", scoreMin: 300, scoreMax: 360, autoRelief: "0", status: "0" }
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
function getFactorEnName(code) {
|
|||
|
|
const names = {
|
|||
|
|
"F1": "Somatization",
|
|||
|
|
"F2": "Obsessive-Compulsive",
|
|||
|
|
"F3": "Interpersonal Sensitivity",
|
|||
|
|
"F4": "Depression",
|
|||
|
|
"F5": "Anxiety",
|
|||
|
|
"F6": "Hostility",
|
|||
|
|
"F7": "Phobic Anxiety",
|
|||
|
|
"F8": "Paranoid Ideation",
|
|||
|
|
"F9": "Psychoticism"
|
|||
|
|
};
|
|||
|
|
return names[code] || "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 输出JSON(需要Node.js环境运行)
|
|||
|
|
if (typeof module !== 'undefined' && module.exports) {
|
|||
|
|
module.exports = json;
|
|||
|
|
} else {
|
|||
|
|
console.log(JSON.stringify(json, null, 2));
|
|||
|
|
}
|
|||
|
|
|