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.
354 lines
9.1 KiB
354 lines
9.1 KiB
<template>
|
|
<div class="specialBox">
|
|
<div class="examineBox">
|
|
<i class="el-icon-refresh refresh" @click="getSpecialItem" />
|
|
<el-table
|
|
v-loading="loading"
|
|
:data="tableData"
|
|
style="width: 100%;margin-top: 16px"
|
|
@row-click="handleData"
|
|
>
|
|
<el-table-column
|
|
prop="examTime"
|
|
label="时间"
|
|
align="center"
|
|
width="165"
|
|
/>
|
|
<el-table-column
|
|
prop="examineItem"
|
|
label="检查项目"
|
|
align="center"
|
|
width="195"
|
|
/>
|
|
<el-table-column
|
|
label="检查结果"
|
|
align="center"
|
|
width="180"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button type="text" size="small" @click.native.stop="handleRecord()">
|
|
浏览
|
|
</el-button>
|
|
<!-- <el-button type="text" size="small" @click.native.stop="handleRecord(scope.row)">-->
|
|
<!-- 所有报告-->
|
|
<!-- </el-button>-->
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
<div class="examineData">
|
|
<i class="el-icon-refresh refresh-r" @click="getItemData" />
|
|
<div style="display: flex;justify-content: space-between">
|
|
<span style="font-size: 16px;font-weight: 500;color: rgba(0, 0, 0, 0.88);margin-top: 4px">提取数据</span>
|
|
<div v-if="!onlyRead" size="small" style="display:inline-block;margin-left:10px;width: 32px;height: 32px;line-height:32px;text-align:center;background-color: #1e79ff;border-radius: 4px;vertical-align: middle" @click="addDataList">
|
|
<img :src="require('@/assets/img/data.png')" alt="" style="width: 17px;height: 16px;margin-bottom: 4px">
|
|
</div>
|
|
</div>
|
|
<el-table
|
|
v-loading="loadingFlag"
|
|
class="tableBox"
|
|
border
|
|
:data="extractData"
|
|
style="width: 100%;margin-top: 16px"
|
|
@selection-change="handleSelectionChange"
|
|
>
|
|
<el-table-column
|
|
type="selection"
|
|
width="55"
|
|
/>
|
|
<el-table-column
|
|
:show-overflow-tooltip="true"
|
|
prop="name"
|
|
label="名称"
|
|
width="90"
|
|
/>
|
|
<el-table-column
|
|
:show-overflow-tooltip="true"
|
|
prop="od"
|
|
label="OD"
|
|
min-width="155"
|
|
/>
|
|
<el-table-column
|
|
:show-overflow-tooltip="true"
|
|
prop="os"
|
|
label="OS"
|
|
min-width="155"
|
|
/>
|
|
<el-table-column
|
|
:show-overflow-tooltip="true"
|
|
prop="ou"
|
|
label="OU"
|
|
min-width="90"
|
|
/>
|
|
</el-table>
|
|
</div>
|
|
<!-- 图像与报告 -->
|
|
<keep-alive>
|
|
<el-dialog title="" class="detail-view" :fullscreen="true" :visible.sync="isActive" append-to-body @close="closePacs">
|
|
<imgRecord :patient-info="patientBaseData" />
|
|
</el-dialog>
|
|
</keep-alive>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import imgRecord from '@/components/360View/img-reccrd'
|
|
import eventBus from '@/page-subspecialty/utils/eventBus'
|
|
const Base64 = require('js-base64').Base64
|
|
export default {
|
|
components: {
|
|
imgRecord
|
|
},
|
|
mixins: [],
|
|
props: {
|
|
patientIdNumber: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
patientId: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
onlyRead: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
inject: {
|
|
refresh: {
|
|
default: 'refresh'
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
date: '',
|
|
examNo: '',
|
|
examineItem: '',
|
|
employeeId: '',
|
|
multipleSelection: [],
|
|
tableData: [],
|
|
extractData: [],
|
|
patientBaseData: {},
|
|
loading: false,
|
|
loadingFlag: false,
|
|
isActive: false
|
|
}
|
|
},
|
|
mounted() {
|
|
const user = JSON.parse(window.sessionStorage.getItem('qg-userData'))
|
|
this.employeeId = user.employeeId
|
|
this.getPatientData()
|
|
this.getSpecialItem()
|
|
},
|
|
methods: {
|
|
// 获取特殊检查项
|
|
async getSpecialItem() {
|
|
this.loading = true
|
|
const { data: res } = await this.$http.get('/patient/view/getExamineItem', {
|
|
params: {
|
|
patientId: this.patientId
|
|
}
|
|
})
|
|
if (res.code === 0) {
|
|
this.loading = false
|
|
this.tableData = res.data || []
|
|
if (res.data.length) {
|
|
this.examNo = res.data[0].examNo
|
|
this.examineItem = res.data[0].examineItem
|
|
await this.getItemData()
|
|
}
|
|
} else {
|
|
this.tableData = []
|
|
this.$message.error(res.msg)
|
|
}
|
|
},
|
|
async getItemData() {
|
|
this.loadingFlag = true
|
|
const { data: res } = await this.$http.get('/patient/view/getExtractData', {
|
|
params: {
|
|
patientId: this.patientId,
|
|
examNo: this.examNo,
|
|
examineItem: this.examineItem
|
|
}
|
|
})
|
|
if (res.code === 0) {
|
|
this.loadingFlag = false
|
|
this.extractData = res.data || []
|
|
} else {
|
|
this.extractData = []
|
|
this.loadingFlag = false
|
|
}
|
|
},
|
|
handleSelectionChange(val) {
|
|
this.multipleSelection = val
|
|
},
|
|
// 根据id获取患者信息--中间上侧患者信息
|
|
async getPatientData() {
|
|
const { data: res } = await this.$http.get(
|
|
'/patient/view/getPatientData',
|
|
{
|
|
params: {
|
|
patientId: this.patientId
|
|
}
|
|
}
|
|
)
|
|
if (res.code === 0) {
|
|
this.patientBaseData = res.data ? res.data : {}
|
|
} else {
|
|
this.$message.error(res.msg)
|
|
}
|
|
},
|
|
// 点击行展示提取数据
|
|
handleData(item) {
|
|
this.examNo = item.examNo
|
|
this.examineItem = item.examineItem
|
|
this.getItemData()
|
|
},
|
|
handleRecord() {
|
|
// const patientInfo = {
|
|
// examDate: item.examTime ? item.examTime.substring(0, 11) : '',
|
|
// itemCode: item.examineItem,
|
|
// examNo: item.examNo,
|
|
// patientId: this.patientId
|
|
// }
|
|
// const { href } = this.$router.resolve({
|
|
// name: 'pacs',
|
|
// query: {
|
|
// info: this.$Base64.encode(JSON.stringify(patientInfo))
|
|
// }
|
|
// })
|
|
// const baseUrl = 'http://z1.huimucloud.com:8085'
|
|
const baseUrl = 'http://10.80.5.32:8026'
|
|
// const baseUrl = 'http://192.168.0.85:8001'
|
|
const href = `${baseUrl}/EXAMINE_Report/InterFace?PatID=${this.patientId}&DoctorID=${this.employeeId}&PatIdKey=&ExamNo=`
|
|
window.open(href, '_blank')
|
|
},
|
|
// 关闭360弹框
|
|
closePacs() {
|
|
this.isActive = false
|
|
},
|
|
// 添加数据集
|
|
addDataList() {
|
|
const data = this.multipleSelection
|
|
if (!data.length) return this.$message.warning('请选择数据!')
|
|
data.forEach(item => {
|
|
item.id = item.name
|
|
item.odValue = item.od
|
|
item.osValue = item.os
|
|
item.ouValue = item.ou
|
|
})
|
|
eventBus.$emit('sendForData', data)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.specialBox{
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
box-sizing: border-box;
|
|
overflow-y: auto;
|
|
.examineBox{
|
|
height: 100%;
|
|
overflow: auto;
|
|
position: relative;
|
|
|
|
.refresh{
|
|
position: absolute;
|
|
right: 18px;
|
|
top: 35px;
|
|
z-index: 999;
|
|
cursor: pointer;
|
|
color: #409EFF;
|
|
}
|
|
}
|
|
.examineData{
|
|
padding: 16px 0 0 16px;
|
|
height: 100%;
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
|
|
.refresh-r{
|
|
position: absolute;
|
|
left: 90px;
|
|
top: 25px;
|
|
z-index: 999;
|
|
cursor: pointer;
|
|
color: #409EFF;
|
|
}
|
|
}
|
|
.header{
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
height: 49px;
|
|
line-height: 49px;
|
|
padding: 0px 16px;
|
|
box-sizing: border-box;
|
|
margin-bottom: 32px;
|
|
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
}
|
|
.content{
|
|
width: 100%;
|
|
//display: flex;
|
|
//justify-content: space-between;
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
.lineBox{
|
|
//width: 48%;
|
|
width: 100%;
|
|
height: 260px;
|
|
padding: 16px;
|
|
box-sizing: border-box;
|
|
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
margin-bottom: 32px;
|
|
}
|
|
.scroll-echearts {
|
|
padding: 5px 0;
|
|
flex: 1;
|
|
margin-bottom: 16px;
|
|
//background: #171515;
|
|
border-radius: 4px;
|
|
}
|
|
.eyeBox{
|
|
width: 480px;
|
|
height: 180px;
|
|
display: flex;
|
|
margin-left: 32px;
|
|
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
.eye{
|
|
width: 50%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
div{
|
|
height: 45px;
|
|
line-height: 45px;
|
|
text-align: center;
|
|
}
|
|
.info{
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 0 14px;
|
|
border-top: 1px solid rgba(0, 0, 0, 0.06);
|
|
}
|
|
}
|
|
.el{
|
|
background: rgba(0, 0, 0, 0.04);
|
|
}
|
|
}
|
|
.mr30{
|
|
margin-right: 30px;
|
|
}
|
|
}
|
|
</style>
|
|
<style lang="scss">
|
|
.specialBox{
|
|
.el-table th{
|
|
background-color: #FAFAFA;
|
|
}
|
|
}
|
|
</style>
|