Browse Source

眼科门诊手术同意书

master
bianyaqi 1 month ago
parent
commit
8382df3fbe
  1. 21
      src/components/360View/medicalRecord/index.vue
  2. 4
      src/components/360View/medicalRecord/outPatientRecord/leftFormList.vue
  3. 324
      src/page-subspecialty/views/modules/formList/outEyeForm.vue

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

@ -149,6 +149,19 @@
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<out-eye-form
v-if="name==='眼科门诊手术同意书'"
ref="outEyeForm"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
:is-dev="isDev"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<minor-operation
v-if="name==='干眼手术知情同意书'"
ref="minorOperation"
@ -292,8 +305,10 @@ import ThreeMirror from '@/page-subspecialty/views/modules/formList/threeMirror.
import Gonioscope from '@/page-subspecialty/views/modules/formList/gonioscope.vue'
import TreatProcess from '@/page-subspecialty/views/modules/formList/treatProcess.vue'
import TreatNotice from '@/page-subspecialty/views/modules/formList/treatNotice.vue'
import OutEyeForm from '@/page-subspecialty/views/modules/formList/outEyeForm.vue'
export default {
components: {
OutEyeForm,
TreatNotice,
TreatProcess,
Gonioscope,
@ -417,6 +432,9 @@ export default {
case '眼底血管造影知情同意书':
this.$refs.mraForm && this.$refs.mraForm.handleSaveTable()
break
case '眼科门诊手术同意书':
this.$refs.mraForm && this.$refs.outEyeForm.handleSaveTable()
break
case '眼底血管造影患者预约单':
this.$refs.mraForm && this.$refs.mraForm.handleSaveTable()
break
@ -511,6 +529,9 @@ export default {
case '眼底血管造影知情同意书':
this.$refs.mraForm.formDelete()
break
case '眼科门诊手术同意书':
this.$refs.outEyeForm.formDelete()
break
case '眼底血管造影患者预约单':
this.$refs.mraOrder.formDelete()
break

4
src/components/360View/medicalRecord/outPatientRecord/leftFormList.vue

@ -35,7 +35,7 @@
<div v-for="(item,index) in form.list" :key="`${item}_${index}`" class="record">
<p>{{ item }}</p>
<template v-if="item!=='门急诊电子病历'">
<img v-if="!onlyRead&&isSearch == '2'" :src="require('@/assets/img/add.png')" alt="" @click="addRecord(item)">
<img v-if="!onlyRead && isSearch == '2'" :src="require('@/assets/img/add.png')" alt="" @click="addRecord(item)">
</template>
</div>
</div>
@ -62,7 +62,7 @@ export default {
},
{
type: '同意书',
list: ['眼科门诊治疗须知', '干眼激光治疗知情同意书', '干眼手术知情同意书', '角膜异物剔除术知情同意书',
list: ['眼科门诊治疗须知', '眼科门诊手术同意书', '干眼激光治疗知情同意书', '干眼手术知情同意书', '角膜异物剔除术知情同意书',
'麦粒肿、霰粒肿、肉芽肿、眼睑肿物手术知情同意书', '前房穿刺知情同意书', '球旁注射同意书',
'小儿泪道冲洗知情同意书', '药物注射手术知情同意书']
},

324
src/page-subspecialty/views/modules/formList/outEyeForm.vue

@ -0,0 +1,324 @@
<template>
<div class="punctureBox">
<div class="btnBox_top">
<div v-if="!onlyRead && isPlatform">
<el-button v-print="print" size="small" @click="handlePrint">打印</el-button>
<template v-if="isCreator">
<el-button type="primary" size="small" @click="handleSaveTable">保存</el-button>
<el-button type="danger" size="small" @click="formDelete">删除</el-button>
</template>
</div>
<div v-if="creator" style="margin: 10px 0;text-align: left;color: #409EFF">
<div>
操作者{{ creator.doctorName }}
</div>
<div>
工号{{ creator.doctorCode }}
</div>
</div>
</div>
<div id="punctureOperation" style="width: 100%;padding-right: 8px">
<div v-if="!isDev" class="flex j-c">
<img width="650" src="@/assets/img/xianganlogo2.jpg">
</div>
<hr v-if="!isDev">
<p style="color:#000000;font-size:28px;margin:0 0 15px 0;text-align:center;">
眼科门诊手术同意书
</p>
<div class="flex a-c j-b">
<div>
姓名<el-input v-model="confirmData.patientName" style="width: 100px" />
</div>
<div>
性别<el-input v-model="confirmData.patientGender" style="width: 100px" />
</div>
<div>
年龄<el-input v-model="confirmData.patientAge" style="width: 100px" />
</div>
<div>
登记号<el-input v-model="confirmData.patientId" style="width: 100px" />
</div>
</div>
<div class="form_content">
<div class="flex a-c" style="margin-top: 5px">
诊断
<el-input v-model="confirmData.zd" :autosize="{ minRows: 1, maxRows: 3}" type="textarea" style="flex: 1" />
</div>
<div class="flex a-c" v-for="(item,index) in content" :key="index" style="margin: 5px 0">
{{ item }}
<el-input v-if="index === 0" style="width: 160px" v-model="confirmData.zlfa"></el-input>
<el-input v-if="index === 5" style="width: 300px" v-model="confirmData.remark"></el-input>
<el-input v-if="index === 6" style="width: 220px" v-model="confirmData.yj"></el-input>
</div>
</div>
<div style="margin-top: 15px">
<div class="flex a-c">
<div style="margin-right: 15px;">
<span style="word-break: keep-all">本人签名</span>
<span style="margin-left:10px" @click="signClick('puncturePatientSign')">
<span v-if="!formListValue.puncturePatientSign">
<img v-if="printHidden" :src="require('@/assets/img/signature.png')" alt="" style="margin-right: 12px">
<el-input v-else style="width: 80px" />
</span>
<img v-else style="width: 160px;height: 80px;" :src="formListValue.puncturePatientSign">
</span>
</div>
<div>
<span style="word-break: keep-all">或家属签名</span>
<span style="margin-left:10px" @click="signClick('punctureKinSign')">
<span v-if="!formListValue.punctureKinSign">
<img v-if="printHidden" :src="require('@/assets/img/signature.png')" alt="" style="margin-right: 12px">
<el-input v-else style="width: 80px" />
</span>
<img v-else style="width: 160px;height: 80px;" :src="formListValue.punctureKinSign">
</span>
</div>
</div>
</div>
<div class="flex a-c">
<div style="margin-right: 296px;">
<span style="word-break: keep-all">操作者</span>
<span style="margin-left:10px">
<img style="width: 80px;height: 40px;" :src="confirmData.czzSign">
</span>
</div>
<div>
签名日期:<el-date-picker
v-model="confirmData.bdDate"
type="date"
format="yyyy年MM月dd日"
value-format="yyyy-MM-dd"
/>
</div>
</div>
</div>
</div>
</template>
<script>
import emptySign from '@static/js/emptySign'
import styeFormSign from '@/mixins/styeFormSign'
export default {
name: 'OutEyeForm',
mixins: [styeFormSign],
props: {
isDev: {
type: Boolean
},
onlyRead: {
type: Boolean,
default: false
},
isPlatform: {
type: Boolean,
default: true
},
patientDetail: {
type: Object
},
caseId: {
type: String,
default: ''
},
isCreator: {
type: Boolean,
default: true
},
//
creator: {
type: Object
}
},
data() {
return {
content: [
'一、治疗方案:',
'二、治疗中可能发生的风险:',
'1、麻醉风险 2、周围组织损伤 3、其他',
'三、治疗后可能发生的并发症:',
'1、伤口出血、感染、愈合不良 2、皮肤瘢痕形成,严重者导致睑外翻 3、肉芽组织增生 4、外伤可能导致眶骨骨折、肌肉损伤、眼球运动异常等并发症。5、损伤眼球内结构,需进一步诊疗。',
'6、备注:',
'病员或家属意见:',
'我们了解该治疗的各种问题及可能发生的风险,同意接受治疗。'
],
print: {
id: 'punctureOperation',
closeCallback: () => {
this.printHidden = true
}
},
printHidden: true,
formId: '',
sourceData: {},
confirmData: {
zd: '',
jzNumber: '',
patientName: '',
patientAge: '',
patientId: '',
patientGender: '',
patientSign: '',
patientJsSign: '',
czzSign: '',
bdDate: '',
yj: '',
zlfa: '',
remark: ''
},
formListValue: {
puncturePatientSign: '',
punctureKinSign: ''
}
}
},
watch: {
caseId(val) {
if (val) {
this.getformList()
}
}
},
created() {
this.sourceData = JSON.parse(JSON.stringify(this.confirmData))
this.confirmData.jzNumber = window.sessionStorage.getItem('jzNumber')
this.getformList()
},
methods: {
signClick(text) {
this.initPlugin(text)
},
setData() {
const date = this.$moment().format('YYYY-MM-DD')
this.confirmData.bdDate = date
const userData = JSON.parse(window.sessionStorage.getItem('qg-userData'))
this.confirmData.czzSign = userData.signImgBase
this.confirmData.patientName = this.patientDetail.patientName
this.confirmData.patientAge = this.patientDetail.patientAge
this.confirmData.patientGender = this.patientDetail.patientSex
this.confirmData.patientId = this.patientDetail.patientId
},
async getformList() {
const { data: res } = await this.$http.get('/mzbl/getMzblsstys', {
params: {
caseId: this.caseId,
patientId: this.patientDetail.patientId
}
})
if (res.code === 0) {
this.confirmData = res.data
if (res.data.caseId) {
this.formListValue.punctureKinSign = this.confirmData.patientJsSign
this.formListValue.puncturePatientSign = this.confirmData.patientSign
} else {
this.formListValue.punctureKinSign = ''
this.formListValue.puncturePatientSign = ''
this.setData()
}
} else {
this.$message.error(res.msg)
}
},
handlePrint() {
this.printHidden = false
if (!this.isCreator) {
return
}
this.handleSaveTable()
},
//
async handleSaveTable() {
if (this.formListValue.puncturePatientSign === emptySign || this.formListValue.punctureKinSign === emptySign) {
this.$message.error('签字未成功请重新签字后再保存')
return
}
this.confirmData.patientSign = this.formListValue.puncturePatientSign
this.confirmData.patientJsSign = this.formListValue.punctureKinSign
const params = {
caseId: this.caseId,
...this.confirmData
}
const { data: res } = await this.$http.post('/mzbl/saveMzblsstys', params)
if (res.code === 0) {
this.$message.success('保存成功')
await this.getformList()
} else {
this.$message.error(res.msg)
}
},
//
formDelete() {
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/mzbl/delMzblsstys', {
id: this.caseId
}).then(() => {
this.$message.success('删除成功')
this.$emit('formDelete', 'del')
})
})
}
}
}
</script>
<style lang="scss" scoped>
.flex1{
flex: 1;
}
.flex{
display: flex;
}
.a-c{
align-items: center;
}
.j-c{
justify-content: center;
}
.j-b{
justify-content: space-between;
}
.punctureBox{
background: #fff;
padding: 10px 20px 50px 20px;
page-break-after:always;
height: 100%;
overflow: auto;
}
.btnBox_top{
position: fixed;
z-index: 999;
right: 90px;
}
.form_top{
margin-bottom: 15px;
}
.form_content{
text-align: left;
line-height: 28px;
}
.form_detail{
text-indent: 2rem;
margin: 3px 0;
}
.checkBox{
cursor: pointer;
}
::v-deep .el-input__inner{
border: none;
border-bottom: 1px solid #cccccc;
border-radius: 0;
font-size: 16px;
height: 26px;
text-align: center;
}
::v-deep .el-textarea__inner{
border: none;
border-radius: 0;
border-bottom: 1px solid #8e8c8c;
font-size: 16px
}
::v-deep .el-input__prefix{
display: none;
}
</style>
Loading…
Cancel
Save