From ebe935974cf992ed693cdfd2cf40f337993391a0 Mon Sep 17 00:00:00 2001 From: lichuanyang <1176537920@qq.com> Date: Mon, 30 Dec 2024 15:44:00 +0800 Subject: [PATCH] =?UTF-8?q?ecg=E7=9A=84=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/tblist/ecganalysisparas/index.ts | 16 +- src/views/ECG/ECGForm.vue | 163 ++++++++++++++---- src/views/ECG/ECGPositiveStatistics/index.vue | 6 +- src/views/ECG/processManage/index.vue | 96 ++++++----- 4 files changed, 197 insertions(+), 84 deletions(-) diff --git a/src/api/tblist/ecganalysisparas/index.ts b/src/api/tblist/ecganalysisparas/index.ts index 3c026e77..51c5c428 100644 --- a/src/api/tblist/ecganalysisparas/index.ts +++ b/src/api/tblist/ecganalysisparas/index.ts @@ -35,10 +35,10 @@ export interface EcganalysisparasVO { ecgJsonDataFilePath: string // 心电数据json格式的数据文件路径:路径或URL createDate: Date // 分析参数的创建时间 regId: String//患者ID - name:String - gender:String - age:String - diagtime:undefined + name: String + gender: String + age: String + diagtime: undefined } // 心电分析数据 API @@ -93,9 +93,15 @@ export const EcganalysisparasApi = { exportWorkloadExcel: async (doctorName: string, startTime: string, endTime: string) => { return await request.download({ url: `/tblist/ecganalysisparas/export-workload-excel?doctorName=${doctorName}&startTime=${startTime}&endTime=${endTime} ` }) }, - + // 获取心电分析数据对应的pdf图像 + getEcgPdfImage: async (data: any) => { + return await request.post({ url: `/tblist/ecganalysisparas/getEcgPdfImage`, data }) + }, // 调用打印服务生成pdf SaveEcgPdf: async (data: EcganalysisparasVO) => { return await request.put({ url: `/tblist/ecganalysisparas/SaveEcgPdf`, data }) }, + getDoctorBydoctorID: async (doctorID: any) => { + return await request.get({ url: `/doctor/getBydoctorID?doctorID=` + doctorID }) + } } diff --git a/src/views/ECG/ECGForm.vue b/src/views/ECG/ECGForm.vue index c5e762f1..7e0a646f 100644 --- a/src/views/ECG/ECGForm.vue +++ b/src/views/ECG/ECGForm.vue @@ -8,6 +8,11 @@ :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" + @close=" + () => { + isChildVisible = false + } + " >
@@ -28,22 +33,20 @@ - -
+ +
- 复制链接 + >复制链接
- + 打印
- +
+ + + +
+ +
@@ -580,8 +619,8 @@ import ECGReport from '@/views/ECG/ECGWaring/ECGReport.vue' import { WarningApi, WarningVO } from '@/api/system/warning' import ECGCopmareDialog from '@/views/ECG/ECGCompare.vue' import ECGApplyforRepair from '@/views/ECG/ECGModify/ECGApplyforRepair.vue' -import useClipboard from "vue-clipboard3";//复制组件 -const { toClipboard } = useClipboard(); +import useClipboard from 'vue-clipboard3' //复制组件 +const { toClipboard } = useClipboard() import ECGSB from '@/views/ECG/ECGSB.vue' /** 提交表单 */ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 @@ -591,7 +630,7 @@ const dialogTitle = ref('') // 弹窗的标题 const id = ref() //患者ID const orgid = ref() //机构编码 const Primarykey = ref() //主键ID -const rowinfo = ref() //当前患者数据行 +const rowinfo = ref({}) //当前患者数据行 const snapshotTime = ref() //心电事件快照事件 // 定义一个响应式变量来控制子组件的显示 const isChildVisible = ref(false) @@ -616,6 +655,7 @@ const isshare = ref(true) //是否展示分享二维码 const qrcodeRef = ref(null) const isdiagshow = ref(false) //是否显示打印窗体 const imagebase64 = ref('') +const imagebase64_new = ref('') const isprintimage = ref(false) //是否生成打印文件base64 const ECGDialog = ref() //危急值消息弹窗 const isshowwjz = ref(false) @@ -672,7 +712,7 @@ const open = async (row: any) => { const warningdata = await WarningApi.getexmidororgiddata(row.examId, row.orgId) //判断是否显示危急值上报功能 条件是当前机构等于上级机构 isshowwjz.value = Profilevo.value.orgId === row.highLevelOrgId ? true : false - if (warningdata.reportDate) { + if (warningdata && warningdata.reportDate) { isshowysb.value = Profilevo.value.orgId === row.orgId ? true : false } //判断保存按钮是否可用 审核后不允许在保存 @@ -841,17 +881,74 @@ function resetForm() { function printclose() { isprintimage.value = false imagebase64.value = '' + imagebase64_new.value = '' isdiagshow.value = false } //打印 function print() { - if (!queryParams.value.autoDiagTime) { - isdiagshow.value = false - //isprintimage.value = false + //isprintimage.value = false + isdiagshow.value = false + if (false && !queryParams.value.autoDiagTime) { message.alertError('请保存后再进行打印') + } else if (rowinfo.value && rowinfo.value.reportstatus != '已审核') { + message.alertError('请审核后再进行打印') } else { - isdiagshow.value = true //isprintimage.value = true + isdiagshow.value = true + nextTick(() => { + setTimeout(async () => { + if (applyFormVO.value.pdfurl) { + imagebase64_new.value = applyFormVO.value.pdfurl.trim() + } else { + let doctorEcgDiagInfo: any = null + if (queryParams.value && queryParams.value.doctorId) { + doctorEcgDiagInfo = await EcganalysisparasApi.getDoctorBydoctorID( + queryParams.value.doctorId.trim() + ) + } + let mapRes = await EcganalysisparasApi.getEcgPdfImage({ + type: 2, + regid: id.value, + examid: queryParams.value.examId, + name: rowinfo.value.pname, + gender: rowinfo.value.gender, + age: age.value, + ward: '', + hr: queryParams.value.hr, + pr: queryParams.value.pr, + qrs: queryParams.value.qrsAxle, + qtqtc: queryParams.value.qt + '/' + queryParams.value.qtc, + rv5sv1: queryParams.value.rv5 + '/' + queryParams.value.sv1, + rv5sv1plus: ( + Number(queryParams.value.rv5 ? queryParams.value.rv5 : '') + + Number(queryParams.value.sv1 ? queryParams.value.sv1 : '') + ).toString(), + pt: + queryParams.value.paxle + + '/' + + queryParams.value.taxle + + '/' + + queryParams.value.qrsAxle, + ptimelimit: queryParams.value.ptimeLimit, + diagnosisHint: '', + department: rowinfo.value.billDoctorDepartment, + doctorDiagTime: formatDate( + queryParams.value.doctorDiagTime as any, + 'YYYY-MM-DD HH:mm:ss' + ), + diagContent: queryParams.value.doctorDiagResult, + DepartName: queryParams.value.departName, + doctorName: queryParams.value.doctorName, + image: doctorEcgDiagInfo ? doctorEcgDiagInfo.esignatureUrl : '', + filepath: queryParams.value.ecgJsonDataFilePath, + orgname: rowinfo.value.orgName + }) + if (mapRes && mapRes.code == '200') { + imagebase64_new.value = mapRes.dataImage + } + } + }, 100) + }) } } //纠错窗体回传值 @@ -891,7 +988,7 @@ function Refresh() { isrefresh.value = isrefresh.value ? false : true } //复制链接 -function touchCopy () { +function touchCopy() { // 调用 if (applyFormVO.value.pdfurl) { toClipboard(applyFormVO.value.pdfurl) @@ -966,7 +1063,7 @@ function FD() { const value = IsFD.value === false ? true : false IsFD.value = value if (value) { - message.alertSuccess('开启放大') + message.alertSuccess('开启放大') } else { message.alertSuccess('关闭放大') } @@ -1088,9 +1185,9 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗 /* 打印(报告单) */ .page-item-ecg { - padding: 1mm 0.8mm 1mm 0.6mm; - max-width: 1184px; - margin: 3vh auto 0 auto; + padding: 1mm 1mm 0.12mm 1mm; + max-width: 1200px; + margin: 1.2vh auto 0 auto; border: 2px solid #ccc; border-radius: 8px; } @@ -1110,12 +1207,12 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗 .page-item-ecg { border-width: 0; - height: 206mm; + height: 204.6mm; page-break-after: always; padding: 0; max-width: none; - width: calc(100% - 3mm); - margin: 0 0 0 1.2mm; + width: calc(100% - 2mm); + margin: 1.4mm 0 0 1mm; } } diff --git a/src/views/ECG/ECGPositiveStatistics/index.vue b/src/views/ECG/ECGPositiveStatistics/index.vue index 1f21e906..f81c2169 100644 --- a/src/views/ECG/ECGPositiveStatistics/index.vue +++ b/src/views/ECG/ECGPositiveStatistics/index.vue @@ -119,7 +119,7 @@ :formatter="dateFormatter2" width="110px" /> - + { examId: '', regId: '', orgId: '', - pname: '', + pName: '', gender: '', birthday: '', billDoctorDepartment: '', diff --git a/src/views/ECG/processManage/index.vue b/src/views/ECG/processManage/index.vue index a1a1f551..b97bb841 100644 --- a/src/views/ECG/processManage/index.vue +++ b/src/views/ECG/processManage/index.vue @@ -11,14 +11,31 @@ class="-mb-15px" > - - - - 全部 - 申请 - 审核 - 拒绝 - + + + + + + + + @@ -48,31 +65,22 @@ /> - - - - - - - - + + + + 全部 + 申请 + 审核 + 拒绝 + @@ -83,6 +91,7 @@ v-model="queryParams.regId" placeholder="请输入登记号" clearable + @keyup.enter="handleQuery" class="item-width" /> @@ -93,6 +102,7 @@ v-model="queryParams.pname" placeholder="请输入患者姓名" clearable + @keyup.enter="handleQuery" class="item-width" /> @@ -136,15 +146,6 @@ - - - + + + 申请 审核通过 拒绝