|
@@ -22,12 +22,13 @@
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item class="isRequired" label="已选添加疾病名称:">
|
|
|
|
|
|
+ <el-form-item class="isRequired" label="已选添加疾病名称:" :class="{colorRed: !disNameExist}">
|
|
{{disName}}
|
|
{{disName}}
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div class="symptomList">
|
|
<div class="symptomList">
|
|
<p class="moduleTitle">疾病特征:</p>
|
|
<p class="moduleTitle">疾病特征:</p>
|
|
|
|
+ <p class="inpTips">序号输入规则“序号+.”后可输入的范围0~99;标准词只能有一个词;化验类型关联只能出现一个词,其他类型可以输入多个词;化验类型可输入结果列,其他类型不可输入</p>
|
|
<table class="diagTable">
|
|
<table class="diagTable">
|
|
<tr class="tableTitle">
|
|
<tr class="tableTitle">
|
|
<td class="FeatureSort">排序</td>
|
|
<td class="FeatureSort">排序</td>
|
|
@@ -72,7 +73,7 @@
|
|
</tr>
|
|
</tr>
|
|
</table>
|
|
</table>
|
|
<p class="moduleTitle">诊断公式:</p>
|
|
<p class="moduleTitle">诊断公式:</p>
|
|
- <p class="inpTips">可输入数字(0~9)规定内汉字:任、一、二、三、四、五、六、七、八、九、十,其余汉字不可输入;可输入的符号:“.”、“/”、“()”</p>
|
|
|
|
|
|
+ <p class="inpTips">可输入数字(0~9);可输入规定汉字:任、一、二、三、四、五、六、七、八、九、十,其余汉字不可输入;可输入的符号:“.”、“/”、“()” “+”;确诊还可输入“拟、诊”二字;鉴别诊断的序号不可输入公式中,数据放入后该条件无效;</p>
|
|
<table class="diagTable">
|
|
<table class="diagTable">
|
|
<tr class="tableTitle">
|
|
<tr class="tableTitle">
|
|
<td class="FormulaSort">排序</td>
|
|
<td class="FormulaSort">排序</td>
|
|
@@ -89,7 +90,7 @@
|
|
</td>
|
|
</td>
|
|
<td class="FormulaNumber">
|
|
<td class="FormulaNumber">
|
|
<el-tooltip :disabled="!item.verifyFormula" class="item" effect="dark" :content="item.verifyFormula" placement="top">
|
|
<el-tooltip :disabled="!item.verifyFormula" class="item" effect="dark" :content="item.verifyFormula" placement="top">
|
|
- <input class="groupInput" :class="{borderRed:item.verifyFormula}" :title="item.formula" type="text" v-model.trim="item.formula" @input="handleInp(index,$event,'FormulaNumber')" @click="clickItem(index,'FormulaNumber')">
|
|
|
|
|
|
+ <input class="groupInput" :readonly="!item.type" :class="{borderRed:item.verifyFormula,inpDisabled:!item.type}" :title="item.formula" type="text" v-model.trim="item.formula" @input="handleInp(index,$event,'FormulaNumber',item.type)" @click="clickItem(index,'FormulaNumber')">
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
</td>
|
|
</td>
|
|
<td class="FeatureOpera">
|
|
<td class="FeatureOpera">
|
|
@@ -106,6 +107,7 @@
|
|
<div class="btnBox">
|
|
<div class="btnBox">
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
|
|
+ :disabled = "isReady"
|
|
@click="submitForm('save')"
|
|
@click="submitForm('save')"
|
|
>校验并保存数据</el-button>
|
|
>校验并保存数据</el-button>
|
|
<el-button
|
|
<el-button
|
|
@@ -170,6 +172,8 @@
|
|
isEdit: false,
|
|
isEdit: false,
|
|
saveDisable: false ,
|
|
saveDisable: false ,
|
|
hasQuestion: 1, //是否有问题词
|
|
hasQuestion: 1, //是否有问题词
|
|
|
|
+ disNameExist: true, //诊断名称是否存在
|
|
|
|
+ isReady:false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created(){
|
|
created(){
|
|
@@ -183,6 +187,7 @@
|
|
this.titleText = '修改';
|
|
this.titleText = '修改';
|
|
this.disName = data.disName
|
|
this.disName = data.disName
|
|
this.id = data.id
|
|
this.id = data.id
|
|
|
|
+ this.disNameExist = data.disNameExist
|
|
if(data.disFeature.length) {
|
|
if(data.disFeature.length) {
|
|
this.disFeatureList = data.disFeature
|
|
this.disFeatureList = data.disFeature
|
|
}
|
|
}
|
|
@@ -306,7 +311,7 @@
|
|
diagnoseId: this.id
|
|
diagnoseId: this.id
|
|
}
|
|
}
|
|
api.exportDiagnosticAll(param).then((res) => {
|
|
api.exportDiagnosticAll(param).then((res) => {
|
|
- utils.downloadExportedData(res.data,'诊断依据');
|
|
|
|
|
|
+ utils.downloadExportedData(res.data,'诊断依据.xls');
|
|
})
|
|
})
|
|
}else {
|
|
}else {
|
|
this.warning('导出失败');
|
|
this.warning('导出失败');
|
|
@@ -364,18 +369,65 @@
|
|
const errStr = "第" + (i+ 1) +"行必填项未填写"
|
|
const errStr = "第" + (i+ 1) +"行必填项未填写"
|
|
errStrList.push(errStr)
|
|
errStrList.push(errStr)
|
|
}
|
|
}
|
|
|
|
+ let regex =new RegExp(`^${disFeatureList[i].type}\\.(0|[1-9]\\d?)$`,)
|
|
|
|
+ if(disFeatureList[i].code &&!regex.test(disFeatureList[i].code)) { //序号和类型不匹配
|
|
|
|
+ codeErrorNum++
|
|
|
|
+ disFeatureList[i].codeError = "序号和类型不匹配"
|
|
|
|
+ const errStr = "疾病特征第" + (i+ 1) +"行序号和类型不匹配"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ } else { //序号和类型匹配但序号重复
|
|
|
|
+ let codeArr = disFeatureList.filter(item => item.code ===disFeatureList[i].code)
|
|
|
|
+ if(codeArr.length > 1) {
|
|
|
|
+ codeErrorNum++
|
|
|
|
+ disFeatureList[i].codeError = "序号重复"
|
|
|
|
+ const errStr = "疾病特征第" + (i+ 1) +"行序号重复"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if(disFeatureList[i].type == '3' && disFeatureList[i].result && !disFeatureList[i].relation) {
|
|
if(disFeatureList[i].type == '3' && disFeatureList[i].result && !disFeatureList[i].relation) {
|
|
disFeatureList[i].relationNull = "未填写关联词"
|
|
disFeatureList[i].relationNull = "未填写关联词"
|
|
const errStr = "第" + (i+ 1) +"行化验项数据填写不完整"
|
|
const errStr = "第" + (i+ 1) +"行化验项数据填写不完整"
|
|
errStrList.push(errStr)
|
|
errStrList.push(errStr)
|
|
}
|
|
}
|
|
- let regex =new RegExp(`${disFeatureList[i].type}\\.[1-9]\\d?`)
|
|
|
|
- if(disFeatureList[i].code &&!regex.test(disFeatureList[i].code)) {
|
|
|
|
- codeErrorNum++
|
|
|
|
- disFeatureList[i].codeError = "序号和类型不匹配"
|
|
|
|
- const errStr = "疾病特征第" + (i+ 1) +"行序号和类型不匹配"
|
|
|
|
|
|
+
|
|
|
|
+ if(disFeatureList[i].type == '3' && !disFeatureList[i].result ) { //化验项下面诊断公式如果有用到,判断是否填写结果项
|
|
|
|
+ const regex2 = new RegExp(`(?<=\\D|\\s?)${disFeatureList[i].code}(?=\\D|\\s?)`)
|
|
|
|
+ // const regex2 = new RegExp(`、\\s*、{1,}`)
|
|
|
|
+ // const regex2 = new RegExp(`([^0-9]|\\s{0,1})${disFeatureList[i].code}([^0-9]|\\s{0,1})`)
|
|
|
|
+ console.log(disFormulaList)
|
|
|
|
+ let hasError = disFormulaList.find(item => {return regex2.test(item.formula)})
|
|
|
|
+ if(hasError) {
|
|
|
|
+ if(!disFeatureList[i].relation) {
|
|
|
|
+ disFeatureList[i].verifyRelation = "数据异常"
|
|
|
|
+ }
|
|
|
|
+ disFeatureList[i].verifyResult = "数据异常"
|
|
|
|
+ const errStr = "第" + (i+ 1) +"行化验项数据异常"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(disFeatureList[i].type == '4' && !disFeatureList[i].relation ) { //辅检项下面诊断公式如果有用到,判断是否填写结果项(辅检结果是填在关联词列)
|
|
|
|
+ const regex2 = new RegExp(`(?<=\\D|\\s?)${disFeatureList[i].code}(?=\\D|\\s?)`)
|
|
|
|
+ let hasError = disFormulaList.find(item => {return regex2.test(item.formula)})
|
|
|
|
+
|
|
|
|
+ if(hasError) {
|
|
|
|
+ disFeatureList[i].verifyRelation = "数据异常"
|
|
|
|
+ const errStr = "第" + (i+ 1) +"行辅捡项数据异常"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ let regex1 =new RegExp(`、\\s*、{1,}`)
|
|
|
|
+ if(disFeatureList[i].relation &®ex1.test(disFeatureList[i].relation)) { //不能输入连续的、
|
|
|
|
+ disFeatureList[i].verifyRelation ='数据异常'
|
|
|
|
+ const errStr = "疾病特征第" + (i+ 1) +"行数据异常"
|
|
errStrList.push(errStr)
|
|
errStrList.push(errStr)
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ if(disFeatureList[i].result &®ex1.test(disFeatureList[i].result)) {
|
|
|
|
+ disFeatureList[i].verifyResult ='数据异常'
|
|
|
|
+ const errStr = "疾病特征第" + (i+ 1) +"行数据异常"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
this.disFeatureList = JSON.parse(JSON.stringify(disFeatureList))
|
|
this.disFeatureList = JSON.parse(JSON.stringify(disFeatureList))
|
|
@@ -387,10 +439,21 @@
|
|
const errStr = "诊断公式第" + (i+ 1) +"行诊断公式不能为空"
|
|
const errStr = "诊断公式第" + (i+ 1) +"行诊断公式不能为空"
|
|
errStrList.push(errStr)
|
|
errStrList.push(errStr)
|
|
} else if(disFormulaList[i].formula&&!disFormulaList[i].type) {
|
|
} else if(disFormulaList[i].formula&&!disFormulaList[i].type) {
|
|
- disFormulaList[i].verifyType = "诊断类型不能为空"
|
|
|
|
|
|
+ disFormulaList[i].verifyType = "诊断类型不能为空"
|
|
const errStr = "诊断公式第" + (i+ 1) +"行诊断类型不能为空"
|
|
const errStr = "诊断公式第" + (i+ 1) +"行诊断类型不能为空"
|
|
- errStrList.push(errStr)
|
|
|
|
- formulaListErrNum++;
|
|
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ formulaListErrNum++;
|
|
|
|
+ }
|
|
|
|
+ if(disFormulaList[i].type == 91 && disFormulaList[i].formula.indexOf("拟诊") > -1) { //确诊项如果有拟诊这两个字,判断公式列表中有没有拟诊这项
|
|
|
|
+ const noError = disFormulaList.filter(item => item.type == 92).length > 0
|
|
|
|
+ if(!noError) {
|
|
|
|
+ disFormulaList[i].verifyFormula = "公式格式错误"
|
|
|
|
+ const errStr = "诊断公式第" + (i+ 1) +"行公式格式错误"
|
|
|
|
+ errStrList.push(errStr)
|
|
|
|
+ formulaListErrNum++;
|
|
|
|
+ } else {
|
|
|
|
+ disFormulaList[i].verifyFormula = ""
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(disFormulaList.length) {
|
|
if(disFormulaList.length) {
|
|
@@ -427,17 +490,20 @@
|
|
id: this.id,
|
|
id: this.id,
|
|
modifier: this.modifier
|
|
modifier: this.modifier
|
|
}
|
|
}
|
|
|
|
+ this.isReady = true
|
|
return api.diagBaseVerifyData(param).then((res) => {
|
|
return api.diagBaseVerifyData(param).then((res) => {
|
|
const data = res.data.data
|
|
const data = res.data.data
|
|
|
|
+ this.isReady=false
|
|
if(type =='save') {
|
|
if(type =='save') {
|
|
if(data.hasQuestion) {
|
|
if(data.hasQuestion) {
|
|
- this.warning('校验完成请先调整问题词,该数据已保存')
|
|
|
|
|
|
+ this.warning('校验完成请先调整错误数据,该数据已保存')
|
|
} else {
|
|
} else {
|
|
this.warning('校验成功', 'success')
|
|
this.warning('校验成功', 'success')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
this.id = data.id
|
|
this.id = data.id
|
|
|
|
+ this.disNameExist = data.disNameExist
|
|
this.disFeatureList = data.disFeature
|
|
this.disFeatureList = data.disFeature
|
|
if(data.disformula.length) {
|
|
if(data.disformula.length) {
|
|
this.disFormulaList = data.disformula
|
|
this.disFormulaList = data.disformula
|
|
@@ -455,7 +521,7 @@
|
|
}
|
|
}
|
|
this.hasQuestion = data.hasQuestion
|
|
this.hasQuestion = data.hasQuestion
|
|
|
|
|
|
- })
|
|
|
|
|
|
+ }).catch(()=>{this.isReady=false})
|
|
},
|
|
},
|
|
|
|
|
|
showConfirmDialog(msg, resolve) {
|
|
showConfirmDialog(msg, resolve) {
|
|
@@ -481,8 +547,13 @@
|
|
} else if(type==='FeatureStand') { //关联词不能输入顿号
|
|
} else if(type==='FeatureStand') { //关联词不能输入顿号
|
|
this.disFeatureList[index].standard = value.replace(/、/g,'')
|
|
this.disFeatureList[index].standard = value.replace(/、/g,'')
|
|
} else if ( type === 'FormulaNumber') {
|
|
} else if ( type === 'FormulaNumber') {
|
|
- //计算公式只能输入以下内容: 任、一、二、三、四、五、六、七、八、九、十、0-9、/、.、(、)、(、)
|
|
|
|
- this.disFormulaList[index].formula = value.replace(/[^\u4EFB\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u53410-9\/\.+\(\)\(\)]/g,'').replace(/[\(]/g, '(').replace(/[\)]/g, ')').replace(/' '/g, '')
|
|
|
|
|
|
+ //计算公式确诊只能输入以下内容: 任、一、二、三、四、五、六、七、八、九、十、拟、诊、0-9、/、.、(、)、(、)
|
|
|
|
+ if(itemType == 91) {
|
|
|
|
+ this.disFormulaList[index].formula = value.replace(/[^\u4EFB\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\u62df\u8bca0-9\/\.+\(\)\(\)]/g,'').replace(/[\(]/g, '(').replace(/[\)]/g, ')').replace(/' '/g, '')
|
|
|
|
+ } else { //计算公式其他只能输入以下内容: 任、一、二、三、四、五、六、七、八、九、十、0-9、/、.、(、)、(、)
|
|
|
|
+ this.disFormulaList[index].formula = value.replace(/[^\u4EFB\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u53410-9\/\.+\(\)\(\)]/g,'').replace(/[\(]/g, '(').replace(/[\)]/g, ')').replace(/' '/g, '')
|
|
|
|
+
|
|
|
|
+ }
|
|
} else if ( type === 'FeatureRelate') {
|
|
} else if ( type === 'FeatureRelate') {
|
|
if(itemType == 3) {
|
|
if(itemType == 3) {
|
|
this.disFeatureList[index].relation = value.replace(/、/g,'')
|
|
this.disFeatureList[index].relation = value.replace(/、/g,'')
|
|
@@ -522,6 +593,7 @@
|
|
return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
|
|
return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
|
|
case 'FormulaType':
|
|
case 'FormulaType':
|
|
this.disFormulaList[index].verifyType =''
|
|
this.disFormulaList[index].verifyType =''
|
|
|
|
+ this.disFormulaList[index].formula =''
|
|
return this.disFormulaList = JSON.parse(JSON.stringify(this.disFormulaList))
|
|
return this.disFormulaList = JSON.parse(JSON.stringify(this.disFormulaList))
|
|
case 'FormulaNumber':
|
|
case 'FormulaNumber':
|
|
this.disFormulaList[index].verifyFormula =''
|
|
this.disFormulaList[index].verifyFormula =''
|
|
@@ -538,7 +610,6 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
-
|
|
|
|
<style lang="less">
|
|
<style lang="less">
|
|
@import '../../less/common.less';
|
|
@import '../../less/common.less';
|
|
.AddDiagBaseWrapper {
|
|
.AddDiagBaseWrapper {
|
|
@@ -670,7 +741,7 @@
|
|
color: red;
|
|
color: red;
|
|
}
|
|
}
|
|
.borderRed {
|
|
.borderRed {
|
|
- border: 1px solid red !important;
|
|
|
|
|
|
+ border: 3px solid red ;
|
|
}
|
|
}
|
|
.colorRed {
|
|
.colorRed {
|
|
color: red;
|
|
color: red;
|
|
@@ -727,10 +798,10 @@
|
|
}
|
|
}
|
|
.selectType {
|
|
.selectType {
|
|
input {
|
|
input {
|
|
- border: 1px solid red;
|
|
|
|
|
|
+ border: 3px solid red;
|
|
}
|
|
}
|
|
input:hover {
|
|
input:hover {
|
|
- border: 1px solid red;
|
|
|
|
|
|
+ border: 3px solid red;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.moduleTitle {
|
|
.moduleTitle {
|