ecg的相关功能
This commit is contained in:
parent
b1988882cb
commit
ebe935974c
@ -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 })
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,11 @@
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:destroy-on-close="true"
|
||||
@close="
|
||||
() => {
|
||||
isChildVisible = false
|
||||
}
|
||||
"
|
||||
>
|
||||
<div class="mycontainer">
|
||||
<div class="myleft-box">
|
||||
@ -28,22 +33,20 @@
|
||||
<!--头部 功能按钮-->
|
||||
<el-header style="height: 40px; padding: 0px">
|
||||
<el-button-group class="ml-4" style="margin-top: 4px; margin-left: 0px">
|
||||
<el-popover
|
||||
placement="bottom"
|
||||
:width="250"
|
||||
trigger="click"
|
||||
:disabled="isshare"
|
||||
>
|
||||
<div style="display: flex; flex-direction: column; align-items: center;">
|
||||
<el-popover placement="bottom" :width="250" trigger="click" :disabled="isshare">
|
||||
<div style="display: flex; flex-direction: column; align-items: center">
|
||||
<canvas ref="qrcodeRef" width="200" height="200"></canvas>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-top: 10px; width: 120px;"
|
||||
<el-button
|
||||
type="primary"
|
||||
style="margin-top: 10px; width: 120px"
|
||||
@click="touchCopy"
|
||||
>复制链接</el-button>
|
||||
>复制链接</el-button
|
||||
>
|
||||
</div>
|
||||
<template #reference>
|
||||
<el-button type="primary" plain :icon="Share" @click="shareclick()">分享</el-button>
|
||||
<el-button type="primary" plain :icon="Share" @click="shareclick()"
|
||||
>分享</el-button
|
||||
>
|
||||
</template>
|
||||
</el-popover>
|
||||
<el-button
|
||||
@ -490,9 +493,8 @@
|
||||
:fullscreen="true"
|
||||
append-to-body
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
:destroy-on-close="true"
|
||||
@close="printclose"
|
||||
@closed="printclose"
|
||||
>
|
||||
<template #title>
|
||||
<div
|
||||
@ -501,7 +503,7 @@
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
color: #6e6666;
|
||||
font-size: 22px;
|
||||
font-size: 24px;
|
||||
"
|
||||
>
|
||||
打印预览
|
||||
@ -509,15 +511,22 @@
|
||||
</template>
|
||||
<div>
|
||||
<div style="text-align: right">
|
||||
<el-button type="primary" style="width: 90px" v-print="{ id: 'printMe_ecg' }">
|
||||
<el-button
|
||||
v-if="false"
|
||||
type="primary"
|
||||
style="width: 90px"
|
||||
v-print="{ id: 'printMe_ecg' }"
|
||||
:loading="!imagebase64_new"
|
||||
>
|
||||
<span>打印</span>
|
||||
</el-button>
|
||||
</div>
|
||||
<el-divider style="margin-top: 8px; margin-bottom: 10px" />
|
||||
<el-divider style="margin-top: 8px; margin-bottom: 1px" />
|
||||
</div>
|
||||
<div id="printMe_ecg">
|
||||
<div class="page-item-ecg">
|
||||
<ReportInfoECG
|
||||
v-if="false"
|
||||
style="height: 99.888%"
|
||||
:extraInfo="queryParams"
|
||||
:jsonurl="queryParams.ecgJsonDataFilePath"
|
||||
@ -531,6 +540,36 @@
|
||||
:pname="rowinfo.pname"
|
||||
:gender="rowinfo.gender"
|
||||
/>
|
||||
<el-image
|
||||
v-if="false"
|
||||
alt=""
|
||||
fit="fill"
|
||||
loading="eager"
|
||||
:style="{
|
||||
width: '100%',
|
||||
imageRendering: 'high-quality',
|
||||
minHeight: imagebase64_new ? '0' : '68vh'
|
||||
}"
|
||||
:src="imagebase64_new"
|
||||
crossorigin="anonymous"
|
||||
v-loading="!imagebase64_new"
|
||||
>
|
||||
<template #error>
|
||||
<div style="text-align: center; font-size: 20px; margin-top: 6vh">加载中...</div>
|
||||
</template>
|
||||
</el-image>
|
||||
<div v-loading="!imagebase64_new" element-loading-text="加载中...">
|
||||
<iframe
|
||||
v-if="true"
|
||||
id="pdf_view"
|
||||
name="pdf_view"
|
||||
:src="imagebase64_new ? imagebase64_new + '#view=Fit&navpanes=0' : 'about:blank'"
|
||||
frameborder="0"
|
||||
class="pdf_view"
|
||||
width="100%"
|
||||
height="960px"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@ -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<any>({}) //当前患者数据行
|
||||
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<any>('')
|
||||
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;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -119,7 +119,7 @@
|
||||
: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="出生日期"
|
||||
@ -240,7 +240,7 @@ const infoParams = ref({
|
||||
examId: '',
|
||||
regId: '',
|
||||
orgId: '',
|
||||
pname: '',
|
||||
pName: '',
|
||||
gender: '',
|
||||
birthday: '',
|
||||
billDoctorDepartment: '',
|
||||
@ -286,7 +286,7 @@ const resetDiagnosisInfo = async () => {
|
||||
examId: '',
|
||||
regId: '',
|
||||
orgId: '',
|
||||
pname: '',
|
||||
pName: '',
|
||||
gender: '',
|
||||
birthday: '',
|
||||
billDoctorDepartment: '',
|
||||
|
@ -11,14 +11,31 @@
|
||||
class="-mb-15px"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审核状态" prop="processstats" class="item-style">
|
||||
<el-radio-group v-model="queryParams.processstats" 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: 6px"> 审核 </el-radio>
|
||||
<el-radio value="2" style="margin-left: 12px; margin-right: 4px"> 拒绝 </el-radio>
|
||||
</el-radio-group>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="申请日期" prop="applyDateTime_ge" class="item-style date-picker">
|
||||
<el-date-picker
|
||||
v-model="queryParams.applyDateTime_ge"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="开始日期"
|
||||
class="item-width"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-form-item
|
||||
label=""
|
||||
label-width="0px"
|
||||
prop="applyDateTime_le"
|
||||
class="item-style date-picker"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="queryParams.applyDateTime_le"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="结束日期"
|
||||
class="item-width"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
@ -48,31 +65,22 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="申请日期" prop="applyDateTime_ge" class="item-style date-picker">
|
||||
<el-date-picker
|
||||
v-model="queryParams.applyDateTime_ge"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="开始日期"
|
||||
class="item-width"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
<el-form-item
|
||||
label=""
|
||||
label-width="0px"
|
||||
prop="applyDateTime_le"
|
||||
class="item-style date-picker"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="queryParams.applyDateTime_le"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="结束日期"
|
||||
class="item-width"
|
||||
/>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="审核状态" prop="processstats" class="item-style">
|
||||
<el-radio-group
|
||||
v-model="queryParams.processstats"
|
||||
@change="
|
||||
() => {
|
||||
handleQuery()
|
||||
}
|
||||
"
|
||||
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: 6px"> 审核 </el-radio>
|
||||
<el-radio value="2" style="margin-left: 12px; margin-right: 4px"> 拒绝 </el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -83,6 +91,7 @@
|
||||
v-model="queryParams.regId"
|
||||
placeholder="请输入登记号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="item-width"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -93,6 +102,7 @@
|
||||
v-model="queryParams.pname"
|
||||
placeholder="请输入患者姓名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="item-width"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -136,15 +146,6 @@
|
||||
<el-table-column label="检查号" align="center" prop="examId" width="240px" />
|
||||
<el-table-column label="患者姓名" align="center" prop="pname" width="130px" />
|
||||
<el-table-column label="机构" align="center" prop="orgId_name" min-width="260px" />
|
||||
<el-table-column
|
||||
label="审核时间"
|
||||
align="center"
|
||||
prop="processDate"
|
||||
:formatter="dateFormatter2"
|
||||
width="150px"
|
||||
/>
|
||||
<el-table-column label="审核医生" align="center" prop="processDoctor" width="130px" />
|
||||
<el-table-column label="审核机构" align="center" prop="processorgName" width="260px" />
|
||||
<el-table-column
|
||||
label="申请时间"
|
||||
align="center"
|
||||
@ -154,6 +155,15 @@
|
||||
/>
|
||||
<el-table-column label="申请医生" align="center" prop="applyDoctor" min-width="130px" />
|
||||
<el-table-column label="申请原因" align="center" prop="processContent" min-width="280px" />
|
||||
<el-table-column
|
||||
label="审核时间"
|
||||
align="center"
|
||||
prop="processDate"
|
||||
:formatter="dateFormatter2"
|
||||
width="150px"
|
||||
/>
|
||||
<el-table-column label="审核医生" align="center" prop="processDoctor" width="130px" />
|
||||
<el-table-column label="审核机构" align="center" prop="processorgName" width="260px" />
|
||||
<el-table-column label="拒绝原因" align="center" prop="refuseremark" min-width="280px" />
|
||||
<el-table-column label="备注" align="center" prop="remark" min-width="280px" />
|
||||
<el-table-column
|
||||
@ -166,7 +176,7 @@
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.processstats == '0'" effect="plain">申请</el-tag>
|
||||
<el-tag v-else-if="scope.row.processstats == '1'" effect="plain" type="success"
|
||||
>审核</el-tag
|
||||
>通过</el-tag
|
||||
>
|
||||
<el-tag v-else-if="scope.row.processstats == '2'" effect="plain" type="danger"
|
||||
>拒绝</el-tag
|
||||
|
Loading…
Reference in New Issue
Block a user