|
@@ -2,7 +2,7 @@
|
|
|
<div class="dashboard-container">
|
|
|
<div class="tableBox">
|
|
|
<div class="block">
|
|
|
- <el-form :model="formData" class="demo-form-inline" label-suffix=":" label-width="74px">
|
|
|
+ <el-form v-if="$route.query.from != 'ZMBLZK_WTSL'" :model="formData" class="demo-form-inline" label-suffix=":" label-width="74px">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="出院时间">
|
|
@@ -60,8 +60,117 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
+ <!--终末病历质控-问题数量-->
|
|
|
+ <el-form style="width: 100%" v-else ref="ZmblzkWtslForm" :model="formDataZmblzkWtsl" class="demo-form-inline" label-suffix=":" label-width="74px">
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="所属院区" prop="YQ_CODE">
|
|
|
+ <el-select style="width: 100%;" placeholder="请选择所属院区" v-model="formDataZmblzkWtsl.YQ_CODE" multiple collapse-tags
|
|
|
+ clearable filterable @change="yqChange">
|
|
|
+ <el-option v-for="(item, index) in searchOptions.yqArray" :key="index" :label="item.dep_name"
|
|
|
+ :value="item.dep_id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="出院科室" prop="KS_CODE">
|
|
|
+ <el-cascader style="width: 100%;" placeholder="请选择科室" v-model="formDataZmblzkWtsl.KS_CODE"
|
|
|
+ :options="searchOptions.ksArray" filterable :props="searchOptions.cascaderProps" clearable collapse-tags
|
|
|
+ @change="ksChange">
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="出院病区" prop="BQ_CODE">
|
|
|
+ <el-cascader style="width: 100%;" placeholder="请选择病区" v-model="formDataZmblzkWtsl.BQ_CODE"
|
|
|
+ :options="searchOptions.bqArray" filterable :props="searchOptions.cascaderProps" clearable
|
|
|
+ collapse-tags>
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="病案号" prop="AAA28">
|
|
|
+ <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.AAA28" placeholder="请输入病案号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="出院日期">
|
|
|
+ <div style="width: 100%;display: flex;gap: 5px;">
|
|
|
+ <el-form-item prop="start_time">
|
|
|
+ <el-date-picker style="width: 94%;" v-model="formDataZmblzkWtsl.start_time" type="date" placeholder="请选择开始时间"
|
|
|
+ value-format="yyyyMMdd" format="yyyy年MM月dd日">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="end_time">
|
|
|
+ <el-date-picker style="width: 100%;" v-model="formDataZmblzkWtsl.end_time" type="date" placeholder="请选择结束时间"
|
|
|
+ value-format="yyyyMMdd" format="yyyy年MM月dd日" @onClick="onClickEndTime">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="病案质量" prop="lb_level">
|
|
|
+ <el-select v-model="formDataZmblzkWtsl.lb_level" clearable filterable placeholder="请选择病案质量" style="width: 100%;">
|
|
|
+ <el-option v-for="(item, index) in searchOptions.bazlArray" :label="item.name" :value="item.id" :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="离院方式" prop="AEM01C">
|
|
|
+ <el-select v-model="formDataZmblzkWtsl.AEM01C" clearable filterable placeholder="请选择离院方式" style="width: 100%;">
|
|
|
+ <el-option v-for="(item, index) in searchOptions.lyTypeArray" :label="item.name" :value="item.id" :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="住院天数" prop="endDay1">
|
|
|
+ <div style="width: 100%;display: flex;gap: 5px;">
|
|
|
+ <el-form-item prop="endDay1">
|
|
|
+ <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.endDay1">
|
|
|
+ <template slot="append">天</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ -
|
|
|
+ <el-form-item prop="endDay2">
|
|
|
+ <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.endDay2">
|
|
|
+ <template slot="append">天</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="问题描述" prop="rule_id">
|
|
|
+ <el-select v-model="formDataZmblzkWtsl.rule_id" clearable filterable placeholder="请选择问题描述" style="width: 100%;">
|
|
|
+ <el-option v-for="(item,key, index) in searchOptions.wtArray" :label="item" :value="key" :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="规则类型" prop="rule_type">
|
|
|
+ <el-select v-model="formDataZmblzkWtsl.rule_type" clearable filterable placeholder="请选择规则类型" style="width: 100%;">
|
|
|
+ <el-option v-for="(item, index) in searchOptions.ruleTypeArray" :label="item.name" :value="item.id" :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5" :offset="6">
|
|
|
+ <el-form-item style="text-align: right;">
|
|
|
+ <el-button plain @click="handleResetZmblzkWtsl" icon="el-icon-refresh">重置</el-button>
|
|
|
+ <el-button type="primary" @click="funQuery" class="export-btn" icon="el-icon-search">查询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- <el-table :data="tableData" style="width: 100%">
|
|
|
+ <el-table :data="tableData" style="width: 100%" v-if="$route.query.from != 'ZMBLZK_WTSL'">
|
|
|
<el-table-column type="index" label="序号" width="80"></el-table-column>
|
|
|
<el-table-column prop="AAC11N" label="出院科室" width="200"></el-table-column>
|
|
|
<el-table-column prop="AAA28" label="病案号" width="160">
|
|
@@ -84,6 +193,27 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
+ <!--终末病历质控-问题数量-->
|
|
|
+ <el-table :data="tableData" style="width: 100%" v-else>
|
|
|
+ <el-table-column type="index" label="序号" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="notice" label="问题描述" width="200" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="AAA28" label="病案号" width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span class="blue" @click="funGoto(scope.row.MED_REC_ID, scope.row.rule_id)">
|
|
|
+ {{ scope.row.AAA28 }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="AAA01" label="患者姓名" width="120"></el-table-column>
|
|
|
+ <el-table-column prop="AAC01" label="出院时间" width="160"></el-table-column>
|
|
|
+ <el-table-column prop="AAC11N" label="出院科室" width="150" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="AAC04" label="住院天数" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="AEE03" label="主治医师" width="120"></el-table-column>
|
|
|
+ <el-table-column prop="AEM01C_MC" label="离院方式" width="150" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="AAB01" label="入院时间" width="160"></el-table-column>
|
|
|
+ <el-table-column prop="ICD10_NAME" label="主要诊断名称" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="ICD9_NAME" label="主要手术名称" show-overflow-tooltip></el-table-column>
|
|
|
+ </el-table>
|
|
|
<!-- 分页控制 -->
|
|
|
<mPagination v-if="tableData && tableData.length !== 0" :data="paginationData" @pageChangeEvent="pageHasChanged"></mPagination>
|
|
|
</div>
|
|
@@ -105,6 +235,7 @@ export default {
|
|
|
...mapGetters(['name']),
|
|
|
},
|
|
|
data() {
|
|
|
+ let query = this.$route.query;
|
|
|
return {
|
|
|
formData: {
|
|
|
problem: 'all',
|
|
@@ -128,7 +259,38 @@ export default {
|
|
|
levelList: [], //问题属性
|
|
|
departmentList: [],
|
|
|
doctorList: [], // 医师姓名列表
|
|
|
- sort:''
|
|
|
+ sort:'',
|
|
|
+ formDataZmblzkWtsl: { // 终末病历质控-问题数量
|
|
|
+ YQ_CODE: query.YQ_CODE? query.YQ_CODE.split(',') : [],
|
|
|
+ KS_CODE: query.KS_CODE? query.KS_CODE.split(',') : [],
|
|
|
+ BQ_CODE: query.BQ_CODE? query.BQ_CODE.split(',') : [],
|
|
|
+ AAA28: query.AAA28 || '',
|
|
|
+ start_time: query.startTime? query.startTime : this.storageGet('start_time'),
|
|
|
+ end_time: query.endTime ? query.endTime : this.storageGet('end_time'),
|
|
|
+ lb_level: '',
|
|
|
+ AEM01C: '',
|
|
|
+ rule_id: '',
|
|
|
+ rule_type: '',
|
|
|
+ endDay1: '',
|
|
|
+ endDay2: ''
|
|
|
+ },
|
|
|
+ searchOptions: {
|
|
|
+ yqArray: [],//院区options
|
|
|
+ ksArray: [],//科室options
|
|
|
+ bqArray: [],//病区options
|
|
|
+ bazlArray: [], //病案质量
|
|
|
+ lyTypeArray: [], //离院方式
|
|
|
+ wtArray: [], // 问题描述
|
|
|
+ ruleTypeArray: [], // 规则类型
|
|
|
+ cascaderProps: {
|
|
|
+ multiple: true, // 开启多选模式
|
|
|
+ label: 'dep_name',
|
|
|
+ value: 'dep_id',
|
|
|
+ children: 'children',
|
|
|
+ checkStrictly: true, // 允许独立选择任意层级
|
|
|
+ emitPath: false, // 是否返回完整路径(true 返回路径数组,false 只返回末节点值)
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -147,6 +309,9 @@ export default {
|
|
|
// 获取医生列表
|
|
|
this.getDoctorList();
|
|
|
this.funQuery();
|
|
|
+ if(query.from == 'ZMBLZK_WTSL') {// 终末病历质控-问题数量
|
|
|
+ this.getSearchOptions();
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
// 获取医生列表
|
|
@@ -192,8 +357,15 @@ export default {
|
|
|
this.funQuery()
|
|
|
},
|
|
|
funQuery() {
|
|
|
- //查询
|
|
|
- let pramse = {
|
|
|
+ //查询 来源是否终末病历质控-问题数量
|
|
|
+ let pramse = this.$route.query.from == 'ZMBLZK_WTSL' ? {
|
|
|
+ ...this.formDataZmblzkWtsl,
|
|
|
+ YQ_CODE: this.formDataZmblzkWtsl.YQ_CODE.join(','),
|
|
|
+ KS_CODE: this.formDataZmblzkWtsl.KS_CODE.join(','),
|
|
|
+ BQ_CODE: this.formDataZmblzkWtsl.BQ_CODE.join(','),
|
|
|
+ page: this.paginationData.currentPage,
|
|
|
+ limit: this.paginationData.pageSize,
|
|
|
+ } : {
|
|
|
start_time: this.formData.startTime || '',
|
|
|
end_time: this.formData.endTime || '',
|
|
|
level: this.formData.level,
|
|
@@ -218,7 +390,57 @@ export default {
|
|
|
this.paginationData.total = res.data.count;
|
|
|
this.tableData = res.data.data;
|
|
|
});
|
|
|
- }
|
|
|
+ },
|
|
|
+ handleResetZmblzkWtsl() {
|
|
|
+ this.$refs.ZmblzkWtslForm.resetFields();
|
|
|
+ },
|
|
|
+ getSearchOptions() {
|
|
|
+ this.$axios.post('CaseHistory/Terminal/getQxBlSearchOptions', {}).then(res => {
|
|
|
+ this.searchOptions.yqArray = res.data.yqArray;//院区
|
|
|
+ this.searchOptions.ksArray = this.cancelChildren(res.data.ksArray);//科室
|
|
|
+ this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
|
|
|
+ this.searchOptions.bazlArray = res.data.bazlArray
|
|
|
+ this.searchOptions.lyTypeArray = res.data.lyTypeArray
|
|
|
+ this.searchOptions.wtArray = res.data.wtArray
|
|
|
+ this.searchOptions.ruleTypeArray = res.data.ruleTypeArray
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 将下拉框为空的children属性设置为undefined
|
|
|
+ cancelChildren(arr) {
|
|
|
+ if (!arr) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ return arr.map(item => {
|
|
|
+ if (item.children.length == 0) {
|
|
|
+ item.children = undefined;
|
|
|
+ } else {
|
|
|
+ item.children.map(childreItem => {
|
|
|
+ if (childreItem.children.length == 0) {
|
|
|
+ childreItem.children = undefined;
|
|
|
+ }
|
|
|
+ return childreItem
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //院区change事件
|
|
|
+ yqChange() {
|
|
|
+ this.formData.KS_CODE = [];
|
|
|
+ this.formData.BQ_CODE = [];
|
|
|
+ this.$axios.post('CaseHistory/Terminal/getKsOptions', { 'YQ_CODE': this.formData.YQ_CODE }).then(res => {
|
|
|
+ this.searchOptions.ksArray = this.cancelChildren(res.data.ksArray);//科室
|
|
|
+ this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //科室change事件
|
|
|
+ ksChange() {
|
|
|
+ this.formData.BQ_CODE = [];
|
|
|
+ this.$axios.post('CaseHistory/Terminal/getBqOptions', { 'KS_CODE': this.formData.KS_CODE }).then(res => {
|
|
|
+ this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
|
|
|
+ })
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|