This commit is contained in:
lxd 2025-01-17 10:09:52 +08:00
commit 11639b6a18
3 changed files with 160 additions and 57 deletions

View File

@ -110,18 +110,21 @@ export const PatientexamlistApi = {
GetDateYYZDYXCount: async () => { GetDateYYZDYXCount: async () => {
return await request.get({ url: `/tblist/patientexamlist/GetDateYYZDYXCount` }) return await request.get({ url: `/tblist/patientexamlist/GetDateYYZDYXCount` })
}, },
// 收藏功能 // 收藏功能
CollectAndCancellation: async (id: String, type: string) => { CollectAndCancellation: async (id: String, type: string) => {
return await request.get({ url: `/tblist/patientexamlist/CollectAndCancellation?id=${id}&&type=${type}` }) return await request.get({ url: `/tblist/patientexamlist/CollectAndCancellation?id=${id}&&type=${type}` })
}, },
generatePdf_ct: async (data: any) => {
return await request.post({ url: `/tblist/patientexamlist/generatePdf_ct`, data })
},
generatePdf_us: async (data: any) => {
return await request.post({ url: `/tblist/patientexamlist/generatePdf_us`, data })
},
ftppdf: async (data: inspdfscreenshotVO) => { ftppdf: async (data: inspdfscreenshotVO) => {
return await request.post({ url: `/tblist/patientexamlist/ftppdf`, data }) return await request.post({ url: `/tblist/patientexamlist/ftppdf`, data })
}, },
// 更新危急值标识 // 更新危急值标识
Updatetblistwarning: async (id: String, type: string) => { Updatetblistwarning: async (id: String, type: string) => {
return await request.get({ url: `/tblist/patientexamlist/Updatetblistwarning?id=${id}&&type=${type}` }) return await request.get({ url: `/tblist/patientexamlist/Updatetblistwarning?id=${id}&&type=${type}` })
}, }
} }

View File

@ -317,7 +317,13 @@
<div id="hiddenPdfDiv" v-if="showPdfContent"> <div id="hiddenPdfDiv" v-if="showPdfContent">
<PdfContent <PdfContent
v-bind="{ ...infoParams, showQRcode: false }" v-bind="{ ...infoParams, showQRcode: false }"
style="border-width: 1; height: 400mm; width: 300mm; page-break-after: always;font-size: 20px;" style="
border-width: 1;
height: 400mm;
width: 300mm;
page-break-after: always;
font-size: 20px;
"
/> />
</div> </div>
</div> </div>
@ -337,7 +343,7 @@ import htmlToPdf from '@/utils/htmlPdf'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { object } from 'vue-types' import { object } from 'vue-types'
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics' import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
import * as ConfigApi from '@/api/infra/config'// import * as ConfigApi from '@/api/infra/config' //
/** dicom */ /** dicom */
defineOptions({ name: 'DicomViewForm' }) defineOptions({ name: 'DicomViewForm' })
const showPdfContent = ref(false) //CT const showPdfContent = ref(false) //CT
@ -404,7 +410,7 @@ const save = async () => {
examineFormVO.value.diagFlag = radio1.value examineFormVO.value.diagFlag = radio1.value
examineFormVO.value.diagDoctor = Profilevo.value.doctorname examineFormVO.value.diagDoctor = Profilevo.value.doctorname
examineFormVO.value.diagDoctorId = Profilevo.value.doctorID examineFormVO.value.diagDoctorId = Profilevo.value.doctorID
// examineFormVO.value.reviewDoctor = Profilevo.value.username // examineFormVO.value.reviewDoctor = Profilevo.value.username
examineFormVO.value.reportstatus = '已分析' examineFormVO.value.reportstatus = '已分析'
// examineFormVO.value.diagDate=localDateTime // examineFormVO.value.diagDate=localDateTime
@ -469,26 +475,50 @@ const exportPdfCTToBase64 = async () => {
if (applyFormVO.value.reviewDate !== null) { if (applyFormVO.value.reviewDate !== null) {
infoParams.value.reviewDate = formatDate(applyFormVO.value.reviewDate, 'YYYY-MM-DD') infoParams.value.reviewDate = formatDate(applyFormVO.value.reviewDate, 'YYYY-MM-DD')
} }
infoParams.value.extraInfo= orgInfo.value infoParams.value.extraInfo = orgInfo.value
//infoParams.value.reviewDate=applyFormVO.value.reviewDate.toString() //infoParams.value.reviewDate=applyFormVO.value.reviewDate.toString()
showPdfContent.value = true calculateAge(applyFormVO.value.birthday) //
nextTick(() => { let orgInfoTemp = await ReportPrintStatisticsApi.getOrg(infoParams.value.orgId.trim())
setTimeout(async () => { await PatientexamlistApi.generatePdf_ct({
try { model: '0',
//PDF folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(),
const pdfBase64String = await htmlToPdf.getPdfBase64('CT报告单', '#hiddenPdfDiv') id: ID.toString(),
await PatientexamlistApi.ftppdf({ regid: infoParams.value.regId,
id: ID.toString(), examid: infoParams.value.examId,
imagebase: pdfBase64String, name: infoParams.value.pname,
model: '0', gender: infoParams.value.gender,
folderPath: await ConfigApi.getConfigKey('url.ftpimage') + '\\' + ID.toString() age: age.value + '岁',
}) deviceName: infoParams.value.deviceName,
} finally { Department: infoParams.value.billDoctorDepartment,
showPdfContent.value = false examItemName: infoParams.value.examItemName,
} examDescription: infoParams.value.examDescription,
}, 1000) diagResults: infoParams.value.diagResults,
hsname: orgInfoTemp.orgName,
diagDoctor: infoParams.value.diagDoctor,
diagDate: infoParams.value.diagDate,
reviewDoctor: infoParams.value.reviewDoctor,
reviewDate: infoParams.value.reviewDate
}) })
if (false) {
showPdfContent.value = true
nextTick(() => {
setTimeout(async () => {
try {
//PDF
const pdfBase64String = await htmlToPdf.getPdfBase64('CT报告单', '#hiddenPdfDiv')
await PatientexamlistApi.ftppdf({
id: ID.toString(),
imagebase: pdfBase64String,
model: '0',
folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString()
})
} finally {
showPdfContent.value = false
}
}, 1000)
})
}
} }
const infoParams = ref({ const infoParams = ref({
@ -604,7 +634,11 @@ const handleselectchange = async () => {
if (fordevicemValue.value) { if (fordevicemValue.value) {
// //
// //
const dd = await ultrasoniccomApi.getreporttemplatelist(Profilevo.value.orgId, String(fordevicemValue.value), '') const dd = await ultrasoniccomApi.getreporttemplatelist(
Profilevo.value.orgId,
String(fordevicemValue.value),
''
)
treeData.value = dd treeData.value = dd
const pridate = await ultrasoniccomApi.getreporttemplatelist( const pridate = await ultrasoniccomApi.getreporttemplatelist(
@ -652,7 +686,11 @@ const open = async (id: number, orgid: string, regid: string, examId: string, is
formLoading.value = true formLoading.value = true
try { try {
// //
const dd = await ultrasoniccomApi.getreporttemplatelist(Profilevo.value.orgId, String(fordevicemValue.value), '') const dd = await ultrasoniccomApi.getreporttemplatelist(
Profilevo.value.orgId,
String(fordevicemValue.value),
''
)
treeData.value = dd treeData.value = dd
console.log('返回值1' + dd) console.log('返回值1' + dd)
console.log('返回值2' + treeData.value) console.log('返回值2' + treeData.value)
@ -753,7 +791,7 @@ const getlogininfo = async () => {
if (Profilevo.value.isimageexamine === '1') { if (Profilevo.value.isimageexamine === '1') {
examinedisabled.value = true examinedisabled.value = true
} }
orgInfo.value= await ReportPrintStatisticsApi.getOrg( Profilevo.value.orgId.trim()) orgInfo.value = await ReportPrintStatisticsApi.getOrg(Profilevo.value.orgId.trim())
} }
/** 重置表单 */ /** 重置表单 */

View File

@ -489,12 +489,18 @@
<videoForm ref="videoformRef" /> <videoForm ref="videoformRef" />
<!-- 隐藏的 div用于渲染 ReportInfoUS 组件 style="border-width: 1; height: 297mm; page-break-after: always"--> <!-- 隐藏的 div用于渲染 ReportInfoUS 组件 style="border-width: 1; height: 297mm; page-break-after: always"-->
<div style="position: fixed; top: 0; left: 0; z-index: -100"> <div style="position: fixed; top: 0; left: 0; z-index: -100">
<div id="hiddenUSPdfDiv" v-if="showPdfContent"> <div id="hiddenUSPdfDiv" v-if="showPdfContent">
<PdfContent <PdfContent
v-bind="{ ...infoParams, showQRcode: false }" v-bind="{ ...infoParams, showQRcode: false }"
style="border-width: 1; height: 400mm; width: 300mm; page-break-after: always;font-size: 20px;" style="
border-width: 1;
height: 400mm;
width: 300mm;
page-break-after: always;
font-size: 20px;
"
/> />
</div> </div>
</div> </div>
@ -516,7 +522,7 @@ import videoForm from './videoForm.vue'
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics' import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import PdfContent from '@/views/applyregistration/reportPrintStatistics/ReportInfoUS.vue' // PDF import PdfContent from '@/views/applyregistration/reportPrintStatistics/ReportInfoUS.vue' // PDF
import * as ConfigApi from '@/api/infra/config'// import * as ConfigApi from '@/api/infra/config' //
/** 超声组件 */ /** 超声组件 */
defineOptions({ name: 'Ultrasonic' }) defineOptions({ name: 'Ultrasonic' })
@ -616,27 +622,79 @@ const exportPdfUSToBase64 = async () => {
if (applyFormVO.value.reviewDate !== null) { if (applyFormVO.value.reviewDate !== null) {
infoParams.value.reviewDate = formatDate(applyFormVO.value.reviewDate, 'YYYY-MM-DD') infoParams.value.reviewDate = formatDate(applyFormVO.value.reviewDate, 'YYYY-MM-DD')
} }
infoParams.value.extraInfo= orgInfo.value infoParams.value.extraInfo = orgInfo.value
//infoParams.value.reviewDate=applyFormVO.value.reviewDate.toString() //infoParams.value.reviewDate=applyFormVO.value.reviewDate.toString()
//D:\\FLYPACS\\ftp //D:\\FLYPACS\\ftp
showPdfContent.value = true calculateAge(applyFormVO.value.birthday) //
nextTick(() => { let orgInfoTemp = await ReportPrintStatisticsApi.getOrg(infoParams.value.orgId.trim())
setTimeout(async () => { let image1 = ''
try { let image2 = ''
//PDF let image3 = ''
const pdfBase64String = await htmlToPdf.getPdfBase64('US报告单', '#hiddenUSPdfDiv') const imageslist = await ultrasoniccomApi.getimageslist(
await PatientexamlistApi.ftppdf({ infoParams.value.orgId,
id: ID.toString(), infoParams.value.regId,
imagebase: pdfBase64String, '1'
model: '0', )
folderPath: await ConfigApi.getConfigKey('url.ftpimage') + '\\' + ID.toString() if (imageslist && Array.isArray(imageslist)) {
}) if (imageslist[0] && imageslist[0].imgUrl) {
} finally { image1 = imageslist[0].imgUrl.trim()
showPdfContent.value = false if (image1.indexOf('http') != 0 && image1.indexOf('/') == 0)
} image1 = window.location.origin + image1
}, 1000) }
if (imageslist[1] && imageslist[1].imgUrl) {
image2 = imageslist[1].imgUrl.trim()
if (image2.indexOf('http') != 0 && image2.indexOf('/') == 0)
image2 = window.location.origin + image2
}
if (imageslist[2] && imageslist[2].imgUrl) {
image3 = imageslist[2].imgUrl.trim()
if (image3.indexOf('http') != 0 && image3.indexOf('/') == 0)
image3 = window.location.origin + image3
}
}
await PatientexamlistApi.generatePdf_us({
model: '0',
folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString(),
id: ID.toString(),
regid: infoParams.value.regId,
examid: infoParams.value.examId,
name: infoParams.value.pname,
gender: infoParams.value.gender,
age: age.value + '岁',
deviceName: infoParams.value.deviceName,
Department: infoParams.value.billDoctorDepartment,
examItemName: infoParams.value.examItemName,
examDescription: infoParams.value.examDescription,
diagResults: infoParams.value.diagResults,
hsname: orgInfoTemp.orgName,
diagDoctor: infoParams.value.diagDoctor,
diagDate: infoParams.value.diagDate,
reviewDoctor: infoParams.value.reviewDoctor,
reviewDate: infoParams.value.reviewDate,
image1: image1,
image2: image2,
image3: image3
}) })
if (false) {
showPdfContent.value = true
nextTick(() => {
setTimeout(async () => {
try {
//PDF
const pdfBase64String = await htmlToPdf.getPdfBase64('US报告单', '#hiddenUSPdfDiv')
await PatientexamlistApi.ftppdf({
id: ID.toString(),
imagebase: pdfBase64String,
model: '0',
folderPath: (await ConfigApi.getConfigKey('url.ftpimage')) + '\\' + ID.toString()
})
} finally {
showPdfContent.value = false
}
}, 1000)
})
}
} }
const infoParams = ref({ const infoParams = ref({
@ -722,14 +780,14 @@ const examine = async () => {
if (response) { if (response) {
message.alertSuccess('审核成功') message.alertSuccess('审核成功')
// ID // ID
await getPatientexamlist(ID) await getPatientexamlist(ID)
isImageLoaded.value = false isImageLoaded.value = false
isImageLoaded2.value = false isImageLoaded2.value = false
isImageLoaded3.value = false isImageLoaded3.value = false
images.value = [] images.value = []
// //
loadimagelist() loadimagelist()
await exportPdfUSToBase64() await exportPdfUSToBase64()
emit('success') emit('success')
} }
} else if (applyFormVO.value.reportstatus === '已审核') { } else if (applyFormVO.value.reportstatus === '已审核') {
@ -844,21 +902,21 @@ const upimageselect = async () => {
updateexamineimage.value = [] updateexamineimage.value = []
updateexamineimage.value.push({ updateexamineimage.value.push({
regid:regId.value, regid: regId.value,
id: selecteimagedoneid.toString(), id: selecteimagedoneid.toString(),
isDelete: '', isDelete: '',
deletePerson: '', deletePerson: '',
selected: '1' selected: '1'
}) })
updateexamineimage.value.push({ updateexamineimage.value.push({
regid:regId.value, regid: regId.value,
id: selecteimagedtwoid.toString(), id: selecteimagedtwoid.toString(),
isDelete: '', isDelete: '',
deletePerson: '', deletePerson: '',
selected: '1' selected: '1'
}) })
updateexamineimage.value.push({ updateexamineimage.value.push({
regid:regId.value, regid: regId.value,
id: selecteimagedthreeid.toString(), id: selecteimagedthreeid.toString(),
isDelete: '', isDelete: '',
deletePerson: '', deletePerson: '',
@ -877,7 +935,7 @@ const upimagedeleteor = async () => {
updateexamineimage.value = [] updateexamineimage.value = []
updateexamineimage.value.push({ updateexamineimage.value.push({
regid:regId.value, regid: regId.value,
id: deleteimageid.value, id: deleteimageid.value,
isDelete: '1', isDelete: '1',
deletePerson: Profilevo.value.username, deletePerson: Profilevo.value.username,
@ -1025,7 +1083,11 @@ const handleselectchange = async () => {
if (fordevicemValue.value) { if (fordevicemValue.value) {
// //
// //
const dd = await ultrasoniccomApi.getreporttemplatelist(Profilevo.value.orgId, String(fordevicemValue.value), '') const dd = await ultrasoniccomApi.getreporttemplatelist(
Profilevo.value.orgId,
String(fordevicemValue.value),
''
)
treeData.value = dd treeData.value = dd
const pridate = await ultrasoniccomApi.getreporttemplatelist( const pridate = await ultrasoniccomApi.getreporttemplatelist(
@ -1134,7 +1196,7 @@ const getlogininfo = async () => {
if (Profilevo.value.isexamine === '1') { if (Profilevo.value.isexamine === '1') {
examinedisabled.value = true examinedisabled.value = true
} }
orgInfo.value= await ReportPrintStatisticsApi.getOrg( Profilevo.value.orgId.trim()) orgInfo.value = await ReportPrintStatisticsApi.getOrg(Profilevo.value.orgId.trim())
} }
/** 重置表单 */ /** 重置表单 */