This commit is contained in:
Euni4U 2024-12-09 16:33:55 +08:00
commit 07ed2e9c95
5 changed files with 261 additions and 23 deletions

View File

@ -57,8 +57,8 @@ export const WarningApi = {
return await request.get({ url: `/system/warning/getexmidororgiddata?examID=${examId}&&orgID=${orgId}` }) return await request.get({ url: `/system/warning/getexmidororgiddata?examID=${examId}&&orgID=${orgId}` })
}, },
// 查询患者危急值记录详情 // 查询患者危急值记录详情
updateWarningdate: async (id: String, readDateTime: String, receiptDateTime: String) => { updateWarningdate: async (id: String, readDateTime: String, receiptDateTime: String,orgId:String) => {
return await request.get({ url: `/system/warning/updateWarningdate?id=${id}&&readDateTime=${readDateTime}&&receiptDateTime=${receiptDateTime}` }) return await request.get({ url: `/system/warning/updateWarningdate?id=${id}&&readDateTime=${readDateTime}&&receiptDateTime=${receiptDateTime}&orgId=${orgId}` })
}, },
// 修改危急值记录 // 修改危急值记录
SaveupdateWarning: async (data: WarningVO) => { SaveupdateWarning: async (data: WarningVO) => {

View File

@ -73,13 +73,13 @@ export const EcganalysisparasApi = {
return await request.download({ url: `/tblist/ecganalysisparas/export-excel`, params }) return await request.download({ url: `/tblist/ecganalysisparas/export-excel`, params })
}, },
// 按照examId查询心电分析数据详情 // 按照examId查询心电分析数据详情
getexamIDdata: async (examId: String) => { getexamIDdata: async (examId: String,orgId:String) => {
return await request.get({ url: `/tblist/ecganalysisparas/getexamIDdata?examId=` + examId }) return await request.get({ url: `/tblist/ecganalysisparas/getexamIDdata?examId=${examId} &orgId=${orgId}`})
}, },
// 获取所有心电分析数据记录 // 获取所有心电分析数据记录
getlist: async (regId:String) => { getlist: async (regId:String,orgId:String) => {
return await request.get({ url: `/tblist/ecganalysisparas/list?regId=${regId}` }) return await request.get({ url: `/tblist/ecganalysisparas/list?regId=${regId}&orgId=${orgId}` })
}, },
// 获取开始和结束时间的心电分析数据记录 // 获取开始和结束时间的心电分析数据记录
getDateStaAndEndData: async (orgId:String,startDate:String,endDate:String) => { getDateStaAndEndData: async (orgId:String,startDate:String,endDate:String) => {

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog v-model="dialogVisible" title="历史对比" :fullscreen="true" @close="close"> <el-dialog v-model="dialogVisible" title="历史对比" :fullscreen="true" @close="close">
<div class="common-layout" style="height: 90vh"> <div class="common-layout" style="height: 90vh">
<el-container style="height: 100%"> <el-container style="height: 99%">
<el-header height="85px"> <el-header height="85px">
<span>历史数据</span> <span>历史数据</span>
<div> <div>
@ -23,41 +23,193 @@
<el-button type="primary" @click="eliminate"> 清除</el-button> <el-button type="primary" @click="eliminate"> 清除</el-button>
</div> </div>
</el-header> </el-header>
<el-container style="height: 100%"> <el-container style="height: 99%">
<el-aside width="48%"> <el-aside width="48%">
<el-tabs type="border-card"> <el-tabs type="border-card" style="height: 97%">
<el-tab-pane :label="snapshotTime"> <el-tab-pane :label="snapshotTime">
<!--心电图--> <!--心电图-->
<ECGhtml <ECGhtml
v-if="isChildVisible" v-if="isChildVisible"
:jsonurl="transfer[0].split('|')[1]" :jsonurl="transfer[0].split('|')[1]"
:-isgrid="1" :-isgrid="Isgridl"
:-ismeasure="0" :-ismeasure="Ismeasurel"
:lineratio="0.05" :lineratio="lineratiol"
:suduratio="1" :suduratio="suduratiol"
:isrefresh="false" :isrefresh="false"
:iscorrect="false" :iscorrect="false"
/> />
</el-tab-pane> </el-tab-pane>
<ContentWrap style="height: 80px; padding: 0px" v-if="isChildVisible">
<div style="display: flex">
<span class="vertical-text">诊断结论</span>
<el-input
v-model="doctorDiagResult"
style="width: 100%; margin-left: 5px; margin-top: -18px"
:autosize="{ minRows: 3, maxRows: 5 }"
type="textarea"
/>
</div>
</ContentWrap>
</el-tabs> </el-tabs>
</el-aside> </el-aside>
<el-aside width="48%" style="margin-left: 30px; padding: 0px"> <!--左侧心电按钮区-->
<el-tabs type="border-card"> <div style="margin-top: 45px; margin-left: 5px; display: flex; flex-direction: column; align-items: center" v-if="isChildVisible">
<el-dropdown placement="bottom" trigger="click" @command="handlezsCommand">
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
>
<el-icon><Odometer /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="0.2">5mm/s</el-dropdown-item>
<el-dropdown-item command="0.4">10mm/s</el-dropdown-item>
<el-dropdown-item command="0.5">12.5mm/s</el-dropdown-item>
<el-dropdown-item command="1">25mm/s</el-dropdown-item>
<el-dropdown-item command="2">50mm/s</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<span style="font-size: 15px; margin-bottom: 10px">走速</span>
<el-dropdown placement="bottom" trigger="click" @command="handleCommand">
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
>
<el-icon><Histogram /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="0.012">2.5mm/mv</el-dropdown-item>
<el-dropdown-item command="0.025">5mm/mv</el-dropdown-item>
<el-dropdown-item command="0.05">10mm/mv</el-dropdown-item>
<el-dropdown-item command="0.1">20mm/mv</el-dropdown-item>
<el-dropdown-item command="0.2">40mm/mv</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<span style="font-size: 15px; margin-bottom: 10px">振幅</span>
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
@click="measure()"
>
<el-icon><EditPen /></el-icon>
</el-button>
<span style="font-size: 15px; margin-bottom: 10px">测量</span>
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
@click="Isgriddisplay()"
>
<el-icon><Grid /></el-icon>
</el-button>
<span style="font-size: 15px; margin-bottom: 10px">网格</span>
</div>
<el-aside width="48%" style="margin-left: 20px; padding: 0px">
<el-tabs type="border-card" style="height: 97%">
<el-tab-pane :label="snapshotTime1"> <el-tab-pane :label="snapshotTime1">
<!--心电图--> <!--心电图-->
<ECGhtml <ECGhtml
v-if="isChildVisible1" v-if="isChildVisible1"
:jsonurl="transfer[1].split('|')[1]" :jsonurl="transfer[1].split('|')[1]"
:-isgrid="1" :-isgrid="Isgridr"
:-ismeasure="0" :-ismeasure="Ismeasurer"
:lineratio="0.06" :lineratio="lineratior"
:suduratio="1" :suduratio="suduratior"
:isrefresh="false" :isrefresh="false"
:iscorrect="false" :iscorrect="false"
/> />
<ContentWrap style="height: 80px; padding: 0px" v-if="isChildVisible1">
<div style="display: flex">
<span class="vertical-text">诊断结论</span>
<el-input
v-model="doctorDiagResult1"
style="width: 100%; margin-left: 5px; margin-top: -18px"
:autosize="{ minRows: 3, maxRows: 5 }"
type="textarea"
/>
</div>
</ContentWrap>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-aside> </el-aside>
<!--右侧心电按钮区-->
<div style="margin-top: 45px; margin-left: 5px; display: flex; flex-direction: column; align-items: center" v-if="isChildVisible1">
<el-dropdown placement="bottom" trigger="click" @command="handlezsCommandr">
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
>
<el-icon><Odometer /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="0.2">5mm/s</el-dropdown-item>
<el-dropdown-item command="0.4">10mm/s</el-dropdown-item>
<el-dropdown-item command="0.5">12.5mm/s</el-dropdown-item>
<el-dropdown-item command="1">25mm/s</el-dropdown-item>
<el-dropdown-item command="2">50mm/s</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<span style="font-size: 15px; margin-bottom: 10px">走速</span>
<el-dropdown placement="bottom" trigger="click" @command="handleCommandr">
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
>
<el-icon><Histogram /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="0.012">2.5mm/mv</el-dropdown-item>
<el-dropdown-item command="0.025">5mm/mv</el-dropdown-item>
<el-dropdown-item command="0.05">10mm/mv</el-dropdown-item>
<el-dropdown-item command="0.1">20mm/mv</el-dropdown-item>
<el-dropdown-item command="0.2">40mm/mv</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<span style="font-size: 15px; margin-bottom: 10px">振幅</span>
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
@click="measurer()"
>
<el-icon><EditPen /></el-icon>
</el-button>
<span style="font-size: 15px; margin-bottom: 10px">测量</span>
<el-button
style="width: 30px; height: 30px; margin-bottom: 10px"
type="primary"
plain
@click="Isgriddisplayr()"
>
<el-icon><Grid /></el-icon>
</el-button>
<span style="font-size: 15px; margin-bottom: 10px">网格</span>
</div>
</el-container> </el-container>
</el-container> </el-container>
</div> </div>
@ -84,11 +236,23 @@ const isChildVisible = ref(false) //是否显示心电图
const isChildVisible1 = ref(false) // const isChildVisible1 = ref(false) //
const snapshotTime = ref() const snapshotTime = ref()
const snapshotTime1 = ref() const snapshotTime1 = ref()
const doctorDiagResult = ref()
const doctorDiagResult1 = ref()
const suduratiol=ref(1)//
const suduratior=ref(1)//
const lineratiol=ref(0.05)//
const lineratior=ref(0.05)
const Isgridl=ref(1)//
const Isgridr=ref(1)//
const Ismeasurel=ref(0)//
const Ismeasurer=ref(0)//
const opencomparediag = async (row) => { const opencomparediag = async (row) => {
transfer.value = [] transfer.value = []
snapshotTime.value = '' snapshotTime.value = ''
snapshotTime1.value = '' snapshotTime1.value = ''
ecganalysisinfo.value = await EcganalysisparasApi.getlist(row.regId) ecganalysisinfo.value = await EcganalysisparasApi.getlist(row.regId,row.orgId)
dialogVisible.value = true dialogVisible.value = true
} }
@ -97,9 +261,11 @@ function contrast() {
snapshotTime1.value = formattedDate(parseInt(transfer.value[1].split('|')[0], 10)) snapshotTime1.value = formattedDate(parseInt(transfer.value[1].split('|')[0], 10))
snapshotTime.value = formattedDate(parseInt(transfer.value[0].split('|')[0], 10)) snapshotTime.value = formattedDate(parseInt(transfer.value[0].split('|')[0], 10))
isChildVisible1.value = true isChildVisible1.value = true
doctorDiagResult1.value = findEcgAnalysisInfo(parseInt(transfer.value[1].split('|')[0]))
// //
nextTick(() => { nextTick(() => {
isChildVisible.value = true isChildVisible.value = true
doctorDiagResult.value = findEcgAnalysisInfo(parseInt(transfer.value[0].split('|')[0]))
}) })
} }
// //
@ -107,10 +273,19 @@ function eliminate() {
transfer.value = [] transfer.value = []
snapshotTime.value = '' snapshotTime.value = ''
snapshotTime1.value = '' snapshotTime1.value = ''
doctorDiagResult1.value = ''
doctorDiagResult.value = ''
isChildVisible1.value = false isChildVisible1.value = false
isChildVisible.value = false isChildVisible.value = false
} }
//
const findEcgAnalysisInfo = (snapshotTime) => {
const data = ecganalysisinfo.value.find((item) => item.snapshotTime === snapshotTime)
if (data) {
return data.doctorDiagResult
}
}
// //
function checkboxchage() { function checkboxchage() {
checkes.value = transfer.value.length === 2 ? false : true checkes.value = transfer.value.length === 2 ? false : true
@ -121,6 +296,59 @@ function close() {
isChildVisible.value = false isChildVisible.value = false
}) })
} }
/*
心电图按钮功能区域
*/
//
function handlezsCommand(value) {
suduratiol.value = value
}
//
function handleCommand(value) {
lineratiol.value = value
}
//
function Isgriddisplay() {
const value = Isgridl.value === 1 ? 0 : 1
Isgridl.value = value
}
//
function measure() {
const value = Ismeasurel.value === 1 ? 0 : 1
Ismeasurel.value = value
if (value === 1) {
message.alertSuccess('开启测量')
} else {
message.alertSuccess('关闭测量')
}
}
//
function handlezsCommandr(value) {
suduratior.value = value
}
//
function handleCommandr(value) {
lineratior.value = value
}
//
function Isgriddisplayr() {
const value = Isgridr.value === 1 ? 0 : 1
Isgridr.value = value
}
//
function measurer() {
const value = Ismeasurer.value === 1 ? 0 : 1
Ismeasurer.value = value
if (value === 1) {
message.alertSuccess('开启测量')
} else {
message.alertSuccess('关闭测量')
}
}
/**/
defineExpose({ opencomparediag }) // open defineExpose({ opencomparediag }) // open
/** 提交表单 */ /** 提交表单 */
@ -135,4 +363,14 @@ defineOptions({ name: 'ECGWarningDialog' })
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
} }
.vertical-text {
writing-mode: vertical-rl;
padding: 0px;
white-space: nowrap;
margin-left: -20px;
letter-spacing: 6px; /* 调整字符间距 */
background-color: #ebf1f5;
color: #79d3f5;
margin-top: -18px;
}
</style> </style>

View File

@ -627,7 +627,7 @@ const open = async (row: any) => {
orgid.value = row.orgId orgid.value = row.orgId
rowinfo.value = row rowinfo.value = row
// console.log( rowinfo.value) // console.log( rowinfo.value)
const data = await EcganalysisparasApi.getexamIDdata('MZCF0191729074962197_44') const data = await EcganalysisparasApi.getexamIDdata('MZCF0191729074962197_44',orgid.value)
queryParams.value = data queryParams.value = data
snapshotTime.value = formattedDate(queryParams.value.snapshotTime) snapshotTime.value = formattedDate(queryParams.value.snapshotTime)
await getlogininfo() await getlogininfo()
@ -718,7 +718,7 @@ async function save() {
const ret = await EcganalysisparasApi.SaveEcganalysisparas(saveFormVO.value) const ret = await EcganalysisparasApi.SaveEcganalysisparas(saveFormVO.value)
if (ret) { if (ret) {
//pdf //pdf
const data = await EcganalysisparasApi.getexamIDdata('MZCF0191729074962197_44') const data = await EcganalysisparasApi.getexamIDdata('MZCF0191729074962197_44',orgid.value)
queryParams.value = data queryParams.value = data
message.alertSuccess('保存成功') message.alertSuccess('保存成功')
isprintimage.value = true isprintimage.value = true

View File

@ -222,7 +222,7 @@ async function save() {
// //
async function updatereadDateTime(id) { async function updatereadDateTime(id) {
conreadDateTime.value = new Date().toLocaleString().replace(/\//g, '-') conreadDateTime.value = new Date().toLocaleString().replace(/\//g, '-')
await WarningApi.updateWarningdate(id, conreadDateTime.value, '') await WarningApi.updateWarningdate(id, conreadDateTime.value, '',rowinfo.value.orgId)
} }
// //
const getlogininfo = async () => { const getlogininfo = async () => {