修改报告打印以及病例管理

This commit is contained in:
lxd 2024-08-06 13:35:42 +08:00
parent ecdaf11003
commit 2c1636858f
6 changed files with 407 additions and 82 deletions

View File

@ -461,22 +461,33 @@ function initData() {
var idx = GetQueryString("idx"); var idx = GetQueryString("idx");
var localStorage = window.localStorage; var localStorage = window.localStorage;
var localData = JSON.parse(localStorage.data); var localData = JSON.parse(localStorage.data);
var data= JSON.parse(localData.do);
console.log("网页接受到数据"+data)
stateData.dicomInfo = data;
initImgList(stateData.dicomInfo);
initConerstoneAndData();
/* alert(localData.regid) */ /* alert(localData.regid) */
$.getJSON("http://127.0.0.1:5000/get-data", { /* $.getJSON("http://127.0.0.1:5000/get-data", {
}, },
function (data) { function (data) {
if ("failed" == data.status) { if ("failed" == data.status) {
alert("获取数据失败") alert("获取数据失败")
} }
else { else {
console.log(data)
stateData.dicomInfo = data; stateData.dicomInfo = data;
initImgList(stateData.dicomInfo); initImgList(stateData.dicomInfo);
initConerstoneAndData(); initConerstoneAndData();
} }
}); }); */
} }
//初始化滚动条 //初始化滚动条
function initSlider(element) { function initSlider(element) {
var idx = stateData.showMapping.get(element.id); var idx = stateData.showMapping.get(element.id);

View File

@ -28,4 +28,9 @@ export const ultrasoniccomApi = {
upreporttemplatetime: async (pid:string) => { upreporttemplatetime: async (pid:string) => {
return await request.get({ url: `/ultrasoniccom/ultrasonic/upreporttemplatetime?pid=${pid}`}) return await request.get({ url: `/ultrasoniccom/ultrasonic/upreporttemplatetime?pid=${pid}`})
}, },
//获取dicom数据
getdcmlist: async () => {
return await request.get({ url: `/ultrasoniccom/ultrasonic/getdcm`})
},
} }

View File

@ -148,7 +148,9 @@
:offset="4" :offset="4"
style="text-align: left; padding-left: 8px; margin-bottom: 6px" style="text-align: left; padding-left: 8px; margin-bottom: 6px"
> >
<el-button> <Icon icon="ep:search" class="mr-5px" /> 搜索 </el-button> <el-button @click="handleQuery">
<Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -164,17 +166,30 @@
border border
:stripe="true" :stripe="true"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:data="list_patExamitems" :data="list"
height="max(45vh,330px)" height="max(45vh,330px)"
@row-click="handleRowClick"
> >
aaaa <el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column
label="出生日期"
align="center"
prop="birthday"
:formatter="dateFormatter2"
width="180px"
/>
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column label="登记单号" align="center" prop="regId" />
<!-- 数据列 --> <!-- 数据列 -->
</el-table> </el-table>
<div style="display: flex; justify-content: center"> <div style="display: flex; justify-content: center">
<Pagination <Pagination
small small
size="small" size="small"
:total="total_patExamitems" :total="total"
v-model:page="queryParams.pageNo" v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
/> />
@ -221,10 +236,10 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { IllnessCaseApi } from '@/api/applyregistration/illnessCase' import { IllnessCaseApi } from '@/api/applyregistration/illnessCase'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
defineOptions({ name: 'IllnessCase' }) defineOptions({ name: 'IllnessCase' })
/* /*
* 李传洋 * 李传洋
@ -249,9 +264,34 @@ const queryParams0 = ref({
doctorName: undefined, doctorName: undefined,
departmentName: undefined departmentName: undefined
}) })
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
examId: undefined,
pname: undefined,
gender: undefined,
birthday: undefined,
examDate: [],
deviceType: '',
seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: '',
highLevelOrgId: '',
createDate: [],
examDescription: undefined,
diagResults: undefined,
diagDate: [],
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
regId: '',
/** 测试数据 **/ /** 测试数据 **/
it_1: '', it_1: '',
it_2: '', it_2: '',
@ -263,10 +303,47 @@ const queryParams = ref({
it_8: '', it_8: '',
it_9: '' it_9: ''
}) })
// //
const list_patExamitems = ref<any[]>([]) const total = ref(0)
const total_patExamitems = ref(5)
const loading_patExamitems = ref(false) const loading_patExamitems = ref(false)
//
const list = ref<PatientexamlistVO[]>([])
/** 查询列表 */
const getList = async () => {
resetForm()
loading_patExamitems.value = true
try {
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading_patExamitems.value = false
}
}
//
const handleRowClick = (row) => {
//
examitemsDesc .value= row.examDescription
//
diagnosisDesc.value = row.diagResults
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNo = 1
//
queryParams.value.orgId = ''
queryParams.value.highLevelOrgId = ''
getList()
}
/** 重置表单 */
const resetForm = () => {
list.value = []
examitemsDesc.value=''
diagnosisDesc.value=''
}
/****** 自定义内容 ******/ /****** 自定义内容 ******/
/****** 可参考内容 ******/ /****** 可参考内容 ******/
@ -275,7 +352,7 @@ const loading_patExamitems = ref(false)
/** 钩子方法 **/ /** 钩子方法 **/
onMounted(() => { onMounted(() => {
//ceshi getList()
}) })
/** 防空作用域 **/ /** 防空作用域 **/

View File

@ -105,10 +105,12 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div style="text-align: right" class="item-style"> <div style="text-align: right" class="item-style">
<el-button> <Icon icon="ep:search" class="mr-2px" /> 搜索 </el-button> <el-button @click="handleQuery">
<el-button type="primary" plain> <Icon icon="ep:search" class="mr-2px" /> 搜索
<Icon icon="ep:printer" class="mr-2px" /> 打印
</el-button> </el-button>
<!-- <el-button type="primary" plain>
<Icon icon="ep:printer" class="mr-2px" /> 打印
</el-button> -->
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -119,10 +121,23 @@
border border
:stripe="true" :stripe="true"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:data="list_infos" :data="list"
height="max(43vh,294px)" height="max(43vh,294px)"
@row-click="handleRowClick"
> >
aaaa <el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="检查ID" align="center" prop="examId" />
<el-table-column label="患者姓名" align="center" prop="pname" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column
label="出生日期"
align="center"
prop="birthday"
:formatter="dateFormatter2"
width="180px"
/>
<el-table-column label="机构ID" align="center" prop="orgId" v-if="false" />
<el-table-column label="登记单号" align="center" prop="regId" />
<!-- 数据列 --> <!-- 数据列 -->
</el-table> </el-table>
<div style="display: flex; justify-content: center"> <div style="display: flex; justify-content: center">
@ -132,6 +147,7 @@
:total="total" :total="total"
v-model:page="queryParams.pageNo" v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList"
/> />
</div> </div>
</el-card> </el-card>
@ -171,7 +187,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="6"> <!-- <el-col :span="6">
<el-form-item label="类别" prop="it_3" class="item-style"> <el-form-item label="类别" prop="it_3" class="item-style">
<el-select <el-select
v-model="infoParams.it_3" v-model="infoParams.it_3"
@ -185,8 +201,8 @@
<el-option label="xxxxx" value="xxxxx" /> <el-option label="xxxxx" value="xxxxx" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="7"> <!-- <el-col :span="7">
<el-form-item label="床号" prop="it_4" class="item-style"> <el-form-item label="床号" prop="it_4" class="item-style">
<el-input <el-input
v-model="infoParams.it_4" v-model="infoParams.it_4"
@ -195,8 +211,8 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="2"> <!-- <el-col :span="2">
<el-form-item label="" label-width="4px" prop="it_5" class="item-style"> <el-form-item label="" label-width="4px" prop="it_5" class="item-style">
<el-checkbox v-model="infoParams.it_5" label="初诊" :disabled="true" /> <el-checkbox v-model="infoParams.it_5" label="初诊" :disabled="true" />
</el-form-item> </el-form-item>
@ -210,7 +226,7 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="13"> <el-col :span="13">
@ -238,7 +254,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <!-- <el-col :span="6">
<el-form-item label="婚否" prop="it_9" class="item-style"> <el-form-item label="婚否" prop="it_9" class="item-style">
<el-select <el-select
v-model="infoParams.it_9" v-model="infoParams.it_9"
@ -252,7 +268,7 @@
<el-option label="xxxxx" value="xxxxx" /> <el-option label="xxxxx" value="xxxxx" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
@ -260,7 +276,6 @@
<el-date-picker <el-date-picker
v-model="infoParams.it_10" v-model="infoParams.it_10"
type="date" type="date"
value-format="YYYY-MM-DD HH:mm:ss"
:readonly="true" :readonly="true"
class="item-width" class="item-width"
/> />
@ -269,12 +284,12 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="年龄" prop="it_11" class="item-style"> <el-form-item label="年龄" prop="it_11" class="item-style">
<el-input <el-input
v-model="infoParams.it_11" v-model="age"
clearable clearable
:readonly="true" :readonly="true"
class="item-width" class="item-width"
> >
<template #append> <!-- <template #append>
<el-select <el-select
v-model="infoParams.it_11a" v-model="infoParams.it_11a"
placeholder="" placeholder=""
@ -286,11 +301,11 @@
<el-option label="xxxxx" value="xxxxx" /> <el-option label="xxxxx" value="xxxxx" />
<el-option label="xxxxx" value="xxxxx" /> <el-option label="xxxxx" value="xxxxx" />
</el-select> </el-select>
</template> </template> -->
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="9"> <!-- <el-col :span="9">
<el-form-item label="临床诊断" label-width="64px" prop="it_12" class="item-style"> <el-form-item label="临床诊断" label-width="64px" prop="it_12" class="item-style">
<el-input <el-input
v-model="infoParams.it_12" v-model="infoParams.it_12"
@ -299,13 +314,13 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="13"> <el-col :span="13">
<el-form-item label="科室" prop="it_13" class="item-style"> <el-form-item label="科室" prop="it_13" class="item-style">
<el-input <el-input
v-model="infoParams.it_13" v-model="infoParams.billDoctorDepartment"
clearable clearable
:readonly="true" :readonly="true"
class="item-width" class="item-width"
@ -328,14 +343,13 @@
<el-form-item label="申请日期" prop="it_15" class="item-style date-picker"> <el-form-item label="申请日期" prop="it_15" class="item-style date-picker">
<el-date-picker <el-date-picker
v-model="infoParams.it_15" v-model="infoParams.it_15"
type="date" type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
:readonly="true" :readonly="true"
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="17"> <!-- <el-col :span="17">
<el-form-item label="末次月经" prop="it_16" class="item-style"> <el-form-item label="末次月经" prop="it_16" class="item-style">
<el-input <el-input
v-model="infoParams.it_16" v-model="infoParams.it_16"
@ -344,10 +358,10 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="7"> <!-- <el-col :span="7">
<el-form-item label="孕次" prop="it_17" class="item-style"> <el-form-item label="孕次" prop="it_17" class="item-style">
<el-input <el-input
v-model="infoParams.it_17" v-model="infoParams.it_17"
@ -356,8 +370,8 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="6"> <!-- <el-col :span="6">
<el-form-item label="产次" prop="it_18" class="item-style"> <el-form-item label="产次" prop="it_18" class="item-style">
<el-input <el-input
v-model="infoParams.it_18" v-model="infoParams.it_18"
@ -366,8 +380,8 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="11"> <!-- <el-col :span="11">
<el-form-item label="避孕方式" prop="it_19" class="item-style"> <el-form-item label="避孕方式" prop="it_19" class="item-style">
<el-select <el-select
v-model="infoParams.it_19" v-model="infoParams.it_19"
@ -381,10 +395,10 @@
<el-option label="xxxxx" value="xxxxx" /> <el-option label="xxxxx" value="xxxxx" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="13"> <!-- <el-col :span="13">
<el-form-item label="活检部位" prop="it_20" class="item-style"> <el-form-item label="活检部位" prop="it_20" class="item-style">
<el-input <el-input
v-model="infoParams.it_20" v-model="infoParams.it_20"
@ -393,8 +407,8 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="11"> <!-- <el-col :span="11">
<el-form-item label="HP" prop="it_21" class="item-style"> <el-form-item label="HP" prop="it_21" class="item-style">
<el-input <el-input
v-model="infoParams.it_21" v-model="infoParams.it_21"
@ -403,7 +417,7 @@
class="item-width" class="item-width"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="13"> <el-col :span="13">
@ -445,7 +459,57 @@
</el-row> </el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报告单" name="reportInfo">报告单</el-tab-pane> <el-tab-pane label="报告单" name="reportInfo">
<!--报告区域-->
<div class="flex-center" id="printMe" style="height: calc(100% - 15px)">
<div class="ultrasound-report" id="PDF">
<h2>超声检查报告单</h2>
<hr />
<div class="patient-info">
<p class="info-item">姓名{{infoParams.it_7}}</p>
<p class="info-item">送检科室{{infoParams.billDoctorDepartment}}</p>
<p class="info-item">门诊号{{infoParams.it_2}}</p>
<p class="info-item">性别{{infoParams.it_8}}</p>
<p class="info-item">年龄{{age}}</p>
<p class="info-item">设备{{ infoParams.deviceName}}</p>
<p class="info-item">检查号{{infoParams.it_1 }}</p>
<p class="info-item">检查类型{{infoParams.examItemName }}</p>
</div>
<hr />
<!-- 图片展示区域 -->
<h3>超声图像</h3>
<div class="image-gallery">
<div class="image-item-container" v-for="image in reportimages" :key="image.id">
<img :src="image.imgUrl" alt="" style="width: 180px; height: 180px" />
</div>
</div>
<div class="ultrasound-findings">
<h3>超声所见</h3>
<p>{{infoParams.it_23}}</p>
</div>
<div class="ultrasound-recommendation">
<h3>超声提示</h3>
<p>{{infoParams.it_24}}</p>
</div>
<div style="position: absolute; bottom: 20px; right: 20px">
<p>医生签名{{}}</p>
<!-- <p>时间xxx</p> -->
</div>
</div>
<el-divider />
<!--功能区-->
<div>
<el-button
type="primary"
style="width: 100px; float: right"
class="ignore-print"
v-print="'printMe'"
>打印</el-button
>
</div>
<div> </div>
</div>
</el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</el-row> </el-row>
@ -454,10 +518,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics' import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom'
defineOptions({ name: 'ReportPrintStatistics' }) defineOptions({ name: 'ReportPrintStatistics' })
/* /*
* 李传洋 * 李传洋
@ -474,6 +539,8 @@ const message = useMessage()
const { t } = useI18n() const { t } = useI18n()
const activeTabName = ref('diagnosisInfo') const activeTabName = ref('diagnosisInfo')
const deviceList = ref<any[]>([]) const deviceList = ref<any[]>([])
//
const total = ref(0)
// //
const queryParams0 = ref({ const queryParams0 = ref({
pageNo: 1, pageNo: 1,
@ -484,14 +551,119 @@ const queryParams0 = ref({
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/ examId: undefined,
it_1: '', pname: undefined,
it_1a: '', gender: undefined,
it_2: '', birthday: undefined,
it_3: '', examDate: [],
it_4: '', deviceType: '',
it_5: '' seDc: undefined,
examItemName: undefined,
reportstatus: undefined,
applicationDate: [],
uploadDate: [],
orgName: undefined,
orgId: '',
highLevelOrgId: '',
createDate: [],
examDescription: undefined,
diagResults: undefined,
diagDate: [],
diagDoctor: undefined,
reviewDoctor: undefined,
reviewDate: [],
thumbnailImgUrl: undefined,
createTime: [],
regId: ''
}) })
//
const age = ref()
const calculateAge = (birthdate) => {
if (!birthdate) {
age.value = null
return
}
const today = new Date()
const birth = new Date(birthdate)
let yearsDiff = today.getFullYear() - birth.getFullYear()
// Check if the birthday hasn't occurred yet this year
const hasBirthdayPassed =
today.getMonth() > birth.getMonth() ||
(today.getMonth() === birth.getMonth() && today.getDate() >= birth.getDate())
if (!hasBirthdayPassed) {
yearsDiff--
}
age.value = yearsDiff
}
//
const list = ref<PatientexamlistVO[]>([])
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
queryParams.deviceType = 'US'
const data = await PatientexamlistApi.getPatientexamlistPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNo = 1
queryParams.value.deviceType = 'US'
//
queryParams.value.orgId = ''
queryParams.value.highLevelOrgId = ''
getList()
}
//
//
const reportimages = ref<any[]>([])
//
const loadimage = async (orgId:string,regId:string) => {
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
console.log(imageslist)
reportimages.value = imageslist
}
//
const handleRowClick = (row) => {
//
infoParams.value.it_23 = row.examDescription
//
infoParams.value.it_24 = row.diagResults
//
infoParams.value.it_7 = row.pname
//
infoParams.value.it_8 = row.gender
//
infoParams.value.it_10 = row.birthday
//
infoParams.value.it_2 = row.examId
//
infoParams.value.it_1 = row.regId
//
infoParams.value.it_15 = row.applicationDate
//
infoParams.value.billDoctorDepartment= row.billDoctorDepartment
//
infoParams.value.deviceName= row.deviceName
//
calculateAge(row.birthday)
//
infoParams.value.examItemName=row.examItemName
loadimage(row.orgId,row.regId)
}
const infoParams0 = ref({ const infoParams0 = ref({
doctorName: undefined, doctorName: undefined,
@ -523,11 +695,14 @@ const infoParams = ref({
it_21: '', it_21: '',
it_22: '', it_22: '',
it_23: '', it_23: '',
it_24: '' it_24: '',
billDoctorDepartment:'',
deviceName:'',
examItemName:'',
}) })
// //
const list_infos = ref<any[]>([]) const list_infos = ref<any[]>([])
const total = ref(5)
const loading = ref(false) const loading = ref(false)
/****** 自定义内容 ******/ /****** 自定义内容 ******/
@ -538,6 +713,7 @@ const loading = ref(false)
/** 钩子方法 **/ /** 钩子方法 **/
onMounted(() => { onMounted(() => {
//ceshi //ceshi
getList()
}) })
/** 防空作用域 **/ /** 防空作用域 **/
@ -577,4 +753,43 @@ console.log(infoParams0)
.radio-group { .radio-group {
border: 1px solid #ececec; border: 1px solid #ececec;
} }
/* 报告样式 */
.ultrasound-report {
font-family: Arial, sans-serif;
width: 90%;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
position: relative;
height: 800px;
}
.ultrasound-report h1,
.ultrasound-report h2 {
text-align: center;
}
.patient-info p,
.ultrasound-findings p,
.ultrasound-recommendation p {
margin: 5px 0;
}
/* 报告的P标签 */
.patient-info {
display: flex;
flex-wrap: wrap;
}
.ultrasound-findings h3,
.ultrasound-recommendation h3 {
margin-top: 20px;
}
.image-gallery {
display: flex;
justify-content: space-around;
margin: 20px 0;
}
</style> </style>

View File

@ -5,9 +5,10 @@
class="my-custom-close-icon" class="my-custom-close-icon"
: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 label="影像" name="first">
<iframe <iframe
v-if="dataLoaded"
frameborder="0" frameborder="0"
scrolling="no" scrolling="no"
:src="newSrc" :src="newSrc"
@ -18,7 +19,7 @@
<!-- 外层 Flex 容器 --> <!-- 外层 Flex 容器 -->
<div style="display: flex; height: 100%"> <div style="display: flex; height: 100%">
<!-- 模版区域 --> <!-- 模版区域 -->
<div style="flex: 1; min-width: 0" > <div style="flex: 1; min-width: 0">
<el-select <el-select
v-model="fordevicemValue" v-model="fordevicemValue"
placeholder="请选择模版类别" placeholder="请选择模版类别"
@ -73,7 +74,7 @@
</el-tabs> </el-tabs>
</div> </div>
<!-- 用户信息区域 --> <!-- 用户信息区域 -->
<div style="flex: 3; min-width: 0" > <div style="flex: 3; min-width: 0">
<label style="font-size: 18px; font-weight: bold; margin-left: 50px">患者信息</label> <label style="font-size: 18px; font-weight: bold; margin-left: 50px">患者信息</label>
<el-divider /> <el-divider />
<el-form <el-form
@ -201,6 +202,7 @@
> >
<el-radio-button label="阴性" value="0" /> <el-radio-button label="阴性" value="0" />
<el-radio-button label="阳性" value="1" /> <el-radio-button label="阳性" value="1" />
<el-radio-button label="重大阳性" value="2" />
</el-radio-group> </el-radio-group>
<el-divider /> <el-divider />
<div class="form-row-yx"> <div class="form-row-yx">
@ -268,7 +270,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ApplyformApi, ApplyformVO, UPFJApplyformVO } from '@/api/applyregistration/applyform' import { ApplyformApi, ApplyformVO, UPFJApplyformVO } from '@/api/applyregistration/applyform'
import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom' import { ultrasoniccomApi, updateexamineimageVO } from '@/api/ultrasoniccom'
import axios from 'axios'
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist' import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
import { getUserProfile, ProfileVO } from '@/api/system/user/profile' import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
@ -285,9 +287,7 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO) const examineFormVO = ref<PatientexamlistVO>({} as PatientexamlistVO)
const savedisabled = ref(true) // const savedisabled = ref(true) //
const examinedisabled = ref(false) // const examinedisabled = ref(false) //
const isImageLoaded = ref(false) // const dataLoaded = ref(false) //
const isImageLoaded2 = ref(false) //
const isImageLoaded3 = ref(false) //
//使 //使
const clickuptime = async (pid: string) => { const clickuptime = async (pid: string) => {
@ -348,10 +348,6 @@ const save = async () => {
console.log('data:', response.data) console.log('data:', response.data)
// ID // ID
getPatientexamlist(ID) getPatientexamlist(ID)
//
isImageLoaded.value = false
isImageLoaded2.value = false
isImageLoaded3.value = false
emit('success') emit('success')
} else { } else {
// //
@ -487,13 +483,13 @@ const orgId = ref('')
//regid //regid
const regId = ref('') const regId = ref('')
// //
const newSrc=ref(''); const newSrc = ref('')
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (id: number, orgid: string, regid: string) => { const open = async (id: number, orgid: string, regid: string) => {
resetForm() resetForm()
const Src = `/public/dicom/dicomViewPc1.html?t=${new Date().getTime()}`; const Src = `/public/dicom/dicomViewPc1.html?t=${new Date().getTime()}`
newSrc.value=Src newSrc.value = Src
console.log('orgid' + orgid) console.log('orgid' + orgid)
console.log('regid' + regid) console.log('regid' + regid)
@ -520,20 +516,40 @@ const open = async (id: number, orgid: string, regid: string) => {
privateData.value = pridate privateData.value = pridate
// ID // ID
getPatientexamlist(id) getPatientexamlist(id)
//html
var localData = {
regid: regid, // 'someNumber'
orgId: orgid // 'someOrgId' ID
}
// JSON
var localStorageData = JSON.stringify(localData);
localStorage.setItem('data', localStorageData)
// //
getlogininfo() getlogininfo()
iframeData()
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
} }
//
const iframeData = async () => {
try {
const response = await ultrasoniccomApi.getdcmlist()
if (response) {
//html
var localData = {
regid: '', // 'someNumber'
orgId: '' ,// 'someOrgId' ID
do:response
}
// JSON
var localStorageData = JSON.stringify(localData)
localStorage.setItem('data', localStorageData)
} else {
// statussuccess
console.error('Request did not succeed:', response.data)
}
dataLoaded.value = true // dataLoadedtrue
} catch (error) {
console.error('Error fetching data:', error)
dataLoaded.value = true // 使dataLoadedtrue便
}
}
// ID // ID
const getPatientexamlist = async (id: number) => { const getPatientexamlist = async (id: number) => {
const data = await PatientexamlistApi.getPatientexamlist(id) const data = await PatientexamlistApi.getPatientexamlist(id)
@ -597,7 +613,7 @@ const resetForm = () => {
height: 100vh; height: 100vh;
width: 100vw; width: 100vw;
} }
*//* */ */ /* 报告区域 左侧模版选择字体大小 */
.treeStyle { .treeStyle {
font-size: 20px; font-size: 20px;
} }

View File

@ -280,6 +280,7 @@
> >
<el-radio-button label="阴性" value="0" /> <el-radio-button label="阴性" value="0" />
<el-radio-button label="阳性" value="1" /> <el-radio-button label="阳性" value="1" />
<el-radio-button label="重大阳性" value="2" />
</el-radio-group> </el-radio-group>
<div class="form-row"> <div class="form-row">
<el-form-item label="诊断医生" class="form-item"> <el-form-item label="诊断医生" class="form-item">