增加影像报告和调图功能

This commit is contained in:
lxd 2024-09-10 14:44:37 +08:00
parent 9e8d3b6a9a
commit fe52240b74
2 changed files with 83 additions and 28 deletions

View File

@ -6,7 +6,7 @@
:fullscreen="true" :fullscreen="true"
> >
<el-tabs v-model="activeName" type="card"> <el-tabs v-model="activeName" type="card">
<el-tab-pane label="影像" name="first"> <el-tab-pane v-if="tagLoaded" label="影像" name="first">
<iframe <iframe
v-if="dataLoaded" v-if="dataLoaded"
frameborder="0" frameborder="0"
@ -19,7 +19,7 @@
<!-- 外层 Flex 容器 --> <!-- 外层 Flex 容器 -->
<div style="display: flex; height: 100%"> <div style="display: flex; height: 100%">
<!-- 模版区域 --> <!-- 模版区域 -->
<div style="flex: 1; min-width: 0;overflow: auto;"> <div style="flex: 1; min-width: 0; overflow: auto">
<el-select <el-select
v-model="fordevicemValue" v-model="fordevicemValue"
placeholder="请选择模版类别" placeholder="请选择模版类别"
@ -133,7 +133,6 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="申请时间" style="font-weight: bold" label-width="110px"> <el-form-item label="申请时间" style="font-weight: bold" label-width="110px">
<el-date-picker <el-date-picker
@ -166,7 +165,7 @@
<el-divider /> <el-divider />
<el-input <el-input
v-model="applyFormVO.examItemName" v-model="applyFormVO.examItemName"
style="width: 95%; font-size: 20px; margin-left: 40px; margin-bottom: 6px; " style="width: 95%; font-size: 20px; margin-left: 40px; margin-bottom: 6px"
:rows="1" :rows="1"
:disabled="true" :disabled="true"
/> />
@ -239,7 +238,15 @@
<el-button <el-button
type="success" type="success"
plain plain
style="width: 80px; float: right; margin-right: 15px; margin-top: 30px ;background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);" style="
width: 80px;
float: right;
margin-right: 15px;
margin-top: 30px;
background-color: rgba(56, 119, 246, 1);
font-size: 14;
color: rgb(255, 255, 255);
"
@click="save" @click="save"
:disabled="savedisabled" :disabled="savedisabled"
>保存</el-button >保存</el-button
@ -249,7 +256,15 @@
type="primary" type="primary"
plain plain
v-show="examinedisabled" v-show="examinedisabled"
style="width: 80px; float: right; margin-right: 15px; margin-top: 30px ;background-color: rgba(56, 119, 246, 1);font-size: 14; color: rgb(255, 255, 255);" style="
width: 80px;
float: right;
margin-right: 15px;
margin-top: 30px;
background-color: rgba(56, 119, 246, 1);
font-size: 14;
color: rgb(255, 255, 255);
"
@click="examine" @click="examine"
>审核</el-button >审核</el-button
> >
@ -297,6 +312,7 @@ const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
const savedisabled = ref(true) // const savedisabled = ref(true) //
const examinedisabled = ref(false) // const examinedisabled = ref(false) //
const dataLoaded = ref(false) // const dataLoaded = ref(false) //
const tagLoaded = ref(true) //
//使 //使
const clickuptime = async (pid: string) => { const clickuptime = async (pid: string) => {
@ -497,15 +513,19 @@ const examid = ref('')
const newSrc = ref('') const newSrc = ref('')
/** 打开弹窗 */ /** 打开弹窗 */
const open = async ( const open = async (id: number, orgid: string, regid: string, examId: string, isLoaded: string) => {
id: number,
orgid: string,
regid: string,
examId: string
) => {
resetForm() resetForm()
//
if (isLoaded == '1') {
tagLoaded.value = false
activeName.value='second'
}
else
{
tagLoaded.value = true
activeName.value='first'
}
console.log('orgid' + orgid) console.log('orgid' + orgid)
console.log('regid' + regid) console.log('regid' + regid)
console.log('id' + id) console.log('id' + id)
@ -537,9 +557,9 @@ const open = async (
getlogininfo() getlogininfo()
iframeData() iframeData()
// 1iframe // 1iframe
setTimeout(() => { setTimeout(() => {
dataLoaded.value= true; // iframe dataLoaded.value = true // iframe
}, 200); }, 200)
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
@ -553,26 +573,25 @@ const iframeData = async () => {
var localData = { var localData = {
regid: '', // 'someNumber' regid: '', // 'someNumber'
orgId: '', // 'someOrgId' ID orgId: '', // 'someOrgId' ID
maxSize:10, maxSize: 10,
do: response do: response
} }
// 'data' // 'data'
localStorage.removeItem("data"); localStorage.removeItem('data')
// JSON // JSON
var localStorageData = JSON.stringify(localData) var localStorageData = JSON.stringify(localData)
localStorage.setItem('data', localStorageData) localStorage.setItem('data', localStorageData)
const Src = `/static/dicom/dicomViewPc1.html?t=${new Date().getTime()}` const Src = `/static/dicom/dicomViewPc1.html?t=${new Date().getTime()}`
newSrc.value = Src newSrc.value = Src
} else { } else {
// statussuccess // statussuccess
console.error('Request did not succeed:', response.data) console.error('Request did not succeed:', response.data)
} }
// dataLoaded.value = true // dataLoadedtrue // dataLoaded.value = true // dataLoadedtrue
} catch (error) { } catch (error) {
console.error('Error fetching data:', error) console.error('Error fetching data:', error)
// dataLoaded.value = true // 使dataLoadedtrue便 // dataLoaded.value = true // 使dataLoadedtrue便
} }
} }

View File

@ -258,7 +258,7 @@
width="180px" width="180px"
v-if="false" v-if="false"
/> />
<el-table-column label="操作" align="center" fixed="right"> <el-table-column label="操作" align="center" fixed="right" width="180px">
<template #default="scope"> <template #default="scope">
<el-button <el-button
link link
@ -274,6 +274,25 @@
<el-icon v-if="scope.row.isFavourite==='1'"><StarFilled /></el-icon> <el-icon v-if="scope.row.isFavourite==='1'"><StarFilled /></el-icon>
<el-icon v-else><Star /></el-icon> <el-icon v-else><Star /></el-icon>
</el-button> </el-button>
<el-button
link
style="color: rgb(56, 119, 246)"
size="small"
type="primary"
@click="openexe(scope.row.id,scope.row.orgId,scope.row.regId,scope.row.examId)"
>
调图
</el-button>
<el-button
link
style="color: rgb(56, 119, 246)"
size="small"
type="primary"
@click=" handleEdit(scope.row,'1')"
>
报告
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -296,6 +315,7 @@ import download from '@/utils/download'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist' import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
import PatientexamlistForm from './PatientexamlistForm.vue' import PatientexamlistForm from './PatientexamlistForm.vue'
import DicomViewForm from '/src/views/dicomForm/dicomViewForm.vue' import DicomViewForm from '/src/views/dicomForm/dicomViewForm.vue'
import { ultrasoniccomApi } from '@/api/ultrasoniccom'
/** PACS检查列表 列表 */ /** PACS检查列表 列表 */
defineOptions({ name: 'Patientexamlist' }) defineOptions({ name: 'Patientexamlist' })
@ -340,17 +360,17 @@ const exportLoading = ref(false) // 导出的加载中
/** 影像组件 */ /** 影像组件 */
const dicomViewRef = ref() const dicomViewRef = ref()
const opendicomViewFrom = (id: number, orgid: string, regid: string, examId: string) => { const opendicomViewFrom = (id: number, orgid: string, regid: string, examId: string,isLoaded:string) => {
dicomViewRef.value.open(id, orgid, regid, examId) dicomViewRef.value.open(id, orgid, regid, examId,isLoaded)
} }
/** 表格行点击 */ /** 表格行点击 */
const clickNumber = ref(0) const clickNumber = ref(0)
function handleEdit(row) { function handleEdit(row,isLoaded:string) {
console.log(111111121212) console.log(111111121212)
if (!row.deviceType.includes('US')) { if (!row.deviceType.includes('US')) {
//US //US
opendicomViewFrom(row.id, row.orgId, row.regId, row.examId) opendicomViewFrom(row.id, row.orgId, row.regId, row.examId,isLoaded)
/* clickNumber.value++; /* clickNumber.value++;
if (clickNumber.value == 2) { if (clickNumber.value == 2) {
@ -501,6 +521,22 @@ const getuporghiorgid = async (id: number, orgId: string, reportstatus: string)
} }
} catch {} } catch {}
} }
// exe
const openexe= (id: number, orgid: string, regid: string, examId: string)=>
{
console.log(orgid)
//
try {
const url = `f1://${examId+','+orgid+','+regid}`;
console.log(url)
window.location.href = url
} catch (error) {
console.error('Error fetching data:', error)
}
}
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (id: number) => { const handleDelete = async (id: number) => {