批量修改
This commit is contained in:
parent
683b43789a
commit
9dc798ea39
@ -13,18 +13,18 @@ export const DeviceManageApi = {
|
||||
return await request.get({ url: `/system/department/getlist` })
|
||||
},
|
||||
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) => {
|
||||
return await request.get({ url: `/test/device/get?id=`+ id })
|
||||
return await request.get({ url: `/system/device/get?id=`+ id })
|
||||
},
|
||||
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) => {
|
||||
return await request.put({ url: `/test/device/update`, data })
|
||||
return await request.put({ url: `/system/device/update`, data })
|
||||
},
|
||||
delete: async (id: any) => {
|
||||
return await request.delete({ url: `/test/device/delete?id=` + id })
|
||||
return await request.delete({ url: `/system/device/delete?id=` + id })
|
||||
},
|
||||
}
|
||||
|
@ -13,18 +13,18 @@ export const DiagnosisTemplateApi = {
|
||||
return await request.get({ url: `/doctor/getAlllist` })
|
||||
},
|
||||
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) => {
|
||||
return await request.get({ url: `/test/reporttemplate/get?id=`+ id })
|
||||
return await request.get({ url: `/system/reporttemplate/get?id=`+ id })
|
||||
},
|
||||
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) => {
|
||||
return await request.put({ url: `/test/reporttemplate/update`, data })
|
||||
return await request.put({ url: `/system/reporttemplate/update`, data })
|
||||
},
|
||||
delete: async (id: any) => {
|
||||
return await request.delete({ url: `/test/reporttemplate/delete?id=` + id })
|
||||
return await request.delete({ url: `/system/reporttemplate/delete?id=` + id })
|
||||
},
|
||||
}
|
||||
|
@ -10,22 +10,22 @@ export const ExampartManageApi = {
|
||||
return await request.get({ url: `/org/org/getlist` })
|
||||
},
|
||||
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) => {
|
||||
return await request.get({ url: `/test/exampart/get?id=`+ id })
|
||||
return await request.get({ url: `/system/exampart/get?id=`+ id })
|
||||
},
|
||||
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) => {
|
||||
return await request.put({ url: `/test/exampart/update`, data })
|
||||
return await request.put({ url: `/system/exampart/update`, data })
|
||||
},
|
||||
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 () => {
|
||||
return await request.get({ url: `/test/exampart/getlist` })
|
||||
return await request.get({ url: `/system/exampart/getlist` })
|
||||
},
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import request from '@/config/axios'
|
||||
export const IllnessCaseApi = {
|
||||
/* 测试方法 */
|
||||
getDeviceList: async () => {
|
||||
return await request.get({ url: `/test/device/getlist` })
|
||||
return await request.get({ url: `/system/device/getlist` })
|
||||
},
|
||||
getExamitemsList: async () => {
|
||||
return await request.get({ url: `/examitems/examitems/getlist` })
|
||||
|
@ -7,7 +7,7 @@ import request from '@/config/axios'
|
||||
export const ReportPrintStatisticsApi = {
|
||||
/* 测试方法 */
|
||||
getDeviceList: async () => {
|
||||
return await request.get({ url: `/test/device/getlist` })
|
||||
return await request.get({ url: `/system/device/getlist` })
|
||||
},
|
||||
getPage: async (params: any) => {
|
||||
return await request.get({ url: `/tblist/patientexamlist/pageReportPrintStatistics`, params })
|
||||
|
@ -7,7 +7,7 @@ import request from '@/config/axios'
|
||||
export const ReservationInfoApi = {
|
||||
/* 测试方法 */
|
||||
getDeviceList: async () => {
|
||||
return await request.get({ url: `/test/device/getlist` })
|
||||
return await request.get({ url: `/system/device/getlist` })
|
||||
},
|
||||
getDepartmentList: async () => {
|
||||
return await request.get({ url: `/system/department/getlist` })
|
||||
|
@ -40,10 +40,14 @@
|
||||
clearable
|
||||
class="item-width"
|
||||
>
|
||||
<el-option label="DR" value="DR" />
|
||||
<el-option label="CR" value="CR" />
|
||||
<el-option label="CT" value="CT" />
|
||||
<el-option label="DR" value="DR" />
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
@ -204,14 +208,7 @@ const formType = ref('')
|
||||
const orgList = ref<any[]>([])
|
||||
const departmentList = ref<any[]>([])
|
||||
//表单核心
|
||||
const formData0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const formData = ref({
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
deviceName: '',
|
||||
deviceStatus: '',
|
||||
@ -232,7 +229,6 @@ const deviceDepartmentInfo = ref<any>()
|
||||
/****** 自定义内容 ******/
|
||||
const resetForm = async () => {
|
||||
formData.value = {
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
deviceName: '',
|
||||
deviceStatus: '',
|
||||
@ -325,7 +321,6 @@ onMounted(async () => {
|
||||
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(formData0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -63,10 +63,14 @@
|
||||
clearable
|
||||
class="item-width"
|
||||
>
|
||||
<el-option label="DR" value="DR" />
|
||||
<el-option label="CR" value="CR" />
|
||||
<el-option label="CT" value="CT" />
|
||||
<el-option label="DR" value="DR" />
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
@ -89,6 +93,9 @@
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -179,17 +186,10 @@ const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
const departmentList = ref<any[]>([])
|
||||
//表单核心
|
||||
const queryParams0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
/** 测试数据 **/
|
||||
deviceDesc: undefined,
|
||||
deviceDesc: '',
|
||||
departmentCode: '',
|
||||
deviceDepartment: '',
|
||||
deviceName: '',
|
||||
@ -234,11 +234,27 @@ const getList = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleQuery = () => {
|
||||
const handleQuery = async () => {
|
||||
queryParams.value.pageNo = 1
|
||||
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 () => {
|
||||
departmentList.value = await DeviceManageApi.getDepartmentList()
|
||||
@ -248,7 +264,6 @@ onMounted(async () => {
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(download)
|
||||
console.log(queryParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -123,14 +123,7 @@ const formType = ref('')
|
||||
const orgList = ref<any[]>([])
|
||||
const doctorList = ref<any[]>([])
|
||||
//表单核心
|
||||
const formData0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const formData = ref({
|
||||
/** 测试数据 **/
|
||||
templateName: '',
|
||||
examDescription: '',
|
||||
diagResults: '',
|
||||
@ -159,11 +152,6 @@ const open = async (type: string, id?: number) => {
|
||||
}
|
||||
|
||||
/****** 可参考内容 ******/
|
||||
const openTest = () => {
|
||||
dialogVisible.value = true
|
||||
//清空内容
|
||||
}
|
||||
|
||||
/** 组件事件 **/
|
||||
const submitForm = async () => {
|
||||
formLoading.value = true
|
||||
@ -194,11 +182,10 @@ onMounted(async () => {
|
||||
console.log(dateFormatter)
|
||||
console.log(message)
|
||||
console.log(t)
|
||||
console.log(formData0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
defineExpose({ open, openTest })
|
||||
defineExpose({ open })
|
||||
/**
|
||||
* 备注:
|
||||
*
|
||||
|
@ -21,25 +21,25 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="模板类型" prop="templateLimitsType" class="item-style">
|
||||
<el-radio-group
|
||||
v-model="queryParams.templateLimitsType"
|
||||
class="item-width radio-group"
|
||||
>
|
||||
<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 v-model="queryParams.templateLimitsType" class="radio-group">
|
||||
<el-radio value="all" style="margin-left: 15px; margin-right: 15px">全部</el-radio>
|
||||
<el-radio value="public" style="margin-right: 15px">公共</el-radio>
|
||||
<el-radio value="private" style="margin-right: 15px">私有</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="9" style="text-align: right">
|
||||
<el-col :span="7" style="text-align: right">
|
||||
<el-button
|
||||
@click="handleQuery"
|
||||
style="background-color: rgba(56, 119, 246, 1); color: rgba(255, 255, 255, 1)"
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -47,7 +47,7 @@
|
||||
|
||||
<ContentWrap style="height: 64px">
|
||||
<el-row>
|
||||
<el-col :offset="15" :span="9" style="text-align: right">
|
||||
<el-col :offset="17" :span="7" style="text-align: right">
|
||||
<el-button
|
||||
@click="openForm('create')"
|
||||
style="background-color: rgb(28, 176, 117); color: rgb(255, 255, 255)"
|
||||
@ -126,16 +126,9 @@ const formRef = ref()
|
||||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
//表单核心
|
||||
const queryParams0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
/** 测试数据 **/
|
||||
templateName: '',
|
||||
templateLimitsType: 'all'
|
||||
})
|
||||
@ -177,6 +170,12 @@ const handleQuery = () => {
|
||||
getList()
|
||||
}
|
||||
|
||||
const resetQuery = async () => {
|
||||
/* aaaaa */
|
||||
queryFormRef.value?.clearValidate()
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
/** 钩子方法 **/
|
||||
onMounted(() => {
|
||||
getList()
|
||||
@ -185,9 +184,6 @@ onMounted(() => {
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(download)
|
||||
console.log(message)
|
||||
console.log(t)
|
||||
console.log(queryParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -104,14 +104,7 @@ const formLoading = ref(false)
|
||||
const formType = ref('')
|
||||
const orgList = ref<any[]>([])
|
||||
//表单核心
|
||||
const formData0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const formData = ref({
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
examPartCode: '',
|
||||
examPartName: '',
|
||||
@ -122,7 +115,6 @@ const formData = ref({
|
||||
/****** 自定义内容 ******/
|
||||
const resetForm = async () => {
|
||||
formData.value = {
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
examPartCode: '',
|
||||
examPartName: '',
|
||||
@ -188,7 +180,6 @@ onMounted(async () => {
|
||||
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(formData0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -38,6 +38,9 @@
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -124,16 +127,9 @@ const formRef = ref()
|
||||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
//表单核心
|
||||
const queryParams0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
/** 测试数据 **/
|
||||
examPartName: '',
|
||||
examPartCode: ''
|
||||
})
|
||||
@ -169,11 +165,22 @@ const getList = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleQuery = () => {
|
||||
const handleQuery = async () => {
|
||||
queryParams.value.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
const resetQuery = async () => {
|
||||
queryParams.value = {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
examPartName: '',
|
||||
examPartCode: ''
|
||||
}
|
||||
queryFormRef.value?.clearValidate()
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
/** 钩子方法 **/
|
||||
onMounted(() => {
|
||||
getList()
|
||||
@ -182,7 +189,6 @@ onMounted(() => {
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(download)
|
||||
console.log(queryParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -95,10 +95,14 @@
|
||||
clearable
|
||||
class="item-width"
|
||||
>
|
||||
<el-option label="DR" value="DR" />
|
||||
<el-option label="CR" value="CR" />
|
||||
<el-option label="CT" value="CT" />
|
||||
<el-option label="DR" value="DR" />
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
@ -107,8 +111,8 @@
|
||||
<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="0" style="margin-right: 18px">阴性</el-radio>
|
||||
<el-radio value="1" style="margin-right: 18px">阳性</el-radio>
|
||||
<el-radio value="2" style="margin-right: 4px">重大阳性</el-radio>
|
||||
<el-radio value="1" style="margin-right: 6px">阳性</el-radio>
|
||||
<el-radio value="2" style="margin-left: 12px; margin-right: 4px">重大阳性</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -178,6 +182,9 @@
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -202,6 +209,13 @@
|
||||
<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="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="gender" width="54px" />
|
||||
<el-table-column
|
||||
@ -211,13 +225,6 @@
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column
|
||||
label="检查日期"
|
||||
align="center"
|
||||
prop="examDate"
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column
|
||||
label="检查部位"
|
||||
header-align="center"
|
||||
@ -351,16 +358,9 @@ const examitemsDesc = ref('')
|
||||
const deviceList = ref<any[]>([])
|
||||
const examitemsList = ref<any[]>([])
|
||||
//表单核心
|
||||
const queryParams0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const queryParams = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
/** 测试数据 **/
|
||||
regId: '',
|
||||
examId: '',
|
||||
examDate_ge: '',
|
||||
@ -403,6 +403,26 @@ const handleQuery = async () => {
|
||||
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) => {
|
||||
examitemsDesc.value = row ? row.examDescription : ''
|
||||
diagnosisDesc.value = row ? row.diagResults : ''
|
||||
@ -421,7 +441,6 @@ console.log(dateFormatter)
|
||||
console.log(download)
|
||||
console.log(message)
|
||||
console.log(t)
|
||||
console.log(queryParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
@ -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>
|
@ -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>
|
@ -94,12 +94,15 @@
|
||||
>
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
||||
<ContentWrap style="height: 64px" v-show="false">
|
||||
<ContentWrap style="height: 64px">
|
||||
<el-row>
|
||||
<el-col :offset="16" :span="8" style="text-align: right">
|
||||
<el-button
|
||||
@ -125,12 +128,19 @@
|
||||
:row-style="{ height: '40px' }"
|
||||
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">
|
||||
<template #default="scope"> {{ scope.$index + 1 }} </template>
|
||||
</el-table-column>
|
||||
<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="examDate"
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
|
||||
<el-table-column label="性别" align="center" prop="gender" width="54px" />
|
||||
<el-table-column
|
||||
@ -140,13 +150,6 @@
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column
|
||||
label="检查日期"
|
||||
align="center"
|
||||
prop="examDate"
|
||||
:formatter="dateFormatter2"
|
||||
width="110px"
|
||||
/>
|
||||
<el-table-column
|
||||
label="检查项目"
|
||||
header-align="center"
|
||||
@ -206,7 +209,21 @@
|
||||
</div>
|
||||
</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">
|
||||
<el-button
|
||||
link
|
||||
@ -217,7 +234,11 @@
|
||||
</el-button>
|
||||
</div>
|
||||
<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
|
||||
ref="infoFormRef"
|
||||
:model="infoParams"
|
||||
@ -376,154 +397,65 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="报告单" name="reportInfo">
|
||||
<div
|
||||
class="flex-center"
|
||||
id="printMe"
|
||||
style="min-height: calc(100% - 15px)"
|
||||
v-if="reportInfoType == 'us'"
|
||||
<el-tab-pane label="报告单" name="reportInfo" v-if="activeTabName != 'reportInfoBatch'">
|
||||
<div v-if="reportInfoType">
|
||||
<div>
|
||||
<div style="text-align: right">
|
||||
<el-button type="primary" style="width: 90px" v-print="{ id: 'printMe' }">
|
||||
<span>打印</span>
|
||||
</el-button>
|
||||
<el-divider style="margin-top: 8px; margin-bottom: 10px" />
|
||||
</div>
|
||||
</div>
|
||||
<div id="printMe">
|
||||
<template v-if="reportInfoType == 'us'">
|
||||
<ReportInfoUS v-bind="{ ...infoParams }" class="page-item" />
|
||||
</template>
|
||||
<template v-if="reportInfoType == 'ct'">
|
||||
<ReportInfoCT v-bind="{ ...infoParams }" class="page-item" />
|
||||
</template>
|
||||
</div>
|
||||
<div style="margin-bottom: 40px"></div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane
|
||||
label="报告单(批量打印)"
|
||||
name="reportInfoBatch"
|
||||
v-if="activeTabName == 'reportInfoBatch'"
|
||||
>
|
||||
<div class="ultrasound-report" id="PDF">
|
||||
<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>
|
||||
<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="'printMe'"
|
||||
>打印</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex-center"
|
||||
id="printMe2"
|
||||
style="min-height: calc(100% - 15px)"
|
||||
v-if="reportInfoType == 'ct'"
|
||||
>
|
||||
<div class="ultrasound-report2" id="PDF">
|
||||
<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-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>
|
||||
<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: 12px;
|
||||
margin-bottom: -14px;
|
||||
"
|
||||
>
|
||||
本报告只作临床参考,不作证明材料
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-divider class="ignore-print" />
|
||||
<div style="text-align: center; margin-top: 10px; margin-bottom: 12px">
|
||||
<div>
|
||||
<div>
|
||||
<div style="text-align: right">
|
||||
<el-affix :offset="35">
|
||||
<el-button
|
||||
ref="printBatch"
|
||||
type="primary"
|
||||
style="width: 90px"
|
||||
class="ignore-print"
|
||||
v-print="'printMe2'"
|
||||
>打印</el-button
|
||||
v-print="{ id: 'printMeBatch' }"
|
||||
>
|
||||
<span>批量打印</span>
|
||||
</el-button>
|
||||
</el-affix>
|
||||
<el-divider style="margin-top: 8px; margin-bottom: 10px" />
|
||||
</div>
|
||||
</div>
|
||||
<div id="printMeBatch">
|
||||
<template v-for="(item, index) in reportsList" :key="item.id + '_' + index">
|
||||
<div
|
||||
class="ignore-print"
|
||||
style="margin-bottom: 50px"
|
||||
v-if="index && index > 0"
|
||||
></div>
|
||||
<ReportInfoUS
|
||||
v-bind="{ ...item }"
|
||||
v-if="item.deviceType && item.deviceType.trim().toLowerCase() == 'us'"
|
||||
class="page-item"
|
||||
/>
|
||||
<ReportInfoCT v-bind="{ ...item }" v-else class="page-item" />
|
||||
</template>
|
||||
</div>
|
||||
<div style="margin-bottom: 40px"></div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-drawer>
|
||||
@ -532,10 +464,11 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { formatDate, dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
||||
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
||||
import download from '@/utils/download'
|
||||
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
|
||||
import { ultrasoniccomApi } from '@/api/ultrasoniccom'
|
||||
import ReportInfoCT from './ReportInfoCT.vue'
|
||||
import ReportInfoUS from './ReportInfoUS.vue'
|
||||
|
||||
defineOptions({ name: 'ReportPrintStatistics' })
|
||||
/*
|
||||
@ -548,30 +481,25 @@ defineOptions({ name: 'ReportPrintStatistics' })
|
||||
const queryFormRef = ref()
|
||||
const infoFormRef = ref()
|
||||
const infoTableRef = ref()
|
||||
const printBatch = ref()
|
||||
|
||||
/** 数据结构 **/
|
||||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
const activeDrawer = ref(false)
|
||||
const activeDrawerSize = ref<any>('74%')
|
||||
const activeTabName = ref('diagnosisInfo')
|
||||
const reportInfoType = ref('') //us、ct
|
||||
const diagnosisInfo_readonly = ref(true)
|
||||
const deviceList = ref<any[]>([])
|
||||
const reportimages = ref<any[]>([])
|
||||
const age = ref<any>('')
|
||||
const examItemNameEdit = ref('')
|
||||
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({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
/** 测试数据 **/
|
||||
regId: '',
|
||||
examId: '',
|
||||
examDate_ge: '',
|
||||
@ -580,15 +508,11 @@ const queryParams = ref({
|
||||
deviceType: '',
|
||||
pname: ''
|
||||
})
|
||||
const infoParams0 = ref({
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const infoParams = ref({
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
examId: '',
|
||||
regId: '',
|
||||
orgId: '',
|
||||
pname: '',
|
||||
gender: '',
|
||||
birthday: '',
|
||||
@ -628,17 +552,12 @@ const calculateAge = async (birthdate) => {
|
||||
age.value = yearsDiff
|
||||
}
|
||||
|
||||
const loadimage = async (orgId: string, regId: string) => {
|
||||
const imageslist = await ultrasoniccomApi.getimageslist(orgId, regId, '1')
|
||||
reportimages.value = imageslist
|
||||
}
|
||||
|
||||
const resetDiagnosisInfo = async () => {
|
||||
infoParams.value = {
|
||||
/** 测试数据 **/
|
||||
id: '',
|
||||
examId: '',
|
||||
regId: '',
|
||||
orgId: '',
|
||||
pname: '',
|
||||
gender: '',
|
||||
birthday: '',
|
||||
@ -657,13 +576,21 @@ const resetDiagnosisInfo = async () => {
|
||||
age.value = ''
|
||||
examItemNameEdit.value = ''
|
||||
examItemNameEditShow.value = false
|
||||
reportInfoType.value = ''
|
||||
reportimages.value = []
|
||||
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 () => {
|
||||
try {
|
||||
ReportPrintStatisticsApi.updateExamItemName({
|
||||
@ -684,6 +611,7 @@ const examItemNameEdit_reset = async () => {
|
||||
}
|
||||
|
||||
const getList = async () => {
|
||||
infoTableRef.value?.clearSelection()
|
||||
resetDiagnosisInfo()
|
||||
loading.value = true
|
||||
try {
|
||||
@ -700,6 +628,22 @@ const handleQuery = async () => {
|
||||
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) => {
|
||||
resetDiagnosisInfo()
|
||||
if (row) {
|
||||
@ -707,17 +651,34 @@ const handleRowClick = async (row) => {
|
||||
calculateAge(row.birthday)
|
||||
examItemNameEdit.value = row.examItemName
|
||||
examItemNameEditShow.value = true
|
||||
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') {
|
||||
reportInfoType.value = 'us'
|
||||
loadimage(row.orgId, row.regId)
|
||||
} else reportInfoType.value = 'ct'
|
||||
if (row.deviceType && row.deviceType.trim().toLowerCase() == 'us') reportInfoType.value = 'us'
|
||||
else reportInfoType.value = 'ct'
|
||||
}
|
||||
activeTabName.value = 'diagnosisInfo'
|
||||
activeDrawer.value = true
|
||||
}
|
||||
|
||||
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(download)
|
||||
console.log(message)
|
||||
console.log(t)
|
||||
console.log(queryParams0)
|
||||
console.log(infoParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
@ -763,82 +720,32 @@ console.log(infoParams0)
|
||||
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 {
|
||||
.ignore-print {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/**** CT报告单 ****/
|
||||
.ultrasound-report2 {
|
||||
font-family: Arial, sans-serif;
|
||||
width: 94%;
|
||||
margin: 6px auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
min-height: 750px;
|
||||
}
|
||||
|
||||
.patient-info2 {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.patient-info2 p {
|
||||
font-size: 14px;
|
||||
margin: 4px 6px;
|
||||
min-width: calc(33.33% - 2 * 6px - 2px);
|
||||
.page-item {
|
||||
border-width: 0;
|
||||
height: 260mm;
|
||||
page-break-after: always;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss">
|
||||
/* 打印(全局) */
|
||||
@media print {
|
||||
@page {
|
||||
size: auto;
|
||||
margin-top: 2mm;
|
||||
margin-bottom: 2mm;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
height: auto !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -297,14 +297,7 @@ const infoFormRef_disabled = ref(true)
|
||||
const btnAdd_show = ref(true)
|
||||
const btnSubmit_show = ref(false)
|
||||
const btnCancel_show = ref(false)
|
||||
const infoParams0 = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
doctorName: undefined,
|
||||
departmentName: undefined
|
||||
})
|
||||
const infoParams = ref({
|
||||
/** 测试数据 **/
|
||||
regId: '',
|
||||
regSource: '',
|
||||
examIdBase: '',
|
||||
@ -326,7 +319,6 @@ const examIdFirst = ref('')
|
||||
/****** 自定义内容 ******/
|
||||
const resetInfoForm = async () => {
|
||||
infoParams.value = {
|
||||
/** 测试数据 **/
|
||||
regId: '',
|
||||
regSource: '',
|
||||
examIdBase: '',
|
||||
@ -449,7 +441,6 @@ onMounted(async () => {
|
||||
/** 防空作用域 **/
|
||||
console.log(dateFormatter)
|
||||
console.log(t)
|
||||
console.log(infoParams0)
|
||||
//console.log(null)
|
||||
|
||||
/** 导出内容 **/
|
||||
|
Loading…
Reference in New Issue
Block a user