批量修改

This commit is contained in:
旺仔 2024-08-26 23:52:54 +08:00
parent 683b43789a
commit 9dc798ea39
17 changed files with 623 additions and 378 deletions

View File

@ -13,18 +13,18 @@ export const DeviceManageApi = {
return await request.get({ url: `/system/department/getlist` }) return await request.get({ url: `/system/department/getlist` })
}, },
getPage: async (params: any) => { getPage: async (params: any) => {
return await request.get({ url: `/test/device/page`, params }) return await request.get({ url: `/system/device/page`, params })
}, },
get: async (id: any) => { get: async (id: any) => {
return await request.get({ url: `/test/device/get?id=`+ id }) return await request.get({ url: `/system/device/get?id=`+ id })
}, },
create: async (data: any) => { create: async (data: any) => {
return await request.post({ url: `/test/device/create`, data }) return await request.post({ url: `/system/device/create`, data })
}, },
update: async (data: any) => { update: async (data: any) => {
return await request.put({ url: `/test/device/update`, data }) return await request.put({ url: `/system/device/update`, data })
}, },
delete: async (id: any) => { delete: async (id: any) => {
return await request.delete({ url: `/test/device/delete?id=` + id }) return await request.delete({ url: `/system/device/delete?id=` + id })
}, },
} }

View File

@ -13,18 +13,18 @@ export const DiagnosisTemplateApi = {
return await request.get({ url: `/doctor/getAlllist` }) return await request.get({ url: `/doctor/getAlllist` })
}, },
getPage: async (params: any) => { getPage: async (params: any) => {
return await request.get({ url: `/test/reporttemplate/page`, params }) return await request.get({ url: `/system/reporttemplate/page`, params })
}, },
get: async (id: any) => { get: async (id: any) => {
return await request.get({ url: `/test/reporttemplate/get?id=`+ id }) return await request.get({ url: `/system/reporttemplate/get?id=`+ id })
}, },
create: async (data: any) => { create: async (data: any) => {
return await request.post({ url: `/test/reporttemplate/create`, data }) return await request.post({ url: `/system/reporttemplate/create`, data })
}, },
update: async (data: any) => { update: async (data: any) => {
return await request.put({ url: `/test/reporttemplate/update`, data }) return await request.put({ url: `/system/reporttemplate/update`, data })
}, },
delete: async (id: any) => { delete: async (id: any) => {
return await request.delete({ url: `/test/reporttemplate/delete?id=` + id }) return await request.delete({ url: `/system/reporttemplate/delete?id=` + id })
}, },
} }

View File

@ -10,22 +10,22 @@ export const ExampartManageApi = {
return await request.get({ url: `/org/org/getlist` }) return await request.get({ url: `/org/org/getlist` })
}, },
getPage: async (params: any) => { getPage: async (params: any) => {
return await request.get({ url: `/test/exampart/page`, params }) return await request.get({ url: `/system/exampart/page`, params })
}, },
get: async (id: any) => { get: async (id: any) => {
return await request.get({ url: `/test/exampart/get?id=`+ id }) return await request.get({ url: `/system/exampart/get?id=`+ id })
}, },
create: async (data: any) => { create: async (data: any) => {
return await request.post({ url: `/test/exampart/create`, data }) return await request.post({ url: `/system/exampart/create`, data })
}, },
update: async (data: any) => { update: async (data: any) => {
return await request.put({ url: `/test/exampart/update`, data }) return await request.put({ url: `/system/exampart/update`, data })
}, },
delete: async (id: any) => { delete: async (id: any) => {
return await request.delete({ url: `/test/exampart/delete?id=` + id }) return await request.delete({ url: `/system/exampart/delete?id=` + id })
}, },
getexampartlist: async () => { getexampartlist: async () => {
return await request.get({ url: `/test/exampart/getlist` }) return await request.get({ url: `/system/exampart/getlist` })
}, },
} }

View File

@ -7,7 +7,7 @@ import request from '@/config/axios'
export const IllnessCaseApi = { export const IllnessCaseApi = {
/* 测试方法 */ /* 测试方法 */
getDeviceList: async () => { getDeviceList: async () => {
return await request.get({ url: `/test/device/getlist` }) return await request.get({ url: `/system/device/getlist` })
}, },
getExamitemsList: async () => { getExamitemsList: async () => {
return await request.get({ url: `/examitems/examitems/getlist` }) return await request.get({ url: `/examitems/examitems/getlist` })

View File

@ -7,7 +7,7 @@ import request from '@/config/axios'
export const ReportPrintStatisticsApi = { export const ReportPrintStatisticsApi = {
/* 测试方法 */ /* 测试方法 */
getDeviceList: async () => { getDeviceList: async () => {
return await request.get({ url: `/test/device/getlist` }) return await request.get({ url: `/system/device/getlist` })
}, },
getPage: async (params: any) => { getPage: async (params: any) => {
return await request.get({ url: `/tblist/patientexamlist/pageReportPrintStatistics`, params }) return await request.get({ url: `/tblist/patientexamlist/pageReportPrintStatistics`, params })

View File

@ -7,7 +7,7 @@ import request from '@/config/axios'
export const ReservationInfoApi = { export const ReservationInfoApi = {
/* 测试方法 */ /* 测试方法 */
getDeviceList: async () => { getDeviceList: async () => {
return await request.get({ url: `/test/device/getlist` }) return await request.get({ url: `/system/device/getlist` })
}, },
getDepartmentList: async () => { getDepartmentList: async () => {
return await request.get({ url: `/system/department/getlist` }) return await request.get({ url: `/system/department/getlist` })

View File

@ -40,10 +40,14 @@
clearable clearable
class="item-width" class="item-width"
> >
<el-option label="DR" value="DR" /> <el-option label="CR" value="CR" />
<el-option label="CT" value="CT" /> <el-option label="CT" value="CT" />
<el-option label="DR" value="DR" />
<el-option label="MR" value="MR" /> <el-option label="MR" value="MR" />
<el-option label="超声" value="超声" /> <el-option label="NM" value="NM" />
<el-option label="PT" value="PT" />
<el-option label="US" value="US" />
<el-option label="XA" value="XA" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -204,14 +208,7 @@ const formType = ref('')
const orgList = ref<any[]>([]) const orgList = ref<any[]>([])
const departmentList = ref<any[]>([]) const departmentList = ref<any[]>([])
// //
const formData0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const formData = ref({ const formData = ref({
/** 测试数据 **/
id: '', id: '',
deviceName: '', deviceName: '',
deviceStatus: '', deviceStatus: '',
@ -232,7 +229,6 @@ const deviceDepartmentInfo = ref<any>()
/****** 自定义内容 ******/ /****** 自定义内容 ******/
const resetForm = async () => { const resetForm = async () => {
formData.value = { formData.value = {
/** 测试数据 **/
id: '', id: '',
deviceName: '', deviceName: '',
deviceStatus: '', deviceStatus: '',
@ -325,7 +321,6 @@ onMounted(async () => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(formData0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -63,10 +63,14 @@
clearable clearable
class="item-width" class="item-width"
> >
<el-option label="DR" value="DR" /> <el-option label="CR" value="CR" />
<el-option label="CT" value="CT" /> <el-option label="CT" value="CT" />
<el-option label="DR" value="DR" />
<el-option label="MR" value="MR" /> <el-option label="MR" value="MR" />
<el-option label="超声" value="超声" /> <el-option label="NM" value="NM" />
<el-option label="PT" value="PT" />
<el-option label="US" value="US" />
<el-option label="XA" value="XA" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -89,6 +93,9 @@
> >
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button> </el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -179,17 +186,10 @@ const message = useMessage()
const { t } = useI18n() const { t } = useI18n()
const departmentList = ref<any[]>([]) const departmentList = ref<any[]>([])
// //
const queryParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/ deviceDesc: '',
deviceDesc: undefined,
departmentCode: '', departmentCode: '',
deviceDepartment: '', deviceDepartment: '',
deviceName: '', deviceName: '',
@ -234,11 +234,27 @@ const getList = async () => {
} }
} }
const handleQuery = () => { const handleQuery = async () => {
queryParams.value.pageNo = 1 queryParams.value.pageNo = 1
getList() getList()
} }
const resetQuery = async () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
deviceDesc: '',
departmentCode: '',
deviceDepartment: '',
deviceName: '',
deviceType: '',
deviceModel: ''
}
deviceDepartmentInfo.value = undefined
queryFormRef.value?.clearValidate()
handleQuery()
}
/** 钩子方法 **/ /** 钩子方法 **/
onMounted(async () => { onMounted(async () => {
departmentList.value = await DeviceManageApi.getDepartmentList() departmentList.value = await DeviceManageApi.getDepartmentList()
@ -248,7 +264,6 @@ onMounted(async () => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(download) console.log(download)
console.log(queryParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -123,14 +123,7 @@ const formType = ref('')
const orgList = ref<any[]>([]) const orgList = ref<any[]>([])
const doctorList = ref<any[]>([]) const doctorList = ref<any[]>([])
// //
const formData0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const formData = ref({ const formData = ref({
/** 测试数据 **/
templateName: '', templateName: '',
examDescription: '', examDescription: '',
diagResults: '', diagResults: '',
@ -159,11 +152,6 @@ const open = async (type: string, id?: number) => {
} }
/****** 可参考内容 ******/ /****** 可参考内容 ******/
const openTest = () => {
dialogVisible.value = true
//
}
/** 组件事件 **/ /** 组件事件 **/
const submitForm = async () => { const submitForm = async () => {
formLoading.value = true formLoading.value = true
@ -194,11 +182,10 @@ onMounted(async () => {
console.log(dateFormatter) console.log(dateFormatter)
console.log(message) console.log(message)
console.log(t) console.log(t)
console.log(formData0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/
defineExpose({ open, openTest }) defineExpose({ open })
/** /**
* 备注 * 备注
* *

View File

@ -21,25 +21,25 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item label="模板类型" prop="templateLimitsType" class="item-style"> <el-form-item label="模板类型" prop="templateLimitsType" class="item-style">
<el-radio-group <el-radio-group v-model="queryParams.templateLimitsType" class="radio-group">
v-model="queryParams.templateLimitsType" <el-radio value="all" style="margin-left: 15px; margin-right: 15px">全部</el-radio>
class="item-width radio-group" <el-radio value="public" style="margin-right: 15px">公共</el-radio>
> <el-radio value="private" style="margin-right: 15px">私有</el-radio>
<el-radio value="all" style="margin-left: 15px; margin-right: 25px">全部</el-radio>
<el-radio value="public" style="margin-right: 25px">公共</el-radio>
<el-radio value="private" style="margin-right: 4px">私有</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="9" style="text-align: right"> <el-col :span="7" style="text-align: right">
<el-button <el-button
@click="handleQuery" @click="handleQuery"
style="background-color: rgba(56, 119, 246, 1); color: rgba(255, 255, 255, 1)" style="background-color: rgba(56, 119, 246, 1); color: rgba(255, 255, 255, 1)"
> >
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button> </el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -47,7 +47,7 @@
<ContentWrap style="height: 64px"> <ContentWrap style="height: 64px">
<el-row> <el-row>
<el-col :offset="15" :span="9" style="text-align: right"> <el-col :offset="17" :span="7" style="text-align: right">
<el-button <el-button
@click="openForm('create')" @click="openForm('create')"
style="background-color: rgb(28, 176, 117); color: rgb(255, 255, 255)" style="background-color: rgb(28, 176, 117); color: rgb(255, 255, 255)"
@ -126,16 +126,9 @@ const formRef = ref()
const message = useMessage() const message = useMessage()
const { t } = useI18n() const { t } = useI18n()
// //
const queryParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/
templateName: '', templateName: '',
templateLimitsType: 'all' templateLimitsType: 'all'
}) })
@ -177,6 +170,12 @@ const handleQuery = () => {
getList() getList()
} }
const resetQuery = async () => {
/* aaaaa */
queryFormRef.value?.clearValidate()
handleQuery()
}
/** 钩子方法 **/ /** 钩子方法 **/
onMounted(() => { onMounted(() => {
getList() getList()
@ -185,9 +184,6 @@ onMounted(() => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(download) console.log(download)
console.log(message)
console.log(t)
console.log(queryParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -104,14 +104,7 @@ const formLoading = ref(false)
const formType = ref('') const formType = ref('')
const orgList = ref<any[]>([]) const orgList = ref<any[]>([])
// //
const formData0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const formData = ref({ const formData = ref({
/** 测试数据 **/
id: '', id: '',
examPartCode: '', examPartCode: '',
examPartName: '', examPartName: '',
@ -122,7 +115,6 @@ const formData = ref({
/****** 自定义内容 ******/ /****** 自定义内容 ******/
const resetForm = async () => { const resetForm = async () => {
formData.value = { formData.value = {
/** 测试数据 **/
id: '', id: '',
examPartCode: '', examPartCode: '',
examPartName: '', examPartName: '',
@ -188,7 +180,6 @@ onMounted(async () => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(formData0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -38,6 +38,9 @@
> >
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button> </el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -124,16 +127,9 @@ const formRef = ref()
const message = useMessage() const message = useMessage()
const { t } = useI18n() const { t } = useI18n()
// //
const queryParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/
examPartName: '', examPartName: '',
examPartCode: '' examPartCode: ''
}) })
@ -169,11 +165,22 @@ const getList = async () => {
} }
} }
const handleQuery = () => { const handleQuery = async () => {
queryParams.value.pageNo = 1 queryParams.value.pageNo = 1
getList() getList()
} }
const resetQuery = async () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
examPartName: '',
examPartCode: ''
}
queryFormRef.value?.clearValidate()
handleQuery()
}
/** 钩子方法 **/ /** 钩子方法 **/
onMounted(() => { onMounted(() => {
getList() getList()
@ -182,7 +189,6 @@ onMounted(() => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(download) console.log(download)
console.log(queryParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -95,10 +95,14 @@
clearable clearable
class="item-width" class="item-width"
> >
<el-option label="DR" value="DR" /> <el-option label="CR" value="CR" />
<el-option label="CT" value="CT" /> <el-option label="CT" value="CT" />
<el-option label="DR" value="DR" />
<el-option label="MR" value="MR" /> <el-option label="MR" value="MR" />
<el-option label="超声" value="超声" /> <el-option label="NM" value="NM" />
<el-option label="PT" value="PT" />
<el-option label="US" value="US" />
<el-option label="XA" value="XA" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -107,8 +111,8 @@
<el-radio-group v-model="queryParams.diagFlag" class="item-width radio-group"> <el-radio-group v-model="queryParams.diagFlag" class="item-width radio-group">
<el-radio value="" style="margin-left: 12px; margin-right: 18px">全部</el-radio> <el-radio value="" style="margin-left: 12px; margin-right: 18px">全部</el-radio>
<el-radio value="0" style="margin-right: 18px">阴性</el-radio> <el-radio value="0" style="margin-right: 18px">阴性</el-radio>
<el-radio value="1" style="margin-right: 18px">阳性</el-radio> <el-radio value="1" style="margin-right: 6px">阳性</el-radio>
<el-radio value="2" style="margin-right: 4px">重大阳性</el-radio> <el-radio value="2" style="margin-left: 12px; margin-right: 4px">重大阳性</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -178,6 +182,9 @@
> >
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button> </el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -202,6 +209,13 @@
<el-table-column type="index" label="序号" align="center" width="54px" /> <el-table-column type="index" label="序号" align="center" width="54px" />
<el-table-column label="登记号" align="center" prop="regId" width="240px" /> <el-table-column label="登记号" align="center" prop="regId" width="240px" />
<el-table-column label="检查号" align="center" prop="examId" width="240px" /> <el-table-column label="检查号" align="center" prop="examId" width="240px" />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="110px"
/>
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" /> <el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
<el-table-column label="性别" align="center" prop="gender" width="54px" /> <el-table-column label="性别" align="center" prop="gender" width="54px" />
<el-table-column <el-table-column
@ -211,13 +225,6 @@
:formatter="dateFormatter2" :formatter="dateFormatter2"
width="110px" width="110px"
/> />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="110px"
/>
<el-table-column <el-table-column
label="检查部位" label="检查部位"
header-align="center" header-align="center"
@ -351,16 +358,9 @@ const examitemsDesc = ref('')
const deviceList = ref<any[]>([]) const deviceList = ref<any[]>([])
const examitemsList = ref<any[]>([]) const examitemsList = ref<any[]>([])
// //
const queryParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/
regId: '', regId: '',
examId: '', examId: '',
examDate_ge: '', examDate_ge: '',
@ -403,6 +403,26 @@ const handleQuery = async () => {
getList() getList()
} }
const resetQuery = async () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
regId: '',
examId: '',
examDate_ge: '',
examDate_le: '',
deviceType: '',
deviceName: '',
diagFlag: '',
examItemName: '',
reportstatus: '',
pname: '',
gender: ''
}
queryFormRef.value?.clearValidate()
handleQuery()
}
const handleRowClick = async (row) => { const handleRowClick = async (row) => {
examitemsDesc.value = row ? row.examDescription : '' examitemsDesc.value = row ? row.examDescription : ''
diagnosisDesc.value = row ? row.diagResults : '' diagnosisDesc.value = row ? row.diagResults : ''
@ -421,7 +441,6 @@ console.log(dateFormatter)
console.log(download) console.log(download)
console.log(message) console.log(message)
console.log(t) console.log(t)
console.log(queryParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/

View File

@ -0,0 +1,168 @@
<template>
<div class="ultrasound-report">
<el-row style="font-size: 14px">
<el-col :span="12">
<h2 class="ml-6px">科右前旗康立寿医院</h2>
</el-col>
<el-col :span="12">
<h2 style="text-align: right" class="mr-6px">CT检查报告单</h2>
</el-col>
</el-row>
<hr />
<el-row style="font-size: 14px">
<el-col :span="13">
<div class="ml-6px">患者编号</div>
<div class="ml-6px">{{ infoParams.regId }}</div>
</el-col>
<el-col :span="11">
<div class="ml-6px">检查编号</div>
<div class="ml-6px">{{ infoParams.examId }}</div>
</el-col>
</el-row>
<hr />
<div class="patient-info">
<p class="info-item" v-if="false">门诊号{{ infoParams.regId }}</p>
<p class="info-item">姓名{{ infoParams.pname }}</p>
<p class="info-item">性别{{ infoParams.gender }}</p>
<p class="info-item">年龄{{ age }}</p>
<p class="info-item" v-if="false">检查号{{ infoParams.examId }}</p>
<p class="info-item" v-if="false">检查项目{{ infoParams.examItemName }}</p>
<p class="info-item">设备{{ infoParams.deviceName }}</p>
<p class="info-item">送检科室{{ infoParams.billDoctorDepartment }}</p>
</div>
<hr />
<div class="ultrasound-findings">
<h3>检查项目</h3>
<p>{{ infoParams.examItemName }}</p>
</div>
<div class="ultrasound-findings">
<h3>影像学表现</h3>
<p>{{ infoParams.examDescription }}</p>
</div>
<div class="ultrasound-recommendation">
<h3>影像学诊断</h3>
<p>{{ infoParams.diagResults }}</p>
</div>
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
<hr />
<el-row style="font-size: 14px">
<el-col :span="6" class="pl-6px">报告医师{{ infoParams.diagDoctor }}</el-col>
<el-col :span="6"
>报告日期{{ formatDate(infoParams.diagDate as unknown as Date, 'YYYY-MM-DD') }}</el-col
>
<el-col :span="6">审核医师{{ infoParams.reviewDoctor }}</el-col>
<el-col :span="6"
>审核日期{{
formatDate(infoParams.reviewDate as unknown as Date, 'YYYY-MM-DD')
}}</el-col
>
</el-row>
<div style="font-size: 11px; text-align: center; margin-top: 16px; margin-bottom: -14px">
本报告只作临床参考不作证明材料
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { formatDate } from '@/utils/formatTime'
defineOptions({ name: 'ReportInfoCT' })
/*
* 李传洋
* ReportInfoCT
**/
/** 导入内容 **/
const infoParams = defineProps({
id: String,
examId: String,
regId: String,
orgId: String,
pname: String,
gender: String,
birthday: String,
billDoctorDepartment: String,
applicationDate: String,
examDescription: String,
diagResults: String,
examItemName: String,
deviceName: String,
deviceType: String,
diagDoctor: String,
diagDate: String,
reviewDoctor: String,
reviewDate: String
})
/** 数据内容 **/
const age = computed(() => {
let birthdate = infoParams.birthday
if (!birthdate) {
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--
}
return yearsDiff
})
/** 钩子方法 **/
onMounted(async () => {})
/** 导出内容 **/
/**
* 备注
*
* **/
</script>
<style lang="scss" scoped>
/*** 报告单 ***/
.ultrasound-report {
font-family: Arial, sans-serif;
width: 94%;
margin: 3px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
position: relative;
min-height: 750px;
}
.ultrasound-report h1 {
text-align: center;
}
.patient-info {
display: flex;
flex-wrap: wrap;
}
.patient-info p {
font-size: 14px;
margin: 4px 6px;
min-width: calc(33.33% - 2 * 6px - 2px);
}
.ultrasound-recommendation {
margin-bottom: 90px;
}
.ultrasound-findings p,
.ultrasound-recommendation p {
font-size: 16px;
margin: 5px 2px 5px 30px;
}
.ultrasound-findings h3,
.ultrasound-recommendation h3 {
margin-top: 30px;
}
</style>

View File

@ -0,0 +1,170 @@
<template>
<div class="ultrasound-report">
<h2>超声检查报告单</h2>
<hr />
<div class="patient-info">
<p class="info-item">门诊号{{ infoParams.regId }}</p>
<p class="info-item">姓名{{ infoParams.pname }}</p>
<p class="info-item">性别{{ infoParams.gender }}</p>
<p class="info-item">年龄{{ age }}</p>
<p class="info-item">检查号{{ infoParams.examId }}</p>
<p class="info-item">检查项目{{ infoParams.examItemName }}</p>
<p class="info-item">设备{{ infoParams.deviceName }}</p>
<p class="info-item">送检科室{{ infoParams.billDoctorDepartment }}</p>
</div>
<hr />
<h3>超声图像</h3>
<div class="image-gallery">
<div v-for="image in reportimages" :key="image.id">
<img alt="" style="width: 140px; height: 140px" :src="image.imgUrl" v-if="false" />
<el-image
alt=""
fit="fill"
loading="eager"
style="width: 99%; height: 99%"
:src="image.imgUrl"
:preview-src-list="[image.imgUrl]"
v-if="true"
/>
</div>
</div>
<div class="ultrasound-findings">
<h3>超声所见</h3>
<p>{{ infoParams.examDescription }}</p>
</div>
<div class="ultrasound-recommendation">
<h3>超声提示</h3>
<p>{{ infoParams.diagResults }}</p>
</div>
<div style="position: absolute; bottom: 20px; right: 20px">
<p>医生签名{{ infoParams.reviewDoctor }}</p>
</div>
</div>
</template>
<script setup lang="ts">
import { ultrasoniccomApi } from '@/api/ultrasoniccom'
defineOptions({ name: 'ReportInfoUS' })
/*
* 李传洋
* ReportInfoUS
**/
/** 导入内容 **/
const infoParams = defineProps({
id: String,
examId: String,
regId: String,
orgId: String,
pname: String,
gender: String,
birthday: String,
billDoctorDepartment: String,
applicationDate: String,
examDescription: String,
diagResults: String,
examItemName: String,
deviceName: String,
deviceType: String,
diagDoctor: String,
diagDate: String,
reviewDoctor: String,
reviewDate: String
})
/** 数据内容 **/
const age = computed(() => {
let birthdate = infoParams.birthday
if (!birthdate) {
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--
}
return yearsDiff
})
const reportimages = ref<any[]>([])
const loadimage = async (orgId: string, regId: string) => {
reportimages.value = []
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
reportimages.value = imageslist
}
watch(
[() => infoParams.orgId, () => infoParams.regId],
([orgIdNew, regIdNew], [orgIdOld, regIdOld]) => {
console.log(orgIdOld == null, regIdOld == null)
loadimage(orgIdNew ? orgIdNew : '', regIdNew ? regIdNew : '')
},
{ deep: true }
)
/** 钩子方法 **/
onMounted(async () => {
loadimage(infoParams.orgId ? infoParams.orgId : '', infoParams.regId ? infoParams.regId : '')
})
/** 导出内容 **/
/**
* 备注
*
* **/
</script>
<style lang="scss" scoped>
/*** 报告单 ***/
.ultrasound-report {
font-family: Arial, sans-serif;
width: 94%;
margin: 3px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
position: relative;
min-height: 750px;
}
.ultrasound-report h1,
.ultrasound-report h2 {
text-align: center;
}
.patient-info {
display: flex;
flex-wrap: wrap;
}
.patient-info p {
font-size: 14px;
margin: 4px 6px;
min-width: calc(25% - 2 * 6px - 2px);
}
.ultrasound-recommendation {
margin-bottom: 90px;
}
.ultrasound-findings p,
.ultrasound-recommendation p {
font-size: 16px;
margin: 5px 2px 5px 30px;
}
.ultrasound-findings h3,
.ultrasound-recommendation h3 {
margin-top: 30px;
}
.image-gallery {
display: flex;
justify-content: space-around;
margin: 10px 0;
}
</style>

View File

@ -94,12 +94,15 @@
> >
<Icon icon="ep:search" class="mr-5px" /> 搜索 <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-button> </el-button>
<el-button @click="resetQuery">
<Icon icon="ep:refresh" class="mr-5px" /> 重置
</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</ContentWrap> </ContentWrap>
<ContentWrap style="height: 64px" v-show="false"> <ContentWrap style="height: 64px">
<el-row> <el-row>
<el-col :offset="16" :span="8" style="text-align: right"> <el-col :offset="16" :span="8" style="text-align: right">
<el-button <el-button
@ -125,12 +128,19 @@
:row-style="{ height: '40px' }" :row-style="{ height: '40px' }"
height="max(calc(100vh - 465px),100px)" height="max(calc(100vh - 465px),100px)"
> >
<el-table-column type="selection" align="center" width="44px" /> <el-table-column type="selection" align="center" width="42px" />
<el-table-column label="序号" align="center" width="54px"> <el-table-column label="序号" align="center" width="54px">
<template #default="scope"> {{ scope.$index + 1 }} </template> <template #default="scope"> {{ scope.$index + 1 }} </template>
</el-table-column> </el-table-column>
<el-table-column label="登记号" align="center" prop="regId" width="240px" /> <el-table-column label="登记号" align="center" prop="regId" width="240px" />
<el-table-column label="检查号" align="center" prop="examId" width="240px" /> <el-table-column label="检查号" align="center" prop="examId" width="240px" />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="110px"
/>
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" /> <el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
<el-table-column label="性别" align="center" prop="gender" width="54px" /> <el-table-column label="性别" align="center" prop="gender" width="54px" />
<el-table-column <el-table-column
@ -140,13 +150,6 @@
:formatter="dateFormatter2" :formatter="dateFormatter2"
width="110px" width="110px"
/> />
<el-table-column
label="检查日期"
align="center"
prop="examDate"
:formatter="dateFormatter2"
width="110px"
/>
<el-table-column <el-table-column
label="检查项目" label="检查项目"
header-align="center" header-align="center"
@ -206,7 +209,21 @@
</div> </div>
</ContentWrap> </ContentWrap>
<el-drawer v-model="activeDrawer" direction="rtl" :with-header="false" size="74%"> <el-drawer
v-model="activeDrawer"
direction="rtl"
:with-header="false"
:size="activeDrawerSize"
@opened="drawerOpened"
@closed="
() => {
reportsList = []
reportInfoType = ''
activeTabName = ''
activeDrawerSize = '74%'
}
"
>
<div style="position: relative; z-index: 100"> <div style="position: relative; z-index: 100">
<el-button <el-button
link link
@ -217,7 +234,11 @@
</el-button> </el-button>
</div> </div>
<el-tabs v-model="activeTabName" style="margin-top: -8px; height: 100%"> <el-tabs v-model="activeTabName" style="margin-top: -8px; height: 100%">
<el-tab-pane label="诊断信息" name="diagnosisInfo"> <el-tab-pane
label="诊断信息"
name="diagnosisInfo"
v-if="activeTabName != 'reportInfoBatch'"
>
<el-form <el-form
ref="infoFormRef" ref="infoFormRef"
:model="infoParams" :model="infoParams"
@ -376,153 +397,64 @@
</el-row> </el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报告单" name="reportInfo"> <el-tab-pane label="报告单" name="reportInfo" v-if="activeTabName != 'reportInfoBatch'">
<div <div v-if="reportInfoType">
class="flex-center" <div>
id="printMe" <div style="text-align: right">
style="min-height: calc(100% - 15px)" <el-button type="primary" style="width: 90px" v-print="{ id: 'printMe' }">
v-if="reportInfoType == 'us'" <span>打印</span>
> </el-button>
<div class="ultrasound-report" id="PDF"> <el-divider style="margin-top: 8px; margin-bottom: 10px" />
<h2>超声检查报告单</h2>
<hr />
<div class="patient-info">
<p class="info-item">门诊号{{ infoParams.regId }}</p>
<p class="info-item">姓名{{ infoParams.pname }}</p>
<p class="info-item">性别{{ infoParams.gender }}</p>
<p class="info-item">年龄{{ age }}</p>
<p class="info-item">检查号{{ infoParams.examId }}</p>
<p class="info-item">检查项目{{ infoParams.examItemName }}</p>
<p class="info-item">设备{{ infoParams.deviceName }}</p>
<p class="info-item">送检科室{{ infoParams.billDoctorDepartment }}</p>
</div>
<hr />
<h3>超声图像</h3>
<div class="image-gallery">
<div v-for="image in reportimages" :key="image.id">
<img
alt=""
style="width: 140px; height: 140px"
:src="image.imgUrl"
v-if="false"
/>
<el-image
alt=""
fit="fill"
style="width: 99%; height: 99%"
:src="image.imgUrl"
:preview-src-list="[image.imgUrl]"
v-if="true"
/>
</div>
</div>
<div class="ultrasound-findings">
<h3>超声所见</h3>
<p>{{ infoParams.examDescription }}</p>
</div>
<div class="ultrasound-recommendation">
<h3>超声提示</h3>
<p>{{ infoParams.diagResults }}</p>
</div>
<div style="position: absolute; bottom: 20px; right: 20px">
<p>医生签名{{ infoParams.reviewDoctor }}</p>
</div> </div>
</div> </div>
<el-divider class="ignore-print" /> <div id="printMe">
<div style="text-align: center; margin-top: 10px; margin-bottom: 12px"> <template v-if="reportInfoType == 'us'">
<el-button type="primary" style="width: 90px" class="ignore-print" v-print="'printMe'" <ReportInfoUS v-bind="{ ...infoParams }" class="page-item" />
>打印</el-button </template>
> <template v-if="reportInfoType == 'ct'">
<ReportInfoCT v-bind="{ ...infoParams }" class="page-item" />
</template>
</div> </div>
<div style="margin-bottom: 40px"></div>
</div> </div>
<div </el-tab-pane>
class="flex-center" <el-tab-pane
id="printMe2" label="报告单(批量打印)"
style="min-height: calc(100% - 15px)" name="reportInfoBatch"
v-if="reportInfoType == 'ct'" v-if="activeTabName == 'reportInfoBatch'"
> >
<div class="ultrasound-report2" id="PDF"> <div>
<el-row style="font-size: 14px"> <div>
<el-col :span="12"> <div style="text-align: right">
<h2 class="ml-6px">科右前旗康立寿医院</h2> <el-affix :offset="35">
</el-col> <el-button
<el-col :span="12"> ref="printBatch"
<h2 style="text-align: right" class="mr-6px">CT检查报告单</h2> type="primary"
</el-col> style="width: 90px"
</el-row> v-print="{ id: 'printMeBatch' }"
<hr />
<el-row style="font-size: 14px">
<el-col :span="13">
<div class="ml-6px">患者编号</div>
<div class="ml-6px">{{ infoParams.regId }}</div>
</el-col>
<el-col :span="11">
<div class="ml-6px">检查编号</div>
<div class="ml-6px">{{ infoParams.examId }}</div>
</el-col>
</el-row>
<hr />
<div class="patient-info2">
<p class="info-item" v-if="false">门诊号{{ infoParams.regId }}</p>
<p class="info-item">姓名{{ infoParams.pname }}</p>
<p class="info-item">性别{{ infoParams.gender }}</p>
<p class="info-item">年龄{{ age }}</p>
<p class="info-item" v-if="false">检查号{{ infoParams.examId }}</p>
<p class="info-item" v-if="false">检查项目{{ infoParams.examItemName }}</p>
<p class="info-item">设备{{ infoParams.deviceName }}</p>
<p class="info-item">送检科室{{ infoParams.billDoctorDepartment }}</p>
</div>
<hr />
<div class="ultrasound-findings">
<h3>检查项目</h3>
<p>{{ infoParams.examItemName }}</p>
</div>
<div class="ultrasound-findings">
<h3>影像学表现</h3>
<p>{{ infoParams.examDescription }}</p>
</div>
<div class="ultrasound-recommendation">
<h3>影像学诊断</h3>
<p>{{ infoParams.diagResults }}</p>
</div>
<div style="width: 94%; position: absolute; bottom: 20px; right: 20px">
<hr />
<el-row style="font-size: 14px">
<el-col :span="6" class="pl-6px">报告医师{{ infoParams.diagDoctor }}</el-col>
<el-col :span="6"
>报告日期{{
formatDate(infoParams.diagDate as unknown as Date, 'YYYY-MM-DD')
}}</el-col
> >
<el-col :span="6">审核医师{{ infoParams.reviewDoctor }}</el-col> <span>批量打印</span>
<el-col :span="6" </el-button>
>审核日期{{ </el-affix>
formatDate(infoParams.reviewDate as unknown as Date, 'YYYY-MM-DD') <el-divider style="margin-top: 8px; margin-bottom: 10px" />
}}</el-col </div>
> </div>
</el-row> <div id="printMeBatch">
<template v-for="(item, index) in reportsList" :key="item.id + '_' + index">
<div <div
style=" class="ignore-print"
font-size: 11px; style="margin-bottom: 50px"
text-align: center; v-if="index && index > 0"
margin-top: 12px; ></div>
margin-bottom: -14px; <ReportInfoUS
" v-bind="{ ...item }"
> v-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'us'"
本报告只作临床参考不作证明材料 class="page-item"
</div> />
</div> <ReportInfoCT v-bind="{ ...item }" v-else class="page-item" />
</div> </template>
<el-divider class="ignore-print" />
<div style="text-align: center; margin-top: 10px; margin-bottom: 12px">
<el-button
type="primary"
style="width: 90px"
class="ignore-print"
v-print="'printMe2'"
>打印</el-button
>
</div> </div>
<div style="margin-bottom: 40px"></div>
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -532,10 +464,11 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { formatDate, dateFormatter, dateFormatter2 } 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 { ultrasoniccomApi } from '@/api/ultrasoniccom' import ReportInfoCT from './ReportInfoCT.vue'
import ReportInfoUS from './ReportInfoUS.vue'
defineOptions({ name: 'ReportPrintStatistics' }) defineOptions({ name: 'ReportPrintStatistics' })
/* /*
@ -548,30 +481,25 @@ defineOptions({ name: 'ReportPrintStatistics' })
const queryFormRef = ref() const queryFormRef = ref()
const infoFormRef = ref() const infoFormRef = ref()
const infoTableRef = ref() const infoTableRef = ref()
const printBatch = ref()
/** 数据结构 **/ /** 数据结构 **/
const message = useMessage() const message = useMessage()
const { t } = useI18n() const { t } = useI18n()
const activeDrawer = ref(false) const activeDrawer = ref(false)
const activeDrawerSize = ref<any>('74%')
const activeTabName = ref('diagnosisInfo') const activeTabName = ref('diagnosisInfo')
const reportInfoType = ref('') //usct const reportInfoType = ref('') //usct
const diagnosisInfo_readonly = ref(true) const diagnosisInfo_readonly = ref(true)
const deviceList = ref<any[]>([])
const reportimages = ref<any[]>([])
const age = ref<any>('') const age = ref<any>('')
const examItemNameEdit = ref('') const examItemNameEdit = ref('')
const examItemNameEditShow = ref(false) const examItemNameEditShow = ref(false)
const reportsList = ref<any[]>([])
const deviceList = ref<any[]>([])
// //
const queryParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const queryParams = ref({ const queryParams = ref({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
/** 测试数据 **/
regId: '', regId: '',
examId: '', examId: '',
examDate_ge: '', examDate_ge: '',
@ -580,15 +508,11 @@ const queryParams = ref({
deviceType: '', deviceType: '',
pname: '' pname: ''
}) })
const infoParams0 = ref({
doctorName: undefined,
departmentName: undefined
})
const infoParams = ref({ const infoParams = ref({
/** 测试数据 **/
id: '', id: '',
examId: '', examId: '',
regId: '', regId: '',
orgId: '',
pname: '', pname: '',
gender: '', gender: '',
birthday: '', birthday: '',
@ -628,17 +552,12 @@ const calculateAge = async (birthdate) => {
age.value = yearsDiff age.value = yearsDiff
} }
const loadimage = async (orgId: string, regId: string) => {
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
reportimages.value = imageslist
}
const resetDiagnosisInfo = async () => { const resetDiagnosisInfo = async () => {
infoParams.value = { infoParams.value = {
/** 测试数据 **/
id: '', id: '',
examId: '', examId: '',
regId: '', regId: '',
orgId: '',
pname: '', pname: '',
gender: '', gender: '',
birthday: '', birthday: '',
@ -657,13 +576,21 @@ const resetDiagnosisInfo = async () => {
age.value = '' age.value = ''
examItemNameEdit.value = '' examItemNameEdit.value = ''
examItemNameEditShow.value = false examItemNameEditShow.value = false
reportInfoType.value = ''
reportimages.value = []
infoFormRef.value?.clearValidate() infoFormRef.value?.clearValidate()
} }
/****** 可参考内容 ******/ /****** 可参考内容 ******/
/** 组件事件 **/ /** 组件事件 **/
const drawerOpened = async () => {
try {
if (true && activeTabName && activeTabName.value == 'reportInfoBatch') {
printBatch.value.$el.click()
activeDrawer.value = false
}
} finally {
}
}
const examItemNameEdit_save = async () => { const examItemNameEdit_save = async () => {
try { try {
ReportPrintStatisticsApi.updateExamItemName({ ReportPrintStatisticsApi.updateExamItemName({
@ -684,6 +611,7 @@ const examItemNameEdit_reset = async () => {
} }
const getList = async () => { const getList = async () => {
infoTableRef.value?.clearSelection()
resetDiagnosisInfo() resetDiagnosisInfo()
loading.value = true loading.value = true
try { try {
@ -700,6 +628,22 @@ const handleQuery = async () => {
getList() getList()
} }
const resetQuery = async () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
regId: '',
examId: '',
examDate_ge: '',
examDate_le: '',
deviceName: '',
deviceType: '',
pname: ''
}
queryFormRef.value?.clearValidate()
handleQuery()
}
const handleRowClick = async (row) => { const handleRowClick = async (row) => {
resetDiagnosisInfo() resetDiagnosisInfo()
if (row) { if (row) {
@ -707,17 +651,34 @@ const handleRowClick = async (row) => {
calculateAge(row.birthday) calculateAge(row.birthday)
examItemNameEdit.value = row.examItemName examItemNameEdit.value = row.examItemName
examItemNameEditShow.value = true examItemNameEditShow.value = true
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') { if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') reportInfoType.value = 'us'
reportInfoType.value = 'us' else reportInfoType.value = 'ct'
loadimage(row.orgId, row.regId)
} else reportInfoType.value = 'ct'
} }
activeTabName.value = 'diagnosisInfo' activeTabName.value = 'diagnosisInfo'
activeDrawer.value = true activeDrawer.value = true
} }
const handlePrint = async () => { const handlePrint = async () => {
console.log(infoTableRef.value.getSelectionRows()) const infoList = infoTableRef.value?.getSelectionRows()
if (!(infoList && Array.isArray(infoList) && infoList.length > 0)) {
await message.alertWarning('请选择要打印的数据')
return
} else {
infoList.sort((a, b) => {
let compare = 0
//a
let examDateA = a.examDate ? a.examDate.toString().trim() : ''
//b
let examDateB = b.examDate ? b.examDate.toString().trim() : ''
//compare
compare = examDateB.localeCompare(examDateA)
return compare
})
reportsList.value = infoList
activeTabName.value = 'reportInfoBatch'
activeDrawerSize.value = 0.01
activeDrawer.value = true
}
} }
/** 钩子方法 **/ /** 钩子方法 **/
@ -729,10 +690,6 @@ onMounted(async () => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(download) console.log(download)
console.log(message)
console.log(t)
console.log(queryParams0)
console.log(infoParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/
@ -763,82 +720,32 @@ console.log(infoParams0)
border: 1px solid #ececec; border: 1px solid #ececec;
} }
/**** 超声检查报告单 ****/ /* 打印(报告单) */
.ultrasound-report {
font-family: Arial, sans-serif;
width: 94%;
margin: 6px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
position: relative;
min-height: 750px;
}
.ultrasound-report h1,
.ultrasound-report h2 {
text-align: center;
}
.patient-info {
display: flex;
flex-wrap: wrap;
}
.patient-info p {
font-size: 14px;
margin: 4px 6px;
min-width: calc(25% - 2 * 6px - 2px);
}
.ultrasound-recommendation {
margin-bottom: 90px;
}
.ultrasound-findings p,
.ultrasound-recommendation p {
font-size: 16px;
margin: 5px 2px 5px 30px;
}
.ultrasound-findings h3,
.ultrasound-recommendation h3 {
margin-top: 30px;
}
.image-gallery {
display: flex;
justify-content: space-around;
margin: 10px 0;
}
/* 不打印区域 */
@media print { @media print {
.ignore-print { .ignore-print {
display: none; display: none;
} }
}
/**** CT报告单 ****/ .page-item {
.ultrasound-report2 { border-width: 0;
font-family: Arial, sans-serif; height: 260mm;
width: 94%; page-break-after: always;
margin: 6px auto; }
padding: 20px; }
border: 1px solid #ccc; </style>
border-radius: 8px;
position: relative; <style lang="scss">
min-height: 750px; /* 打印(全局) */
} @media print {
@page {
.patient-info2 { size: auto;
display: flex; margin-top: 2mm;
flex-wrap: wrap; margin-bottom: 2mm;
} }
.patient-info2 p { body,
font-size: 14px; html {
margin: 4px 6px; height: auto !important;
min-width: calc(33.33% - 2 * 6px - 2px); }
} }
</style> </style>

View File

@ -297,14 +297,7 @@ const infoFormRef_disabled = ref(true)
const btnAdd_show = ref(true) const btnAdd_show = ref(true)
const btnSubmit_show = ref(false) const btnSubmit_show = ref(false)
const btnCancel_show = ref(false) const btnCancel_show = ref(false)
const infoParams0 = ref({
pageNo: 1,
pageSize: 10,
doctorName: undefined,
departmentName: undefined
})
const infoParams = ref({ const infoParams = ref({
/** 测试数据 **/
regId: '', regId: '',
regSource: '', regSource: '',
examIdBase: '', examIdBase: '',
@ -326,7 +319,6 @@ const examIdFirst = ref('')
/****** 自定义内容 ******/ /****** 自定义内容 ******/
const resetInfoForm = async () => { const resetInfoForm = async () => {
infoParams.value = { infoParams.value = {
/** 测试数据 **/
regId: '', regId: '',
regSource: '', regSource: '',
examIdBase: '', examIdBase: '',
@ -449,7 +441,6 @@ onMounted(async () => {
/** 防空作用域 **/ /** 防空作用域 **/
console.log(dateFormatter) console.log(dateFormatter)
console.log(t) console.log(t)
console.log(infoParams0)
//console.log(null) //console.log(null)
/** 导出内容 **/ /** 导出内容 **/