import { getDict } from '@/tumour/utils/dictionaries.js' /** * 1肺癌 2乳腺癌 3结直肠癌 4肝癌 5宫颈癌 6甲状腺癌 7胃癌 8食管癌 9前列腺癌 10肾癌 11黑色素癌 */ export function getQuestion(key, info) { const questions = { q1: { title: '肺癌筛查量表', issue: [{ title: '1、年龄介于45~74岁之间', key: 'question1', answer: { // radio单选 checkbox多选 type: 'radio', // 选项中 其他选项 的value other: null, // 答案的选项 DC00001是否 cont: getDict('DC00001') } }, { title: '2、吸烟包年数≥20包年,包括曾经吸烟≥20包年,但戒烟不足15年', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、与条件2共同生活或同室工作被动吸烟>20年', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、患有慢性阻塞性肺疾病', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、有职业暴露史≥1年,包括暴露于石棉、氡、铍、铬、镉、硅、煤烟和煤烟灰', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、有一、二级亲属确诊肺癌', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }], // 高危判断条件 check() { // console.log('question check', this.issue) return this.issue[0].value === 1 && this.issue.filter(e => e.value === 1).length >= 2 }, remark: '建议每年进行胸部低剂量CT平扫检查。如发现肺部结节,建议到胸外科、呼吸内科等专科进行就诊。' }, q2: { title: '乳腺癌筛查量表', issue: [{ title: '1、有明显的乳腺癌遗传倾向者', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、既往有乳腺导管或小叶中重度不典型增生或小叶原位癌患者', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、既往有胸部放疗史的患者', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue.filter(e => e.value === 1).length >= 1 }, remark: '建议对乳腺癌高危人群提前进行筛查(40岁前),筛查间期推荐每半年1次,筛查手段:临床体检、B超、乳腺钼靶检查、乳腺MRI。' }, q3: { title: '结直肠筛查量表', issue: [{ title: '1、大便潜血阳性', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、一级亲属有结直肠癌病史', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、以往有肠道腺瘤史', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、本人有癌症史', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、有大便习惯的改变', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、符合以下任意2项者:慢性腹泻、慢性便秘、黏液血便、慢性阑尾炎或阑尾切除史、慢性胆囊炎或胆囊切除史、长期精神压抑,有报警信号', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue.filter(e => e.value === 1).length >= 1 }, remark: '建议进一步进行结直肠镜检查。对于家族史不详者于40岁开始考虑进行结直肠癌筛查,而一般风险者则于50岁开始,筛查终止于75岁。' }, q4: { title: '肝癌筛查量表', issue: [{ title: '1、年龄大于40岁', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、慢性乙型肝炎或者慢性丙型肝炎史', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、肝硬化病史', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、长期酗酒史(每日饮酒大于2两,饮酒史超过1年)', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、出血史:(出血倾向:鼻出血、牙龈及皮下瘀斑)', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、直系属亲属(父母、兄弟姐妹、子女)有肝癌病史', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '7、长期进食霉变食物或进食烟熏或盐腌的肉制品', key: 'question7', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '8、有肝区疼痛史:(肝区疼痛:右上腹或中上腹持续性或间歇性钝痛、刺痛或胀痛,夜间或劳累后加重)', key: 'question8', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '9、符合以下任意2项者:黄疸、腹水、上消化道出血、下肢水肿、红细胞增多症、皮肤嘌呤症、食欲明显减退恶心', key: 'question9', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue[0].value === 1 && this.issue.filter(e => e.value === 1).length >= 2 }, remark: '建议进一步检查彩色多普勒腹部超声、甲胎蛋白测定,对于家族史不详者于40岁开始考虑进行肝癌筛查,而一般风险者则于50岁开始,筛查终止于75岁。' }, q5: { title: '宫颈癌筛查量表', issue: [{ title: '1、已婚或有性生活史3年及以上的女性', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、家族中有人患有宫颈癌或其他妇科癌症', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、曾经被诊断为宫颈炎症、宫颈糜烂或宫颈息肉', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、有阴异常道分泌物增多,非经期流血', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、感染过人类乳头瘤病毒(HPV)', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、同房后阴道出血或非经期流血', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue[0].value === 1 && this.issue.filter(e => e.value === 1).length >= 2 }, remark: '建议行阴道超声、宫颈图片、HPV检查。' }, q6: { title: '甲状腺癌筛查量表', issue: [{ title: '1、年龄40岁以上', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、有甲状腺疾病:甲状腺炎、甲状腺结节', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、有甲状腺癌家族史', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、长期接触辐射或化学物质', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、颈部放疗史', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、有其他身体不适或异常表现,如体重变化、颈部增粗', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue[0].value === 1 && this.issue.filter(e => e.value === 1).length >= 2 }, remark: '建议行甲状腺超声、甲状腺功能检查' }, q7: { title: '胃癌筛查量表', issue: [{ title: '1、年龄40岁以上,男女不限', key: 'question1', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '2、胃癌高发地区人群', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '3、H.pylori感染者', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '4、既往患有慢性萎缩性胃炎、胃溃疡、胃息肉、手术后残胃、肥厚性胃炎、恶性贫血等胃癌前疾病', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '5、胃癌患者一级亲属', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001') } }, { title: '6、存在胃癌其他高危因素(高盐、腌制饮食、吸烟、过度饮酒等)', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001') } }], check() { return this.issue[0].value === 1 && this.issue.filter(e => e.value === 1).length >= 2 }, remark: '建议进一步进行胃十二指肠镜检查。' }, q9: { title: '前列腺癌筛查量表', issue: [{ title: `1、您是否有过以下任何一种情况? ①尿频或排尿困难;②尿流变小或中断;③尿液中出现血丝; ④尿液浑浊或有异味;⑤阴茎勃起困难或不全;⑥疼痛或不适感。`, key: 'question1', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '2、您是否有家族中有人患有前列腺癌', key: 'question2', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '3、你是否曾经被诊断为前列腺疾病', key: 'question3', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '4、您是否曾经接受过前列腺癌的检查', key: 'question4', answer: { type: 'radio', cont: getDict('DC00001'), score: { 2: 1 } } }, { title: '5、你是否常食用高脂食品?(如肥肉、蛋黄、猪脑,蟹黄等高脂食品)', key: 'question5', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '6、您是否吸烟', key: 'question6', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '7、您是否经常饮酒超量?(每日白酒超过2两或啤酒超过500毫升或葡萄酒超过200毫升)', key: 'question7', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '8、您是否长期坐着工作或生活', key: 'question8', answer: { type: 'radio', cont: getDict('DC00001'), score: { 1: 1 } } }, { title: '9、您是否经常进行体育锻炼', key: 'question9', answer: { type: 'radio', cont: getDict('DC00001'), score: { 2: 1 } } }], check() { let score = 0 this.issue.forEach(e => { score = score + (e.answer.score[e.value] || 0) }) this.score = score return score > 4 }, remark: '建议进一步检查前列腺特异性抗原、前列腺特异性抗原正常—定期复查、前列腺特异性抗原升—高前列腺磁共振及穿刺活检' } } const q = questions['q' + key] const result = q ? new Question(q, info) : {} return { ...result, key } } class Question { issue = [] check = null result = null remark = null highRisk = null highRiskTrans = null score = null constructor({ title = '', remark = '', issue = [], check = () => {} } = {}, info = {}) { console.log('class Question', info) this.issue = issue.map(e => { return { ...e, value: info[e.key], valueTrans: info[e.key + 'Trans'], valueOther: null, } }) this.title = title this.remark = remark this.check = check this.highRisk = info?.highRisk this.highRiskTrans = info?.highRiskTrans } }