From 816f14276ecfba4f004c708a1b25850b34a68167 Mon Sep 17 00:00:00 2001 From: liuzhipeng <1747191978@qq.com> Date: Sat, 15 Mar 2025 13:17:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=9B=E6=9F=A5=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E7=AD=9B=E6=9F=A5=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acupuncture-前台/src/views/screening/h5.vue | 2 +- .../src/views/screening/index.vue | 830 +++++++++--------- .../src/views/screening/qrCode.vue | 210 +---- 3 files changed, 464 insertions(+), 578 deletions(-) diff --git a/acupuncture-前台/src/views/screening/h5.vue b/acupuncture-前台/src/views/screening/h5.vue index 5b5c8240..dd4e7a25 100644 --- a/acupuncture-前台/src/views/screening/h5.vue +++ b/acupuncture-前台/src/views/screening/h5.vue @@ -124,7 +124,7 @@ export default { dicts: ["sys_notice_status", "sys_notice_type"], data() { return { - stepNum: 2, + stepNum: 1, headers: { Authorization: "Bearer " + getToken(), deptId: localStorage.getItem("hospitalId"), diff --git a/acupuncture-前台/src/views/screening/index.vue b/acupuncture-前台/src/views/screening/index.vue index 5b5c8240..f1bd4f09 100644 --- a/acupuncture-前台/src/views/screening/index.vue +++ b/acupuncture-前台/src/views/screening/index.vue @@ -1,113 +1,203 @@ @@ -119,12 +209,13 @@ import { patientUpd, patientDel, } from "@/api/patientFile"; +// import { tenantsList } from "@/api/member"; export default { name: "Notice", dicts: ["sys_notice_status", "sys_notice_type"], data() { return { - stepNum: 2, + tenantsListData: [], // 组织列表 headers: { Authorization: "Bearer " + getToken(), deptId: localStorage.getItem("hospitalId"), @@ -132,269 +223,171 @@ export default { uploadFileUrl1: process.env.VUE_APP_API_QZURL + "/acupuncture/patient/import", // 上传的图片服务器地址 fileList: [], - // 表单参数 - form: { - name: "", - sex: "0", - dateOfBirth: "", - age: "", - phone: "", - height: "", - weight: "", - BMI: "", - verdict: "", - }, - BMITips: [ + // 现病史 + medicalHistory: [ + "高血压", + "脑血管病", + "恶性肿瘤", + "冠心病", + "精神疾病", + "胃和十二指肠溃疡", + "肥胖症", + "骨质疏松症", + "遗传性、先天性疾病", + "糖尿病", + "慢性肺系疾病", + "高脂血症", + "肝脏疾病(脂肪肝、乙型肝炎、肝硬化等)", + "过敏性疾病", + "关节炎", + "痛风", + "肾炎、肾病", + "高脂血症", + ], + idCardType: [ { - label: "偏瘦", - score: 18.5, + label: "身份证", + value: 0, }, { - label: "正常", - score: 23.9, + label: "护照或外国人永居证", + value: 1, }, { - label: "偏胖", - score: 27.9, + label: "港澳居民来往内地通行", + value: 2, }, { - label: "肥胖", - score: 28, + label: "台湾居民来往大陆通行证", + value: 3, + }, + { + label: "其他", + value: 4, }, ], + idCardTypeValue: { + 0: "身份证", + 1: "护照或外国人永居证", + 2: "港澳居民来往内地通行", + 3: "台湾居民来往大陆通行证", + 4: "其他", + }, + loading: false, // 遮罩层 + ids: [], // 选中数组 + single: true, // 非单个禁用 + multiple: true, // 非多个禁用 + showSearch: true, // 显示搜索条件 + total: 0, // 总条数 + listDat: [{}], // 公告表格数据 + title: "", // 弹出层标题 + open: false, // 是否显示弹出层 + importOpen: false, // 导入弹窗 + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + param: { + keywords: "", //关键字 + startAge: "", //开始年龄 + endAge: "", //结束年龄 + tenantId: "", //建档组织 + createBy: "", //建档人 + sourceId: "", //来源 + }, + }, + formDisabled: false, + importform: {}, + // 表单参数 + form: {}, // 表单校验 rules: { name: [ { required: true, - message: "姓名不能为空", + message: "患者姓名不能为空", trigger: "blur", }, ], - sex: [ + gender: [ { required: true, message: "性别不能为空", - trigger: "blur", + trigger: "change", }, ], - dateOfBirth: [ + birthDate: [ { required: true, message: "出生日期不能为空", trigger: "change", }, ], - age: [ + phone: [ { required: true, - message: "年龄不能为空", + message: "手机号码不能为空", trigger: "blur", }, - ], - phone: [ { - required: true, - message: "联系方式不能为空", + pattern: /^1[3456789]\d{9}$/, + message: "手机号码格式不正确", trigger: "blur", }, + ], + ethnicity: [ { - pattern: /^1[3456789]\d{9}$/, - message: "格式不正确", - trigger: "change", + required: true, + message: "民族不能为空", + trigger: "blur", }, ], - age: [ + idCardType: [ { required: true, - message: "年龄不能为空", + message: "证件类型不能为空", trigger: "blur", }, ], - height: [ + idCard: [ { required: true, - message: "身高不能为空", + message: "证件号码不能为空", trigger: "blur", }, ], - weight: [ + educationYears: [ { required: true, - message: "体重不能为空", + message: "受教育年限不能为空", trigger: "blur", }, ], - BMI: [ + currentIllnessHistory: [ { required: true, - message: "BMI不能为空", + message: "现病史不能为空", trigger: "blur", }, ], }, - BMIVerdict: { - 偏瘦: "1", - 正常: "2", - 偏胖: "3", - 肥胖: "4", - }, - // 1.您觉得平时睡眠足够吗 ? - // ①睡眠过多了 ②睡眠正好 ③睡眠欠一些 ④睡眠不够 ⑤睡眠时间远远不够 - // 2.您在睡眠后是否已觉得充分休息过了 ? - // ①觉得充分休息过了 ②觉得休息过了 ③觉得休息了一点 ④不觉得休息过了 ⑤觉得一点儿也没休息 - // 3.您晚上已睡过觉,白天是否打瞌睡 ? - // ① 0~5 天 ②很少 (6~12 天) ③有时 (13~18 天)) ④经常(19~24 天) ⑤总是(25~31 天) - // 4.您平均每个晚上大约能睡几小时 ? - // ①≥9小时 ② 7~8 小时 ③ 5~6 小时 ④ 3~4 小时 ⑤ 1~2 小时 - // 5.您是否有入睡困难 ? - // ①0~5 天 ②很少 (6~12 天) ③有时(13~18 天 ) ④经常(19~24 天) ⑤总是(25~31 天) - // 6.您入睡后中间是否易醒 ? - // ①0~5 天 ②很少(6~12 天) ③有时(13~18 天) ④经常 (19~24 天) ⑤总是(25~31 天) - // 7.您在醒后是否难于再入睡 ? - // ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) - // 8.您是否多梦或常被恶梦惊醒 ? - // ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) - // 9.为了睡眠 , 您是否吃安眠药 ? - // ①0~5天 ②很少(61~2 天) ③有时 (13~18 天) ④经常 (19~24 天) ⑤总是 (25~31 天) - // 10.您失眠后心情(心境)如何 ? - // ①无不适 ②无所谓 ③有时心烦、急躁 ④心慌、气短 ⑤乏力、没精神、做事效率低 - scaleList: [ - { - question: "您觉得平时睡眠足够吗 ?", - options: [ - { label: "睡眠过多了", score: 1 }, - { label: "睡眠正好", score: 2 }, - { label: "睡眠欠一些", score: 3 }, - { label: "睡眠不够", score: 4 }, - { label: "睡眠时间远远不够", score: 5 }, - ], - }, - { - question: "您在睡眠后是否已觉得充分休息过了 ?", - options: [ - { label: "觉得充分休息过了", score: 1 }, - { label: "觉得休息过了", score: 2 }, - { label: "觉得休息了一点", score: 3 }, - { label: "不觉得休息过了", score: 4 }, - { label: "觉得一点儿也没休息", score: 5 }, - ], - }, - { - question: "您晚上已睡过觉,白天是否打瞌睡 ?", - options: [ - { label: "0~5 天", score: 1 }, - { label: "很少 (6~12 天)", score: 2 }, - { label: "有时 (13~18 天)", score: 3 }, - { label: "经常(19~24 天)", score: 4 }, - { label: "总是(25~31 天)", score: 5 }, - ], - }, - { - question: "您平均每个晚上大约能睡几小时 ?", - options: [ - { label: "≥9小时", score: 1 }, - { label: "7~8 小时", score: 2 }, - { label: "5~6 小时", score: 3 }, - { label: "3~4 小时", score: 4 }, - { label: "1~2 小时", score: 5 }, - ], - }, - { - question: "您是否有入睡困难 ?", - options: [ - { label: "0~5 天", score: 1 }, - { label: "很少 (6~12 天)", score: 2 }, - { label: "有时(13~18 天 )", score: 3 }, - { label: "经常(19~24 天)", score: 4 }, - { label: "总是(25~31 天)", score: 5 }, - ], - }, - { - question: "您入睡后中间是否易醒 ?", - options: [ - { label: "0~5 天", score: 1 }, - { label: "很少(6~12 天)", score: 2 }, - { label: "有时(13~18 天)", score: 3 }, - { label: "经常 (19~24 天)", score: 4 }, - { label: "总是(25~31 天)", score: 5 }, - ], - }, - { - question: "您在醒后是否难于再入睡 ?", - options: [ - { label: "0~5天", score: 1 }, - { label: "很少(6~12 天)", score: 2 }, - { label: "有时 (13~18 天)", score: 3 }, - { label: "经常 (19~24 天)", score: 4 }, - { label: "总是 (25~31 天)", score: 5 }, - ], - }, - { - question: "您是否多梦或常被恶梦惊醒 ?", - options: [ - { label: "0~5天", score: 1 }, - { label: "很少(6~12 天)", score: 2 }, - { label: "有时 (13~18 天)", score: 3 }, - { label: "经常 (19~24 天)", score: 4 }, - { label: "总是 (25~31 天)", score: 5 }, - ], - }, - { - question: "为了睡眠 , 您是否吃安眠药 ?", - options: [ - { label: "0~5天", score: 1 }, - { label: "很少(6~12 天)", score: 2 }, - { label: "有时 (13~18 天)", score: 3 }, - { label: "经常 (19~24 天)", score: 4 }, - { label: "总是 (25~31 天)", score: 5 }, - ], - }, - { - question: "您失眠后心情(心境)如何 ?", - options: [ - { label: "无不适", score: 1 }, - { label: "无所谓", score: 2 }, - { label: "有时心烦、急躁", score: 3 }, - { label: "心慌、气短", score: 4 }, - { label: "乏力、没精神、做事效率低", score: 5 }, - ], - }, - ], }; }, - created() {}, + created() { + let idCard = this.$route.query.idCard; + this.queryParams.param.keywords = idCard || ""; + this.getList(); // 列表 + // this.getTenantsList(); // 组织列表 + }, methods: { - // 计算BIM - calculateBMI() { - if (this.form.weight && this.form.height) { - const weight = parseFloat(this.form.weight); - const height = parseFloat(this.form.height); - const bmi = weight / (height / 100) ** 2; - this.form.BMI = bmi.toFixed(2); - this.getBMITips(bmi); - } - }, - // 通过BIM结果显示对于的结论 - // <18.5:偏瘦 - // 18.5~23.9:正常 - // 24~27.9:偏胖 - // ≥28:肥胖 - getBMITips(bmi) { - let tips = ""; - if (bmi < 18.5) { - tips = "偏瘦"; - } - if (bmi >= 18.5 && bmi < 23.9) { - tips = "正常"; - } - if (bmi >= 24 && bmi < 27.9) { - tips = "偏胖"; - } - if (bmi >= 28) { - tips = "肥胖"; - } - this.form.verdict = tips; + // 组织列表 + getTenantsList() { + tenantsList({ + pageNum: -1, + param: {}, + }).then((res) => { + this.tenantsListData = res.data.list; + }); }, // 上传成功回 - pdg handleUploadPdfAdd1(res) { @@ -441,126 +434,155 @@ export default { }, // 表单重置 reset() { - this.form = {}; + this.form = { + name: "", // 姓名 + gender: 0, // 性别 + birthDate: "", // 出生日期 + ethnicity: "", // 民族 + educationYears: "", // 教育程度 + phone: "", // 联系电话 + idCardType: "", // 证件类型 + idCard: "", // 证件号码 + source: 1, + currentIllnessHistory: [], // 现病史 + currentIllnessHistoryQt: "", // 现病史 + }; this.resetForm("form"); }, - /** 基本信息 */ + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.queryParams.param = { + keywords: "", //关键字 + startAge: "", //开始年龄 + endAge: "", //结束年龄 + tenantId: "", //建档组织 + createBy: "", //建档人 + sourceId: "", //来源 + }; + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "新增患者档案"; + this.formDisabled = false; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.open = true; + this.title = "修改患者档案"; + this.formDisabled = false; + this.form = JSON.parse(JSON.stringify(row)); + // 字符串转数组 + this.form.currentIllnessHistory = + this.form.currentIllnessHistory?.split(",") || []; + }, + /** 详情按钮操作 */ + handleDetails(row) { + this.open = true; + this.title = "患者档案详情"; + this.formDisabled = true; + this.form = JSON.parse(JSON.stringify(row)); + // 字符串转数组 + this.form.currentIllnessHistory = + this.form.currentIllnessHistory?.split(",") || []; + }, + /** 诊疗档案 */ + handleArchives(row) { + this.$router.push({ + path: `/medicalFile/index?idCard=${row.idCard}`, + }); + }, + /** 提交按钮 */ submitForm: function () { this.$refs["form"].validate((valid) => { if (valid) { - // patientAdd(this.form).then((response) => { - // this.$modal.msgSuccess("新增成功"); - // this.open = false; - // this.getList(); - // }); - this.stepNum++; + if (this.form.id != undefined) { + patientUpd(this.form).then((response) => { + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); + }); + } else { + patientAdd(this.form).then((response) => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } } }); }, - // 量表结果 - scaleSubmitForm() { - let score = 0; - // 计算总分, topic${i}属性不一定存在,先校验是否存在 - for (let i = 1; i <= 24; i++) { - if (this.form[`topic${i}`] !== undefined) { - score += this.form[`topic${i}`]; - } - } - console.log("score", score); + + /** 删除按钮操作 */ + handleDelete(row) { + const idList = row.id ? [row.id] : this.ids; + this.$modal + .confirm("是否确认删除当前选择的数据?") + .then(function () { + return patientDel({ + idList: idList, + }); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }) + .catch(() => {}); + }, + /** 导出按钮操作 */ + handleExport() { + this.download1( + "/patient/export", + { + ...this.queryParams.params, + }, + `患者档案.xlsx` + ); + }, + /** 下载按钮操作 */ + handleDownload() { + window.open( + `${process.env.VUE_APP_API_QZURL}/acupuncture/profile/PatientTemplate.xlsx` + ); + // this.download1( + // "/patient/export", {}, + // `患者档案导入模版.xlsx` + // ); + }, + /** 导入按钮操作 */ + handleImport() { + this.fileList = []; + this.importOpen = true; }, }, }; - - - - - + @@ -66,7 +35,7 @@ 重置 - + --> @@ -90,27 +59,7 @@ >删除 - - 下载模版 - - - 导入 - - + - - - - - - - - - - - - - - + - - - @@ -421,11 +273,13 @@ import { patientUpd, patientDel, } from "@/api/patientFile"; +// import { tenantsList } from "@/api/member"; export default { name: "Notice", dicts: ["sys_notice_status", "sys_notice_type"], data() { return { + tenantsListData: [], // 组织列表 headers: { Authorization: "Bearer " + getToken(), deptId: localStorage.getItem("hospitalId"), @@ -586,9 +440,19 @@ export default { created() { let idCard = this.$route.query.idCard; this.queryParams.param.keywords = idCard || ""; - this.getList(); + this.getList(); // 列表 + // this.getTenantsList(); // 组织列表 }, methods: { + // 组织列表 + getTenantsList() { + tenantsList({ + pageNum: -1, + param: {}, + }).then((res) => { + this.tenantsListData = res.data.list; + }); + }, // 上传成功回 - pdg handleUploadPdfAdd1(res) { if (res.code == 200) { @@ -702,7 +566,7 @@ export default { /** 诊疗档案 */ handleArchives(row) { this.$router.push({ - path: `/medicalIndex?idCard=${row.idCard}`, + path: `/medicalFile/index?idCard=${row.idCard}`, }); }, /** 提交按钮 */