Browse Source

表单修改

360view
bianyaqi 2 years ago
parent
commit
ef0e53d903
  1. 64
      src/components/360View/medicalRecord/index.vue
  2. 4
      src/page-subspecialty/views/main-sidebar.vue
  3. 508
      src/page-subspecialty/views/modules/formList/InformedConsent.vue
  4. 276
      src/page-subspecialty/views/modules/formList/laserSurgery.vue
  5. 28
      src/page-subspecialty/views/modules/formList/mraForm.vue
  6. 150
      src/page-subspecialty/views/modules/formList/reportForm.vue

64
src/components/360View/medicalRecord/index.vue

@ -37,7 +37,7 @@
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:json-text="jsonText"
:case-id="id"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
@ -47,7 +47,7 @@
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:json-text="jsonText"
:case-id="id"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
@ -57,7 +57,7 @@
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:json-text="jsonText"
:case-id="id"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
@ -67,7 +67,7 @@
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:json-text="jsonText"
:case-id="id"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
@ -129,8 +129,7 @@ export default {
formList: [],
defaultChecked: [],
formType: '门诊',
patientData: {},
jsonText: ''
patientData: {}
}
},
created() {
@ -151,7 +150,6 @@ export default {
this.id = item.id
this.name = item.name
this.caseId = item.id
this.jsonText = item.jsonText
this.isPlatform = this.isSearch === item.platform
return
}
@ -160,7 +158,6 @@ export default {
this.id = item.id
this.name = item.name
this.caseId = item.id
this.jsonText = item.jsonText
this.isPlatform = this.isSearch === item.platform
})
},
@ -197,28 +194,8 @@ export default {
this.patientData = data.data.data
})
},
updateForm(data) {
if (data) {
this.jsonText = JSON.stringify(data)
}
this.saveFormData(this.jsonText)
},
async saveFormData(jsonText) {
const params = {
flag: 8,
name: this.name,
jsonText,
patientId: this.patientId,
id: this.id,
platform: this.isSearch
}
const { data: res } = await this.$http.post('/case/update', params)
if (res.code === 0) {
this.$message.success('保存成功')
this.getFormList('update')
} else {
this.$message.error(res.msg)
}
updateForm() {
this.getFormList('update')
},
addRecord(name) {
const date = this.$moment().format('YYYY-MM-DD HH:mm:ss')
@ -248,16 +225,24 @@ export default {
})
},
//
formDelete() {
const params = {
id: this.id
formDelete(val) {
if (!val) {
switch (this.name) {
case '眼科激光手术患者知情同意书':
this.$refs.informedConsent.formDelete()
break
case '报告':
this.$refs.reportForm.formDelete()
break
case '眼底血管造影知情同意书':
this.$refs.mraForm.formDelete()
break
case '眼科激光手术治疗':
this.$refs.laserSurgery.formDelete()
}
} else {
this.getFormList()
}
this.$confirmFun('你确定要删除吗?').then(() => {
this.$http.post('/case/delete', params).then(() => {
this.getFormList()
this.$message.success('删除成功')
})
})
},
async getFormList(mode) {
const { data: res } = await this.$http.get('/patient/view/getCases', {
@ -274,7 +259,6 @@ export default {
this.name = this.formList[0].name
this.id = this.formList[0].id
this.curIndex = 0
this.jsonText = this.formList[0].jsonText
this.isPlatform = this.isSearch === this.formList[0].platform
} else {
this.name = ''

4
src/page-subspecialty/views/main-sidebar.vue

@ -53,8 +53,8 @@ export default {
}
},
created() {
const defauleActiveIndex = window.localStorage.getItem('defauleActiveIndex')
? window.localStorage.getItem('defauleActiveIndex') : window.SITE_CONFIG.menuList[0].children[0].id
const defauleActiveIndex = window.sessionStorage.getItem('defauleActiveIndex')
? window.sessionStorage.getItem('defauleActiveIndex') : window.SITE_CONFIG.menuList[0].children[0].id
setTimeout(() => {
this.$store.state.sidebarMenuList = window.SITE_CONFIG.menuList
}, 200)

508
src/page-subspecialty/views/modules/formList/InformedConsent.vue

@ -15,19 +15,19 @@
</p>
<!--患者信息-->
<div class="flex">
<div class="flex a-c item">姓名<el-input v-model="formData.patientName" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">年龄<el-input v-model="formData.patientAge" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">性别<el-input v-model="formData.patientSex" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">眼别<el-input v-model="formData.patientEyeLevel" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">姓名<el-input v-model="confirmData.patientName" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">年龄<el-input v-model="confirmData.patientAge" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">性别<el-input v-model="confirmData.patientGender" style="flex: 1" placeholder="" /></div>
<div class="flex a-c item">眼别<el-input v-model="confirmData.eyeType" style="flex: 1" placeholder="" /></div>
</div>
<!--术前判断-->
<div>
<div class="formTitle">
术前诊断
</div>
<div v-for="(item, index) in formData.judgement" :key="index" class="judgeItem">
<div v-for="(item, index) in judgement" :key="index" class="judgeItem">
<span>{{ `${index+1}. ${item.name}` }}</span>
<el-input v-if="item.isEdit" v-model="item.remark" style="flex: 1" />
<el-input v-if="item.isEdit" v-model="confirmData.other" style="flex: 1" />
<template v-else>
<div v-for="(judge,idx) in item.symptom" :key="idx" class="flex a-c">
<div class="check" @click="judge.isSelected = !judge.isSelected">
@ -42,11 +42,10 @@
<div>
<div class="formTitle">麻醉方式选择</div>
<div class="flex">
<div v-for="(sel,i) in formData.modeSelect" :key="i" style="margin-right: 30px">
<div v-for="(sel,i) in modeSelect" :key="i" style="margin-right: 30px">
<div class="check" @click="sel.isSelected = !sel.isSelected">
<input type="checkbox" :checked="sel.isSelected">{{ sel.name }}
</div>
<!-- <el-checkbox v-model="sel.isSelected" class="checkboxItem">{{ sel.name }}</el-checkbox>-->
</div>
</div>
</div>
@ -54,7 +53,7 @@
<div>
<div class="formTitle">拟行激光术名称</div>
<div class="proposed">
<div v-for="(item,i) in formData.proposedName" :key="i" class="flex a-c" style="margin-right: 35px">
<div v-for="(item,i) in proposedName" :key="i" class="flex a-c" style="margin-right: 35px">
<span class="check" @click="item.isSelected = !item.isSelected">
<input type="checkbox" :checked="item.isSelected">{{ item.name }}
</span>
@ -92,8 +91,8 @@
</div>
<div class="btnBox">
<div>
<div class="flex a-c">主诊/谈话医生签名<el-input v-model="formData.doctorSign" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="formData.docDate" style="flex: 1" /></div>
<div class="flex a-c">主诊/谈话医生签名<el-input v-model="confirmData.operationSign" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="confirmData.operationDate" style="flex: 1" /></div>
</div>
</div>
</div>
@ -105,8 +104,8 @@
</div>
<div class="btnBox">
<div>
<div class="flex a-c">患者或直系亲属签名<el-input v-model="formData.patientSign" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="formData.patientDate" style="flex: 1" /></div>
<div class="flex a-c">患者或直系亲属签名<el-input v-model="confirmData.patientSign" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="confirmData.patientDate" style="flex: 1" /></div>
</div>
</div>
</div>
@ -118,10 +117,6 @@
export default {
name: 'InformedConsent',
props: {
jsonText: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
@ -132,204 +127,389 @@ export default {
},
patientDetail: {
type: Object
},
caseId: {
type: String,
default: ''
}
},
data() {
return {
originalData: {},
formData: {
//
patientName: '',
confirmData: {
bnz: '',
coats: '',
eyeType: '',
idList: [],
jgsh: '', //
jgshArea: '', //
jzNumber: '', //
mzfs: '', //
operationDate: '', //
operationSign: '', //
other: '', //
patientAge: '',
patientSex: '',
patientEyeLevel: '',
//
doctorSign: '',
docDate: '',
patientSign: '',
patientDate: '',
//
judgement: [
{
name: '白内障',
symptom: [{
title: '后发性',
isSelected: false
}, {
title: '其他',
isSelected: false,
isEdit: true,
remark: ''
}]
},
{
name: '青光眼',
symptom: [{
title: '闭角型',
isSelected: false
}, {
title: '开角型',
isSelected: false
}, {
title: '其他',
isSelected: false,
remark: '',
isEdit: true
}]
},
{
name: '眼底病',
symptom: [{
title: '糖尿病视网膜病变',
isSelected: false
}, {
title: '视网膜裂孔',
isSelected: false
}, {
title: '视网膜变性',
isSelected: false
}, {
title: '黄斑部疾病',
isSelected: false
}, {
title: '其他',
isSelected: false,
isEdit: true,
remark: ''
}]
},
{
name: '视网膜血管性病变',
symptom: [{
title: '视网膜静脉阻塞(中央)',
isSelected: false
}, {
title: '视网膜静脉阻塞(分支)',
isSelected: false
}, {
title: '视网膜静脉周围炎',
isSelected: false
}]
},
{
name: "Coat's 病",
symptom: [{
title: '',
isSelected: false
}]
},
{
name: '其他',
isEdit: true,
remark: '',
symptom: []
}
],
//
modeSelect: [
{
name: '表麻',
isSelected: false
}, {
name: '局麻',
isSelected: false
}, {
name: '局麻+镇静',
isSelected: false
}, {
name: '基础麻醉',
patientGender: '',
patientName: '',
patientSign: '',
qgy: '',
ydb: '',
swmxgxbb: ''
},
//
judgement: [
{
name: '白内障',
symptom: [{
title: '后发性',
isSelected: false
}, {
name: '其他',
title: '其他',
isSelected: false,
isEdit: true,
remark: ''
}
],
//
proposedName: [
{
name: '激光后囊切开术',
}]
},
{
name: '青光眼',
symptom: [{
title: '闭角型',
isSelected: false
}, {
name: '激光前囊切开术',
title: '开角型',
isSelected: false
}, {
name: '激光周边虹膜切除',
title: '其他',
isSelected: false,
remark: '',
isEdit: true
}]
},
{
name: '眼底病',
symptom: [{
title: '糖尿病视网膜病变',
isSelected: false
}, {
name: '激光房角成形术',
title: '视网膜裂孔',
isSelected: false
}, {
name: '激光睫状体光凝术',
title: '视网膜变性',
isSelected: false
}, {
name: '激光断线',
title: '黄斑部疾病',
isSelected: false
}, {
name: '视网膜光凝术',
title: '其他',
isSelected: false,
area: [{
name: '局部',
isSelected: false
}, {
name: '全',
isSelected: false
}, {
name: '黄斑区',
isSelected: false
}]
}, {
name: '激光瞳孔成形术',
isEdit: true,
remark: ''
}]
},
{
name: '视网膜血管性病变',
symptom: [{
title: '视网膜静脉阻塞(中央)',
isSelected: false
}, {
name: '激光瞳孔残膜切开术',
title: '视网膜静脉阻塞(分支)',
isSelected: false
}, {
name: '激光虹膜黏连剖除术',
title: '视网膜静脉周围炎',
isSelected: false
}, {
name: '玻璃体条索切开术',
}]
},
{
name: "Coat's 病",
symptom: [{
title: '',
isSelected: false
}]
},
{
name: '其他',
isEdit: true,
remark: '',
symptom: []
}
],
//
modeSelect: [
{
name: '表麻',
isSelected: false
}, {
name: '局麻',
isSelected: false
}, {
name: '局麻+镇静',
isSelected: false
}, {
name: '基础麻醉',
isSelected: false
}, {
name: '其他',
isSelected: false
// isEdit: true,
// remark: ''
}
],
//
proposedName: [
{
name: '激光后囊切开术',
isSelected: false
}, {
name: '激光前囊切开术',
isSelected: false
}, {
name: '激光周边虹膜切除',
isSelected: false
}, {
name: '激光房角成形术',
isSelected: false
}, {
name: '激光睫状体光凝术',
isSelected: false
}, {
name: '激光断线',
isSelected: false
}, {
name: '视网膜光凝术',
isSelected: false,
area: [{
name: '局部',
isSelected: false
}, {
name: '激光倒睫术',
name: '',
isSelected: false
}, {
name: '其他',
name: '黄斑区',
isSelected: false
}
]
},
}]
}, {
name: '激光瞳孔成形术',
isSelected: false
}, {
name: '激光瞳孔残膜切开术',
isSelected: false
}, {
name: '激光虹膜黏连剖除术',
isSelected: false
}, {
name: '玻璃体条索切开术',
isSelected: false
}, {
name: '激光倒睫术',
isSelected: false
}, {
name: '其他',
isSelected: false
}
],
//
intraoperation: ['麻醉意外:需进行抢救或暂停手术', '出血:需要压迫止血,推迟或暂停手术', '其他无法预计的并发症', '术中可能会根据具体情况变更手术方式'],
postoperative: ['暂时性眼压升高', '损伤人工晶体', '角膜内皮损伤', '虹膜炎症反应', '玻璃体前界膜破裂', '视功能损伤', '渗出性视网膜脱离', '黄斑水肿', '脉络膜脱离', '虹膜(视网膜、脉络膜)出血', '其他']
}
},
watch: {
jsonText(val) {
caseId(val) {
if (val) {
this.formData = JSON.parse(val)
} else {
this.formData = this.originalData
this.getInfoDetail()
}
}
},
created() {
this.originalData = JSON.parse(JSON.stringify(this.formData))
//
this.formData.patientName = this.patientDetail.patientName
this.formData.patientAge = this.patientDetail.patientAge
this.formData.patientSex = this.patientDetail.patientSex
if (this.jsonText) {
this.formData = JSON.parse(this.jsonText)
}
this.confirmData.patientName = this.patientDetail.patientName
this.confirmData.patientAge = this.patientDetail.patientAge
this.confirmData.patientGender = this.patientDetail.patientSex
this.getInfoDetail()
},
methods: {
getInfoDetail() {
this.$http.get('/mzbl/getMzblJgshzqtysInfo', { params: {
caseId: this.caseId,
patientId: this.patientDetail.patientId
}}).then(data => {
const detail = data.data.data
const bnzList = detail.bnz && detail.bnz.split('/') || []
const qgyList = detail.qgy && detail.qgy.split('/') || []
const ydbList = detail.ydb && detail.ydb.split('/') || []
const swmList = detail.swmxgxbb && detail.swmxgxbb.split('/') || []
const mzfsList = detail.mzfs && detail.mzfs.split('/') || []
const jgshList = detail.jgsh && detail.jgsh.split('/') || []
const jgshAreaList = detail.jgshArea && detail.jgshArea.split('/') || []
this.handleDetail(bnzList, qgyList, ydbList, swmList, detail.coats, mzfsList, jgshList, jgshAreaList)
this.confirmData.other = detail.other || ''
})
},
//
handleDetail(bnz, qgy, ydb, swm, coats, mzfs, jgsh, jgshArea) {
//
this.judgement.forEach(item => {
item.symptom.forEach(sy => {
switch (item.name) {
case '白内障':
if (bnz.some(bn => bn.includes(sy.title))) {
sy.isSelected = true
sy.remark = bnz.find(bn => bn.includes('其他')) && bnz.find(bn => bn.includes('其他')).substring(2)
} else {
sy.isSelected = false
sy.remark = ''
}
break
case '青光眼':
if (qgy.some(bn => bn.includes(sy.title))) {
sy.isSelected = true
sy.remark = qgy.find(bn => bn.includes('其他')) && qgy.find(bn => bn.includes('其他')).substring(2)
} else {
sy.isSelected = false
sy.remark = ''
}
break
case '眼底病':
if (ydb.some(bn => bn.includes(sy.title))) {
sy.isSelected = true
sy.remark = ydb.find(bn => bn.includes('其他')) && ydb.find(bn => bn.includes('其他')).substring(2)
} else {
sy.isSelected = false
sy.remark = ''
}
break
case '视网膜血管性病变':
if (swm.some(bn => bn.includes(sy.title))) {
sy.isSelected = true
} else {
sy.isSelected = false
}
break
case "Coat's 病":
if (coats) {
sy.isSelected = true
} else {
sy.isSelected = false
}
break
}
})
})
//
this.modeSelect.forEach(item => {
if (mzfs.some(mz => mz === item.name)) {
item.isSelected = true
} else {
item.isSelected = false
}
})
//
this.proposedName.forEach(item => {
if (jgsh.some(mz => mz === item.name)) {
item.isSelected = true
} else {
item.isSelected = false
}
})
//
this.proposedName[6].area.forEach(item => {
if (jgshArea.some(mz => mz === item.name)) {
item.isSelected = true
} else {
item.isSelected = false
}
})
},
//
handleList() {
this.judgement.forEach(item => {
const data = item.symptom.filter(ill => ill.isSelected).map(item => {
item.other = item.title
if (item.isEdit) {
item.other = item.title + item.remark
}
return item.other
})
switch (item.name) {
case '白内障':
this.confirmData.bnz = data.join('/')
break
case '青光眼':
this.confirmData.qgy = data.join('/')
break
case '眼底病':
this.confirmData.ydb = data.join('/')
break
case '视网膜血管性病变':
this.confirmData.swmxgxbb = data.join('/')
break
case "Coat's 病":
this.confirmData.coats = "Coat's 病"
}
})
},
//
handleNarcotism() {
const data = this.modeSelect.filter(item => item.isSelected).map(item => item.name)
this.confirmData.mzfs = data.join('/')
},
//
handleMode() {
const selectList = this.proposedName.filter(item => item.isSelected)
const mode = selectList.find(item => item.name.includes('视网膜光凝术'))
this.confirmData.jgshArea = mode && mode.area.filter(item => item.isSelected).map(item => item.name).join('/')
this.confirmData.jgsh = selectList.map(item => item.name).join('/')
},
// id
async queryProject() {
const project = window.localStorage.getItem('projectItem') ? JSON.parse(window.localStorage.getItem('projectItem')) : []
const { data: res } = await this.$http.get(
'/patient/getZlItemDict',
{
params: {
caseName: '眼科激光手术患者知情同意书'
}
}
)
if (res.code === 0) {
const data = res.data || []
const list = []
if (data.length) {
for (let i = 0; i < data.length; i++) {
for (let j = 0; j < project.length; j++) {
if (data[i].itemId === project[j].porjectCode) {
list.push(project[j].id)
}
}
}
this.confirmData.idList = list
}
} else {
this.$message.error(res.msg)
}
},
//
handleSaveTable() {
this.$emit('handleSaveTable', this.formData)
this.handleList()
this.handleNarcotism()
this.handleMode()
this.confirmData.jzNumber = window.localStorage.getItem('jzNumber')
this.$http.post('/mzbl/saveMzblJgshzqtys', {
caseId: this.caseId,
...this.confirmData
}).then(() => {
this.$emit('handleSaveTable')
})
},
//
formDelete() {
this.$emit('formDelete')
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/mzbl/delMzblJgshzqtysInfo', {
id: this.caseId
}).then(() => {
this.$message.success('删除成功')
this.$emit('formDelete', 'del')
})
})
}
}
}

276
src/page-subspecialty/views/modules/formList/laserSurgery.vue

@ -16,16 +16,16 @@
<!--患者信息-->
<div>
<div class="flex">
<div class="flex a-c item">姓名<el-input v-model="formData.patientName" style="flex: 1" /></div>
<div class="flex a-c item">年龄<el-input v-model="formData.patientAge" style="flex: 1" /></div>
<div class="flex a-c item">性别<el-input v-model="formData.patientSex" style="flex: 1" /></div>
<div class="flex a-c item">病例<el-input v-model="formData.patientId" style="flex: 1" /></div>
<div class="flex a-c item">姓名<el-input v-model="confirmData.patientName" style="flex: 1" /></div>
<div class="flex a-c item">年龄<el-input v-model="confirmData.patientAge" style="flex: 1" /></div>
<div class="flex a-c item">性别<el-input v-model="confirmData.patientSex" style="flex: 1" /></div>
<div class="flex a-c item">登记<el-input v-model="confirmData.patientId" style="flex: 1" /></div>
</div>
<div class="flex">
<div class="flex a-c">联系电话<el-input v-model="formData.patientPhone" style="flex: 1" /></div>
<div class="flex a-c item">家庭住址<el-input v-model="formData.patientAddress" style="flex: 1" /></div>
<div class="flex a-c">联系电话<el-input v-model="confirmData.patientPhone" style="flex: 1" /></div>
<div class="flex a-c item">家庭住址<el-input v-model="confirmData.patientAddress" style="flex: 1" /></div>
</div>
<div class="flex a-c item">诊断<el-input v-model="formData.patientDiagnose" style="flex: 1" /></div>
<div class="flex a-c item">诊断<el-input v-model="confirmData.diagnostic" style="flex: 1" /></div>
</div>
<!-- 治疗前-->
<div class="subTitle">治疗前</div>
@ -39,23 +39,23 @@
<tbody>
<tr>
<td>
<div class="flex a-c">视力1<el-input v-model="formData.btOdVision" style="flex: 1" /></div>
<div class="flex a-c">疾病分期<el-input v-model="formData.btOdIllness" style="flex: 1" /></div>
<div class="flex a-c">视力1<el-input v-model="confirmData.zlqSlOd" style="flex: 1" /></div>
<div class="flex a-c">疾病分期<el-input v-model="confirmData.zlqJbfqOd" style="flex: 1" /></div>
</td>
<td>
<div class="descImg" @click="editImg('OD')">
<div>示意图</div>
<img v-if="formData.btOdImgSrc" :src="formData.btOdImgSrc">
<img v-if="confirmData.zlqSytOd" :src="confirmData.zlqSytOd">
</div>
</td>
<td>
<div class="flex a-c">视力2<el-input v-model="formData.btOsVision" style="flex: 1" /></div>
<div class="flex a-c">疾病分期<el-input v-model="formData.btOsIllness" style="flex: 1" /></div>
<div class="flex a-c">视力2<el-input v-model="confirmData.zlqSlOs" style="flex: 1" /></div>
<div class="flex a-c">疾病分期<el-input v-model="confirmData.zlqJbfqOs" style="flex: 1" /></div>
</td>
<td>
<div class="descImg" @click="editImg('OS')">
<div>示意图</div>
<img v-if="formData.btOsImgSrc" :src="formData.btOsImgSrc">
<img v-if="confirmData.zlqSytOs" :src="confirmData.zlqSytOs">
</div>
</td>
</tr>
@ -71,9 +71,9 @@
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in formData.treatData" :key="index">
<tr v-for="(item,index) in treatData" :key="index">
<td>
<div class="flex a-c">日期<el-input v-model="item.OD.data" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="item.OD.date" style="flex: 1" /></div>
<div class="flex a-c">次数<el-input v-model="item.OD.order" style="flex: 1" /></div>
<div class="flex a-c">视力<el-input v-model="item.OD.vision" style="flex: 1" /></div>
<div class="flex a-c">光斑大小<el-input v-model="item.OD.flareSize" style="flex: 1" /></div>
@ -87,7 +87,7 @@
</div>
</td>
<td>
<div class="flex a-c">日期<el-input v-model="item.OS.data" style="flex: 1" /></div>
<div class="flex a-c">日期<el-input v-model="item.OS.date" style="flex: 1" /></div>
<div class="flex a-c">次数<el-input v-model="item.OS.order" style="flex: 1" /></div>
<div class="flex a-c">视力<el-input v-model="item.OS.vision" style="flex: 1" /></div>
<div class="flex a-c">光斑大小<el-input v-model="item.OS.flareSize" style="flex: 1" /></div>
@ -115,10 +115,6 @@ export default {
name: 'LaserSurgery',
components: { ImgEditor },
props: {
jsonText: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
@ -129,6 +125,10 @@ export default {
},
patientDetail: {
type: Object
},
caseId: {
type: String,
default: ''
}
},
data() {
@ -136,110 +136,113 @@ export default {
curType: '',
curIndex: '',
origin: '',
//
formData: {
patientName: '',
confirmData: {
patientAddress: '',
patientAge: '',
patientSex: '',
patientId: '',
patientName: '',
patientPhone: '',
patientAddress: '',
patientDiagnose: '',
// od
btOdVision: '',
btOdIllness: '',
btOdImgSrc: '',
// os
btOsVision: '',
btOsIllness: '',
btOsImgSrc: '',
patientSex: '',
jzNumber: '',
diagnostic: '',
idList: [],
//
zlqSlOd: '',
zlqJbfqOd: '',
zlqSytOd: '',
zlqSlOs: '',
zlqJbfqOs: '',
zlqSytOs: '',
//
treatData: [
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
jgzlCountOd1: '',
jgzlDateOd1: '',
jgzlDsOd1: '',
jgzlGbOd1: '',
jgzlGlOd1: '',
jgzlSlOd1: '',
jgzlSytOd1: ''
},
//
treatData: [
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
},
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
]
}
},
{
OD: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
},
OS: {
date: '',
order: '',
vision: '',
flareSize: '',
power: '',
count: '',
imgSrc: ''
}
}
]
}
},
watch: {
jsonText(val) {
caseId(val) {
if (val) {
this.formData = JSON.parse(val)
} else {
this.formData = this.origin
this.getConfirmDetail()
}
}
},
created() {
this.origin = JSON.parse(JSON.stringify(this.formData))
//
this.formData.patientName = this.patientDetail.patientName
this.formData.patientAge = this.patientDetail.patientAge
this.formData.patientSex = this.patientDetail.patientSex
this.formData.patientId = this.patientDetail.patientId
this.formData.patientAddress = this.patientDetail.patientAddress
this.formData.patientPhone = this.patientDetail.patientPhone
if (this.jsonText) {
this.formData = JSON.parse(this.jsonText)
}
this.confirmData.patientName = this.patientDetail.patientName
this.confirmData.patientAge = this.patientDetail.patientAge
this.confirmData.patientSex = this.patientDetail.patientSex
this.confirmData.patientId = this.patientDetail.patientId
this.confirmData.patientAddress = this.patientDetail.patientAddress
this.confirmData.patientPhone = this.patientDetail.patientPhone
this.getConfirmDetail()
},
methods: {
editImg(val, index) {
@ -250,10 +253,10 @@ export default {
fullImgBack(val) {
switch (this.curType) {
case 'OD':
this.formData.btOdImgSrc = val
this.confirmData.zlqSytOd = val
break
case 'OS':
this.formData.btOsImgSrc = val
this.confirmData.zlqSytOs = val
break
case 'treat-OD':
this.formData.treatData[this.curIndex].OD.imgSrc = val
@ -262,11 +265,60 @@ export default {
this.formData.treatData[this.curIndex].OS.imgSrc = val
}
},
getConfirmDetail() {
this.$http.get('/mzbl/getMzblJgshzlInfo', { params: {
caseId: this.caseId
}}).then(data => {
const detail = data.data.data
this.confirmData.diagnostic = detail.diagnostic || ''
//
this.confirmData.zlqSlOd = detail.zlqSlOd || ''
this.confirmData.zlqJbfqOd = detail.zlqJbfqOd || ''
this.confirmData.zlqSytOd = detail.zlqSytOd || ''
this.confirmData.zlqSlOs = detail.zlqSlOs || ''
this.confirmData.zlqJbfqOs = detail.zlqJbfqOs || ''
this.confirmData.zlqSytOs = detail.zlqSytOs || ''
//
this.confirmData.jgzlDateOd1 = detail.jgzlDateOd1 || ''
this.confirmData.jgzlCountOd1 = detail.jgzlCountOd1 || ''
this.confirmData.jgzlDsOd1 = detail.jgzlDsOd1 || ''
this.confirmData.jgzlSlOd1 = detail.jgzlSlOd1 || ''
this.confirmData.jgzlGlOd1 = detail.jgzlGlOd1 || ''
this.confirmData.jgzlGbOd1 = detail.jgzlGbOd1 || ''
this.confirmData.jgzlSytOd1 = detail.jgzlSytOd1 || ''
})
},
//
handleConfirmData() {
this.confirmData.jgzlDateOd1 = this.treatData[0].OD.date
this.confirmData.jgzlCountOd1 = this.treatData[0].OD.order
this.confirmData.jgzlDsOd1 = this.treatData[0].OD.count
this.confirmData.jgzlSlOd1 = this.treatData[0].OD.vision
this.confirmData.jgzlGlOd1 = this.treatData[0].OD.power
this.confirmData.jgzlGbOd1 = this.treatData[0].OD.flareSize
this.confirmData.jgzlSytOd1 = this.treatData[0].OD.imgSrc
},
//
handleSaveTable() {
this.$emit('handleSaveTable', this.formData)
this.confirmData.jzNumber = window.localStorage.getItem('jzNumber')
this.handleConfirmData()
this.$http.post('/mzbl/saveMzblJgshzl', {
caseId: this.caseId,
...this.confirmData
}).then(() => {
this.$emit('handleSaveTable')
})
},
//
formDelete() {
this.$emit('formDelete')
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/mzbl/delMzblJgshzlInfo', {
id: this.caseId
}).then(() => {
this.$message.success('删除成功')
this.$emit('formDelete', 'del')
})
})
}
}
}

28
src/page-subspecialty/views/modules/formList/mraForm.vue

@ -50,10 +50,6 @@
export default {
name: 'MraForm',
props: {
jsonText: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
@ -64,6 +60,9 @@ export default {
},
patientDetail: {
type: Object
},
caseId: {
type: String
}
},
data() {
@ -101,15 +100,6 @@ export default {
]
}
},
watch: {
jsonText(val) {
if (val) {
this.formData = JSON.parse(this.jsonText)
} else {
this.patient = this.origin
}
}
},
created() {
this.origin = JSON.parse(JSON.stringify(this.formData))
//
@ -117,16 +107,20 @@ export default {
this.formData.patientAge = this.patientDetail.patientAge
this.formData.patientSex = this.patientDetail.patientSex
this.formData.patientId = this.patientDetail.patientId
if (this.jsonText) {
this.formData = JSON.parse(this.jsonText)
}
},
methods: {
handleSaveTable() {
this.$emit('handleSaveTable', this.formData)
},
formDelete() {
this.$emit('formDelete')
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/case/delete', {
id: this.caseId
}).then(() => {
this.$message.success('删除成功')
this.$emit('formDelete', 'del')
})
})
}
}
}

150
src/page-subspecialty/views/modules/formList/reportForm.vue

@ -6,7 +6,7 @@
<el-button type="danger" size="small" @click="formDelete">删除</el-button>
</div>
<div id="reportForm" style="width: 840px;padding-right: 8px;text-align: left">
<div class="flex" style="width: 240px">患者姓名<el-input v-model="formData.patientName" style="flex: 1" /></div>
<div class="flex" style="width: 240px">患者姓名<el-input v-model="confirmData.patientName" style="flex: 1" /></div>
<table class="treatAction">
<thead>
<tr>
@ -20,31 +20,32 @@
<tbody>
<tr>
<td>
<div v-for="(item,index) in formData.form.OD" :key="index">
<div v-for="(item,index) in formData.form.OD" :key="index" style="display:flex;">
<div class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">{{ item.name }}
<el-input v-if="item.isEdit" v-model="item.remark" style="flex: 1" />
</div>
<el-input v-if="item.isEdit" v-model="item.remark" style="flex: 1" />
</div>
</td>
<td><div v-for="(item,index) in formData.form.OS" :key="`${index}_${index}`">
<div class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">{{ item.name }}
<td>
<div v-for="(item,index) in formData.form.OS" :key="`${index}_${index}`" style="display: flex">
<div class="check" @click="item.isSelect = !item.isSelect">
<input type="checkbox" :checked="item.isSelect">{{ item.name }}
</div>
<el-input v-if="item.isEdit" v-model="item.remark" style="flex: 1" />
</div>
</div></td>
</div></td>
</tr>
<tr>
<td colspan="2">
<div class="flex">
备注<el-input v-model="formData.remark" style="flex:1" />
备注<el-input v-model="confirmData.remark" style="flex:1" />
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="flex">
操作者<el-input v-model="formData.operator" style="flex:1" />
操作者<el-input v-model="confirmData.operator" style="flex:1" />
</div>
</td>
</tr>
@ -58,10 +59,6 @@
export default {
name: 'ReportForm',
props: {
jsonText: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
@ -72,15 +69,26 @@ export default {
},
patientDetail: {
type: Object
},
caseId: {
type: String,
default: ''
}
},
data() {
return {
origin: {},
formData: {
confirmData: {
fmwOd: '',
fmwOs: '',
jzNumber: '',
patientName: '',
remark: '',
operator: '',
idList: []
},
formData: {
patientName: '',
form: {
OD: [
{
@ -127,27 +135,119 @@ export default {
}
},
watch: {
jsonText(val) {
caseId(val) {
if (val) {
this.formData = JSON.parse(val)
} else {
this.formData = this.origin
this.getReportInfo()
}
}
},
created() {
this.origin = JSON.parse(JSON.stringify(this.formData))
this.formData.patientName = this.patientDetail.patientName
if (this.jsonText) {
this.formData = JSON.parse(this.jsonText)
}
this.confirmData.patientName = this.patientDetail.patientName
this.getReportInfo()
},
methods: {
//
handleFormEye(data) {
const list = data.filter(item => item.isSelect).map(item => {
item.other = item.name
if (item.isEdit) {
item.other = item.name + item.remark
}
return item.other
})
return list
},
//
handleResValue(val, change) {
if (!val) {
change.forEach(item => {
item.isSelect = false
item.remark = ''
})
return
}
const list = val.split('/')
change.forEach(item => {
list.forEach(lis => {
if (lis === item.name) {
item.isSelect = true
}
if (lis.includes('其他')) {
item.isSelect = true
item.remark = lis.split(':')[1]
}
})
//
if (!item.isSelect) {
item.remark = ''
}
})
},
//
handleSaveTable() {
this.$emit('handleSaveTable', this.formData)
this.confirmData.fmwOd = this.handleFormEye(this.formData.form.OD).join('/')
this.confirmData.fmwOs = this.handleFormEye(this.formData.form.OS).join('/')
this.confirmData.jzNumber = window.localStorage.getItem('jzNumber')
this.$http.post('/mzbl/saveMzblBg', {
caseId: this.caseId,
...this.confirmData
}).then(() => {
this.getReportInfo()
this.$message.success('保存成功')
this.$emit('handleSaveTable')
})
},
getReportInfo() {
const params = {
patientId: this.patientDetail.patientId,
caseId: this.caseId
}
this.$http.get('/mzbl/getMzblBgInfo', { params }).then(data => {
const res = data.data.data
this.handleResValue(res.fmwOd, this.formData.form.OD)
this.handleResValue(res.fmwOs, this.formData.form.OS)
this.confirmData.remark = res.remark
this.confirmData.operator = res.operator
})
},
// id
async queryProject() {
const project = window.localStorage.getItem('projectItem') ? JSON.parse(window.localStorage.getItem('projectItem')) : []
const { data: res } = await this.$http.get(
'/patient/getZlItemDict',
{
params: {
caseName: '报告'
}
}
)
if (res.code === 0) {
const data = res.data || []
const list = []
if (data.length) {
for (let i = 0; i < data.length; i++) {
for (let j = 0; j < project.length; j++) {
if (data[i].itemId === project[j].porjectCode) {
list.push(project[j].id)
}
}
}
this.confirmData.idList = list
}
} else {
this.$message.error(res.msg)
}
},
formDelete() {
this.$emit('formDelete')
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/mzbl/delMzblBgInfo', {
id: this.caseId
}).then(() => {
this.$message.success('删除成功')
this.$emit('formDelete', 'del')
})
})
}
}
}

Loading…
Cancel
Save