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}` })
},
// 查询患者危急值记录详情
updateWarningdate: async (id: String, readDateTime: String, receiptDateTime: String) => {
return await request.get({ url: `/system/warning/updateWarningdate?id=${id}&&readDateTime=${readDateTime}&&receiptDateTime=${receiptDateTime}` })
updateWarningdate: async (id: String, readDateTime: String, receiptDateTime: String,orgId:String) => {
return await request.get({ url: `/system/warning/updateWarningdate?id=${id}&&readDateTime=${readDateTime}&&receiptDateTime=${receiptDateTime}&orgId=${orgId}` })
},
// 修改危急值记录
SaveupdateWarning: async (data: WarningVO) => {

View File

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

View File

@ -1,7 +1,7 @@
<template>
<el-dialog v-model="dialogVisible" title="历史对比" :fullscreen="true" @close="close">
<div class="common-layout" style="height: 90vh">
<el-container style="height: 100%">
<el-container style="height: 99%">
<el-header height="85px">
<span>历史数据</span>
<div>
@ -23,41 +23,193 @@
<el-button type="primary" @click="eliminate"> 清除</el-button>
</div>
</el-header>
<el-container style="height: 100%">
<el-container style="height: 99%">
<el-aside width="48%">
<el-tabs type="border-card">
<el-tabs type="border-card" style="height: 97%">
<el-tab-pane :label="snapshotTime">
<!--心电图-->
<ECGhtml
v-if="isChildVisible"
:jsonurl="transfer[0].split('|')[1]"
:-isgrid="1"
:-ismeasure="0"
:lineratio="0.05"
:suduratio="1"
:-isgrid="Isgridl"
:-ismeasure="Ismeasurel"
:lineratio="lineratiol"
:suduratio="suduratiol"
:isrefresh="false"
:iscorrect="false"
/>
</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-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">
<!--心电图-->
<ECGhtml
v-if="isChildVisible1"
:jsonurl="transfer[1].split('|')[1]"
:-isgrid="1"
:-ismeasure="0"
:lineratio="0.06"
:suduratio="1"
:-isgrid="Isgridr"
:-ismeasure="Ismeasurer"
:lineratio="lineratior"
:suduratio="suduratior"
:isrefresh="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-tabs>
</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>
</div>
@ -84,11 +236,23 @@ const isChildVisible = ref(false) //是否显示心电图
const isChildVisible1 = ref(false) //
const snapshotTime = 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) => {
transfer.value = []
snapshotTime.value = ''
snapshotTime1.value = ''
ecganalysisinfo.value = await EcganalysisparasApi.getlist(row.regId)
ecganalysisinfo.value = await EcganalysisparasApi.getlist(row.regId,row.orgId)
dialogVisible.value = true
}
@ -97,9 +261,11 @@ function contrast() {
snapshotTime1.value = formattedDate(parseInt(transfer.value[1].split('|')[0], 10))
snapshotTime.value = formattedDate(parseInt(transfer.value[0].split('|')[0], 10))
isChildVisible1.value = true
doctorDiagResult1.value = findEcgAnalysisInfo(parseInt(transfer.value[1].split('|')[0]))
//
nextTick(() => {
isChildVisible.value = true
doctorDiagResult.value = findEcgAnalysisInfo(parseInt(transfer.value[0].split('|')[0]))
})
}
//
@ -107,10 +273,19 @@ function eliminate() {
transfer.value = []
snapshotTime.value = ''
snapshotTime1.value = ''
doctorDiagResult1.value = ''
doctorDiagResult.value = ''
isChildVisible1.value = false
isChildVisible.value = false
}
//
const findEcgAnalysisInfo = (snapshotTime) => {
const data = ecganalysisinfo.value.find((item) => item.snapshotTime === snapshotTime)
if (data) {
return data.doctorDiagResult
}
}
//
function checkboxchage() {
checkes.value = transfer.value.length === 2 ? false : true
@ -121,6 +296,59 @@ function close() {
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
/** 提交表单 */
@ -135,4 +363,14 @@ defineOptions({ name: 'ECGWarningDialog' })
flex-direction: row;
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>

View File

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

View File

@ -222,7 +222,7 @@ async function save() {
//
async function updatereadDateTime(id) {
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 () => {