xinli/z_Project change/量表示例/generate_scl90_json.js

125 lines
7.5 KiB
JavaScript
Raw Normal View History

2025-11-07 12:07:24 +08:00
// 生成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));
}