|
@@ -0,0 +1,226 @@
|
|
|
+<template>
|
|
|
+ <el-dialog v-model="huiZhenShenQingDialog" title="会诊申请" top="15%">
|
|
|
+ <el-form label-width="100px" :model="huiZhenShenQing" ref="huiZhenShenQingForm" :rules="huiZhenShenQingRules">
|
|
|
+ <el-form-item label="会诊科室:" prop="reqDept1">
|
|
|
+ <el-select
|
|
|
+ v-model="huiZhenShenQing.huiZhenKeShi"
|
|
|
+ @change="huiZhenYiShengPanDuan"
|
|
|
+ placeholder="根据拼音首字母查找"
|
|
|
+ value-key="code"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ remote
|
|
|
+ :remote-method="remoteMethodHuiZhenKeShi"
|
|
|
+ >
|
|
|
+ <el-option v-for="item in deptList" :key="item.code" :label="item.name"
|
|
|
+ :value="{name:item.name,code:item.code,dept:'科室'}">
|
|
|
+ <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
+ <el-divider direction="vertical"></el-divider>
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="会诊类别:" prop="hzLevel">
|
|
|
+ <el-select v-model="huiZhenShenQing.hzLevel" placeholder="请选择">
|
|
|
+ <el-option v-for="item in huiZhenLeiBieList" :key="item.code" :label="item.name" clearable
|
|
|
+ :value="item.code"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="会诊级别:" prop="hzType">
|
|
|
+ <el-select v-model="huiZhenShenQing.hzType" placeholder="请选择"
|
|
|
+ @change="huiZhenYiShengPanDuan" clearable
|
|
|
+ :remote-method="remoteMethodHuiZhenKeShi">
|
|
|
+ <el-option v-for="item in huiZhenTypeList" :key="item.code" :label="item.name"
|
|
|
+ :value="item.code"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="会诊医生:" prop="hzDoctor1">
|
|
|
+ <el-select v-model="huiZhenShenQing.hzDoctor1" filterable clearable>
|
|
|
+ <el-option v-for="item in huiZhenYiShengList" :key="item.code" :label="item.name"
|
|
|
+ :value="item.code"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="病情简介:" prop="reqComment">
|
|
|
+ <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.reqComment"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="目前主要诊断:" prop="hzZd">
|
|
|
+ <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.hzZd"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="会诊目的:" prop="hzMd">
|
|
|
+ <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="huiZhenShenQing.hzMd"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-button type="success" @click="huiZhenShenQingClick" style="margin-left: 20px">申请</el-button>
|
|
|
+ <el-tag style="margin-left: 20px">申请人:{{ huiZhenShenQing.name }}</el-tag>
|
|
|
+ <el-tag style="margin-left: 20px">申请时间:{{ huiZhenShenQing.inputDate }}</el-tag>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import {cptSex} from "@/utils/computed";
|
|
|
+import {onMounted, ref, unref, watch} from "vue";
|
|
|
+import {gethuiZhenLeiBie, huiZhenYiSheng, queryDept, submitHuiZhenShenQing} from "@/api/case-front-sheet";
|
|
|
+import {ElMessageBox} from "element-plus";
|
|
|
+import {huanZheXinXi, youWuXuanZheHuanZhe} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
|
|
|
+import {getDeptName} from "@/api/case-front-sheet/jie-shou-hui-zhen";
|
|
|
+import store from "@/store"
|
|
|
+import {getServerDateApi} from "@/api/public-api";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "TianJiaHuiZhenShenQing",
|
|
|
+ setup() {
|
|
|
+ //会诊申请的字段
|
|
|
+ const huiZhenShenQing = ref({
|
|
|
+ inpatientNo: '', //住院号
|
|
|
+ admissTimes: '', //住院次数
|
|
|
+ reqTimes: '', //请求时间
|
|
|
+ reqComment: '', //请求简介
|
|
|
+ inputId: '', //输入人的id
|
|
|
+ inputDate: '', //输入的时间
|
|
|
+ reqDate: '', //请求的时间 和 上面那个一样
|
|
|
+ deptCode: '', //科室 code
|
|
|
+ wardCode: '', //病房 code 和上面的一样
|
|
|
+ reqDept1: '', //请求的 科室
|
|
|
+ reqDeptName: '', //请求科室的名字
|
|
|
+ statusFlag: '', // 状态标志 1 未读 2 已读
|
|
|
+ hzType: '', // 会诊的级别
|
|
|
+ hzLevel: '', // 会诊的类别
|
|
|
+ hzZd: '', //目前的主要诊断
|
|
|
+ hzMd: '', //会诊的目的
|
|
|
+ actOrderNo: '', //新开的医嘱号
|
|
|
+ hzDoctor1: '', //会诊的医生
|
|
|
+ name: '', // 申请人
|
|
|
+ huiZhenKeShi: {},
|
|
|
+ })
|
|
|
+
|
|
|
+ const huiZhenShenQingDialog = ref(false)
|
|
|
+ // 会诊医生
|
|
|
+ const huiZhenYiShengList = ref([])
|
|
|
+ // 科室
|
|
|
+ const deptList = ref([])
|
|
|
+ //会诊类别集合
|
|
|
+ const huiZhenLeiBieList = ref()
|
|
|
+ // 表格
|
|
|
+ const huiZhenShenQingForm = ref(null)
|
|
|
+ // 用户信息
|
|
|
+ const userInfo = store.state.user.info
|
|
|
+
|
|
|
+ //会诊医生判断 , 要会诊医生在这个科室的 才可以
|
|
|
+ const huiZhenYiShengPanDuan = (val) => {
|
|
|
+ if (val.dept) {
|
|
|
+ huiZhenShenQing.value.reqDeptName = val.name
|
|
|
+ huiZhenShenQing.value.reqDept1 = val.code
|
|
|
+ }
|
|
|
+ huiZhenShenQing.value.hzDoctor1 = null
|
|
|
+ if (huiZhenShenQing.value.reqDept1 && huiZhenShenQing.value.hzType) {
|
|
|
+ huiZhenYiSheng(huiZhenShenQing.value.reqDept1, huiZhenShenQing.value.hzType).then((res) => {
|
|
|
+ huiZhenYiShengList.value = res
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ huiZhenYiShengList.value = []
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //远程搜索会诊科室
|
|
|
+ const remoteMethodHuiZhenKeShi = (val) => {
|
|
|
+ if (val !== '' && val.length > 1) {
|
|
|
+ queryDept(val)
|
|
|
+ .then((res) => {
|
|
|
+ deptList.value = res
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ deptList.value = []
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 数据校验
|
|
|
+ const huiZhenShenQingRules = ref({
|
|
|
+ reqDept1: [{required: true, message: '会诊科室不能为空', trigger: 'change'}],
|
|
|
+ hzDoctor1: [{required: true, message: '会诊医生不能为空', trigger: 'change'}],
|
|
|
+ hzType: [{required: true, message: '会诊的级别不能为空', trigger: 'change'}],
|
|
|
+ hzLevel: [{required: true, message: '会诊的类别不能为空', trigger: 'change'}],
|
|
|
+ reqComment: [{required: true, message: '病情简介不能为空', trigger: 'blur'}],
|
|
|
+ hzZd: [
|
|
|
+ {required: true, message: '目前主要诊断不能为空', trigger: 'blur'},
|
|
|
+ {
|
|
|
+ min: 3,
|
|
|
+ max: 120,
|
|
|
+ message: '长度在 3 到 100 个字符',
|
|
|
+ trigger: 'blur',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ hzMd: [{required: true, message: '会诊目的不能为空', trigger: 'blur'}],
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ //点击申请
|
|
|
+ const huiZhenShenQingClick = async () => {
|
|
|
+ const form = unref(huiZhenShenQingForm)
|
|
|
+ if (!form) return
|
|
|
+ try {
|
|
|
+ await form.validate()
|
|
|
+ ElMessageBox.confirm('请认真审核申请信息', '提示', {
|
|
|
+ confirmButtonText: '确认',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'info',
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ huiZhenShenQing.value.inpatientNo = huanZheXinXi.value.inpatientNo
|
|
|
+ huiZhenShenQing.value.admissTimes = huanZheXinXi.value.admissTimes
|
|
|
+ huiZhenShenQing.value.deptCode = huiZhenShenQing.value.wardCode = huanZheXinXi.value.zkWard
|
|
|
+ submitHuiZhenShenQing(huiZhenShenQing.value).then((res) => {
|
|
|
+ form.resetFields()
|
|
|
+ huiZhenShenQingDialog.value = false
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
+ } catch (error) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ watch(() => huiZhenShenQingDialog.value, () => {
|
|
|
+ if (huiZhenShenQingDialog.value) {
|
|
|
+ huiZhenShenQing.value.name = userInfo.name
|
|
|
+ getServerDateApi().then((res) => {
|
|
|
+ huiZhenShenQing.value.inputDate = res
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ huiZhenShenQingForm.value.resetFields()
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ gethuiZhenLeiBie().then((res) => {
|
|
|
+ huiZhenLeiBieList.value = res
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ return {
|
|
|
+ cptSex,
|
|
|
+ huiZhenShenQing,
|
|
|
+ huiZhenShenQingDialog,
|
|
|
+ huiZhenYiShengPanDuan,
|
|
|
+ huiZhenYiShengList,
|
|
|
+ deptList,
|
|
|
+ remoteMethodHuiZhenKeShi,
|
|
|
+ huiZhenLeiBieList,
|
|
|
+ huiZhenTypeList,
|
|
|
+ huiZhenShenQingClick,
|
|
|
+ huiZhenShenQingRules,
|
|
|
+ huiZhenShenQingForm
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+let huiZhenTypeList = [
|
|
|
+ {code: 1, name: '主治医师'},
|
|
|
+ {code: 2, name: '副主任医生'},
|
|
|
+ {code: 3, name: '主任医生'},
|
|
|
+]
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|