|
@@ -19,7 +19,7 @@
|
|
|
<el-row :gutter="0">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="住院号码" prop="ZYH">
|
|
|
- <el-input v-model="blData.ZYH" disabled placeholder="请输入"></el-input>
|
|
|
+ <el-input v-model="ruleForm.ZYH" disabled placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
@@ -36,12 +36,12 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="接收人" prop="JSR">
|
|
|
- <el-input v-model="blData.JSR" disabled placeholder="请输入"></el-input>
|
|
|
+ <el-input v-model="ruleForm.JSR" placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="接收科室" prop="JSKS">
|
|
|
- <el-input v-model="blData.JSKS" disabled placeholder="请输入"></el-input>
|
|
|
+ <el-input v-model="ruleForm.JSKS" placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
@@ -53,7 +53,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="扣分" prop="score">
|
|
|
- <el-input v-model="ruleForm.score" placeholder="请输入"></el-input>
|
|
|
+ <el-input-number v-model="ruleForm.score" controls-position="right" :min="0" :max="100" placeholder="请输入" style="width: 100%;"></el-input-number>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
@@ -78,30 +78,54 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="质控分类" prop="category">
|
|
|
- <el-select v-model="ruleForm.category" placeholder="请选择">
|
|
|
- <el-option v-for="item of selectData.category" :key="item" :label="item" :value="item"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-autocomplete
|
|
|
+ class="inline-input"
|
|
|
+ v-model="ruleForm.category"
|
|
|
+ :fetch-suggestions="querySearchCategory"
|
|
|
+ placeholder="请输入"
|
|
|
+ @select="handleSelectCategory"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ item }">
|
|
|
+ <div class="name">{{ item }}</div>
|
|
|
+ </template>
|
|
|
+ </el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="质控项目" prop="title">
|
|
|
- <el-select v-model="ruleForm.title" placeholder="请选择">
|
|
|
- <el-option v-for="item of selectData.title" :key="item" :label="item" :value="item"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-autocomplete
|
|
|
+ class="inline-input"
|
|
|
+ v-model="ruleForm.title"
|
|
|
+ :fetch-suggestions="querySearchTitle"
|
|
|
+ placeholder="请输入"
|
|
|
+ @select="handleSelectTitle"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ item }">
|
|
|
+ <div class="name">{{ item }}</div>
|
|
|
+ </template>
|
|
|
+ </el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="质控类型" prop="type">
|
|
|
- <el-select v-model="ruleForm.type" placeholder="请选择">
|
|
|
- <el-option v-for="item of selectData.type" :key="item" :label="item" :value="item"></el-option>
|
|
|
- </el-select>
|
|
|
+ <el-autocomplete
|
|
|
+ class="inline-input"
|
|
|
+ v-model="ruleForm.type"
|
|
|
+ :fetch-suggestions="querySearchType"
|
|
|
+ placeholder="请输入"
|
|
|
+ @select="handleSelectType"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ item }">
|
|
|
+ <div class="name">{{ item }}</div>
|
|
|
+ </template>
|
|
|
+ </el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="0">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="质控内容" prop="rule">
|
|
|
- <el-input type="textarea" v-model="ruleForm.rule" :autosize="{ minRows: 4 }" placeholder="请输入"></el-input>
|
|
|
+ <el-form-item label="质控内容" prop="basis">
|
|
|
+ <el-input type="textarea" v-model="ruleForm.basis" :autosize="{ minRows: 4 }" placeholder="请输入"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
@@ -113,7 +137,7 @@
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="data.bSwitch">取 消</el-button>
|
|
|
- <el-button type="primary" @click="onSubmit">确 定</el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit" :loading="loading">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -138,6 +162,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ loading: false,
|
|
|
selectData: {
|
|
|
rule: [],
|
|
|
category: [],
|
|
@@ -146,64 +171,7 @@ export default {
|
|
|
level: [],
|
|
|
zgjb: []
|
|
|
},
|
|
|
- blData: {},
|
|
|
deportments: [],
|
|
|
- // selectData: {
|
|
|
- // "rule": [{
|
|
|
- // "id": 1,
|
|
|
- // "category": "病程类",
|
|
|
- // "title": "首次病程记录",
|
|
|
- // "notice": "入院后8小时内完成首次病程记录",
|
|
|
- // "score": 0.5,
|
|
|
- // "type": "时效性",
|
|
|
- // "level": 2
|
|
|
- // },
|
|
|
- // {
|
|
|
- // "id": 2,
|
|
|
- // "category": "出院记录",
|
|
|
- // "title": "输血记录",
|
|
|
- // "notice": "输血记录中无患者信息和核对情况描述",
|
|
|
- // "score": 1,
|
|
|
- // "type": "内涵质控",
|
|
|
- // "level": 2
|
|
|
- // }
|
|
|
- // ],
|
|
|
- // "category": [
|
|
|
- // "病程类",
|
|
|
- // "入院记录",
|
|
|
- // "出院记录"
|
|
|
- // ],
|
|
|
- // "title": [
|
|
|
- // "诊疗经过",
|
|
|
- // "输血记录",
|
|
|
- // "首次病程记录"
|
|
|
- // ],
|
|
|
- // "type": [
|
|
|
- // "时效性",
|
|
|
- // "内涵质控",
|
|
|
- // "专科质控"
|
|
|
- // ],
|
|
|
- // "level": [
|
|
|
- // {
|
|
|
- // "id": 1,
|
|
|
- // "name": "强制"
|
|
|
- // },
|
|
|
- // {
|
|
|
- // "id": 2,
|
|
|
- // "name": "建议"
|
|
|
- // }
|
|
|
- // ],
|
|
|
- // "zgjb": [
|
|
|
- // "终末质控",
|
|
|
- // "事中质控"
|
|
|
- // ]
|
|
|
- // },
|
|
|
- // blData: {
|
|
|
- // "AAA28": "00071350",
|
|
|
- // "ZYH": "399621",
|
|
|
- // "JSR": "赵阳",
|
|
|
- // "JSKS": "泌尿外科一病区"
|
|
|
- // },
|
|
|
ruleForm: {
|
|
|
ZYH: '',
|
|
|
ZKR: '',
|
|
@@ -216,10 +184,10 @@ export default {
|
|
|
rule_id: '',
|
|
|
type: '',
|
|
|
notice: '',
|
|
|
- rule: '',
|
|
|
+ basis: '',
|
|
|
level: '',
|
|
|
ZGQX: '',
|
|
|
- score: ''
|
|
|
+ score: undefined
|
|
|
},
|
|
|
rules: {
|
|
|
ZYH: [
|
|
@@ -241,15 +209,15 @@ export default {
|
|
|
{ required: true, message: '请选择', trigger: 'blur' }
|
|
|
],
|
|
|
category: [
|
|
|
- { required: true, message: '请选择', trigger: 'blur' }
|
|
|
+ { required: true, message: '请选择', trigger: 'change' }
|
|
|
],
|
|
|
title: [
|
|
|
- { required: true, message: '请选择', trigger: 'blur' }
|
|
|
+ { required: true, message: '请选择', trigger: 'change' }
|
|
|
],
|
|
|
notice: [
|
|
|
{ required: true, message: '请输入', trigger: 'blur' }
|
|
|
],
|
|
|
- rule: [
|
|
|
+ basis: [
|
|
|
{ required: true, message: '请输入', trigger: 'blur' }
|
|
|
],
|
|
|
score: [
|
|
@@ -265,9 +233,54 @@ export default {
|
|
|
this.getRuleData()
|
|
|
this.getBlInfo()
|
|
|
this.getDeportmentList()
|
|
|
- this.$set(this.ruleForm, 'rule', this.data.text)
|
|
|
+ this.$set(this.ruleForm, 'basis', this.data.text)
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 质控分类
|
|
|
+ querySearchCategory(queryString, cb) {
|
|
|
+ var categorys = this.selectData.category;
|
|
|
+ var results = queryString ? categorys.filter(this.createFilterCategory(queryString)) : categorys;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ createFilterCategory(queryString) {
|
|
|
+ return (restaurant) => {
|
|
|
+ return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handleSelectCategory(item) {
|
|
|
+ this.$set(this.ruleForm, 'category', item)
|
|
|
+ },
|
|
|
+ // 质控项目
|
|
|
+ querySearchTitle(queryString, cb) {
|
|
|
+ var titles = this.selectData.title;
|
|
|
+ var results = queryString ? titles.filter(this.createFilterTitle(queryString)) : titles;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ createFilterTitle(queryString) {
|
|
|
+ return (restaurant) => {
|
|
|
+ return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handleSelectTitle(item) {
|
|
|
+ this.$set(this.ruleForm, 'title', item)
|
|
|
+ },
|
|
|
+ // 质控类型
|
|
|
+ querySearchType(queryString, cb) {
|
|
|
+ var types = this.selectData.type;
|
|
|
+ var results = queryString ? types.filter(this.createFilterType(queryString)) : types;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ createFilterType(queryString) {
|
|
|
+ return (restaurant) => {
|
|
|
+ return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handleSelectType(item) {
|
|
|
+ this.$set(this.ruleForm, 'type', item)
|
|
|
+ },
|
|
|
// 获取规则数据
|
|
|
getRuleData() {
|
|
|
getRuleData().then(res => {
|
|
@@ -277,7 +290,10 @@ export default {
|
|
|
// 获取病历相关信息
|
|
|
getBlInfo() {
|
|
|
getBlInfo({ blbh: this.data.blbh }).then(res => {
|
|
|
- this.blData = res.p
|
|
|
+ const { ZYH, JSKS, JSR } = res.p
|
|
|
+ this.$set(this.ruleForm, 'ZYH', ZYH)
|
|
|
+ this.$set(this.ruleForm, 'JSKS', JSKS)
|
|
|
+ this.$set(this.ruleForm, 'JSR', JSR)
|
|
|
})
|
|
|
},
|
|
|
// 质控模板变化
|
|
@@ -311,7 +327,6 @@ export default {
|
|
|
onSubmit() {
|
|
|
this.$refs['ruleForm'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- alert('submit!');
|
|
|
const {
|
|
|
ZYH,
|
|
|
ZKR,
|
|
@@ -324,7 +339,7 @@ export default {
|
|
|
rule_id,
|
|
|
type,
|
|
|
notice,
|
|
|
- rule,
|
|
|
+ basis,
|
|
|
level,
|
|
|
ZGQX,
|
|
|
score
|
|
@@ -341,16 +356,19 @@ export default {
|
|
|
rule_id,
|
|
|
type,
|
|
|
notice,
|
|
|
- rule,
|
|
|
+ basis,
|
|
|
level,
|
|
|
ZGQX: ZGQX/1000,
|
|
|
score
|
|
|
}
|
|
|
+ this.loading=true
|
|
|
addCaseQuality(params).then(res => {
|
|
|
const { m } = res
|
|
|
this.$message.success(m || '成功')
|
|
|
this.data.bSwitch = false
|
|
|
this.$emit('refresh')
|
|
|
+ }).finally(res => {
|
|
|
+ this.loading=false
|
|
|
})
|
|
|
} else {
|
|
|
return false;
|