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.
 
 
 
 

279 lines
10 KiB

<template>
<div class="Info-detail">
<div v-for="(item,index) in timeAxisNodeInfo" :key="index">
<template v-if="item.type=='用药'">
<!-- 用药 -->
<div v-for="(medicItem,medicIndex) in item.data" :key="medicIndex">
<!-- 一天的用药次数循环 -->
<div class="medticTitle">{{ medicItem.createTime | dateFilterTwo }}</div>
<el-table :data="medicItem.list" style="width: 100%" max-height="500">
<el-table-column prop="medName" label="商品名" />
<el-table-column prop="socName" label="通用名" />
<!-- <el-table-column width="120px" prop="spec" label="规格" />
<el-table-column width="120px" prop="frequency" label="给药频率" />
<el-table-column width="120px" label="用药数量">
<template slot-scope="scope">
<span v-if="scope.row.numberUse">
{{ scope.row.numberUse }} {{ scope.row.unit }} / 次
</span>
<span v-else>空</span>
</template>
</el-table-column> -->
<el-table-column prop="site" label="部位" />
<el-table-column width="100px" prop="itemType" label="门诊/住院" />
<!-- <div slot="empty" class="emptyBg">
<p>没有记录哦~</p>
</div> -->
</el-table>
</div>
</template>
<template v-if="item.type=='诊断'">
<!-- 诊断 -->
<div v-for="(diagnosisItem,diagnosisIndex) in item.data" :key="diagnosisIndex">
<!-- 一天的用药次数循环 -->
<div class="medticTitle">{{ diagnosisItem.createTime | dateFilterTwo }}</div>
<el-table :data="diagnosisItem.list" style="width: 100%" max-height="300">
<el-table-column prop="diagName" label="诊断内容" />
<el-table-column label="主诊断" width="120px">
<template slot-scope="scope">
{{ scope.row.isMain=='1' ? '是':'否' }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<template v-if="item.type=='检查'">
<!-- 检查 -->
<div v-for="(inspectsItem,inspectIndex) in item.data" :key="inspectIndex">
<!-- 一天的用药次数循环 -->
<div class="medticTitle">{{ inspectsItem.createTime | dateFilterTwo }}</div>
<!-- 临床数据 -->
<div class="clin-info divider">
<p class="title">临床数据</p>
<div class="clinical-content">
<div class="clinical-content-objective">
<span class="tip blod">临床目的:</span>
<span class="content">{{ inspectsItem.clinAim || '空' }}</span>
</div>
<div class="clinical-content-symptom">
<span class="tip blod">临床症状:</span>
<span class="content">{{ inspectsItem.clinSymp||'空' }}</span>
</div>
<div class="clinical-content-diagnosis">
<span class="tip blod">临床诊断:</span>
<span class="content">{{ inspectsItem.clinDiag||'空' }}</span>
</div>
<div class="clinical-content-zhusu">
<span class="tip blod">临床主诉:</span>
<span class="content">{{ inspectsItem.clinComplain||'空' }}</span>
</div>
<div class="clinical-content-beizhu">
<span class="tip blod">临床备注:</span>
<span class="content">{{ inspectsItem.clinOther||'空' }}</span>
</div>
</div>
</div>
<!-- 检查项目(部位) -->
<div class="exam-list">
<p class="title">检查项目(部位)</p>
<el-table :data="inspectsItem.list" style="width: 100%" max-height="300">
<el-table-column prop="examineItem" label="检查项目" />
<el-table-column label="操作" width="120px">
<template slot-scope="scope">
<el-link type="primary" :underline="false" @click="showReport(scope.row)">查看报告</el-link>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-dialog
width="85%"
top="5vh"
class="dialog-iframe"
:title="examItem.examineItem"
:visible.sync="dialogVisible"
append-to-body
>
<iframe
:src="`http://c2.njhuimu.com:8094/file/default1.asp?pid=${examItem.patientId}&examdate=(''${examItem.examTime}${examItem.examItemCode}'')&itemcode=x&risNo=${examItem.risNo}&examNo=${examItem.examNo}`"
width="100%"
height="100%"
frameborder="0"
scrolling="yes"
/>
</el-dialog>
</template>
<template v-if="item.type=='手术'">
<!-- 手术 -->
<div v-for="(operationItem,operationIndex) in item.data" :key="operationIndex">
<!-- 一天的手术次数循环 -->
<div class="medticTitle">{{ operationItem.createTime | dateFilterTwo }}</div>
<el-table :data="operationItem.list" style="width: 100%" max-height="300">
<el-table-column prop="bedNo" width="60px" label="床号" />
<el-table-column prop="deptName" label="部门名" />
<el-table-column prop="wardName" label="病区名" />
<el-table-column prop="mainDrName" label="主刀医生姓名" />
<el-table-column prop="opName" label="手术名称" width="200px" />
<el-table-column prop="opPartName" label="手术部位" />
<el-table-column label="手术时间">
<template slot-scope="scope">
{{ scope.row.opTime |dateFilterTwo }}
</template>
</el-table-column>
<el-table-column label="主手术">
<template slot-scope="scope">
{{ scope.row.isMain=='1' ? '是':'否' }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<template v-if="item.type=='住院'">
<!-- 手术 -->
<div v-for="(hospitalizationItem,hospitalizationIndex) in item.data" :key="hospitalizationIndex">
<!-- 一天的手术次数循环 -->
<div class="medticTitle">{{ hospitalizationItem.createTime | dateFilterTwo }}</div>
<el-table :data="hospitalizationItem.list" style="width: 100%" max-height="300">
<el-table-column prop="deptName" label="部门名称" />
<el-table-column prop="wardName" label="病区名称" />
<el-table-column prop="diagName" label="诊断名称" />
<el-table-column label="住院日期">
<template slot-scope="scope">
{{ scope.row.inDate |dateFilterTwo }}
</template>
</el-table-column>
<el-table-column label="出院日期">
<template slot-scope="scope">
{{ scope.row.outDate |dateFilterTwo }}
</template>
</el-table-column>
</el-table>
</div>
</template>
<template v-if="item.type=='随访'">
<el-tabs v-model="item.activeTabsValue" type="card">
<el-tab-pane v-for="(item2,index2) in item.data" :key="index2" :label="item2.crfTemplateName" :name="item2.id" style="background:#fff;padding:0 10px">
<crf :id="item2.id" ref="crf" />
</el-tab-pane>
</el-tabs>
</template>
</div>
</div>
</template>
<script>
import crf from '@/components/hm-crf/load_crf'
export default {
components: { crf },
props: {
timeAxisNodeInfo: {
type: Array,
default: () => []
}
},
data() {
return {
examItem: {},
dialogVisible: false
}
},
watch: {
timeAxisNodeInfo: {
handler(newVal, oldVal) {
// console.log(newVal, oldVal)
this.timeAxisNodeInfo.forEach(item => {
if (item.type === '随访') {
if (this.timeAxisNodeInfo[0] && this.timeAxisNodeInfo[0].data) {
item.activeTabsValue = this.timeAxisNodeInfo[0].data[0].id
this.$nextTick(() => {
this.$refs.crf.forEach(item => {
item.init()
})
})
}
}
})
},
immediate: true
}
},
// mounted() {
// console.log('0')
// },
// activated() {
// console.log('1')
// },
// updated() {
// console.log('2')
// },
methods: {
showReport(scopeRow) {
this.examItem = JSON.parse(JSON.stringify(scopeRow))
this.examItem.examTime = this.$options.filters['dateFilterThree'](scopeRow.examTime)
this.dialogVisible = true
}
}
}
</script>
<style lang="scss" scoped>
.Info-detail {
.medticTitle {
color: #fff;
font-size: 20px;
font-weight: 700;
margin-bottom: 10px;
margin-top: 16px;
}
// 临床数据
.clin-info,
.exam-list {
.title {
color: #fff;
font-size: 16px;
}
.clinical-content {
background: rgba(213, 213, 215, 0.17);
margin-top: 10px;
padding: 10px;
color: rgb(255, 255, 255, 0.6);
}
.content {
color: rgb(255, 255, 255, 0.6);
}
}
.exam-list {
margin-top: 16px;
}
}
</style>
<style lang="scss">
.Info-detail {
.el-table th,
.el-table tr {
color: #fff;
background: none;
}
.el-table td,
.el-table th.is-leaf {
border-bottom: 1px solid #5a5d61;
}
.el-table {
background: rgba(255, 255, 255, 0.02);
border: 1px solid #5a5d61;
}
.el-table thead {
background: rgba(255, 255, 255, 0.08);
}
.el-table::before {
height: 0;
}
.el-table--enable-row-hover .el-table__body tr:hover > td {
background: rgba(255, 255, 255, 0.2);
}
.el-tabs__header {
margin: 0;
}
}
</style>