From 1e961c13e44baf072ab9c0486847b00511d87445 Mon Sep 17 00:00:00 2001 From: bianyaqi Date: Tue, 21 Mar 2023 09:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E8=AE=BF=E8=AE=B0=E5=BD=95=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + public/index.html | 4 +- src/components/360View/collection.vue | 112 ++- .../followUpRecord/add-follow-record.vue | 56 +- .../followUpRecord/formList/invalid.vue | 93 +++ .../followUpRecord/formList/outFollow.vue | 356 ++++++++ .../followUpRecord/formList/phoneFollow.vue | 212 +++++ .../360View/followUpRecord/index.vue | 260 +++--- src/components/360View/index1.vue | 6 +- .../360View/time-line-follow-up.vue | 25 +- src/page-subspecialty/main.js | 235 +++--- src/page-subspecialty/router/index.js | 762 ++++++++++-------- .../modules/formList/InformedConsent.vue | 341 ++++++++ .../views/modules/formList/deveopmentFIle.vue | 609 ++++++++++++++ .../views/modules/formList/laserSurgery.vue | 253 ++++++ .../optometryManagement/dioptric/index.vue | 2 +- .../outpatientManagement/treat/index.vue | 2 +- 17 files changed, 2604 insertions(+), 725 deletions(-) create mode 100644 src/components/360View/followUpRecord/formList/invalid.vue create mode 100644 src/components/360View/followUpRecord/formList/outFollow.vue create mode 100644 src/components/360View/followUpRecord/formList/phoneFollow.vue create mode 100644 src/page-subspecialty/views/modules/formList/InformedConsent.vue create mode 100644 src/page-subspecialty/views/modules/formList/deveopmentFIle.vue create mode 100644 src/page-subspecialty/views/modules/formList/laserSurgery.vue diff --git a/package.json b/package.json index 192a264..839b8bc 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "cornerstone-tools": "^5.2.0", "cornerstone-wado-image-loader": "^3.3.2", "cornerstone-web-image-loader": "^2.1.1", + "default-passive-events": "^2.0.0", "dicom-parser": "^1.8.7", "docxtemplater": "^3.25.1", "echarts": "^4.9.0", diff --git a/public/index.html b/public/index.html index 4cb9a55..16d223b 100644 --- a/public/index.html +++ b/public/index.html @@ -39,8 +39,8 @@ <% if (process.env.VUE_APP_NODE_ENV === 'dev') { %> <% } %> diff --git a/src/components/360View/collection.vue b/src/components/360View/collection.vue index 940597d..240dc37 100644 --- a/src/components/360View/collection.vue +++ b/src/components/360View/collection.vue @@ -6,15 +6,13 @@ - + {{ node.label }} - @@ -36,11 +34,11 @@ - - + + @@ -83,70 +81,30 @@ export default { return { dialogFormVisible: false, remark: '', - currentNumber: '', + curId: '', editName: '', - collectProps: { - // children: 'childs', - // label: 'name' - }, + editMessage: '', + disabled: false, // 用防止多次添加或多次重命名 addParam: { id: 0, parentId: 0 }, doctorId: JSON.parse(window.localStorage.getItem('qg-userData')).id, collectData: [], - tableData: [{ - id: 1, - label: '一级 1', - isEdit: false, - children: [{ - id: 4, - label: '二级 1-1', - children: [{ - id: 9, - label: '三级 1-1-1' - }, { - id: 10, - label: '三级 1-1-2' - }] - }] - }, { - id: 2, - isEdit: false, - label: '一级 2', - children: [{ - id: 5, - label: '二级 2-1' - }, { - id: 6, - label: '二级 2-2' - }] - }, { - id: 3, - isEdit: false, - label: '一级 3', - children: [{ - id: 7, - label: '二级 3-1' - }, { - id: 8, - label: '二级 3-2' - }] - }], - setPlanList: [], - addFollowList: [], - patientInfoHeadHeight: '', - crfSelectVisible: false + tableData: [] } }, watch: { - + dialogFormVisible(newValue) { + if (newValue) { + this.$nextTick(() => { + this.$refs.renameRef.focus() + }) + } + } }, async created() { this.initPatient() - }, - mounted() { - }, methods: { // 初始化获取或者相关信息 @@ -187,28 +145,52 @@ export default { // }) // console.log('详情目录', data) // }, + levelClick(data) { + this.curId = data.id + console.log(this.curId) + }, searchRemark(data) { // this.treeId = data.id // this.remark = data.hisManagePatientEntity ? data.hisManagePatientEntity.remark : '' // this.remarkId = data.hisManagePatientEntity ? data.hisManagePatientEntity.id : '' }, handleAddPatient() { - this.$http.post('/tree/addPatientTree', {}) + const params = { + createDate: new Date().getDate(), + id: 0, + patientId: this.patientId, + platform: this.platform, + remark: this.remark, + treeId: this.curId + } + this.$http.post('/tree/addPatientTree', params).then(() => { + this.editMessage = '收藏成功!' + this.$message({ + message: this.editMessage, + type: 'success' + }) + }) }, // 新增节点 addNode(command, node) { + this.editMessage = '添加成功!' + this.disabled = false switch (command) { + // 新建同级节点 case 'same': this.dialogFormVisible = true this.addParam.id = node.id this.addParam.parentId = node.parent.id this.editName = node.name break + // 新建子级节点 case 'child': + this.dialogFormVisible = true this.addParam.id = node.id this.addParam.parentId = node.parent.id this.editName = node.name break + // 初始新增 default: this.addParam.id = 0 this.addParam.parentId = 0 @@ -227,14 +209,17 @@ export default { weight: 1, ...this.addParam } + this.disabled = true await this.$http.post('/tree/addTree', params) - await this.findTree() this.dialogFormVisible = false + await this.findTree() }, + // 更多 handleNode(command, node, data) { if (command === 'delete') { this.deleteNode(node, data) } else { + this.disabled = false this.editNode(node, data) } }, @@ -251,14 +236,19 @@ export default { weight: 1, ...this.addParam } - this.$http.post('/tree/deleteTree', params) + this.$http.post('/tree/deleteTree', params).then(() => { + this.$message({ + message: '删除成功!', + type: 'success' + }) + }) this.findTree() }, // 重命名 editNode(node, data) { this.dialogFormVisible = true this.editName = node.label - this.findTree() + this.editMessage = '重命名成功!' } } } diff --git a/src/components/360View/followUpRecord/add-follow-record.vue b/src/components/360View/followUpRecord/add-follow-record.vue index 82ee206..dcb675b 100644 --- a/src/components/360View/followUpRecord/add-follow-record.vue +++ b/src/components/360View/followUpRecord/add-follow-record.vue @@ -8,16 +8,18 @@ @close="closeDialog" > - + - - {{ item.name }} + + + {{ item.name }} + @@ -44,9 +49,15 @@ import editFullCaseTemplate from '@/components/hm-crf/edit-full-case-template.vu import intelligentFull from '@/components/hm-crf/intelligent-full.vue' import addFollowRecord from './add-follow-record.vue' import IntelligentFill from '@/mixins/IntelligentFill' +import Invalid from '@/components/360View/followUpRecord/formList/invalid.vue' +import PhoneFollow from '@/components/360View/followUpRecord/formList/phoneFollow.vue' +import OutFollow from '@/components/360View/followUpRecord/formList/outFollow.vue' const Base64 = require('js-base64').Base64 export default { components: { + OutFollow, + PhoneFollow, + Invalid, timeLineFollowUp, addFollowRecord, followUp, @@ -66,6 +77,10 @@ export default { patientId: { type: String, default: '' + }, + platform: { + type: String, + default: '' } }, inject: ['refresh'], @@ -73,8 +88,10 @@ export default { return { visible: true, timeAxisData: [], // 左侧时间轴数据 + timeAxisDataVisit: [], // 左侧时间轴数据 + curFormType: '', followRecordVisible: false, - crfVisible: false, + // crfVisible: false, followUpVisible: false, editFullCaseTemplateVisible: false, intelligentFullVisible: false, @@ -98,32 +115,75 @@ export default { recordLength: '10:12:12', flag: 0 }], - followFormList: [], + followFormList: [ + { + id: '1', + name: '无效联系' + }, { + id: '2', + name: '电话随访' + }, { + id: '3', + name: '门诊随访' + } + ], loading: true, isCloseRefresh: false } }, + created() { + this.getAxisDataVisit() + }, methods: { init() { this.visible = true - this.$nextTick(() => { - this.getTimeAxisData() - // 根据类型获取随访表单列表 - this.getFollowFormList() + }, + getAxisDataVisit(del, add, value) { + const params = { + patientId: this.patientId + } + this.$http.get('/patient/view/getTimeAxisDataVisit', { params }).then(res => { + this.timeAxisDataVisit = res.data.data + if (add) { + const index = this.timeAxisDataVisit.findIndex(item => item.date === this.$moment(value.createTime).format('YYYY-MM-DD')) + this.$refs.timeline.itemCurrentIndex = index || 0 + this.$refs.timeline.itemListCurrentIndex = 0 + this.dataForm = this.timeAxisDataVisit[index].itemList[0] + window.sessionStorage.setItem('itemCurrentIndex', index) + window.sessionStorage.setItem('itemListIndex', 0) + } + if (del) { + // 判断当前日期是否还存在 + const Isdate = this.timeAxisDataVisit.some(item => item.date === this.dataForm.opDate) + // 获取当前所在序列 + const itemCurrentIndex = this.$refs.timeline.itemCurrentIndex + const itemListCurrentIndex = this.$refs.timeline.itemListCurrentIndex + // 如果当前日期存在获取当前日期下的随访dataform + if (Isdate) { + const itemListIndex = itemListCurrentIndex === 0 ? 0 : itemListCurrentIndex - 1 + this.$refs.timeline.itemListCurrentIndex = itemListIndex + this.dataForm = this.timeAxisDataVisit[itemCurrentIndex].itemList[itemListIndex] + window.sessionStorage.setItem('itemCurrentIndex', itemCurrentIndex) + window.sessionStorage.setItem('itemListIndex', itemListIndex) + } else { + // 如果不存在获取上一日期的第一个序列的随访dataform + const itemIndex = itemCurrentIndex === 0 ? 0 : itemCurrentIndex - 1 + this.$refs.timeline.itemCurrentIndex = itemIndex + this.$refs.timeline.itemListCurrentIndex = 0 + this.dataForm = this.timeAxisDataVisit[itemIndex].itemList[0] + window.sessionStorage.setItem('itemCurrentIndex', itemIndex) + window.sessionStorage.setItem('itemListIndex', 0) + } + } }) }, + getAxisData(val) { + this.curFormType = val.name + this.getAxisDataVisit('', 'add', val) + }, // 打印 printerHandle() { - this.$refs.crfComponent.$el.contentWindow.print() - }, - // 根据类型获取随访表单列表 - async getFollowFormList() { - const { data: res } = await this.$http.get('/crf/template/getListByType/随访') - if (res.code === 0) { - this.followFormList = res.data - } else { - this.$message.error(res.msg) - } + this.printPage('followFunc') }, // 点击新增随访记录 时间+选择随访表单 addFollowHandle() { @@ -131,154 +191,35 @@ export default { this.isCloseRefresh = true this.$nextTick(() => { this.$refs.followRecordRef.followFormList = this.followFormList - this.$refs.followRecordRef.dataForm.patientIdNumber = this.patientIdNumber - this.$refs.followRecordRef.dataForm.patientCentreId = this.patientCentreId this.$refs.followRecordRef.init() }) }, - // 新增修改填写CRF - addOrUpdateHandle(data, flag) { - this.isCloseRefresh = flag !== 'put' - // console.log(data) - this.$store.commit('destroyPlugin') - if (data.crfDescription === '病历模板') { - this.editFullCaseTemplateVisible = true - this.$nextTick(() => { - this.$refs.editFullCaseTemplateRef.dataForm.id = flag === 'post' ? data.id : data.formId - this.$refs.editFullCaseTemplateRef.dataForm.description = data.crfDescription - this.$refs.editFullCaseTemplateRef.dataForm.patientIdNumber = data.patientIdNumber - this.$refs.editFullCaseTemplateRef.dataForm.patientCentreId = data.patientCentreId - this.$refs.editFullCaseTemplateRef.init() - }) - } else if (data.crfDescription === '智能填充') { - this.intelligentFullVisible = true - this.$nextTick(() => { - this.$refs.intelligentFullRef.dataForm.crfId = data.crfId - this.$refs.intelligentFullRef.dataForm.formId = flag === 'post' ? data.id : data.formId - this.$refs.intelligentFullRef.dataForm.isWrite = data.isWrite - this.$refs.intelligentFullRef.init() - }) - } else { - this.followUpVisible = true - this.$nextTick(() => { - this.$refs.followUp.dataForm.crfId = data.crfId - this.$refs.followUp.dataForm.formId = flag === 'post' ? data.id : data.formId - this.$refs.followUp.dataForm.isWrite = data.isWrite - this.$refs.followUp.init() - }) - } - }, // 显示当前随访表单 childInit(item) { - console.log(item) - item ? this.dataForm = { ...this.dataForm, ...item } : '' - this.crfVisible = false - this.$nextTick(() => { - this.$http.get(`/visit/record/${this.dataForm.formId}`) - .then(({ data: res }) => { - if (res.code !== 0) { - return this.$message.error(res.msg) - } - if (res.data) { - res.data.formId = res.data.id - delete res.data.id - this.dataForm = { ...this.dataForm, ...res.data } - // console.log(this.dataForm) - this.dataForm.content = Base64.decode(res.data.formContent) - // console.log(this.dataForm) - this.crfVisible = true - console.log(this.dataForm) - this.dataForm.isWrite === 0 && (this.dataForm.crfDescription === '智能填充' || this.dataForm.crfDescription === '病历模板') ? this.getFirstFeedbackData('智能填充', this.dataForm.formId) : this.CRFLoading = false - } - }).catch(() => { }) - }) + this.dataForm = item + this.curFormType = this.dataForm.groupName }, - // 获取时间轴数据--左侧时间轴 - async getTimeAxisData(flag, data, del) { - this.loading = true - const addFromData = data - data ? this.dataForm = data : '' - const { data: res } = await this.$http.get(`/visit/record/${this.patientCentreId}/${this.patientIdNumber}`) - if (res.code === 0) { - if (res.data.length > 0) { - res.data.forEach(item => { - item.active = false - }) - this.timeAxisData = res.data - // 刚新增随访添加日期完成后定位当前所在序列位置高亮 - data ? this.timeAxisData.forEach((item, index) => { - // console.log('data', data) - // console.log('item', item) - // console.log('this.dataForm', this.dataForm) - if (item.dateStr === this.dataForm.formDate) { - this.$refs.timeline.itemCurrentIndex = index - item.dataList.forEach((iten, itenIndex) => { - if (iten.formId === this.dataForm.id) { - this.$refs.timeline.itemListCurrentIndex = itenIndex - window.sessionStorage.setItem('itemCurrentIndex', index) - window.sessionStorage.setItem('itemListIndex', itenIndex) - } - }) - } - }) : '' - // 如果是新增修改调取随访表单弹框 - flag === 'add' ? this.addOrUpdateHandle(addFromData, 'post') : '' - // 如果是删除操作设置高亮区域及dataform和随访表单回显 - if (del && !flag) { - // 判断当前日期是否还存在 - const Isdate = this.timeAxisData.some(item => item.dateStr === this.dataForm.formDate) - // 获取当前所在序列 - const itemCurrentIndex = this.$refs.timeline.itemCurrentIndex - const itemListCurrentIndex = this.$refs.timeline.itemListCurrentIndex - // 如果当前日期存在获取当前日期下的随访dataform - if (Isdate) { - const itemListIndex = itemListCurrentIndex == 0 ? 0 : itemListCurrentIndex - 1 - this.$refs.timeline.itemListCurrentIndex = itemListIndex - this.dataForm = this.timeAxisData[itemCurrentIndex].dataList[itemListIndex] - window.sessionStorage.setItem('itemCurrentIndex', itemCurrentIndex) - window.sessionStorage.setItem('itemListIndex', itemListIndex) - this.childInit() - } else { - // 如果不存在获取上一日期的第一个序列的随访dataform - const itemIndex = itemCurrentIndex == 0 ? 0 : itemCurrentIndex - 1 - this.$refs.timeline.itemCurrentIndex = itemIndex - this.$refs.timeline.itemListCurrentIndex = 0 - this.dataForm = this.timeAxisData[itemIndex].dataList[0] - window.sessionStorage.setItem('itemCurrentIndex', itemIndex) - window.sessionStorage.setItem('itemListIndex', 0) - // console.log(123) - this.childInit() - } - } else if (!del && !flag) { - // console.log(123) - const getItemListCurrentIndex = window.sessionStorage.getItem('itemListIndex') ? window.sessionStorage.getItem('itemListIndex') : 0 - const getItemCurrentIndex = window.sessionStorage.getItem('itemCurrentIndex') ? window.sessionStorage.getItem('itemCurrentIndex') : 0 - // console.log(this.timeAxisData) - this.dataForm = this.timeAxisData[getItemCurrentIndex].dataList[getItemListCurrentIndex] - // console.log(this.dataForm) - this.childInit() - } - } else { - this.dataForm = {} - this.timeAxisData = [] - del ? this.$emit('refreshFollow') : '' - } - this.loading = false - } else { - this.$message.error(res.msg) - } + // 保存表单 + addOrUpdateHandle() { + this.$refs.followRef.addOrUpdateHandle().then(() => { + this.$message({ + message: '保存成功!', + type: 'success' + }) + this.getAxisDataVisit() + }) }, // 删除 async deleteHandle() { this.$confirmFun('你确定要删除此随访记录吗?').then(async() => { - const { data: res } = await this.$http.delete(`/visit/record/${this.dataForm.id}`) + const { data: res } = await this.$http.post('/case/delete', { id: this.dataForm.id }) if (res.code === 0) { this.$message({ message: this.$t('prompt.success'), type: 'success', duration: 500, onClose: () => { - this.getTimeAxisData('', '', 'delete') + this.getAxisDataVisit('del') } }) } else { @@ -329,6 +270,10 @@ export default { } } + .btnGroup{ + display: flex; + justify-content: flex-end; + } .content-right { flex: 1; //overflow:hidden; @@ -409,6 +354,13 @@ export default { padding-right: 0; } } +.table_form{ + height: calc(100vh - 300px); + width: 100%; + padding-bottom: 10px; + overflow: hidden; + overflow-y: scroll; +} diff --git a/src/page-subspecialty/views/modules/formList/deveopmentFIle.vue b/src/page-subspecialty/views/modules/formList/deveopmentFIle.vue new file mode 100644 index 0000000..fc37282 --- /dev/null +++ b/src/page-subspecialty/views/modules/formList/deveopmentFIle.vue @@ -0,0 +1,609 @@ + + + + diff --git a/src/page-subspecialty/views/modules/formList/laserSurgery.vue b/src/page-subspecialty/views/modules/formList/laserSurgery.vue new file mode 100644 index 0000000..48edbdc --- /dev/null +++ b/src/page-subspecialty/views/modules/formList/laserSurgery.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue b/src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue index 4eb2da6..829ac6a 100644 --- a/src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue +++ b/src/page-subspecialty/views/modules/optometryManagement/dioptric/index.vue @@ -111,7 +111,7 @@ - + diff --git a/src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue b/src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue index 5b43ff5..5f42c80 100644 --- a/src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue +++ b/src/page-subspecialty/views/modules/outpatientManagement/treat/index.vue @@ -105,7 +105,7 @@ - +