You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

811 lines
23 KiB

<template>
<div class="archives">
<div class="archives-content">
<div v-if="isSearch === '1' || isSearch === '3'" class="content-left">
<callMedical :type-name="typeName" :is-platform="isPlatform" :is-search="isSearch" :patient-id="patientId" :only-read="onlyRead" />
</div>
<left-form-list
v-if="isSearch === '2'"
ref="leftFormList"
:patient-id="patientId"
:is-search="isSearch"
:only-read="onlyRead"
:is-platform="isPlatform"
:form-list="formList"
:cur-index="curIndex"
@handleForm="handleForm"
@deleteForm="formDelete"
@addRecord="addRecord"
/>
<div class="content-right">
<div v-if="!formList.length && isSearch === '2'" style="height: 100%;background: #fff;display: flex;align-items: center;justify-content: center">
<img src="@/assets/img/nodata.png" alt="">
</div>
<div v-else style="height: 100%">
<ourPatientRecord
v-if="name === '门急诊电子病历'"
ref="ourPatient"
:patient-id="patientId"
:is-platform="isPlatform"
:only-read="onlyRead"
:is-search="isSearch"
:case-id="caseId"
:patient-data="patientData"
/>
<InformedConsent
v-if="name==='眼科激光手术患者知情同意书'"
ref="informedConsent"
:is-dev="isDev"
:only-read="onlyRead"
:is-creator="isCreator"
:creator="creator"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<mra-order
v-if="name==='眼底血管造影患者预约单'"
ref="mraOrder"
:is-dev="isDev"
:patient-detail="patientData"
:only-read="onlyRead"
:is-platform="isPlatform"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<mra-form
v-if="name==='眼底血管造影知情同意书'"
ref="mraForm"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<laser-surgery
v-if="name==='眼科激光手术治疗'"
ref="laserSurgery"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<report-form
v-if="name==='睑板腺按摩'"
ref="reportForm"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<minor-operation
v-if="name==='干眼手术知情同意书'"
ref="minorOperation"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<stye-form
v-if="name==='麦粒肿、霰粒肿、肉芽肿、眼睑肿物手术知情同意书'"
ref="styeForm"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<Lacrimal
v-if="name==='泪道冲洗'"
ref="lacrimal"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<InjectionTherapy
v-if="name==='球旁注射同意书'"
ref="injectionTherapy"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<DrugInjection
v-if="name==='药物注射手术知情同意书'"
ref="drugInjection"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="saveFormData"
@formDelete="formDelete"
/>
<childrenLacrimal
v-if="name==='小儿泪道冲洗知情同意书'"
ref="childrenLacrimal"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<conjunctival-operation
v-if="name==='干眼激光治疗知情同意书'"
ref="conjunctival"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<cornealForeign
v-if="name==='角膜异物剔除术知情同意书'"
ref="cornealForeign"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
<puncture
v-if="name==='前房穿刺知情同意书'"
ref="puncture"
:is-dev="isDev"
:only-read="onlyRead"
:is-platform="isPlatform"
:patient-detail="patientData"
:case-id="id"
:is-creator="isCreator"
:creator="creator"
@handleSaveTable="updateForm"
@formDelete="formDelete"
/>
</div>
</div>
</div>
</div>
</template>
<script>
import ourPatientRecord from './outPatientRecord'
import callMedical from './callMedical'
import LeftFormList from '@/components/360View/medicalRecord/outPatientRecord/leftFormList.vue'
import InformedConsent from '@/page-subspecialty/views/modules/formList/InformedConsent.vue'
import MraForm from '@/page-subspecialty/views/modules/formList/mraForm.vue'
import LaserSurgery from '@/page-subspecialty/views/modules/formList/laserSurgery.vue'
import ReportForm from '@/page-subspecialty/views/modules/formList/reportForm.vue'
import MraOrder from '@/page-subspecialty/views/modules/formList/mraOrder.vue'
import MinorOperation from '@/page-subspecialty/views/modules/formList/MinorOperation.vue'
import conjunctivalOperation from '@/page-subspecialty/views/modules/formList/conjunctivalOperation'
import cornealForeign from '@/page-subspecialty/views/modules/formList/cornealForeign'
import childrenLacrimal from '@/page-subspecialty/views/modules/formList/childrenLacrimal.vue'
import puncture from '@/page-subspecialty/views/modules/formList/puncture.vue'
import Lacrimal from '@/page-subspecialty/views/modules/formList/Lacrimal.vue'
import StyeForm from '@/page-subspecialty/views/modules/formList/StyeForm.vue'
import InjectionTherapy from '@/page-subspecialty/views/modules/formList/InjectionTherapy.vue'
import DrugInjection from '@/page-subspecialty/views/modules/formList/DrugInjection.vue'
export default {
components: {
DrugInjection,
InjectionTherapy,
StyeForm,
Lacrimal,
childrenLacrimal,
MinorOperation,
MraOrder,
callMedical,
ReportForm,
LaserSurgery,
MraForm,
InformedConsent,
puncture,
LeftFormList,
cornealForeign,
conjunctivalOperation,
ourPatientRecord
},
mixins: [],
props: {
isDev: {
type: Boolean
},
isSearch: {
type: String,
default: ''
},
patientIdNumber: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
},
onlyRead: {
type: Boolean,
default: false
},
// 用于判断是否是门诊病历tab
typeName: {
type: String,
default: ''
}
},
inject: {
refresh: {
default: 'refresh'
}
},
data() {
return {
id: '',
name: '',
caseId: '',
jsonText: '',
isPlatform: true,
curIndex: 0,
formList: [],
defaultChecked: [],
formType: '门诊',
patientData: {},
isCreator: true,
creator: null
}
},
created() {
this.getPatientData()
if (this.isSearch === '2') {
this.getFormList()
}
},
methods: {
handleForm({ index, item }) {
const user = JSON.parse(window.sessionStorage.getItem('qg-userData'))
this.isCreator = item.doctorCode === user.employeeId
this.creator = {
doctorCode: item.doctorCode,
doctorName: item.doctorName
}
// 点击自身不保存
if (this.curIndex === index) {
return
}
if (this.name === '门急诊电子病历') {
this.isPlatform = false
}
// 360视图和非本平台表单不用保存
if (this.onlyRead || !this.isPlatform) {
this.curIndex = index
this.id = item.id
this.name = item.name
this.caseId = item.id
this.isPlatform = this.isSearch === item.platform
return
}
this.confirmChange().finally(() => {
this.curIndex = index
this.id = item.id
this.name = item.name
this.caseId = item.id
this.isPlatform = this.isSearch === item.platform
})
},
// 切换保存
confirmChange() {
return this.$confirmFun('是否保存数据,否则当前数据会丢弃!', '保存', '', '已取消保存数据!')
.then(() => {
this.$nextTick(() => {
switch (this.name) {
case '报告':
this.$refs.reportForm && this.$refs.reportForm.handleSaveTable()
break
case '眼科激光手术患者知情同意书':
this.$refs.informedConsent && this.$refs.informedConsent.handleSaveTable()
break
case '眼底血管造影知情同意书':
this.$refs.mraForm && this.$refs.mraForm.handleSaveTable()
break
case '眼底血管造影患者预约单':
this.$refs.mraForm && this.$refs.mraForm.handleSaveTable()
break
case '眼科激光手术治疗':
this.$refs.laserSurgery && this.$refs.laserSurgery.handleSaveTable()
break
default:
this.$refs.ourPatient && this.$refs.ourPatient.handleSaveTable()
return
}
})
})
},
getPatientData() {
const params = {
patientId: this.patientId
}
this.$http.get('/patient/view/getPatientData', { params }).then(data => {
this.patientData = data.data.data
})
},
updateForm() {
this.$message.success('保存成功')
this.getFormList('update')
},
// 保存同意书
saveFormData(data) {
const params = {
id: this.id,
flag: 8,
jsonText: data,
name: this.name,
patientId: this.patientId,
platform: 2
}
this.$http.post('/case/update', params).then(data => {
this.updateForm()
this.$store.commit('destroyPlugin')
})
},
// 删除同意书
deleteFormData() {
this.$confirmFun('确定删除吗?').then(() => {
this.$http.post('/case/delete', {
id: this.id
}).then(() => {
this.$message.success('删除成功')
this.getFormList()
})
})
},
addRecord(name) {
const date = this.$moment().format('YYYY-MM-DD HH:mm:ss')
// 判断表中是否有今日的数据
const isToday = this.formList.some(item => item.createTime.includes(date.split(' ')[0]) && item.name === '门急诊电子病历')
if (name === '门急诊电子病历' && isToday) {
this.$message({
message: '今日已有病历,请勿重复添加!',
type: 'warning'
})
return
}
const isMedical = name === '门急诊电子病历'
const params = {
flag: 8,
name: name,
createTime: date,
isMedical,
patientId: this.patientId,
platform: this.isSearch
}
this.$http.post('/case/save', params).then(res => {
this.getFormList()
this.name = name
}).catch(err => {
this.$message.error(err.msg)
})
},
// 删除表单
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.mraOrder.formDelete()
break
case '眼科激光手术治疗':
this.$refs.laserSurgery.formDelete()
break
case '干眼激光治疗知情同意书':
this.$refs.conjunctival.formDelete()
break
case '角膜异物剔除术知情同意书':
this.$refs.cornealForeign.formDelete()
break
case '前房穿刺知情同意书':
this.$refs.puncture.formDelete()
break
case '小儿泪道冲洗知情同意书':
this.$refs.childrenLacrimal.formDelete()
break
default:
this.deleteFormData()
break
}
} else {
this.getFormList()
}
},
async getFormList(mode) {
const { data: res } = await this.$http.get('/patient/view/getCases', {
params: {
patientId: this.patientId,
// platform: this.isSearch,
flag: 8
}
})
if (res.code === 0) {
this.formList = res.data || []
if (this.formList.length) {
if (mode) return
this.name = this.formList[0].name
this.id = this.formList[0].id
const user = JSON.parse(window.sessionStorage.getItem('qg-userData'))
this.isCreator = this.formList[0].doctorCode === user.employeeId
this.creator = {
doctorCode: this.formList[0].doctorCode,
doctorName: this.formList[0].doctorName
}
this.curIndex = 0
this.isPlatform = this.isSearch === this.formList[0].platform
} else {
this.name = ''
}
} else {
this.$message.error(res.msg)
}
this.getPatientData()
}
}
}
</script>
<style lang="scss" scoped>
.archives {
height: 100%;
.text-ellipsis {
white-space: nowrap; // 段落不换行
text-overflow: ellipsis;
overflow: hidden;
}
.printer {
border: 1px solid #ccc;
width: 56px;
height: 32px;
border-radius: 3px;
margin: 0;
margin-left: 10px;
cursor: pointer;
}
.archives-content {
display: flex;
height: 100%;
overflow: hidden;
.formBox{
cursor: pointer;
padding: 2px 8px;
border-radius: 2px;
margin-top: 12px;
}
.active {
color: white;
background-color: #1C76FD;
}
.curFont {
color: #A6A4A4;
}
.activeFont {
color: #D9D9D9;
}
.content-left {
width: 200px;
height: 100%;
margin-right: 5px;
.nodata {
width: 175px;
margin-top: 30px;
}
.content-left-top,
.content-left-bottom {
height: 50%;
}
.tree-botton-arr {
margin-left: 10px;
}
.tree-date {
padding-right: 10px;
}
.content-left-top {
overflow-y: auto;
margin-bottom: 16px;
.CRFList-list {
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 24px;
padding-right: 16px;
color: #000;
}
.CRFList-list {
height: 40px;
line-height: 40px;
font-size: 14px;
cursor: pointer;
.el-icon-more {
transform: rotate(90deg);
}
}
.CRFList-icon:hover {
color: #ff2929;
}
.CRFList-list-active {
background-color: #1890ff;
color: #fff;
.el-icon-more {
color: #fff;
}
}
.button {
margin-top: 16px;
background: #f2f3f5;
border-radius: 4px;
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
}
.button:hover,
.el-icon-plus:hover {
color: #1890ff;
}
}
.content-left-bottom {
.commonForm-text {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 700;
}
.line {
border-bottom: 1px solid #e5e6eb;
flex: 1;
display: inline-block;
margin: 0 10px;
}
.comonForm-tab {
margin-top: 10px;
}
.comonForm-tab-Pane {
margin-top: 10px;
}
.comonForm-list {
height: 40px;
line-height: 40px;
font-size: 14px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 10px;
cursor: pointer;
}
.comonForm-list:hover {
background-color: #f4f8fb;
color: #1d2129;
}
.comonForm-icon:hover {
color: #1890ff;
font-weight: 700;
}
}
}
.record{
display: flex;
justify-content: space-between;
padding-top: 12px;
cursor: pointer;
p {
display: inline-block;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
letter-spacing: 1px;
}
img {
width: 16px;
height: 16px;
margin-top: 3px;
}
}
}
.content-right {
padding: 12px;
position: relative;
flex: 1;
text-align: center;
background-color: #F0F2F5;
overflow: hidden;
overflow-y: scroll;
.content-right-buttonClick {
display: flex;
justify-content: flex-end;
background: #2e2e2e;
padding: 10px;
}
.editor-CRF {
height: 93%;
}
.content-right-CRF {
background: #5c5c5c;
overflow-x: auto;
padding: 16px 16px 16px 16px;
position: relative;
height: 100%;
}
.content-right-CRF-class {
padding-right: 178px;
}
.suspension-button {
position: absolute;
right: 10px;
top: 10px;
z-index: 1;
}
.case-template,
.intelligent-filling {
cursor: pointer;
height: 140px;
width: 32px;
background: #fff;
border-radius: 4px;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
span {
writing-mode: vertical-rl;
letter-spacing: 6px;
}
}
.case-template:hover,
.intelligent-filling:hover {
background: linear-gradient(270deg, #f4f8fb 0%, #deebff 66.15%);
}
.case-template {
margin-bottom: 6px;
}
}
}
</style>
<style lang="scss">
.archives {
.el-button .el-button--text .el-button--mini {
padding: 0;
}
.tree-date {
font-size: 14px;
color: #ccc;
}
.tree-date-active {
color: #e4e4e4;
}
.el-tree-node {
margin-bottom: 6px;
}
.el-tree-node__content {
margin-bottom: 4px;
height: 35px;
//padding-left: 0 !important;
}
//.tree-children {
// padding: 2px 0 2px 20px;
// position: relative;
//}
//.el-tree-node__expand-icon.is-leaf {
// display: none;
//}
.tree-children:hover {
.tree-button {
display: inline-block;
}
}
.tree-button {
position: absolute;
bottom: 6px;
right: 4px;
display: none;
}
.tree-button-active {
color: #fff;
}
.tree-forname {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 90%;
}
.el-tree-node__content:hover,
.el-upload-list__item:hover {
background: none;
}
.el-icon-caret-right:before {
color: #262626;
}
}
.comonForm-tab {
#tab-mz {
padding-left: 14px !important;
}
.el-tabs__nav-wrap::after {
height: 0;
}
.el-tabs__header {
padding-right: 0 !important;
}
.el-tabs__item.is-active {
color: #fff;
background: #1890ff;
}
.el-tabs__item {
background: #f2f3f5;
padding: 0 14px;
margin-left: 1px;
height: 35px;
line-height: 35px;
}
.el-tabs__content {
padding: 0 !important;
}
}
.see-doctor .comonForm-tab .el-tabs__item:last-child {
padding-right: 14px !important;
}
.see-doctor .comonForm-tab .el-tabs__item:nth-child(2) {
padding-left: 14px !important;
}
</style>