|
@@ -4,7 +4,9 @@
|
|
|
<el-input v-model="keyCode" placeholder="请输入证件号/门诊号/住院号/体检号" style="width: 320px;">
|
|
|
<template #prepend>关键字</template>
|
|
|
</el-input>
|
|
|
- <el-button type="primary" icon="Search" @click="queryCmr" style="margin-left: 10px">查询
|
|
|
+ <el-button type="primary" icon="Search" @click="queryCmr" style="margin-left: 10px">查询慢病信息
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" icon="Search" @click="queryBrInfo" style="margin-left: 10px">获取基本信息
|
|
|
</el-button>
|
|
|
<el-button type="primary" icon="Plus" @click="addForm(ruleFormRef)" style="margin-left: 10px">新增
|
|
|
</el-button>
|
|
@@ -26,34 +28,6 @@
|
|
|
<el-collapse v-model="activeName">
|
|
|
<el-collapse-item title="基本资料" name="1" disabled>
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="用户名称" prop="pName">
|
|
|
- <el-input v-model="ruleForm.pName" minlength="1" maxlength="20" show-word-limit
|
|
|
- placeholder="请填写用户名称" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="性别" prop="sex">
|
|
|
- <el-select v-model="ruleForm.sex" placeholder="请选择性别" clearable style="width: 100%">
|
|
|
- <el-option v-for="item in dics.getSexCode" :key="item.code" :label="item.name"
|
|
|
- :value="item.code" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="年龄" prop="age">
|
|
|
- <el-input v-model="ruleForm.age" minlength="1" maxlength="6" show-word-limit
|
|
|
- placeholder="请填写年龄" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <!-- <el-col :span="6">
|
|
|
- <el-form-item label="出生日期" prop="birthDate">
|
|
|
- <el-date-picker v-model="ruleForm.birthDate" type="date" label="出生日期"
|
|
|
- placeholder="请选择出生日期" style="width: 100%" />
|
|
|
- </el-form-item>
|
|
|
- </el-col> -->
|
|
|
- </el-row>
|
|
|
- <!-- <el-row>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="门诊号" prop="hisMzNo">
|
|
|
<el-input v-model="ruleForm.hisMzNo" maxlength="20" show-word-limit
|
|
@@ -78,7 +52,35 @@
|
|
|
placeholder="请填写体检号" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- </el-row> -->
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="用户名称" prop="pName">
|
|
|
+ <el-input v-model="ruleForm.pName" minlength="1" maxlength="20" show-word-limit
|
|
|
+ placeholder="请填写用户名称" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="性别" prop="sex">
|
|
|
+ <el-select v-model="ruleForm.sex" placeholder="请选择性别" clearable style="width: 100%">
|
|
|
+ <el-option v-for="item in dics.getSexCode" :key="item.code" :label="item.name"
|
|
|
+ :value="item.code" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="年龄" prop="age">
|
|
|
+ <el-input v-model="ruleForm.age" minlength="1" maxlength="6" show-word-limit
|
|
|
+ placeholder="请填写年龄" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="出生日期" prop="birthDate">
|
|
|
+ <el-date-picker v-model="ruleForm.birthDate" type="date" label="出生日期"
|
|
|
+ placeholder="请选择出生日期" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="证件号" prop="socialNo">
|
|
@@ -105,8 +107,8 @@
|
|
|
<el-form-item label="病人来源" prop="pType">
|
|
|
<el-select v-model="ruleForm.pType" placeholder="请选择病人来源" clearable
|
|
|
style="width: 100%">
|
|
|
- <el-option v-for="item in dics.getAdmissWay" :key="item.code"
|
|
|
- :label="item.name" :value="item.code" />
|
|
|
+ <el-option v-for="item in dics.getAdmissWay" :key="item.code" :label="item.name"
|
|
|
+ :value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -372,7 +374,7 @@
|
|
|
<el-form-item label="省" prop="provinceCode">
|
|
|
<el-select v-model="ruleForm.provinceCode" placeholder="请选择省" style="width: 100%"
|
|
|
filterable @change="provinceCharge" clearable>
|
|
|
- <el-option v-for="item in dics.getProvince" :key="item.code" :label="item.name"
|
|
|
+ <el-option v-for="item in provinceData" :key="item.code" :label="item.name"
|
|
|
:value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -381,7 +383,7 @@
|
|
|
<el-form-item label="市" prop="cityCode">
|
|
|
<el-select v-model="ruleForm.cityCode" placeholder="请选择市" style="width: 100%"
|
|
|
filterable @change="cityCharge" clearable>
|
|
|
- <el-option v-for="item in dics.getCity" :key="item.code" :label="item.name"
|
|
|
+ <el-option v-for="item in cityData" :key="item.code" :label="item.name"
|
|
|
:value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -390,7 +392,7 @@
|
|
|
<el-form-item label="区" prop="areaCode">
|
|
|
<el-select v-model="ruleForm.areaCode" placeholder="请选择区" style="width: 100%"
|
|
|
filterable clearable>
|
|
|
- <el-option v-for="item in dics.getArea" :key="item.code" :label="item.name"
|
|
|
+ <el-option v-for="item in countyData" :key="item.code" :label="item.name"
|
|
|
:value="item.code" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -525,22 +527,30 @@
|
|
|
<script lang="ts" setup name="ChronicDiseaseRegister">
|
|
|
import { reactive, ref, onMounted, nextTick } from 'vue'
|
|
|
import store from '@/store'
|
|
|
+import { clone } from '@/utils/clone'
|
|
|
import PageLayer from '../../../layout/PageLayer.vue'
|
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import { getDatetime } from '../../../utils/date'
|
|
|
-import { getCrmDictionary, getCrmCityByCode, getCrmAreaByCode, saveCrmPatientMi, selectCrmPatientMiByCode } from "@/api/chronic-disease/chronic-disease"
|
|
|
+import { getCrmDictionary, saveCrmPatientMi, selectCrmPatientMiByCode, selectBrInfoByCode } from "@/api/chronic-disease/chronic-disease"
|
|
|
import { employeeList } from "@/api/zhu-yuan-yi-sheng/pat-info-query"
|
|
|
+import { provinceList, cityList, countyList, cityFilter, countyFilter } from "@/data/area.js"
|
|
|
|
|
|
const activeName = ref(['1', '2', '3', '4', '5', '6', '7'])
|
|
|
const userCode = store.state.user.info.code
|
|
|
const userName = store.state.user.info.name
|
|
|
let dics: any = ref({})
|
|
|
const empList = ref([])
|
|
|
+const provinceData = ref([{ code: '', name: '' }])
|
|
|
+const cityData = ref([{ code: '', name: '' }])
|
|
|
+const countyData = ref([{ code: '', name: '' }])
|
|
|
|
|
|
onMounted(async () => {
|
|
|
await nextTick(async () => {
|
|
|
dics.value = await getCrmDictionary()
|
|
|
+ provinceData.value = provinceList
|
|
|
+ cityData.value = cityList
|
|
|
+ countyData.value = countyList
|
|
|
empMethod('')
|
|
|
})
|
|
|
|
|
@@ -764,6 +774,7 @@ const rulesAll = reactive<FormRules<RuleForm>>({
|
|
|
],
|
|
|
})
|
|
|
|
|
|
+const isQueryBrInfo = ref(true)
|
|
|
const queryCmr = async () => {
|
|
|
let code = keyCode.value
|
|
|
if (!code) {
|
|
@@ -775,7 +786,9 @@ const queryCmr = async () => {
|
|
|
});
|
|
|
return
|
|
|
}
|
|
|
+ ruleForm.value = {} as RuleForm
|
|
|
isEditForm.value = true
|
|
|
+ isQueryBrInfo.value = false
|
|
|
try {
|
|
|
await selectCrmPatientMiByCode(code).then((res: any) => {
|
|
|
ruleForm.value = res
|
|
@@ -786,9 +799,63 @@ const queryCmr = async () => {
|
|
|
|
|
|
}
|
|
|
|
|
|
+const brInfoData = ref({})
|
|
|
+const queryBrInfo = async () => {
|
|
|
+ let code = keyCode.value
|
|
|
+ if (ruleForm.value.pId) {
|
|
|
+ isQueryBrInfo.value = true
|
|
|
+ }
|
|
|
+ if (!code) {
|
|
|
+ ElMessage({
|
|
|
+ type: "info",
|
|
|
+ message: '查询关键字不能为空',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (isQueryBrInfo.value) {
|
|
|
+ ElMessage({
|
|
|
+ type: "info",
|
|
|
+ message: '请预先查询是否存在慢病信息或者已经存在慢病信息!',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (isEditForm.value === true) {
|
|
|
+ isEditForm.value = false
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ await selectBrInfoByCode(code).then((res: any) => {
|
|
|
+ if (!res.mi) {
|
|
|
+ ElMessage({
|
|
|
+ type: "warning",
|
|
|
+ message: '未找到病人基本信息',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ brInfoData.value = res.mi
|
|
|
+ if (brInfoData.value) {
|
|
|
+ ruleForm.value = clone(brInfoData.value)
|
|
|
+ ruleForm.value.createDate = now
|
|
|
+ ruleForm.value.creatId = userCode
|
|
|
+ ruleForm.value.visitTimes = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
const addForm = (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return
|
|
|
formEl.resetFields()
|
|
|
+ if (isEditForm.value === true) {
|
|
|
+ isEditForm.value = false
|
|
|
+ }
|
|
|
keyCode.value = ''
|
|
|
}
|
|
|
|
|
@@ -821,7 +888,6 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
- console.log('error submit!', fields)
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: '未完成必填项或者填写项不符合,请检查',
|
|
@@ -843,12 +909,12 @@ const resetForm = (formEl: FormInstance | undefined) => {
|
|
|
|
|
|
const provinceCharge = async () => {
|
|
|
let province = ruleForm.value.provinceCode
|
|
|
- dics.value.getCity = await getCrmCityByCode(province)
|
|
|
+ cityData.value = await cityFilter(province)
|
|
|
}
|
|
|
|
|
|
const cityCharge = async () => {
|
|
|
let city = ruleForm.value.cityCode
|
|
|
- dics.value.getArea = await getCrmAreaByCode(city)
|
|
|
+ countyData.value = await countyFilter(city)
|
|
|
}
|
|
|
|
|
|
</script>
|