186 lines
5.8 KiB
Vue
186 lines
5.8 KiB
Vue
<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>
|