73 lines
1.5 KiB
TypeScript
73 lines
1.5 KiB
TypeScript
export interface QuestionType {
|
|
id: number;
|
|
content: string;
|
|
options: Option[];
|
|
factors?: string[];
|
|
}
|
|
|
|
|
|
export interface Option {
|
|
id: number;
|
|
content: string;
|
|
value: string;
|
|
}
|
|
|
|
export type QuestionnaireCategory =
|
|
| '人格'
|
|
| '认知'
|
|
| '情绪'
|
|
| '睡眠'
|
|
| '职业'
|
|
| '心理健康';
|
|
|
|
export type QuestionnaireTag =
|
|
| '抑郁'
|
|
| '焦虑'
|
|
| '压力'
|
|
| 'ADHD'
|
|
| '强迫'
|
|
| '失眠'
|
|
| '睡眠'
|
|
| '注意力'
|
|
| '执行功能'
|
|
| '依恋'
|
|
| '共情'
|
|
| '自恋'
|
|
| '九型人格'
|
|
| '300题'
|
|
| '120题'
|
|
| '筛查'
|
|
| '自评'
|
|
| '临床常用';
|
|
|
|
export interface QuestionnaireEvaluation {
|
|
academicRecognition: 'A+' | 'A' | 'B';
|
|
retestSuitable: boolean;
|
|
recommendedInterval: '1年' | '3个月' | '一次即可';
|
|
}
|
|
|
|
export interface Questionnaire {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
category: QuestionnaireCategory;
|
|
tags: QuestionnaireTag[];
|
|
time: string;
|
|
evaluation?: QuestionnaireEvaluation;
|
|
details: {
|
|
introduction: string;
|
|
questionCount: string;
|
|
evaluationTime: string;
|
|
instructions: string;
|
|
scoringMethod: string[];
|
|
dimensions: Array<{ name: string; description: string }>;
|
|
notes: string[];
|
|
references: Array<{ text: string; url: string }>;
|
|
};
|
|
questions: {
|
|
id: number;
|
|
content: string;
|
|
}[];
|
|
renderOptions: (id: number) => Option[];
|
|
}
|