心电新增对比
This commit is contained in:
parent
12ff4d0319
commit
657c7ae427
@ -34,6 +34,7 @@ export interface EcganalysisparasVO {
|
||||
ecgDataFilePath: string // 心电数据文件的路径: 路径或URL
|
||||
ecgJsonDataFilePath: string // 心电数据json格式的数据文件路径:路径或URL
|
||||
createDate: Date // 分析参数的创建时间
|
||||
regId:String//患者ID
|
||||
}
|
||||
|
||||
// 心电分析数据 API
|
||||
@ -76,4 +77,8 @@ export const EcganalysisparasApi = {
|
||||
return await request.get({ url: `/tblist/ecganalysisparas/getexamIDdata?examId=` + examId })
|
||||
},
|
||||
|
||||
// 获取所有心电分析数据记录
|
||||
getlist: async (regId:String) => {
|
||||
return await request.get({ url: `/tblist/ecganalysisparas/list?regId=${regId}` })
|
||||
},
|
||||
}
|
||||
|
@ -72,6 +72,12 @@ export function formatDate(date: Date, format?: string): string {
|
||||
return date ? dayjs(date).format(format ?? 'YYYY-MM-DD HH:mm:ss') : ''
|
||||
}
|
||||
|
||||
// 创建一个计算属性来转换时间戳
|
||||
export function formattedDate(timestamp) {
|
||||
const date = new Date(timestamp)
|
||||
const strdata = formatDate(date, 'YYYY-MM-DD HH:mm:ss')
|
||||
return strdata // 转换为本地日期时间字符串
|
||||
}
|
||||
/**
|
||||
* 获取当前的日期+时间
|
||||
*/
|
||||
|
138
src/views/ECG/ECGCompare.vue
Normal file
138
src/views/ECG/ECGCompare.vue
Normal file
@ -0,0 +1,138 @@
|
||||
<template>
|
||||
<el-dialog v-model="dialogVisible" title="历史对比" :fullscreen="true" @close="close">
|
||||
<div class="common-layout" style="height: 90vh">
|
||||
<el-container style="height: 100%">
|
||||
<el-header height="85px">
|
||||
<span>历史数据</span>
|
||||
<div>
|
||||
<el-checkbox-group v-model="transfer" :min="0" :max="2" class="mycheckbox-group">
|
||||
<el-checkbox
|
||||
v-for="city in ecganalysisinfo"
|
||||
:key="city['snapshotTime']"
|
||||
:label="city['snapshotTime']"
|
||||
:value="city['snapshotTime'] + '|' + city['ecgJsonDataFilePath']"
|
||||
class="mycheckbox-item"
|
||||
@change="checkboxchage"
|
||||
>
|
||||
{{ formattedDate(city['snapshotTime']) }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
<div class="mybutton">
|
||||
<el-button type="primary" @click="contrast" :disabled="checkes"> 对比</el-button>
|
||||
<el-button type="primary" @click="eliminate"> 清除</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-container style="height: 100%">
|
||||
<el-aside width="48%">
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane :label="snapshotTime">
|
||||
<!--心电图-->
|
||||
<ECGhtml
|
||||
v-if="isChildVisible"
|
||||
:jsonurl="transfer[0].split('|')[1]"
|
||||
:-isgrid="1"
|
||||
:-ismeasure="0"
|
||||
:lineratio="0.05"
|
||||
:suduratio="1"
|
||||
:isrefresh="false"
|
||||
:iscorrect="false"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-aside>
|
||||
<el-aside width="48%" style="margin-left: 30px; padding: 0px">
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane :label="snapshotTime1">
|
||||
<!--心电图-->
|
||||
<ECGhtml
|
||||
v-if="isChildVisible1"
|
||||
:jsonurl="transfer[1].split('|')[1]"
|
||||
:-isgrid="1"
|
||||
:-ismeasure="0"
|
||||
:lineratio="0.06"
|
||||
:suduratio="1"
|
||||
:isrefresh="false"
|
||||
:iscorrect="false"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-aside>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
|
||||
import { WarningApi, WarningVO } from '@/api/system/warning'
|
||||
import { ReportPrintStatisticsApi } from '@/api/applyregistration/reportPrintStatistics'
|
||||
import { PatientexamlistApi, PatientexamlistVO } from '@/api/tblist/patientexamlist'
|
||||
import { Style } from 'util'
|
||||
import { EcganalysisparasApi, EcganalysisparasVO } from '@/api/tblist/ecganalysisparas'
|
||||
import ECGhtml from '@/views/ECG/ECGhtml.vue'
|
||||
import { formattedDate } from '@/utils/formatTime'
|
||||
const { t } = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const transfer = ref() //对比记录值
|
||||
const ecganalysisinfo = ref() //心电分析数据
|
||||
const checkes = ref(true) //对比按钮是否可用
|
||||
const isChildVisible = ref(false) //是否显示心电图
|
||||
const isChildVisible1 = ref(false) //是否显示心电图
|
||||
const snapshotTime = ref()
|
||||
const snapshotTime1 = ref()
|
||||
const opencomparediag = async (row) => {
|
||||
transfer.value = []
|
||||
snapshotTime.value = ''
|
||||
snapshotTime1.value = ''
|
||||
ecganalysisinfo.value = await EcganalysisparasApi.getlist(row.regId)
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
//对比
|
||||
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
|
||||
//不知道为啥 先渲染第二个在渲染第一个 样式不会改变
|
||||
nextTick(() => {
|
||||
isChildVisible.value = true
|
||||
})
|
||||
}
|
||||
//清除
|
||||
function eliminate() {
|
||||
transfer.value = []
|
||||
snapshotTime.value = ''
|
||||
snapshotTime1.value = ''
|
||||
isChildVisible1.value = false
|
||||
isChildVisible.value = false
|
||||
}
|
||||
|
||||
//控制对比按钮
|
||||
function checkboxchage() {
|
||||
checkes.value = transfer.value.length === 2 ? false : true
|
||||
}
|
||||
function close() {
|
||||
isChildVisible1.value = false
|
||||
nextTick(() => {
|
||||
isChildVisible.value = false
|
||||
})
|
||||
}
|
||||
defineExpose({ opencomparediag }) // 提供 open 方法,用于打开弹窗
|
||||
|
||||
/** 提交表单 */
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
/** */
|
||||
defineOptions({ name: 'ECGWarningDialog' })
|
||||
</script>
|
||||
|
||||
<style lang="css" scoped>
|
||||
.mybutton {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
</style>
|
@ -184,6 +184,16 @@
|
||||
<el-icon><RefreshRight /></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="opencomparediag"
|
||||
>
|
||||
<el-icon><Reading /></el-icon>
|
||||
</el-button>
|
||||
<span style="font-size: 15px; margin-bottom: 10px">对比</span>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
@ -541,6 +551,7 @@
|
||||
</div>
|
||||
<ECGWarningDialog ref="ECGDialog" />
|
||||
<ECGReport ref="ECGReportDialog" />
|
||||
<ECGCopmareDialog ref="ECGCompare" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@ -560,6 +571,7 @@ import htmlToPdf from '@/utils/htmlPdf'
|
||||
import ECGWarningDialog from '@/views/ECG/ECGWaring/ECGWarningDialog.vue'
|
||||
import ECGReport from '@/views/ECG/ECGWaring/ECGReport.vue'
|
||||
import { WarningApi, WarningVO } from '@/api/system/warning'
|
||||
import ECGCopmareDialog from '@/views/ECG/ECGCompare.vue'
|
||||
|
||||
/** 提交表单 */
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
@ -596,6 +608,7 @@ const ECGDialog = ref() //危急值消息弹窗
|
||||
const isshowwjz = ref(false)
|
||||
const isshowysb = ref(false)
|
||||
const ECGReportDialog = ref() //危急值消息弹窗
|
||||
const ECGCompare=ref()//心电图对比弹窗
|
||||
// 树配置项
|
||||
const treeDefaultProps = {
|
||||
children: 'children',
|
||||
@ -779,6 +792,10 @@ function openECGDialog() {
|
||||
function openreprotdiag() {
|
||||
ECGReportDialog.value.opendiag(rowinfo.value)
|
||||
}
|
||||
//对比弹窗
|
||||
function opencomparediag() {
|
||||
ECGCompare.value.opencomparediag( rowinfo.value)
|
||||
}
|
||||
//纠错
|
||||
function iscorrect() {
|
||||
correct.value = correct.value ? false : true
|
||||
|
@ -40,6 +40,7 @@
|
||||
:step="1"
|
||||
@input="handleSliderChange"
|
||||
:show-tooltip="false"
|
||||
style="margin-left: 30px; width: 96%;"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user