FlowVue/src/views/ECG/ECGWaring/ECGWarningDialog.vue

186 lines
5.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-dialog
v-model="dialogVisible"
title="危急值上报"
width="600"
style="height: 600px"
:before-close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="100px" v-loading="formLoading">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="受检者" prop="pname">
<el-input v-model="rowinfo.pname" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检查机构" prop="orgName">
<el-input v-model="rowinfo.orgName" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="检查科室" prop="billDoctorDepartment">
<el-input v-model="rowinfo.billDoctorDepartment" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检查医生" prop="applyhighLevelname">
<el-input v-model="rowinfo.applyhighLevelname" disabled />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="危急值内容">
<el-input v-model="formData.warningContent" type="textarea" :rows="8" />
</el-form-item>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="接报医生" prop="applyhighLevelname">
<el-input v-model="formData.receiveDoctor" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报医生" prop="reportDoctor">
<el-input v-model="formData.reportDoctor" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注">
<el-input v-model="formData.remark" type="textarea" :rows="5" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="report" :disabled="isreportshow">上报</el-button>
<el-button @click="() => (dialogVisible = false)">取消</el-button>
</el-form-item>
</el-form>
</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'
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const orgInfo = ref<any>('')
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中1修改时的数据加载2提交的按钮禁用
const formRef = ref() // 表单 Ref
const rowinfo = ref() //外面传递的患者信息
const Profilevo = ref<ProfileVO>({} as ProfileVO) //当前登录人信息
const isreportshow = ref(false) //上报按钮是否可用
/** 打开弹窗 */
const opendiag = async (type, row) => {
// const reportDate = await isdata(row.examId, row.orgId)
// if (reportDate) {
// message.alertError('当前患者已上报')
// return
// }
formLoading.value = true
dialogTitle.value = t('action.' + type)
resetForm()
rowinfo.value = row
//查询当前患者的危急值相关信息
const data = await WarningApi.getexmidororgiddata(rowinfo.value.examId, rowinfo.value.orgId)
if (data) {
isreportshow.value = true
//赋值危急值内容
formData.value.warningContent = data.warningContent
//接报医生
formData.value.receiveDoctor = data.receiveDoctor
formData.value.reportDoctor = data.reportDoctor
formData.value.remark = data.remark
} else {
isreportshow.value = false
formData.value.receiveDoctor = rowinfo.value.applyhighLevelname
//上报医生
formData.value.reportDoctor = Profilevo.value.nickname
}
await getlogininfo()
formLoading.value = false
dialogVisible.value = true
}
//判断患者是否已经 上报
async function isdata(examId: String, orgId: String) {
const data = await WarningApi.getexmidororgiddata(examId, orgId)
if (data) {
return data.reportDate
} else {
return ''
}
}
//保存方法
async function report() {
formData.value.examId = rowinfo.value.examId
formData.value.orgId = rowinfo.value.orgId
formData.value.regId = rowinfo.value.regId
formData.value.reportOrgId = Profilevo.value.orgId
formData.value.reportorgName = orgInfo.value.orgName
const data = formData.value as unknown as WarningVO
const re = await WarningApi.createWarning(data)
if (re) {
message.alertSuccess('上报成功')
}
dialogVisible.value = false
}
const formData = ref({
id: undefined,
orgId: undefined,
examId: undefined,
regId: undefined,
reportOrgId: '',
reportorgName: undefined,
reportDoctor: '',
reportDate: undefined,
warningContent: '',
receiveDoctor: undefined,
dealDoctor: undefined,
checkDateTime: undefined,
remark: undefined,
warningProcess: undefined
})
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
orgId: undefined,
examId: undefined,
regId: undefined,
reportOrgId: '',
reportorgName: undefined,
reportDoctor: '',
reportDate: undefined,
warningContent: '',
receiveDoctor: undefined,
dealDoctor: undefined,
checkDateTime: undefined,
remark: undefined,
warningProcess: undefined
}
}
//获取当前登录人信息
const getlogininfo = async () => {
Profilevo.value = await getUserProfile()
orgInfo.value = await ReportPrintStatisticsApi.getOrg(Profilevo.value.orgId.trim())
}
defineExpose({ opendiag }) // 提供 open 方法,用于打开弹窗
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
/** */
defineOptions({ name: 'ECGWarningDialog' })
</script>
<style lang="css" scoped></style>